List Subscription Details

Sections

Theme switcher

Getting Started - Egypt

Sign up for registering a new account


A guide to registering a new accept account.

Why do I have to? In order to deal with any of Accept's services, you have to register an account, this tutorial will be your guide to create one.

To create your account, follow these steps

  1. Navigate to Accept's home page

2. After that, you will enter your mobile number on which you will be receiving OTP for first-time verification.

3. As soon as you enter the OTP that you have received on your mobile number, you will get the below screen where you will be adding your name, and email details including your desired Password which you will be using for further logging.

4. Please note that after this screen you will get a login screen where you will be entering your registered mobile number without country code and your password which you have set in the previous screen.

5. As soon as you will log in, you will get the below screen to enter your business details.

After filling in this information, you will get a " Registration successful" message on the screen and you will be routed to your Paymob Dashboard as below :

Great-Now you have successfully made your Merchant portal dashboard 

Now you can go to the Sign-In page and start accepting online payments from your customers, Go check our use case guide and choose your perfect payment scenario!

👍Note!

The status of the created account will be marked as a "Test" account, this will allow you to test all of Accept's services. When you finish your testing phase, please contact your Account Manager or Contact Support team through email  support@paymob.com or you can also raise a ticket through a support widget in your Merchant portal Dashboard to change its status to be "Live".

Was this section helpful?

What made this section unhelpful for you?

Accept Dashboard

A detailed guide to your Accept dashboard

In order to deal with any of Accept's services, you have to create an Accept account.

In your Accept portal, you can find:

  • Profile.
  • Payment Integrations.
  • Orders.
  • Transactions.
  • Checkout Customization.

API Checkout Experience

Welcome to the API Checkout Experience documentation! In this guide, you will learn how to integrate and set up our API to provide a seamless and unified checkout experience. This includes everything you need to get started with setting up the API, generating your keys, and configuring both the Unified Intention API Checkout and Pixel Native Payment experiences.

We'll walk you through the basics of the API, including an overview of how it works, step-by-step instructions on how to get your environment set up, and how to use the various endpoints to facilitate secure and efficient transactions.

E-Commerce Plugins

Mobile SDKs

Subscriptions

Overview

Paymob provides a comprehensive subscription module designed to help merchants efficiently manage their subscriptions on a variety of billing cycles, including weekly, bi-weekly, monthly, quarterly, semi-annual, and annual plans. This module is tailored to meet the specific needs of each merchant, enabling them to create, manage, and control their subscriptions independently through our APIs.

For any guidance or assistance, please reach out to your account manager. Alternatively, you can contact our support team via email at support@paymob.com. When reaching out, please include details regarding your subscription, such as your Subscription ID and Transaction ID, to help us assist you more efficiently.


Integration Requirements

To successfully set up your subscription plan, you will need two integration IDs:

  • Online 3DS Integration ID: This ID will be used for creating subscriptions.
  • Moto Integration ID: Utilize this ID when creating the subscription plan itself.

Ensure you have both integration IDs ready to streamline the setup process.

If you wish to verify the card user details (provide a free trial for X days period) instead of deducting the amount while creating the subscription then you can ask our support team at support@paymob.com to create a 3DS verification integration ID. Noting this amount will be an auto reversal and you need to set the  "use_transaction_amount": false  to avoid any override with the Subscription plan amount

For further assistance or detailed API guidance, please refer to the subsequent sections of this documentation.

Was this section helpful?

What made this section unhelpful for you?

Authentication Request (Generate Token)

Authentication Request API allows you to pass your API key or login details to generate a token in the response.


Step 1: To start using any API for the subscription module, you need to obtain an authentication token through the below auth request using “api_key” or “login” details.

URL: https://accept.paymob.com/api/auth/tokens

Method: POST

SourceMerchant's server

RecipientAccept's server

Step 1.1: API KEY

You can pass the API key in the parameters to receive the token in the response. For API key details please refer to this section.

Request:

Response :


The token has an expiration limit of 60 minutes. After this period, you will need to generate a new token.

Step 1.2: LOGIN:

You can pass the login details in the parameters to receive the token in the response.

Request:

Response:

Was this section helpful?

What made this section unhelpful for you?

POST

/api/auth/tokens

Select
1 2 3 4 curl --location 'https://accept.paymob.com/api/auth/tokens' \ --data '{ "api_key": "ZXlKaGJHY2lPaUpJVXpVexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }'

Response

{
  "profile": {
    "id": 106,
    "user": {
      "id": 211,
      "username": "5xxxxxxx",
      "first_name": "Amxxxxx",
      "last_name": "Asxxxxxx",
      "date_joined": "2023-04-14T03:30:26+04:00",
      "email": "axxxxxxxxxxxxxxxxxx.03@gmail.com",
      "is_active": true,
      "is_staff": false,
      "is_superuser": false,
      "last_login": null,
      "groups": [],
      "user_permissions": [
        875,
        861,
        869,
        850,
        880,
        862,
        876,
        865,
        884,
        855,
        872,
        854,
        877,
        867,
        887,
        859,
        902,
        901,
        860,
        893,
        883,
        871,
        882,
        851,
        863,
        879,
        866,
        885,
        856,
        874,
        870,
        994,
        1491,
        881,
        853,
        864,
        878,
        868,
        886,
        873,
        857,
        858,
        1961,
        852,
        440
      ]
    },
    "created_at": "2023-04-14T03:30:26.562808+04:00",
    "active": true,
    "profile_type": "Merchant",
    "phones": [
      "105xxxxxxxx"
    ],
    "company_emails": [
      "axxxxxxx@gmail.com"
    ],
    "company_name": "Retro",
    "state": "",
    "country": "ARE",
    "city": "temp",
    "postal_code": "",
    "street": "",
    "email_notification": true,
    "order_retrieval_endpoint": null,
    "delivery_update_endpoint": null,
    "logo_url": null,
    "is_mobadra": false,
    "sector": null,
    "is_2fa_enabled": false,
    "otp_sent_to": "56xxxxx8",
    "activation_method": 1,
    "signed_up_through": null,
    "failed_attempts": null,
    "custom_export_columns": [],
    "server_IP": [],
    "username": null,
    "primary_phone_number": "+9715xxxxxxxx",
    "primary_phone_verified": true,
    "is_temp_password": false,
    "otp_2fa_sent_at": null,
    "otp_2fa_attempt": null,
    "otp_sent_at": "2023-04-14T03:30:32.788498+04:00",
    "otp_validated_at": "2023-04-14T03:32:24.616763+04:00",
    "awb_banner": null,
    "email_banner": null,
    "identification_number": null,
    "delivery_status_callback": "",
    "merchant_external_link": null,
    "merchant_status": null,
    "deactivated_by_bank": false,
    "bank_deactivation_reason": null,
    "bank_merchant_status": null,
    "national_id": null,
    "super_agent": null,
    "wallet_limit_profile": null,
    "address": null,
    "commercial_registration": null,
    "commercial_registration_area": null,
    "distributor_code": null,
    "distributor_branch_code": null,
    "allow_terminal_order_id": false,
    "allow_encryption_bypass": false,
    "wallet_phone_number": null,
    "suspicious": null,
    "latitude": null,
    "longitude": null,
    "bank_staffs": {},
    "bank_rejection_reason": null,
    "bank_received_documents": false,
    "bank_merchant_digital_status": null,
    "bank_digital_rejection_reason": null,
    "filled_business_data": true,
    "day_start_time": "00:00:00",
    "day_end_time": null,
    "withhold_transfers": false,
    "manual_settlement": false,
    "sms_sender_name": "PayMob",
    "withhold_transfers_reason": null,
    "withhold_transfers_notes": null,
    "can_bill_deposit_with_card": false,
    "can_topup_merchants": false,
    "topup_transfer_id": null,
    "referral_eligible": false,
    "is_eligible_to_be_ranger": false,
    "is_ranger": false,
    "is_poaching": false,
    "paymob_app_merchant": false,
    "settlement_frequency": null,
    "day_of_the_week": null,
    "day_of_the_month": null,
    "allow_transaction_notifications": true,
    "allow_transfer_notifications": true,
    "sallefny_amount_whole": null,
    "sallefny_fees_whole": null,
    "paymob_app_first_login": "2023-12-18T22:02:21.736025+04:00",
    "paymob_app_last_activity": "2024-09-17T15:59:14.950682+04:00",
    "payout_enabled": false,
    "payout_terms": false,
    "is_bills_new": false,
    "can_process_multiple_refunds": false,
    "settlement_classification": null,
    "instant_settlement_enabled": false,
    "instant_settlement_transaction_otp_verified": false,
    "preferred_language": "ar",
    "ignore_flash_callbacks": false,
    "acq_partner": null,
    "dom": null,
    "bank_related": null,
    "permissions": []
  },
  "token": "ZXlKaGJHY2lPaUpJVXpVeE1pxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxamc="
}
Was this section helpful?

What made this section unhelpful for you?

Create Subscription plan

Subscription Plan refers to a billing model that allows merchants to offer their products or services on a recurring basis.


You can create your own desired Subscription plan by using the below-mentioned APIs.

Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a POST request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscription-plans

MethodPOST

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Important Notes:

  • Please make sure to use the Moto integration ID while creating a subscription plan.
  • You need to set parameter 'webhook_url' while creating the plan request then you will start receiving the response

on webhook on any action (subscription level only).


  • You will receive a unique webhook URL from the webhook site for testing, as illustrated in the image below.

To set your webhook URL for the Moto/3DS ID, follow these steps:

  • Navigate to the Developers section and set your webhook URL.
  • Then, go to the Payment Integration section.
  • Click on the integration ID.
  • In the lower section of the page, you can edit the integration details. Add your webhook URL in the "Transaction Processed Callback" section, as shown in the image below.


Field

Description

Mandatory

Frequency 

(frequency)

Specify the frequency of deduction (e.g., Weekly, Biweekly, Monthly, Quarterly, Half annual, Yearly). Values in numbers are (7, 15, 30, 90, 180, 360).

Yes

MIGS Moto Integration ID

(integration)

MIGS Moto Integration ID, which will be used for upcoming transactions (recurring transactions).

Yes

Name

(name)

Name the subscription plan for identification purposes. The maximum number of characters is (200).

Yes

Plan Type

(plan_type)

The type of the subscription plan. It accepts the values (rent) and the default is “rent”

No

Reminder Days

(reminder_days)

Specify the number of days before which you want to send a notification to the customer to pay (currently supporting email notifications).

No

Retrial Days

(retrial_days)

Define the days on which the subscription will be attempted again in case of a failure to collect the previous subscription amount.

No

Subscription Amount

(amount_cents)

Specify the subscription amount that will be charged.

Based on the Use Transaction Amount Flag

Use Transaction Amount Flag

(use_transaction_amount)

If this flag is enabled, the system will use the first transaction amount instead of the specified subscription amount. Otherwise, it will use the subscription amount from the "Amount Cents." If "use_transaction_amount": false,/disabled //false; to override the create subscription amount.

Based on Subscription Amount

Number Of Deductions

(number_of_deductions)

The number of deductions of this subscription. The default value is null.

No

Is Active

(is_active)

Indicates whether the plan will be created will be active or paused. The default value is true.

No

webhook_url

You need to enter the unique webhook URL in this parameter

No

Was this section helpful?

What made this section unhelpful for you?

POST

/api/acceptance/subscription-plans

Select
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 curl --location 'https://accept.paymob.com/api/acceptance/subscription-plans' \ --data '{ "frequency": 7, "name": "Testplan 3", "webhook_url": "https://webhook.site/xxxxxxxxxxxxxxxxxxxx", "reminder_days": null, "retrial_days": null, "plan_type": "rent", "number_of_deductions": null, "amount_cents": 50000, "use_transaction_amount": true, "is_active": true, "integration": 11111, "fee": null }'

Response

{
  "id": 127,
  "frequency": 7,
  "created_at": "2024-09-20T18:07:56.185164+04:00",
  "updated_at": "2024-09-20T18:07:56.185201+04:00",
  "name": "Testplan 3",
  "reminder_days": null,
  "retrial_days": null,
  "plan_type": "rent",
  "number_of_deductions": null,
  "amount_cents": 50000,
  "use_transaction_amount": true,
  "is_active": true,
  "webhook_url": "https://webhook.site/xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "integration": 50428,
  "fee": null
}
Was this section helpful?

What made this section unhelpful for you?

Create Subscriptions

Subscriptions allow merchants to offer products or services on a recurring basis, facilitating automated billing.


Step 1: You can create subscriptions by including the parameters outlined below in the normal Payment Intention API, as explained in the "Create Intention/Payment API" section.

subscription_plan_id: You can obtain the subscription plan ID from the response of the Create Subscription Plan request.

subscription_start_date: This field is optional. If you do not wish for your subscription to begin on the day you create it, you may specify a future date instead.

Step 2: Please send a POST request to the URL below after adding "secret key" in the authorization box in header section. For secret key please refer to this section.

URL: https://accpet.paymob.com/v1/intention/

MethodPOST

SourceMerchant's server

RecipientAccept's server

Please make sure to use the 3DS integration ID (normal card ID) while creating intention that will be used to create subscription once the customer pay.

  • You will receive a unique webhook URL from the webhook site for testing, as illustrated in the image below.

To set your webhook URL for the Moto/3DS ID, follow these steps:

  • Navigate to the Developers section and set your webhook URL.
  • Then, go to the Payment Integration section.
  • Click on the integration ID.
  • In the lower section of the page, you can edit the integration details. Add your webhook URL in the "Transaction Processed Callback" section, as shown in the image below.

Once you perform the payment using the intention API below, including the subscription_plan_id and subscription_start_date (optional Parameter) in the request parameters, your subscription will be successfully created for the specific cardholder who completed the payment .

Step 3: Once you are done with the Intention you need to call below url in the browser's window to access the checkout page as shown below. https://accept.paymob.com/unifiedcheckout/?publicKey=<add your public key here>&clientSecret=<add your client secret key here>

Obtaining Your Keys

To access your Public Key and Client Secret Key, please follow these instructions:

  1. Public Key: You can retrieve your Public Key from your Dashboard. For detailed steps, refer to the section on accessing your Public Key.
  2. Client Secret Key: Your Client Secret Key will be included in the response from the Intention API, as demonstrated in the example below.

Step 4: Please enter your card details. For test credentials, refer to this section.

Step 5: The approval message will be displayed on the screen if the transaction is successful.

Webhook Responses:

Response 1: Callback Response

Response: 2 Subscription Response

Response 3: Token

You will receive the token response only if you select the "Save Card" option on the checkout page as shown in the below image.

Was this section helpful?

What made this section unhelpful for you?

POST

/v1/intention

Select
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 curl --location 'https://accept.paymob.com/v1/intention' \ --header 'Authorization: Token sk_test_626ba4a60a6f9cf4b0bc066ad3de884e93693afd5218ef832e99cbdf76a0fb37' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 50000, "currency": "EGP", "payment_methods": [ 158 ], "subscription_plan_id": 127, "subscription_start_date": "2024-09-25", "items": [ { "name": "Item name 1", "amount": 50000, "description": "Watch", "quantity": 1 } ], "billing_data": { "apartment": "6", "first_name": "Ammar", "last_name": "Sadek", "street": "938, Al-Jadeed Bldg", "building": "939", "phone_number": "+96824480228", "country": "xxx", "email": "AmmarSadek@gmail.com", "floor": "1", "state": "Alkhuwair" }, "customer": { "first_name": "Ammar", "last_name": "Sadek", "email": "AmmarSadek@gmail.com", "extras": { "re": "22" } }, "extras": { "ee": 22 } }'

Response

{
  "payment_keys": [
    {
      "integration": 158,
      "key": "ZXlKaGJHY2lPaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "gateway_type": "MIGS",
      "iframe_id": null
    }
  ],
  "id": "pi_test_ec990fc53d164f019d2b02dd3beef94d",
  "intention_detail": {
    "amount": 50000,
    "items": [
      {
        "name": "Item name 1",
        "amount": 50000,
        "description": "Watch",
        "quantity": 1,
        "image": null
      }
    ],
    "currency": "EGP",
    "billing_data": {
      "apartment": "6",
      "floor": "1",
      "first_name": "Ammar",
      "last_name": "Sadek",
      "street": "938, Al-Jadeed Bldg",
      "building": "939",
      "phone_number": "+968xxxxxxxx",
      "shipping_method": "",
      "city": "",
      "country": "EGYPT",
      "state": "Alkhuwair",
      "email": "AmmarSadek@gmail.com",
      "postal_code": ""
    }
  },
  "client_secret": "are_csk_test_4707xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "payment_methods": [
    {
      "integration_id": 158,
      "alias": null,
      "name": null,
      "method_type": "online",
      "currency": "EGP",
      "live": false,
      "use_cvc_with_moto": false
    }
  ],
  "special_reference": null,
  "extras": {
    "creation_extras": {
      "ee": 22
    },
    "confirmation_extras": null
  },
  "confirmed": false,
  "status": "intended",
  "created": "2024-09-20T22:01:36.496788+04:00",
  "card_detail": null,
  "card_tokens": [],
  "object": "paymentintention"
}
Was this section helpful?

What made this section unhelpful for you?

Suspend Subscription Plan

Suspend Subscription Plan API will temporarily deactivate the subscription plan.

Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: The below API allows you to suspend a specific subscription plan identified by {{SUBSCRIPTION_PLAN_ID}}. To do so, please send a POST request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscription-plans/{subscription-plan id}/suspend

“You will just pass the subscription plan id in the above URL to suspend your subscription plan.”

MethodPOST

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


You will get the parameter “is_active” as “false” which confirms that your subscription plan has been paused.

Response:


Was this section helpful?

What made this section unhelpful for you?

POST

/api/acceptance/subscription-plans/{subscription-plan id}/suspend

Select
1 curl --location --globoff --request POST 'https://accept.paymob.com/api/acceptance/subscription-plans/{subscription-plan id}/suspend' \

Response

{
  "id": 127,
  "frequency": 7,
  "created_at": "2024-09-20T18:07:56.185164+04:00",
  "updated_at": "2024-09-20T18:07:56.185201+04:00",
  "name": "Testplan 3",
  "reminder_days": null,
  "retrial_days": null,
  "plan_type": "rent",
  "number_of_deductions": null,
  "amount_cents": 50000,
  "use_transaction_amount": true,
  "is_active": false,
  "webhook_url": "https://webhook.site/xxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "integration": 11111,
  "fee": null
}
Was this section helpful?

What made this section unhelpful for you?

Resume Subscription plan

Resume Subscription Plan API will resume your subscription plan.

Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: The below API allows you to suspend a specific subscription plan identified by {{SUBSCRIPTION_PLAN_ID}}. To do so, please send a POST request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscription-plans/{subscription-plan id}/resume

“You will just pass the subscription plan id in the above URL to resume your subscription plan.”

MethodPOST

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


You will get the parameter “is_active” as “True” which confirms that your subscription plan has been resumed.

Response:


Was this section helpful?

What made this section unhelpful for you?

POST

/api/acceptance/subscription-plans/{subscription-plan id}/resume

Select
1 curl --location --globoff --request POST 'https://accept.paymob.com/api/acceptance/subscription-plans/{subscription-plan id}/resume' \

Response

{
  "id": 127,
  "frequency": 7,
  "created_at": "2024-09-20T18:07:56.185164+04:00",
  "updated_at": "2024-09-20T18:07:56.185201+04:00",
  "name": "Testplan 3",
  "reminder_days": null,
  "retrial_days": null,
  "plan_type": "rent",
  "number_of_deductions": null,
  "amount_cents": 50000,
  "use_transaction_amount": true,
  "is_active": true,
  "webhook_url": "https://webhook.site/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "integration": 1111,
  "fee": null
}
Was this section helpful?

What made this section unhelpful for you?

Update Subscription Plan

Update Subscription Plan API allows you to modify the subscription plan amount, number of deductions, and integration ID for a specific subscription plan.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a POST request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section and including subscription Plan amount, number of deductions, and integration id (moto) value in the request parameter.

URL: https://accept.paymob.com/api/acceptance/subscription-plans/{subscription-plan id}

“You will just pass the subscription plan ID in the above URL to update the (subscription plan amount, number of deductions, and integration ID (moto) for a specific subscription plan.

MethodPUT

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Request:

All three of the parameters listed below in the request are optional.

Response:

Was this section helpful?

What made this section unhelpful for you?

PUT

/api/acceptance/subscription-plans/{Subscription_Plan_Id}

Select
1 2 3 4 5 6 curl --location --globoff --request PUT 'https://accept.paymob.com/api/acceptance/subscription-plans/{Subscription_Plan_Id}' \ --data '{ "number_of_deductions": 3, "amount_cents": 1000, "integration": 11111 }'

Response

{
  "id": 127,
  "frequency": 7,
  "created_at": "2024-09-20T18:07:56.185164+04:00",
  "updated_at": "2024-09-24T17:54:36.669667+04:00",
  "name": "Testplan 3",
  "reminder_days": null,
  "retrial_days": null,
  "plan_type": "rent",
  "number_of_deductions": 3,
  "amount_cents": 1000,
  "use_transaction_amount": true,
  "is_active": true,
  "webhook_url": "https://webhook.site/xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "integration": 11111,
  "fee": null
}
Was this section helpful?

What made this section unhelpful for you?

List Subscription Plans

List Subscription Plan API is utilized to retrieve a list of all subscription plans associated with a specific merchant.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a GET request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscription-plans

MethodGET

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Response:

Was this section helpful?

What made this section unhelpful for you?

GET

/api/acceptance/subscription-plans

Select
1 curl --location 'https://accept.paymob.com/api/acceptance/subscription-plans' \

Response

{
  "next": "https://acccept.paymob.com/api/acceptance/subscription-plans?page=2",
  "previous": null,
  "results": [
    {
      "id": 124,
      "frequency": 7,
      "created_at": "2024-09-20T15:47:49.225841+04:00",
      "updated_at": "2024-09-20T15:47:49.225874+04:00",
      "name": "plan",
      "reminder_days": null,
      "retrial_days": null,
      "plan_type": "rent",
      "number_of_deductions": null,
      "amount_cents": 3000,
      "use_transaction_amount": false,
      "is_active": true,
      "webhook_url": null,
      "integration": 349,
      "fee": null
    }
  ]
}
Was this section helpful?

What made this section unhelpful for you?

Suspend Subscription

Suspend Subscription API allows you to suspend a subscription and temporarily stop its active billing.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a POST request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscriptions/{subscription- id}/suspend

“You will just pass the subscription ID in the above URL to suspend your subscription .”

MethodPOST

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


In response to the Suspend API request, the response body will include the current state of the subscription, indicated by the parameter "state": "suspended". Additionally, the response will contain the parameters "resumed_at" and "suspended_at", which provide timestamps for when the subscription was resumed and suspended, respectively.

Response:

Was this section helpful?

What made this section unhelpful for you?

POST

/api/acceptance/subscription-plans/{subscription- id}/suspend

Select
1 curl --location --globoff --request POST 'https://accept.paymob.com/api/acceptance/subscription-plans/{subscription- id}/suspend' \

Response

{
  "id": 356,
  "client_info": {
    "email": "xxxxxxxxxxxxx@gmail.com",
    "full_name": "xxxxxxxxxxx",
    "phone_number": "xxxxxxxxxx"
  },
  "frequency": 7,
  "created_at": "2024-09-20T22:07:42.889277+04:00",
  "updated_at": "2024-09-20T22:07:42.889342+04:00",
  "name": "Testplan 3",
  "reminder_days": null,
  "retrial_days": null,
  "plan_id": 127,
  "state": "suspended",
  "amount_cents": 50000,
  "starts_at": "2024-09-25",
  "next_billing": "2024-09-25",
  "reminder_date": null,
  "ends_at": null,
  "resumed_at": null,
  "suspended_at": "2024-09-23",
  "webhook_url": "https://webhook.site/2xxxxxxxxxxxxxxxxxxxxxxxxxx",
  "integration": 50428,
  "initial_transaction": 540326
}
Was this section helpful?

What made this section unhelpful for you?

Resume Subscription

Resume Subscription API allows you to reactivate a subscription and resume billing.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a POST request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscriptions/{subscription- id}/resume

“You will just pass the subscription ID in the above URL to resume your subscription .”

MethodPOST

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


In response to the Resume API request, the response body will include the current state of the subscription, indicated by the parameter "state": "active". Additionally, the response will contain the parameters "resumed_at" and "suspended_at", which provide timestamps for when the subscription was resumed and suspended, respectively.

Response:

Was this section helpful?

What made this section unhelpful for you?

POST

/api/acceptance/subscriptions/{Subscription_id}/resume

Select
1 curl --location --globoff --request POST 'https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_id}/resume' \

Response

{
  "id": 356,
  "client_info": {
    "email": "xxxxxxx@gmail.com",
    "full_name": "xxxxxxxxxxxxxxxx",
    "phone_number": "xxxxxxxxxxxxxxxxx"
  },
  "frequency": 7,
  "created_at": "2024-09-20T22:07:42.889277+04:00",
  "updated_at": "2024-09-20T22:07:42.889342+04:00",
  "name": "Testplan 3",
  "reminder_days": null,
  "retrial_days": null,
  "plan_id": 127,
  "state": "active",
  "amount_cents": 50000,
  "starts_at": "2024-09-25",
  "next_billing": "2024-09-25",
  "reminder_date": null,
  "ends_at": null,
  "resumed_at": "2024-09-23",
  "suspended_at": "2024-09-23",
  "webhook_url": "https://webhook.site/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "integration": 50428,
  "initial_transaction": 540326
}
Was this section helpful?

What made this section unhelpful for you?

Cancel Subscription

Cancel Subscription API allows you to cancel your subscription. Only suspended subscriptions can be resumed; canceling a subscription will permanently terminate it.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Pease send a POST request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscriptions/{subscription- id}/cancel

“You will just pass the subscription id in the above URL to cancel your subscription .

MethodPOST

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


In response to the Cancel Subscription API request ,you will receive a state of the subscription in the response parameters as mentioned above in response body i.e. "state": "canceled". You can also find the "resumed at" and "suspended at" parameters in the response body.

Response:

In response to the Cancel Subscription API request ,you will receive a state of the subscription in the response parameters as mentioned above in response body i.e. "state": "canceled". You can also find the "resumed at" and "suspended at" parameters in the response body.

Was this section helpful?

What made this section unhelpful for you?

POST

/api/acceptance/subscriptions/{Subscription_id}/cancel

Select
1 curl --location --globoff --request POST 'https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_id}/cancel' \

Response

{
  "id": 3,
  "client_info": {
    "full_name": "Clifford Nicolas",
    "email": "claudette09@exa.com",
    "phone_number": "+86(8)9135210487"
  },
  "frequency": 7,
  "created_at": "2023-11-28T14:44:53.587174",
  "updated_at": "2023-11-28T14:44:53.587191",
  "name": "Test Subscription",
  "reminder_days": 3,
  "retrial_days": 3,
  "plan_id": 3,
  "state": "canceled",
  "amount_cents": 200,
  "starts_at": "2023-11-28",
  "next_billing": "2023-12-12",
  "reminder_date": "2023-12-09",
  "ends_at": null,
  "resumed_at": "2023-12-05",
  "suspended_at": "2023-12-05",
  "integration": 3381753,
  "initial_transaction": 147018623
}
Was this section helpful?

What made this section unhelpful for you?

Update Subscription

Update Subscription API allows you to modify the subscription amount and the subscription end date for a specific subscription.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a PUT request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscriptions/{subscription- id}

“You will just pass the subscription id in the above URL to update your subscription .”

MethodPUT

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Request:

Response:

Was this section helpful?

What made this section unhelpful for you?

PUT

/api/acceptance/subscriptions/{Subscription_id}

Select
1 2 3 4 5 curl --location --globoff --request PUT 'https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_id}' \ --data '{ "amount_cents": 25000, "ends_at": "2025-01-22" }'

Response

{
  "id": 356,
  "client_info": {
    "email": "xxxxxxxxxxxx@gmail.com",
    "full_name": "xxxxxxxxxxxx",
    "phone_number": "+xxxxxxxxxxx"
  },
  "frequency": 7,
  "created_at": "2024-09-20T22:07:42.889277+04:00",
  "updated_at": "2024-09-20T22:07:42.889342+04:00",
  "name": "Testplan 3",
  "reminder_days": null,
  "retrial_days": null,
  "plan_id": 127,
  "state": "active",
  "amount_cents": 25000,
  "starts_at": "2024-09-25",
  "next_billing": "2024-09-25",
  "reminder_date": null,
  "ends_at": "2025-01-22",
  "resumed_at": "2024-09-23",
  "suspended_at": "2024-09-23",
  "webhook_url": "https://webhook.site/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "integration": 50428,
  "initial_transaction": 540326
}
Was this section helpful?

What made this section unhelpful for you?

List Subscription Cards

List Subscription Card API allows you to retrieve a list of card tokens associated with a specific subscription.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a GET request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_Id}/card-tokens

“You will just pass the subscription ID in the above URL to retrieve a list of card tokens associated with a specific subscription identified by{SUBSCRIPTION_ID}}.

Method: GET

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Response:

Was this section helpful?

What made this section unhelpful for you?

GET

/api/acceptance/subscriptions/{Subscription_Id}/card-tokens

Select
1 curl --location --globoff 'https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_Id}/card-tokens' \

Response

[
  {
    "id": 358,
    "created_at": "2024-09-20T22:07:42.892185+04:00",
    "is_primary": true,
    "masked_pan": "xxxx-xxxx-xxxx-2346",
    "failed_attempts": null
  }
]
Was this section helpful?

What made this section unhelpful for you?

Change Subscription Primary card

Change Subscription Primary Card API allows you to change the primary card associated with a specific subscription.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a POST request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_Id}/change-primary-card

“You will just pass the subscription ID in the above URL to change the primary card associated with a specific subscription.

MethodPOST

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Step 3: You can obtain the Card ID by using the "subscriptionv2_id" parameter in the intention request and Perform the transaction with another card. After completing the transaction, you will get the card id in the response of the list of subscription cards.

Step 4: Please specify the new card by including its card identifier in the request parameter to set it as the primary card.

Request:

Response:

Was this section helpful?

What made this section unhelpful for you?

POST

/api/acceptance/subscriptions/{Subscription_Id}/change-primary-card

Select
1 2 3 4 curl --location --globoff 'https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_Id}/change-primary-card' \ --data '{ "card": 374 }'

Response

{
  "id": 374,
  "created_at": "2024-09-26T14:15:42.013605+04:00",
  "is_primary": true,
  "masked_pan": "xxxx-xxxx-xxxx-2346",
  "failed_attempts": null
}
Was this section helpful?

What made this section unhelpful for you?

Delete Secondary Card

Delete Secondary Card API allows you to delete a specific card associated with a subscription.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a POST request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_id}/delete-card

  • You will just pass the subscription id in the above URL to delete a specific card associated with a subscription.
  • You cannot delete the primary card; only secondary cards can be removed. To delete a primary card, you must first add a secondary card and set it as the primary card. Once the secondary card is designated as the primary, you can then delete the original primary card.

MethodPOST

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Step 3: To delete a secondary card, please include its card identifier in the request parameter.

Request:

Response:

Was this section helpful?

What made this section unhelpful for you?

POST

/api/acceptance/subscriptions/{Subscription_id}/delete-card

Select
1 2 3 4 curl --location --globoff 'https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_id}/delete-card' \ --data '{ "card": 373 }'

Response

Was this section helpful?

What made this section unhelpful for you?

List Subscription Details

List Subscription Details API allows you to retrieve detailed information for a specific subscription using its unique subscription ID or get all subscriptions associated with the specific merchant.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a GET request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_id}

  • You will just pass the subscription id in the above URL allows you to retrieve list of all subscription details against one specific subscription ID.
  • Please note that if you do not add any subscription id at the end of the URL, you will get all subscriptions associated with the specific merchant.

Method: GET

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Response:

Response with Parameters Description:

Parameter

Description

ID (id):

Each subscription has a unique identifier. This can be useful for tracking and managing subscriptions.

Client Information (client_info):

Provides details about the client who subscribed, including full name, email, and phone number. Merchants can use this information for customer management and communication.

Frequency (frequency):

Indicates how often the subscription renews

Created and Updated Dates (created_at, updated_at):

Timestamps that help merchants keep track of when the subscription was created and last updated.

Name (name):

Name associated with the subscription. It could be the product or service name or any custom name assigned by the client.

Reminder and Retrial Days (reminder_days, retrial_days): 

Specifies the number of days before the next billing for sending reminders and retrial attempts. Merchants can automate communication and payment recovery processes based on these values.

Plan ID (plan_id): 

Identifies the specific plan or tier of the subscription. Useful for categorizing and managing different subscription levels.

State (state): 

Starts, Next Billing, Reminder, and Ends Dates (starts_at, next_billing, reminder_date, ends_at):

Amount (amount_cents):

Specifies the subscription amount in cents. Merchants can use this information for financial reporting and analysis.

Starts, Next Billing, Reminder, and Ends Dates (starts_at, next_billing, reminder_date, ends_at):

Important dates related to the subscription lifecycle. Helps merchants in planning and managing subscription events.

Was this section helpful?

What made this section unhelpful for you?

GET

/api/acceptance/subscriptions/{Subscription_id}

Select
1 curl --location --globoff 'https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_id}' \

Response

{
  "id": 356,
  "client_info": {
    "email": "xxxxxxxxxxxxx@gmail.com",
    "full_name": "xxxxxxxxxxxxxxx",
    "phone_number": "+xxxxxxxxxxxxxx"
  },
  "frequency": 7,
  "created_at": "2024-09-20T22:07:42.889277+04:00",
  "updated_at": "2024-09-20T22:07:42.889342+04:00",
  "name": "Testplan 3",
  "reminder_days": null,
  "retrial_days": null,
  "plan_id": 127,
  "state": "active",
  "amount_cents": 50000,
  "starts_at": "2024-09-25",
  "next_billing": "2024-09-25",
  "reminder_date": null,
  "ends_at": null,
  "resumed_at": "2024-09-23",
  "suspended_at": "2024-09-23",
  "webhook_url": "https://webhook.site/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "integration": 50428,
  "initial_transaction": 540326
}
Was this section helpful?

What made this section unhelpful for you?

Transaction ID Subscriptions

Transaction ID Subscriptions API is used to retrieve subscriptions associated with a specific transaction.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a GET request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

URL: https://accept.paymob.com/api/acceptance/subscriptions?transaction={Transaction ID}

“You will just pass the transaction id in the above URL allows you to retrieve subscriptions related to a transaction.

Method: GET

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Response:

Was this section helpful?

What made this section unhelpful for you?

GET

/api/acceptance/subscriptions?transaction={Transaction ID}

Select
1 curl --location --globoff 'https://accept.paymob.com/api/acceptance/subscriptions?transaction={Transaction%20ID}' \

Response

{
  "next": "https://accept.paymob.com/api/acceptance/subscriptions?page=2&transaction=540326",
  "previous": null,
  "results": [
    {
      "id": 356,
      "client_info": {
        "email": "xxxxxxxk@gmail.com",
        "full_name": "xxxxxx",
        "phone_number": "+96xxxxxxxxx"
      },
      "frequency": 7,
      "created_at": "2024-09-20T22:07:42.889277+04:00",
      "updated_at": "2024-09-20T22:07:42.889342+04:00",
      "name": "Testplan 3",
      "reminder_days": null,
      "retrial_days": null,
      "plan_id": 127,
      "state": "active",
      "amount_cents": 50000,
      "starts_at": "2024-09-25",
      "next_billing": "2024-09-25",
      "reminder_date": null,
      "ends_at": null,
      "resumed_at": "2024-09-23",
      "suspended_at": "2024-09-23",
      "webhook_url": "https://webhook.site/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "integration": 50428,
      "initial_transaction": 540326
    }
  ]
}
Was this section helpful?

What made this section unhelpful for you?

Last Transaction Subscription

Last Transaction Subscription API allows you to retrieve the last transaction details associated with a specific subscription.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a GET request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

“You will just pass the subscription id in the above URL to retrieve the last transaction associated with a specific subscription.

URL: https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_Id}/last-transaction

MethodGET

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Response:

Was this section helpful?

What made this section unhelpful for you?

GET

/api/acceptance/subscriptions/{Subscription_Id}/last-transaction

Select
1 curl --location --globoff 'https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_Id}/last-transaction' \

Response

{
  "id": 516640,
  "pending": false,
  "amount_cents": 200,
  "success": false,
  "is_auth": false,
  "is_capture": false,
  "is_standalone_payment": true,
  "is_voided": false,
  "is_refunded": false,
  "is_3d_secure": false,
  "integration_id": 14664,
  "terminal_id": null,
  "terminal_branch_id": "-",
  "has_parent_transaction": false,
  "created_at": "2024-09-13T00:00:27.037561+04:00",
  "paid_at": null,
  "currency": "EGP",
  "source_data": {
    "type": "card",
    "pan": "2346",
    "sub_type": "MasterCard",
    "tenure": null
  },
  "api_source": "SUBSCRIPTION",
  "is_void": false,
  "is_refund": false,
  "is_cashout": false,
  "data": {
    "status_code": 400,
    "json": {
      "error": {
        "cause": "INVALID_REQUEST",
        "explanation": "Value 'MERCHANT' is invalid. value: Merchant - reason: Merchant acquirer relationship does not support this Merchant Transaction Source",
        "field": "transaction.source",
        "validationType": "INVALID"
      },
      "result": "ERROR"
    },
    "message": "Value 'MERCHANT' is invalid. value: Merchant - reason: Merchant acquirer relationship does not support this Merchant Transaction Source",
    "txn_response_code": "ERROR",
    "acq_response_code": "-",
    "gateway_integration_pk": 14664
  },
  "is_hidden": false,
  "error_occured": true,
  "is_live": false,
  "other_endpoint_reference": null,
  "refunded_amount_cents": null,
  "source_id": 323,
  "is_captured": false,
  "captured_amount": null,
  "merchant_staff_tag": null,
  "updated_at": "2024-09-13T00:00:28.653814+04:00",
  "is_settled": false,
  "bill_balanced": false,
  "is_bill": false,
  "owner": 10206,
  "order": 619658,
  "parent_transaction": null
}
Was this section helpful?

What made this section unhelpful for you?

List Subscription Transactions

List Subscription Transactions API allows you to list down all transactions against one specific subscription ID.


Step 1: First, you will run an Authentication request to get the Auth Bearer Token for Authorization as explained in the “Authentication Request (Generated Token)” section.


Step 2: Please send a GET request to the URL below. Select "Bearer Token" as the authentication type and enter the authentication token in the token box of the authorization section.

“You will just pass the subscription id in the above URL to list down all transactions against specific subscription ID.

URL: https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_Id}/transactions

MethodGET

SourceMerchant's server

RecipientAccept's server

AuthorizationBearer Token {auth token} You need to enter the authentication token value in the token box, as shown in the image below.


Response:


Was this section helpful?

What made this section unhelpful for you?

GET

/api/acceptance/subscriptions/{Subscription_id}/transactions

Select
1 curl --location --globoff 'https://accept.paymob.com/api/acceptance/subscriptions/{Subscription_id}/transactions' \
Was this section helpful?

What made this section unhelpful for you?

Webhook

Do Subscriptions Support Webhooks?

Yes, subscriptions support webhooks. You can add a webhook URL when creating a new subscription plan using this “Webhook New Subscription Plan” section. Additionally, you can add a webhook URL in the existing subscription ID in the “Webhook Existing Subscription Plan” Section.

Payment Types

Paymob provides a comprehensive range of payment options to suit various business needs, enhancing the flexibility and security of online transactions. The following are the four primary payment types supported by Paymob:

1. 3D Secure (3DS)

3D Secure (3DS) is a security protocol designed to reduce the risk of fraudulent online transactions by adding an additional layer of authentication. When a cardholder makes a purchase online, 3DS prompts the customer to authenticate their identity with the card issuer during the final stage of the checkout process. This step typically involves entering a one-time password (OTP) or biometric verification, depending on the card issuer’s requirements.

2. Auth and Capture

The Auth and Capture payment method is a two-step process where the transaction is initially authorized, but the funds are not immediately captured. First, the payment gateway authorizes the transaction by confirming that the customer has sufficient funds available, but the actual transaction amount will be captured later. If the transaction is not captured within 07 days, it will be automatically voided.

3. Card Verification

Card Verification Function is a functionality provided by the Network to authenticate a card transaction without actually deducting the transaction amount from the customer’s card.

4. Pay with Saved Card Token

The Pay with Saved Card Token method allows customers to store their card details securely for future transactions. Once a customer has completed a transaction, the payment system stores a unique token that represents their payment method. In subsequent transactions, customers can opt to pay using this saved token without having to re-enter their card details, simplifying the checkout process.


Payment Links

Payment Actions

This section contains the following topics:

  1. Refund Transaction through the Dashboard.
  2. Refund Transaction through API.
  3. Void Transaction through the Dashboard.
  4. Void Transaction through API.
  5. Auth/Capture Transaction through the Dashboard.
  6. Auth/Capture Transaction through API.

Payment Methods

Paymob provides a wide range of payment methods in Egypt, enabling businesses to offer seamless and secure transactions for their customers. Whether through cards, digital wallets, or installment plans, Paymob ensures a smooth payment experience tailored to diverse customer needs. Below is a list of supported payment methods:

  • Card Payments
  • Digital Wallets
  • Apple Pay
  • ValU
  • Bank Installments
  • Souhoola V3
  • Aman V3
  • Forsa
  • Premium
  • Contact
  • HALAN
  • SYMPL
  • Kiosk
  • InstaPay (Coming Soon)

This extensive payment network allows businesses to expand their customer reach and simplify transactions through flexible and accessible solutions.

Test Credentials

Here are the test credentials for the online card payment method:

Mastercard:

Card

Mastercard

Card number

5123456789012346

Cardholder Name

Test Account

Expiry Month

12

Expiry Year

25

CVV

123


Wallet Test Credentials :

Here are the test credentials for Wallets;

Wallet Number

01010101010

MPin Code

123456

OTP

123456

MasterCard For Simulation:

Card

Mastercard

Card number

5123450000000008

Cardholder Name

TEST CARD

Expiry Month

01

Expiry Year

39

CVV

123

VISA Card for Simulation:

Card

VISA

Card number

4111111111111111

Cardholder Name

Test Account

Expiry Month

12

Expiry Year

25

CVV

123

You will simulate both successful and all failed cases outlined below using the VISA card credentials provided above.

Successful Response:

Failed Response:


Was this section helpful?

What made this section unhelpful for you?

Transaction Inquiry API

Retrieve A Transaction allows you to obtain the details and status of a transaction-whether it is successful or failed, using one of the following methods:

  1. Retrieve Transaction with Order ID Use the Order ID to access transaction details.
  2. Retrieve Transaction with Transaction ID Use the Transaction ID to obtain the relevant transaction information.
  3. Retrieve Transaction with Merchant Order ID(Special Reference Number) Access transaction details using the Merchant Order ID (Special Reference Number).

Manage Callback

Welcome to the Manage Callback documentation! In this section, we'll guide you through the different types of transaction callbacks that are essential for handling payment processing and ensuring a seamless integration with your system. Specifically, we'll cover transaction processed callbacks, transaction response callbacks, and how to calculate HMAC for processed callbacks, redirection callbacks, and saved card token objects.

You will learn how to configure and manage these callbacks, understand their role in transaction flow, and ensure that your system securely processes and responds to different events during payment transactions. Whether you're dealing with successful payments, handling failures, or managing tokenized card data, this guide will provide you with the necessary tools and knowledge to handle callbacks efficiently and securely.

Let's dive into understanding each callback type and how to calculate and implement HMAC to ensure the integrity and security of your transactions.

Error Codes

You can find the Risk error codes and other Acquirer response code descriptions in this section to know more about your declines, and detailed reasons.

Bills Portal API

Payouts

Frequently Asked Questions (FAQs)

The Frequently Asked Questions (FAQ) section is a comprehensive resource designed to address common inquiries about our services and features. Here, you will find detailed answers to questions regarding payment methods, transaction processes, technical requirements, and security measures. Whether you're a new user seeking guidance or an experienced merchant looking for specific information, this section aims to provide clarity and support. For any additional questions not covered here, please feel free to reach out to our customer support team at support@paymob.com.