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

  1. Complete KYC and ensure your account is approved for transactions.
  2. Whitelist your server IP addresses. See this guide for more information.
  3. Enable Transfers via API. See this guide for more information.
  4. Ensure you have sufficient funds in the EGP wallet. For cross-currency transfers, the transfer amount is debited from the debit_currency wallet, 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 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 mobile money account in Egypt.

  1. Collect sender and beneficiary details:
    Gather the sender, beneficiary, and other transfer details.

See the table below for the required and optional parameters.

ParameterDescriptionFormatExampleIs required
account_numberThe beneficiary's mobile money number.String"01021545548"Yes
account_bankThe mobile money network. Value must be EGPWALLETS.String“EGPWALLETS”Yes
amountThe transfer amount.Integer2000Yes
beneficiary_nameThe beneficiary's full name.String“Ahmed Ibrahim”Yes
currencyThe transfer currency. Must be EGP.String"EGP"Yes
narrationA description for the transfer.String"Test Payment"No
referenceA unique reference to identify the transfer.String"Your-Unique-Reference"No
debit_currencyThe wallet currency to debit for the transfer.String"XOF"No
metaAdditional information required to process the transfer.ArrayN/AYes
meta[0].beneficiary_addressThe beneficiary's address.String“4 El Bazry Street, Off 77th Street, Cairo, 11431”Yes
meta[0].sender_cityThe sender's cityString"Cairo"Yes
meta[0].sender_date_of_birthThe sender's date of birth.String“1990-09-23”Yes
meta[0].sender_id_numberThe sender's ID number.String"2231aaa"Yes
meta[0].sender_id_typeThe sender's ID type. See the supported ID types hereString"01"Yes
meta[0].sender_id_expiryThe sender's ID expiration date.String“2029-09-23”Yes
meta[0].transfer_purposeThe purpose of the transfer. See the supported transfer purposes hereString"SERV"Yes
meta[0].beneficiary_mobile_numberThe beneficiary's mobile number.String"2001021545548"Yes
meta[0].beneficiary_countryThe beneficiary's country. This should be EG.String"EG"No
meta[0].senderThe sender's full name.String"Sol Thv"No
meta[0].emailThe beneficiary's email address.String"[email protected]"No
meta[0].sender_email_addressThe sender's email addressString"[email protected]"No
meta[0].sender_mobile_numberThe sender's mobile number.String"01993003333"No
meta[0].sender_addressThe sender's address.String"Tahrir Square, Cairo, Egypt"No
meta[0].beneficiary_id_numberThe beneficiary's ID number.String"28503122500311"No
meta[0].first_nameThe beneficiary's first name. If passed, must match the first name value provided for the beneficiary_name.String“John”No
meta[0].last_nameThe beneficiary's last name. If passed, must match the last name value provided for the beneficiary_name.String“Mike”No
  1. Initiate the transfer
    Send a POST request 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"
    }
}
  1. Verify the transfer status
    There are two ways to verify the transfer status:
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.


Did this page help you?