Egypt 🇪🇬

Send funds internationally to Egyptian Bank Accounts.

ℹ️

Feature Request

Transfers to Egyptian bank accounts are not available by default. To enable this feature, submit a request.

Prerequisites

  1. Complete your KYC verification and confirm that your account is approved for transactions.
  2. Whitelist your server IP address to prevent security errors.
  3. Fund your EGP balance. You can do this by:
    • Directly funding via collections, this method allows funding up to the equivalent of $1,000.
    • Indirect funding via FX conversion from a different currency balance (i.e., wallet-to-wallet transfers).

Payout Flow

Here are the steps to send money to Egyptian bank accounts.

  1. Collect the sender and beneficiary's information. Some important information to collect includes the account information, the sender's name, and the address.
{
    "account_number": "", // merchant_input
    "account_bank": "", // merchant_input
    "narration": "", // merchant_input
    "amount": 0.0, // merchant_input
    "currency": "", // merchant_input
    "beneficiary_name": "", // beneficiary_information
    "meta": [
        {
            "beneficiary_address": "", // beneficiary_information
            "sender_city": "", // sender_information
            "is_cash_pickup": false,
            "beneficiary_country": "", // beneficiary_information
            "sender_id_number": "", // sender_information
            "sender_id_type": "", // sender_information
            "sender": "", // sender_information
            "email": "", // sender_information
            "sender_id_expiry": "", // sender_information
            "sender_mobile_Number": "", // sender_information
            "sender_date_of_birth": "" // sender_information
        }
    ]
}
  1. Send your payment request with all the needed transfer information to the transfers endpoint to create the payout.
{
    "account_number":"93998382832",
    "account_bank": "BDC",
    "narration": "test",
    "amount": 1000,
    "currency": "EGP",
    "beneficiary_name": "john mike",
    "meta": [
        {
            "beneficiary_address": "24 King William Street",
            "sender_city": "kakakwa",
            "is_cash_pickup": false,
            "beneficiary_country": "EG",
            "sender_id_number": "2231aaa",
            "sender_id_type": "01",
            "sender": "test",
            "email": "[email protected]",
            "sender_id_expiry": "2026-09-23",
            "sender_mobile_Number": "01993003333",
            "sender_date_of_birth": "2002-09-23",
            "transfer_purpose": "SERV",
            "beneficiary_id_number":"133223",
        }
    ]
}

You'll get a response like this:

{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 326,
        "account_number": "0690000032",
        "bank_code": "EGPWALLETS",
        "full_name": "JOHN MIKE",
        "created_at": "2025-02-24T15:35:35.000Z",
        "currency": "EGP",
        "amount": 2000,
        "fee": 45,
        "status": "NEW",
        "reference": "45ecccaf91421bcc",
        "meta": [
            {
                "BeneficiaryAddress": "24 King William Street London",
                "SenderCity": "kakakwa",
                "IsCashPickup": false,
                "SenderIdNumber": "2231aaa",
                "SenderIdType": "PASSPORT",
                "Sender": "test",
                "SenderIdExpiry": "23/09/2026",
                "SenderDateOfBirth": "23/09/2002",
                "SenderAddress": "TESt 40",
                "SenderMobileNumber": "08110745134",
                "SenderNationality": "NG",
                "SenderCountry": "NG",
                "SenderEmailAddress": null,
                "MerchantName": "Daniel ltd",
                "BeneficiaryName": "john mike",
                "TransferType": "MOBILE",
                "AgentCode": "1",
                "AgentLocationCode": "1",
                "RouteCode": "BDC"
            }
        ],
        "narration": "test",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "FA-BANK"
    }
}

  1. Verify your transfer status; there are many ways to do this:

    • You can get the transfer status using the transfer status endpoint.
    • If webhooks are enabled on your dashboard, check them to confirm the transfer status.
    • For transfers with callback_id, we'll send the transfer details with their status using the specified URL.
{
   "event": "transfer.completed",
   "event.type": "Transfer",
   "data": {
    "id": 641154,
    "account_number": "233500000000",
    "bank_name": "Tanzania Agricultural Development Bank",
    "bank_code": "11288192",
    "fullname": "Example User",
    "created_at": "2024-07-29T11:36:14.000Z",
    "currency": "TZS",
    "debit_currency": "NGN",
    "amount": 1000,
    "fee": 1000,
    "status": "SUCCESSFUL",
    "reference": "4d2ba109f22cd912",
    "meta": [
      {
        "Sender": "Sample Usermon",
        "SenderCountry": "TZ",
        "SenderAddress": "Block-XM Kivukoni Road"
      }
    ],
    "narration": "Payment for goods",
    "approver": null,
    "complete_message": "Successful",
    "requires_approval": 0,
    "is_approved": 1
   }
 }
{
	"status": "success",
	"message": "Transfer fetched",
	"data": {
		"id": 641154,
		"account_number": "233500000000",
		"bank_code": "11288192",
		"full_name": "Example User",
		"created_at": "2024-07-29T11:36:14.000Z",
		"currency": "TZS",
		"debit_currency": "NGN",
		"amount": 1000,
		"fee": 1000,
		"status": "SUCCESSFUL",
		"reference": "4d2ba109f22cd912",
		"meta": [
			{
				"sender": "Sample User"
			}
		],
		"narration": "Payment for goods",
		"approver": null,
		"complete_message": "Successful",
		"requires_approval": 0,
		"is_approved": 1,
		"bank_name": "Tanzania Agricultural Development Bank"
	}
}

Testing Transfers

Check our testing guide for details on testing transfers.