The Turkish president has accused the European Union of failing to deliver funds it promised as part of a deal to stop migrants crossing the Aegean Sea.

Recep Tayyip Erdogan said on Friday the EU had pledged 6 billion euros ($6.7 billion) in support of some 3 million refugees Turkey currently hosts.

Erdogan asked: "What happened? The support given until now is 183 million euros."

He added, "And they did not give it to us, they gave it to UNICEF. No country can stand alone in this crisis. Unfortunately the promises on this issue are not kept."

There are fears in Europe that the March deal, which drastically reduced the number of migrants crossing to Greece, could unravel amid Turkish claims that the EU did not stick to its promises.