BRUSSELS—As many as one million refugees in Turkey will receive debit cards and monthly cash transfers to help pay for food and housing under a new €348 million ($393 million) humanitarian program from the European Union announced on Thursday.

The EU’s largest-ever humanitarian program is part of a €3 billion package of assistance the bloc promised Turkey to support some three million refugees the country hosts, mainly from Syria.

Turkey has complained that the money, which was agreed to in exchange for Ankara’s help in preventing migrants from entering the EU, is arriving too slowly.

“The situation in Syria remains very dramatic,” said Christos Stylianides, the EU’s humanitarian aid commissioner. With the debit cards, refugees will be able to buy what they need rather than getting food handouts, he said.

“The European Union is keeping its promise to assist Turkey in hosting the largest refugee population in the world,” Mr. Stylianides said. When it comes to humanitarian assistance, “our cooperation with Turkish authorities has been excellent,” he added.