Egypt
Transfer money to EGP Mobile Money Wallets.
Transfers to Mobile Money wallets in Egypt are not available by default. To enable this feature, submit a request.
Send EGP directly to mobile money accounts in Egypt. This guide walks you through the steps required to initiate and verify a transfer.
Prerequisites
- Complete KYC and ensure your account is approved for transactions.
- Whitelist your server IP addresses. See this guide for more information.
- Enable Transfers via API. See this guide for more information.
- Ensure you have sufficient funds in the EGP wallet. For cross-currency transfers, the transfer amount is debited from the
debit_currencywallet, while the transfer fee is debited from the EGP wallet. See the supported currencies and transfer fees page for more information.
We support two classes of transfers to Egyptian mobile money accounts. Your transfer class is determined by the business category you select during signup.
- Class A: Global enterprises that are not categorised as Money Transfer Operators.
- Class B: International Money Transfer Operators.
Transfer Settlement ScheduleTransfers are processed Sunday to Thursday, 9 AM to 3 PM (GMT+2). Requests made outside these hours are processed during the next working period. Funds settle within 24-48 hours after processing.
Payout Flow
Follow these steps to send money to a mobile money account in Egypt.
- Collect sender and beneficiary details:
Gather the sender, beneficiary, and other transfer details.
See the table below for the required and optional parameters.
| Parameter | Description | Format | Example | Is required |
|---|---|---|---|---|
account_number | The beneficiary's mobile money number. | String | "01021545548" | Yes |
account_bank | The mobile money network. Value must be EGPWALLETS. | String | “EGPWALLETS” | Yes |
amount | The transfer amount. | Integer | 2000 | Yes |
beneficiary_name | The beneficiary's full name. | String | “Ahmed Ibrahim” | Yes |
currency | The transfer currency. Must be EGP. | String | "EGP" | Yes |
narration | A description for the transfer. | String | "Test Payment" | No |
reference | A unique reference to identify the transfer. | String | "Your-Unique-Reference" | No |
debit_currency | The wallet currency to debit for the transfer. | String | "XOF" | No |
meta | Additional information required to process the transfer. | Array | N/A | Yes |
meta[0].beneficiary_address | The beneficiary's address. | String | “4 El Bazry Street, Off 77th Street, Cairo, 11431” | Yes |
meta[0].sender_city | The sender's city | String | "Cairo" | Yes |
meta[0].sender_date_of_birth | The sender's date of birth. | String | “1990-09-23” | Yes |
meta[0].sender_id_number | The sender's ID number. | String | "2231aaa" | Yes |
meta[0].sender_id_type | The sender's ID type. See the supported ID types here | String | "01" | Yes |
meta[0].sender_id_expiry | The sender's ID expiration date. | String | “2029-09-23” | Yes |
meta[0].transfer_purpose | The purpose of the transfer. See the supported transfer purposes here | String | "SERV" | Yes |
meta[0].beneficiary_mobile_number | The beneficiary's mobile number. | String | "2001021545548" | Yes |
meta[0].beneficiary_country | The beneficiary's country. This should be EG. | String | "EG" | No |
meta[0].sender | The sender's full name. | String | "Sol Thv" | No |
meta[0].email | The beneficiary's email address. | String | "[email protected]" | No |
meta[0].sender_email_address | The sender's email address | String | "[email protected]" | No |
meta[0].sender_mobile_number | The sender's mobile number. | String | "01993003333" | No |
meta[0].sender_address | The sender's address. | String | "Tahrir Square, Cairo, Egypt" | No |
meta[0].beneficiary_id_number | The beneficiary's ID number. | String | "28503122500311" | No |
meta[0].first_name | The beneficiary's first name. If passed, must match the first name value provided for the beneficiary_name. | String | “John” | No |
meta[0].last_name | The beneficiary's last name. If passed, must match the last name value provided for the beneficiary_name. | String | “Mike” | No |
- Initiate the transfer
Send aPOSTrequest to the transfer endpoint with the sender and beneficiary details.
curl --request POST \
--url https://api.flutterwave.com/v3/transfers \
--header 'Authorization: Bearer {{YOUR_SECRET_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
"account_number": "01021545548",
"account_bank": "EGPWALLETS",
"narration": "test",
"amount": 1000,
"currency": "EGP",
"beneficiary_name": "Ahmed Ibrahim",
"reference": "c47823Kkakd_PMCKDU_1",
"meta": [
{
"beneficiary_address": "4 El Bazry Street, Off 77th Street, Cairo, 11431",
"sender_city": "Cairo",
"beneficiary_country": "EG",
"sender_id_number": "2231aaa",
"sender_id_type": "01",
"sender": "test",
"email": "[email protected]",
"sender_id_expiry": "2027-09-23",
"sender_date_of_birth": "2002-09-23",
"sender_email_address": "[email protected]",
"transfer_purpose": "SERV",
"first_name": "Ahmed",
"last_name": "Ibrahim",
"beneficiary_id_number": "123455",
"beneficiary_mobile_number": "2001021545548"
}
]
}'You'll get a response like this:
{
"status": "success",
"message": "Transfer Queued Successfully",
"data": {
"id": 2246452,
"account_number": "01021545548",
"bank_code": "EGPWALLETS",
"full_name": "Ahmed Ibrahim",
"created_at": "2026-10-14T17:37:04.000Z",
"currency": "EGP",
"amount": 1000,
"fee": 45,
"status": "NEW",
"reference": "c47823Kkakd_PMCKDU_1",
"meta": [
{
"BeneficiaryAddress": "4 El Bazry Street, Off 77th Street, Cairo, 11431",
"SenderCity": "Cairo",
"BeneficiaryCountry": "EG",
"SenderIdNumber": "2231aaa",
"SenderIdType": "PASSPORT",
"Sender": "test",
"EmailAddress": "[email protected]",
"SenderIdExpiry": "23/09/2027",
"SenderDateOfBirth": "23/09/2002",
"SenderEmailAddress": "[email protected]",
"TransferPurpose": "SERV",
"FirstName": "Ahmed",
"LastName": "Ibrahim",
"BeneficiaryIdNumber": "123455",
"BeneficiaryMobileNumber": "2001021545548",
"SenderAddress": null,
"SenderMobileNumber": "07054748747",
"SenderNationality": "ZA",
"SenderCountry": "ZA",
"SenderDob": "23/09/2002",
"MerchantName": "Dotuns Fashion Limited",
"BeneficiaryName": "Ahmed Ibrahim",
"TransferType": "MOBILE",
"AgentCode": "50261",
"AgentLocationCode": "50261",
"RouteCode": "BDC"
}
],
"narration": "test",
"complete_message": "",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "FA-BANK"
}
}- Verify the transfer status
There are two ways to verify the transfer status:
- Call the transfer status endpoint using the transfer ID (
data.id) returned in the transfer initiation response.
curl --request GET \
--location 'https://api.flutterwave.com/v3/transfers/2246452' \
--header 'Authorization: Bearer {{YOUR_SECRET_KEY}}'{
"status": "success",
"message": "Transfer fetched",
"data": {
"id": 2246452,
"account_number": "01021545548",
"bank_code": "EGPWALLETS",
"full_name": "Ahmed Ibrahim",
"created_at": "2026-10-14T17:37:04.000Z",
"currency": "EGP",
"debit_currency": null,
"amount": 1000,
"fee": 45,
"status": "SUCCESSFUL",
"reference": "c47823Kkakd_PMCKDU_1",
"meta": [
{
"beneficiary_address": "4 El Bazry Street, Off 77th Street, Cairo, 11431",
"beneficiary_country": "EG",
"sender": "test",
"email": "[email protected]",
"first_name": "Ahmed",
"last_name": "Ibrahim",
"beneficiary_name": "Ahmed Ibrahim"
}
],
"narration": "test",
"approver": null,
"complete_message": "Successful",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "FA-BANK"
}
}- Listen for webhooks. Configure your webhook URL on the Flutterwave Dashboard to receive real-time transfer updates. See the webhooks guide for more information.
{
"event": "transfer.completed",
"event.type": "Transfer",
"data": {
"id": 2246452,
"account_number": "01021545548",
"bank_name": "FA-BANK",
"bank_code": "EGPWALLETS",
"fullname": "Ahmed Ibrahim",
"created_at": "2026-10-14T17:37:04.000Z",
"currency": "EGP",
"debit_currency": null,
"amount": 1000,
"fee": 45,
"status": "SUCCESSFUL",
"reference": "c47823Kkakd_PMCKDU_1",
"meta": [
{
"BeneficiaryAddress": "4 El Bazry Street, Off 77th Street, Cairo, 11431",
"SenderCity": "Cairo",
"BeneficiaryCountry": "EG",
"SenderIdNumber": "2231aaa",
"SenderIdType": "PASSPORT",
"Sender": "test",
"EmailAddress": "[email protected]",
"SenderIdExpiry": "23/09/2027",
"SenderDateOfBirth": "23/09/2002",
"SenderEmailAddress": "[email protected]",
"TransferPurpose": "SERV",
"FirstName": "Ahmed",
"LastName": "Ibrahim",
"BeneficiaryIdNumber": "123455",
"BeneficiaryMobileNumber": "2001021545548",
"SenderAddress": null,
"SenderMobileNumber": "07054748747",
"SenderNationality": "ZA",
"SenderCountry": "ZA",
"SenderDob": "23/09/2002",
"MerchantName": "Dotuns Fashion Limited",
"BeneficiaryName": "Ahmed Ibrahim",
"TransferType": "MOBILE",
"AgentCode": "50261",
"AgentLocationCode": "50261",
"RouteCode": "BDC"
}
],
"narration": "test",
"approver": null,
"complete_message": "Successful",
"requires_approval": 0,
"is_approved": 1
}
}
Testing Transfers
Check the testing guide for mocking transfers in the test environment.
Updated 5 days ago
