Skip to main content

Mobile Wallets

Mobile wallet payments are widely adopted in Egypt (50M active users in 2025). Transactions are authenticated by OTP or directly in the wallet app—no card details are shared. With a single EBANX integration you can reach 50+ wallet providers in Egypt through one unified API. Check the list of mobile wallets authorized by the Central Bank of Egypt.

Requirements

  • API credentials — Your EBANX integration key request via Merchant Signup.
  • Familiarity with EBANX Direct — Same overall structure as other methods with a few wallet-specific fields.
  • Webhook endpoint — To receive status changes from EBANX.

How it works

  1. Request Payment — Call POST /ws/direct with payment_type_code: "paymob".
  2. Show Instructions — Display a 3-hour countdown and use redirect_url to open wallet instructions.
  3. Customer Pays — Customer receives a push/SMS and approves in their wallet or bank app.
  4. Confirmation — EBANX updates status PE → CO (or CA at expiry) and sends notifications.

Key information

  • Supported country: Egypt (EG)
  • Supported currency: EGP
  • Expiration: 3 hours from creation
  • Statuses: PE (Pending) → CO (Confirmed) or CA (Canceled/Expired)
  • Unified coverage: 50+ wallets via one API (full list available from EBANX)

Instructions

Follow the steps below.


    Select the appropriate environment for your integration. Use the sandbox environment for testing, or the production environment for live transactions. Use the URL for your HTTP requests based on your selection.

    https://sandbox.ebanx.com/ws/direct

  1. Select your environment

    Endpoint: POST /ws/direct Operation: request

  2. Define your parameters

    Basic parameters

    ParameterRequirementDescription
    integration_keyRequiredYour EBANX integration key.
    operationRequiredMust be request.
    payment_type_codeRequiredSet to "paymob".
    countryRequiredSet to EG (Egypt).

    Payment parameters

    ParameterRequirementDescription
    merchant_payment_codeRequiredYour unique idempotent code for this charge.
    currency_codeRequiredSupported: EGP.
    amount_totalRequiredTotal amount to charge.

    Customer data

    The phone number field should be filled with the user’s mobile number linked to the wallet they will pay with, as the phone number represents the unique identifier for this mobile wallet.

    ParameterRequirementDescription
    nameRequiredCustomer name.
    emailRequiredCustomer email.
    phone_numberRequiredFormat 01XXXXXXXXX (Egypt local).
    Note

    If the phone number is not linked to a wallet, EBANX still creates the payment in PE. If the customer doesn’t complete it before expiry, it automatically becomes CA code.

  3. Sample request (cURL)

    curl -X POST \
    --location 'https://api.ebanxpay.com/ws/direct' \
    --header 'Content-Type: application/json' \
    --data '{
    "integration_key": "your_ebanx_integration_key",
    "operation": "request",
    "payment": {
    "name": "John Doe",
    "email": "john.doe@example.com",
    "country": "EG",
    "phone_number": "0100000000",
    "payment_type_code": "paymob",
    "merchant_payment_code": "mw_{{uuid}}",
    "currency_code": "EGP",
    "amount_total": 100
    }
    }'
  4. Sample response

    Displaying Payment Instructions A successful request returns a response like the example below. At this stage, payment status will be PE, and you should display clear instructions on how to complete the payment. Use the redirect_url to open the instructions on how to complete the payment.


    {
    "payment": {
    "hash": "{hash_here}",
    "country": "eg",
    "merchant_payment_code": "1755783741",
    "order_number": null,
    "status": "PE",
    "status_date": null,
    "open_date": "2025-08-21 13:42:21",
    "confirm_date": null,
    "transfer_date": null,
    "amount_br": "100.00",
    "amount_ext": "100.00",
    "amount_iof": "0.00",
    "currency_rate": "1.0000",
    "currency_ext": "EGP",
    "due_date": "2025-08-24",
    "payment_type_code": "paymob",
    "redirect_url": "https://sandbox.ebanx.com/ws/redirect/execute?hash=68a7223d0e63f3eea0bd3d27e16b5999269e83d14d007432",
    "pre_approved": false,
    "capture_available": null,
    "customer": {
    "document": "85351346893",
    "email": "example@email.com",
    "name": "PETER FONDA",
    "birth_date": null
    }
    },
    "status": "SUCCESS",
    "redirect_url": "https://sandbox.ebanx.com/redirect/execute?hash=68a7223d0e63f3eea0bd3d27e16b5999269e83d14d007432"
    }
  5. Monitor payment for status changes

    Monitoring Payment Status Once a payment is initiated, you’ll need to monitor its progress and handle status updates accordingly.

    Notifications EBANX sends a notification each time a payment status changes. Ensure your system is properly configured to receive and process these notifications. Learn more about Payment Notifications

    Status Updates After receiving a notification, you can retrieve the latest payment status through the API. When a payment is successfully completed, the status changes from Pending (PE) to Confirmed (CO). If the customer does not complete the payment within the allowed time, the status will automatically change to Canceled (CA). Learn more about Retrieving Payment Status

  6. Congratulations!

    You have successfully integrated the Mobile Wallets in egypt. For more information, refer to the Direct API reference guide

Mobile Wallet UX flow

This demo illustrates the end-to-end payment experience with Mobile Wallet. The journey begins on the merchant's checkout page, where the customer selects Mobile Wallet and enters their mobile number. After submitting the request, a push notification is sent to their Mobile Wallet app. The user reviews and approves the payment directly within the app or via an OTP, and once confirmed, both the customer and the merchant receive immediate payment confirmation

Resources

Use the following resources when testing in your sandbox environment.


still need help?

Help Image

We hope this article was helpful. If you still have questions, you can explore the following options: