Egypt

Make EGP Cash PickUp Transfers.

❗️

This feature is only available to IMTO merchants. Kindly submit a request to access this feature on your account.


Send EGP for cash pickup in Egypt. This guide walks you through the steps required to initiate and verify a cash pickup 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.

📘

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 complete a cash pickup transfer 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_numberThis should be passed as null.nullnullYes
account_bankThe bank code. Must be BDC.String“BDC”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].is_cash_pickupIdentifies the transfer as a cash pickup. Must be set to true.BooleantrueYes
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. Set meta.is_cash_pickup to true to identify the transfer as a cash pickup.
curl --request POST \
  --url https://api.flutterwave.com/v3/transfers \
  --header 'Authorization: Bearer {{YOUR_SECRET_KEY}}' \
  --header 'Content-Type: application/json' \
  --data '{
        "account_number": null,
        "account_bank": "BDC",
        "narration": "Pickup In Egypt",
        "amount": 1000,
        "currency": "EGP",
        "beneficiary_name": "Tariq Masry",
        "reference": "c4782akddd_PMCKDU_1",
        "meta": [
            {
                "beneficiary_address": "Tahrir Square, Cairo, Egypt",
                "sender_city": "Cairo",
                "is_cash_pickup": true,
                "beneficiary_country": "EG",
                "sender_id_number": "2231aaa",
                "sender_id_type": "01",
                "sender": "Mohamed Mansour",
                "email": "[email protected]",
                "sender_id_expiry": "2026-09-23",
                "sender_date_of_birth": "2002-09-23",
                "sender_email_address": "[email protected]",
                "transfer_purpose": "EDUC",        
                "beneficiary_id_number": "123455",
                "beneficiary_mobile_number": "+201011340718"
            }
        ]
}'

You'll get a response like this:

{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 2247213,
        "account_number": "123455",
        "bank_code": "BDC",
        "full_name": "Tariq Masry",
        "created_at": "2026-10-22T00:10:41.000Z",
        "currency": "EGP",
        "amount": 1000,
        "fee": 45,
        "status": "NEW",
        "reference": "c4782akddd_PMCKDU_1",
        "meta": [
            {
                "BeneficiaryAddress": "Tahrir Square, Cairo, Egypt",
                "SenderCity": "Cairo",
                "IsCashPickup": true,
                "BeneficiaryCountry": "EG",
                "SenderIdNumber": "2231aaa",
                "SenderIdType": "PASSPORT",
                "Sender": "Mohamed Mansour",
                "EmailAddress": "[email protected]",
                "SenderIdExpiry": "23/09/2026",
                "SenderDateOfBirth": "23/09/2002",
                "SenderEmailAddress": "[email protected]",
                "TransferPurpose": "EDUC",
                "BeneficiaryIdNumber": "123455",
                "BeneficiaryMobileNumber": "+201011340718",
                "SenderAddress": null,
                "SenderMobileNumber": "07054748747",
                "SenderNationality": "ZA",
                "SenderCountry": "ZA",
                "SenderDob": "23/09/2002",
                "MerchantName": "Dotuns Fashion Limited",
                "BeneficiaryName": "Tariq Masry",
                "TransferType": "CASHPICKUP",
                "AgentCode": "50261",
                "AgentLocationCode": "50261",
                "RouteCode": "BDC"
            }
        ],
        "narration": "Pickup In Egypt",
        "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/2247213' \
  --header 'Authorization: Bearer {{YOUR_SECRET_KEY}}'
{
    "status": "success",
    "message": "Transfer fetched",
    "data": {
        "id": 2247213,
        "account_number": "123455",
        "bank_code": "BDC",
        "full_name": "Tariq Masry",
        "created_at": "2026-10-22T00:10:41.000Z",
        "currency": "EGP",
        "debit_currency": null,
        "amount": 1000,
        "fee": 45,
        "status": "SUCCESSFUL",
        "reference": "c4782akddd_PMCKDU_1",
        "meta": [
            {
                "beneficiary_address": "Tahrir Square, Cairo, Egypt",
                "beneficiary_country": "EG",
                "sender": "Mohamed Mansour",
                "email": "[email protected]",
                "beneficiary_name": "Tariq Masry"
            }
        ],
        "narration": "Pickup In Egypt",
        "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": 2247213,
    "account_number": "123455",
    "bank_name": "FA-BANK",
    "bank_code": "BDC",
    "fullname": "Tariq Masry",
    "created_at": "2026-10-22T00:10:41.000Z",
    "currency": "EGP",
    "debit_currency": null,
    "amount": 1000,
    "fee": 45,
    "status": "SUCCESSFUL",
    "reference": "c4782akddd_PMCKDU_1",
    "meta": [
      {
        "BeneficiaryAddress": "Tahrir Square, Cairo, Egypt",
        "SenderCity": "Cairo",
        "IsCashPickup": true,
        "BeneficiaryCountry": "EG",
        "SenderIdNumber": "2231aaa",
        "SenderIdType": "PASSPORT",
        "Sender": "Mohamed Mansour",
        "EmailAddress": "[email protected]",
        "SenderIdExpiry": "23/09/2026",
        "SenderDateOfBirth": "23/09/2002",
        "SenderEmailAddress": "[email protected]",
        "TransferPurpose": "EDUC",
        "BeneficiaryIdNumber": "123455",
        "BeneficiaryMobileNumber": "+201011340718",
        "SenderAddress": null,
        "SenderMobileNumber": "07054748747",
        "SenderNationality": "ZA",
        "SenderCountry": "ZA",
        "SenderDob": "23/09/2002",
        "MerchantName": "Dotuns Fashion Limited",
        "BeneficiaryName": "Tariq Masry",
        "TransferType": "CASHPICKUP",
        "AgentCode": "50261",
        "AgentLocationCode": "50261",
        "RouteCode": "BDC"
      }
    ],
    "narration": "Pickup In Egyptt",
    "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?