Egypt
Transfer funds to Egyptian Bank Accounts.
Transfers to Egyptian bank accounts are not available by default. To enable this feature, submit a request.
Send EGP directly to bank 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 bank 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 Schedule
Transfers 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 bank 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 | Class A | Class B | Example |
|---|---|---|---|---|---|
account_number | The beneficiary's bank account number. | String | Yes | Yes | `"1242424242" |
account_bank | The beneficiary's bank code. Use the Get Banks endpoint to retrieve the bank code. | String | Yes | Yes | “BDC” |
amount | The transfer amount. | Integer | Yes | Yes | 2000 |
beneficiary_name | The beneficiary's full name. | String | Yes | Yes | “John Mike” |
currency | The transfer currency. Must be EGP. | String | Yes | Yes | "EGP" |
narration | A description for the transfer. | String | No | No | "Test Payment" |
reference | Unique reference to identify the transfer. | String | No | No | "Your-Unique-Reference" |
debit_currency | The wallet currency to debit for the transfer. | String | No | No | "XOF" |
meta | Additional information required to process the transfer. | Object | Yes | Yes | N/A |
meta[0].beneficiary_address | The beneficiary's address. | String | Yes | Yes | “24 King William Street London” |
meta[0].sender_city | The sender's city | String | Yes | Yes | "London" |
meta[0].sender_date_of_birth | The sender's date of birth. | String | Yes | Yes | “1990-09-23” |
meta[0].sender_id_number | The sender's ID number. | String | Yes | Yes | "2231aaa" |
meta[0].sender_id_type | The sender's ID type. See the supported ID types here | String | Yes | Yes | "01" |
meta[0].sender_id_expiry | The sender's ID expiration date. | String | Yes | Yes | “2029-09-23” |
meta[0].transfer_purpose | The purpose of the transfer. See the supported transfer purposes here | String | Yes | Yes | "ISMDCS" |
meta[0].beneficiary_mobile_number | The beneficiary's mobile number. | String | Yes | Yes | "+201011340718" |
meta[0].account_number_type | The beneficiary's account number type. Supported values include IBAN and ACCOUNT. | String | Yes | Yes | "IBAN" |
meta[0].beneficiary_country | The beneficiary's country. This should be EG. | String | No | No | `"EG" |
meta[0].sender | The sender's full name. | String | No | No | "Sol Thv" |
meta[0].email | The beneficiary's email address. | String | No | No | "[email protected]" |
meta[0].sender_email_address | The sender's email address | String | No | No | "[email protected]" |
meta[0].mobile_number | The beneficiary's mobile number. | String | No | No | "+447522821265" |
meta[0].sender_mobile_number | The sender's mobile number. | String | No | No | "01993003333" |
meta[0].sender_address | The sender's address. | String | No | No | "Tahrir Square, Cairo, Egypt" |
meta[0].beneficiary_id_number | The beneficiary's ID number. | String | No | No | "28503122500311" |
meta[0].first_name | The beneficiary's first name. If passed, must match the first name value provided for the beneficiary_name. | String | No | No | “John” |
meta[0].last_name | The beneficiary's last name. If passed, must match the last name value provided for the beneficiary_name. | String | No | No | “Mike” |
- 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_bank": "CIB",
"account_number": "EG310010019199990100064142997",
"amount": 1000,
"currency": "EGP",
"beneficiary_name": "Ali Kandil",
"debit_currency": "USD",
"reference": "c47823c4c2bfbfar8akdd_PMCKDU_1",
"narration": "Egypt withdrawal",
"meta": [
{
"sender": "Sol Thv",
"sender_date_of_birth": "1992-12-09",
"sender_id_number": "62135306",
"sender_id_type": "01",
"sender_id_expiry": "2029-09-21",
"sender_city": "London",
"beneficiary_address": "Mivida, Avenues 2, New Cairo",
"transfer_purpose": "TP2P",
"beneficiary_mobile_number": "+201011340718",
"sender_email_address":"[email protected]",
"sender_address":"Tahrir Square, Cairo, Egypt",
"email": "[email protected]",
"beneficiary_id_number": "30204151200119",
"account_number_type": "IBAN"
}
]
}'
curl --request POST \
--url https://api.flutterwave.com/v3/transfers \
--header 'Authorization: Bearer {{YOUR_SECRET_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
"account_number": "1242424242",
"account_bank": "BDC",
"narration": "test",
"amount": 1000,
"currency": "EGP",
"beneficiary_name": "John Mike",
"reference": "c47823c4cr8akddd_PMCKDU_1",
"meta": [
{
"beneficiary_address": "24 King William Street",
"sender_city": "kakakwa",
"beneficiary_country": "EG",
"sender_id_number": "2231aaa",
"sender_id_type": "01",
"sender": "test",
"email": "[email protected]",
"sender_id_expiry": "2026-09-23",
"sender_date_of_birth": "2002-09-23",
"sender_email_address": "[email protected]",
"transfer_purpose": "SERV",
"first_name": "John",
"last_name": "Mike",
"beneficiary_id_number": "123455",
"beneficiary_mobile_number": "+201011340718",
"account_number_type": "ACCOUNT"
}
]
}'
You'll get a response like this:
{
"status": "success",
"message": "Transfer Queued Successfully",
"data": {
"id": 2245572,
"account_number": "EG310010019199990100064142997",
"bank_code": "CIB",
"full_name": "Ali Kandil",
"created_at": "2026-10-08T12:25:05.000Z",
"currency": "EGP",
"debit_currency": "USD",
"amount": 1000,
"fee": 45,
"status": "NEW",
"reference": "c47823c4c2bfbfar8akdd_PMCKDU_1",
"meta": [
{
"Sender": "Sol Thv",
"SenderDateOfBirth": "09/12/1992",
"SenderIdNumber": "62135306",
"SenderIdType": "PASSPORT",
"SenderIdExpiry": "21/09/2029",
"SenderCity": "London",
"BeneficiaryAddress": "Mivida, Avenues 2, New Cairo",
"TransferPurpose": "TP2P",
"BeneficiaryMobileNumber": "+201011340718",
"SenderEmailAddress": "[email protected]",
"SenderAddress": "Tahrir Square, Cairo, Egypt",
"EmailAddress": "[email protected]",
"FirstName": "Ali",
"LastName": "Kandil",
"BeneficiaryIdNumber": "30204151200119",
"AccountNumberType": "IBAN",
"SenderMobileNumber": "07054748747",
"SenderNationality": "ZA",
"SenderCountry": "ZA",
"SenderDob": "09/12/1992",
"MerchantName": "Dotuns Fashion Limited",
"BeneficiaryName": "Ali Kandil",
"BeneficiaryCountry": "EG",
"TransferType": "ACCOUNT",
"AgentCode": "1",
"AgentLocationCode": "1",
"RouteCode": "BDC"
}
],
"narration": "Egypt withdrawal",
"complete_message": "",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "FA-BANK"
}
}
{
"status": "success",
"message": "Transfer Queued Successfully",
"data": {
"id": 2245671,
"account_number": "1242424242",
"bank_code": "BDC",
"full_name": "john mike",
"created_at": "2026-10-09T09:23:44.000Z",
"currency": "EGP",
"amount": 1000,
"fee": 45,
"status": "NEW",
"reference": "c47823c4cr8akddd_PMCKDU_1",
"meta": [
{
"BeneficiaryAddress": "24 King William Street",
"SenderCity": "kakakwa",
"BeneficiaryCountry": "EG",
"SenderIdNumber": "2231aaa",
"SenderIdType": "PASSPORT",
"Sender": "test",
"EmailAddress": "[email protected]",
"SenderIdExpiry": "23/09/2026",
"SenderDateOfBirth": "23/09/2002",
"SenderEmailAddress": "[email protected]",
"TransferPurpose": "SERV",
"FirstName": "John",
"LastName": "Mike",
"BeneficiaryIdNumber": "123455",
"BeneficiaryMobileNumber": "+201011340718",
"AccountNumberType": "ACCOUNT",
"SenderAddress": null,
"SenderMobileNumber": "07054748747",
"SenderNationality": "ZA",
"SenderCountry": "ZA",
"SenderDob": "23/09/2002",
"MerchantName": "Dotuns Fashion Limited",
"BeneficiaryName": "John Mike",
"TransferType": "ACCOUNT",
"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 response.
curl --request GET \
--location 'https://api.flutterwave.com/v3/transfers/2245671' \
--header 'Authorization: Bearer {{YOUR_SECRET_KEY}}'
{
"status": "success",
"message": "Transfer fetched",
"data": {
"id": 2245671,
"account_number": "1242424242",
"bank_code": "BDC",
"full_name": "john mike",
"created_at": "2026-10-09T09:23:44.000Z",
"currency": "EGP",
"debit_currency": null,
"amount": 1000,
"fee": 45,
"status": "SUCCESSFUL",
"reference": "c47823c4cr8akddd_PMCKDU_1",
"meta": [
{
"beneficiary_address": "24 King William Street",
"beneficiary_country": "EG",
"sender": "test",
"email": "[email protected]",
"first_name": "John",
"last_name": "Mike",
"beneficiary_name": "John Mike"
}
],
"narration": "test",
"approver": null,
"complete_message": "",
"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": 2245671,
"account_number": "1242424242",
"bank_name": "FA-BANK",
"bank_code": "BDC",
"fullname": "john mike",
"created_at": "2026-10-09T09:23:44.000Z",
"currency": "EGP",
"debit_currency": null,
"amount": 1000,
"fee": 45,
"status": "SUCCESSFUL",
"reference": "c47823c4cr8akddd_PMCKDU_1",
"meta": [
{
"BeneficiaryAddress": "24 King William Street",
"SenderCity": "kakakwa",
"BeneficiaryCountry": "EG",
"SenderIdNumber": "2231aaa",
"SenderIdType": "PASSPORT",
"Sender": "test",
"EmailAddress": "[email protected]",
"SenderIdExpiry": "23/09/2026",
"SenderDateOfBirth": "23/09/2002",
"SenderEmailAddress": "[email protected]",
"TransferPurpose": "SERV",
"FirstName": "John",
"LastName": "Mike",
"BeneficiaryIdNumber": "123455",
"BeneficiaryMobileNumber": "+201011340718",
"AccountNumberType": "ACCOUNT",
"SenderAddress": null,
"SenderMobileNumber": "07054748747",
"SenderNationality": "ZA",
"SenderCountry": "ZA",
"SenderDob": "23/09/2002",
"MerchantName": "Dotuns Fashion Limited",
"BeneficiaryName": "John Mike",
"TransferType": "ACCOUNT",
"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 3 days ago
