Egypt

Make EGP Mobile Money Transfers.

🚧

Transfers to Mobile Money wallets in Egypt 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).

We currently support two types of Inbound transfers into Egyptian mobile money wallets:

  • Class A: global enterprises, 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 handled the next working period. Funds settle 24-48 hours after processing.


Payout Flow

Follow these steps to initiate a transfer to an Egyptian Mobile Money Wallet

  1. Collect the customer's (payout initiator) and beneficiary's information.
  2. Specify EGPWALLETS as the account_bank in your request.
  3. Send your API request with the required parameters and any other custom data.
  4. Verify the payout status either via webhooks or with the query status endpoint.

Step 1: Collect Customer and Beneficiary information

You'll need the correct information to initiate the transfer. Collect the sender and beneficiary's information, see the list of mandatory and optional parameters below:

ParameterDescriptionFormatExampleisRequiredPayment Rail
account_numberThe beneficiary's bank account number.StringEGPWALLETSYesClass A / Class B
account_bankThe beneficiary's bank code. Query the bank endpoint for a comprehensive list of supported banksString“0690000032”YesClass A / Class B
amountThe transfer amount.String"2000"YesClass A / Class B
beneficiary_nameThe full name of the transfer beneficiary.String“Example User”YesClass A / Class B
narrationThe transfer's description.String"Test Payment"NoClass A / Class B
currencyThe transfer currency. This must be EGP.StringEGPYesClass A / Class B
metaAdditional information needed to process the transfer.ObjectN/AYesClass A / Class B
meta.beneficiary_addressThe Beneficiary's Address.String“24 King William Street London”NoClass A / Class B
meta.beneficiary_countryThe Beneficiary's country. This should be EG.StringEGNoClass A / Class B
meta.senderThe Sender's full name.StringExample UserNoClass A / Class B
meta.emailThe Sender's email address.String'[email protected]'NoClass B
meta.sender_email_addressThe Sender's email addressString[email protected]NoClass A
meta.sender_cityThe Sender's cityString"Lagos"YesClass A / Class B
meta.sender_mobile_numberThe Sender's mobile number.String“01993003333”NoClass A / Class B
meta.sender_date_of_birthThe Sender's date of birth.StringYesClass A / Class B
meta.sender_id_numberThe Sender's ID number.String"2231aaa"YesClass A / Class B
meta.sender_id_typeThe Sender's ID type.String"01"YesClass A / Class B
meta.sender_id_expiryThe Sender's ID expiration date.String“2026-09-23”YesClass A / Class B
meta.is_cash_pickupSpecifies if this is a cash pickup transfer. This should be false.StringfalseNoClass B
debit_currencyThe source currency for the transfer.String"NGN"YesClass A
meta.transfer_purposeA brief description of the purpose for the transfer.String"Medical Bills"YesClass A / Class B
meta.beneficiary_id_numberThe Beneficiary's ID numberString"28503122500311"YesClass A
meta.beneficiary_mobile_numberThe Beneficiary's Mobile number.String"01000410066"YesClass A / Class B

Step 2: Payout to the Customer

Send your payment request with all the needed transfer information to the transfers endpoint to initiate the payout.

{
  "account_bank": "EGPWALLETS",
  "account_number": "1234567",
  "amount": 1000,
  "narration": "Retest",
  "beneficiary_name": "Mohamed Saad Hussein Saad Makarem",
  "currency": "EGP",
  "debit_currency": "NGN",
  "reference": "ST-10001002420",
  "meta": [
    {
      "beneficiary_address": "3057 El-Harameen St, El-Basatin Sharkeya, El Basatin, Cairo Governorate 4236025, Egypt",
      "sender_city": "Brighton",
      "beneficiary_country": "EG",
      "sender_id_number": "B01123075",
      "sender_id_type": "01",
      "sender_id_expiry": "2027-08-23T00:00:00",
      "sender_mobile_number": "441228587691",
      "sender_date_of_birth": "1993-12-28T00:00:00",
      "sender": "Tubonemi Oruitemeka",
      "email": "[email protected]",
      "transfer_purpose": "EPFAMT",
      "beneficiary_id_number": "28503122500311"
    }
  ]
}
{
    "account_number":"93998382832",
    "account_bank": "EGPWALLETS",
    "narration": "test",
    "amount": 1000,
    "currency": "EGP",
    "beneficiary_name": "john mike",
    "meta": [
        {
            "beneficiary_address": "24 King William Street",
            "sender_city": "kakakwa",
            "is_cash_pickup": false,
            "sender_id_number": "2231aaa",
            "sender_id_type": "01",
            "sender": "test",
            "sender_email_address": "[email protected]",
            "sender_id_expiry": "2026-09-23",
            "sender_mobile_number": "01993003333",
            "sender_date_of_birth": "2002-09-23",
            "transfer_purpose": "SERV",
            "beneficiary_mobile_number": "01000410066"
        }
    ]
}

You'll get a response like this:

{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 326,
        "account_number": "1234567",
        "bank_code": "EGPWALLETS",
        "full_name": "Mohamed Saad Hussein Saad Makarem",
        "created_at": "2025-02-24T15:35:35.000Z",
        "currency": "EGP",
        "amount": 2000,
        "fee": 45,
        "status": "NEW",
        "reference": "ST-10001002420",
        "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": "Mohamed Saad Hussein Saad Makarem",
                "TransferType": "MOBILE",
              	"TransferPurpose": "EPFAMT",
                "AgentCode": "1",
                "AgentLocationCode": "1",
                "RouteCode": "BDC"
            }
        ],
        "narration": "Retest",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "FA-BANK"
    }
}

{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 326,
        "account_number": "93998382832",
        "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",
              	"TransferPurpose": "SERV",
                "AgentCode": "1",
                "AgentLocationCode": "1",
                "RouteCode": "BDC"
            }
        ],
        "narration": "test",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "FA-BANK"
    }
}


Step 3: Verify the Payout status

You have different options to verify the transfer status. Here are some quick ways to verify your status:

  • If you have webhooks enabled, we'll call your webhook URL with the transfer details when the transfer is completed or fails.
  • If you specify a callback_urlwhen creating the transfer, we'll call that URL with the transfer details when the transfer is completed or fails.
  • You can manually check the current status of the transfer by polling the get transfer endpoint with the transfer ID.
{
  "event.type": "Transfer",
  "transfer": {
    "id": 641173,
    "account_number": "0690000040",
    "bank_code": "97964560",
    "fullname": "NWABALI S",
    "date_created": "2024-07-29T13:00:30.000Z",
    "currency": "EGP",
    "debit_currency": "NGN",
    "amount": 100000,
    "fee": 45,
    "status": "SUCCESSFUL",
    "reference": "47b4b1f71065196a",
    "meta": null,
    "narration": "SAMPLE BDC TRANSFER",
    "approver": null,
    "complete_message": "Successful",
    "requires_approval": 0,
    "is_approved": 1,
    "bank_name": "First Discount House Limited"
  }
}

{
	"status": "success",
	"message": "Transfer fetched",
	"data": {
		"id": 641173,
		"account_number": "0690000040",
		"bank_code": "97964560",
		"full_name": "NWABALI S",
		"created_at": "2024-07-29T11:36:14.000Z",
		"currency": "EGP",
		"debit_currency": "NGN",
		"amount": 100000,
		"fee": 45,
		"status": "SUCCESSFUL",
		"reference": "47b4b1f71065196a",
		"meta": [
			{
				"sender": "Sample User"
			}
		],
		"narration": "Payment for goods",
		"approver": null,
		"complete_message": "Successful",
		"requires_approval": 0,
		"is_approved": 1,
		"bank_name": "First Discount House Limited"
	}
}

Testing Transfers

Check our testing guide for details on testing transfers.