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
- 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.
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 complete a cash pickup transfer 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 | This should be passed as null. | null | null | Yes |
account_bank | The bank code. Must be BDC. | String | “BDC” | 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].is_cash_pickup | Identifies the transfer as a cash pickup. Must be set to true. | Boolean | true | 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. Setmeta.is_cash_pickupto 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"
}
}
- 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/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.
Updated 1 day ago
Did this page help you?
