Getting Started - Egypt
Sign up for registering a new account
A guide to registering a new accept account.
To create your account, follow these steps
- 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!
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.
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.
For further assistance or detailed API guidance, please refer to the subsequent sections of this documentation.
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:
- Refund Transaction through the Dashboard.
- Refund Transaction through API.
- Void Transaction through the Dashboard.
- Void Transaction through API.
- Auth/Capture Transaction through the Dashboard.
- 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 |

Successful Response:

Failed Response:

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:
- Retrieve Transaction with Order ID Use the Order ID to access transaction details.
- Retrieve Transaction with Transaction ID Use the Transaction ID to obtain the relevant transaction information.
- 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
Bills Portal API
Payouts
Table Of Contents
What made this section unhelpful for you?
Definitions and Acronyms
Parameters Related Acronyms
- Every field/parameter will be followed with {M}/{O}/{C} flag to dete
{M} > Mandatory
{O} > Optional
{C} > Conditional
Environment Related Acronyms
- Environments/Web service locations will be generalized at the urls with {ENV} variable
{STAGING_ENV} > stagingpayouts.paymobsolutions.com/api/secure/
{PRODUCTION_ENV} > payouts.paymobsolutions.com/api/secure/
What made this section unhelpful for you?
Generate and Refresh Token API Endpoint
Usage
- This endpoint is used to generate and refresh authorization tokens which will be passed at every successor api call/request.
- We implement OAuth 2.0 provider authorization.
- Generated {ACCESS TOKEN} must be sent at the header with every request and have to be updated every 60 minutes using the refresh token api.
- Generated {REFRESH TOKEN} will last forever until the next use, to generate new {ACCESS TOKEN}
{ENV} | ^o/token/ | POST | JSON |
Request
- Request Parameter
client_id | M | String |
client_secret | M | String |
username | M | String |
password | M | String |
scope | O | String |
refresh_token | O | String |
grant_type | M | String |
Response
- Response Parameters
access_token | String |
refresh_token | String |
expires_in | String |
scope | String |
token_type | String |
Samples
1.Generate token request
1.1 Using CURL tool
curl
-i \
-X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-u {CLIENT_ID}:{CLIENT_SECRET} \
-d "grant_type=password&username={USERNAME}&password={PASSWORD}" \
{ENV}/o/token/
HTTPie tool
1.2 Usinghttp -v -f
https:
/
/{CLIENT_ID}:{CLIENT_SECRET}@{ENV}/o/token/
grant_type=password username={USERNAME} password={PASSWORD}
2. Refresh token request
2.1 Using CURL tool
curl
-i \
-X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-u {CLIENT_ID}:{CLIENT_SECRET} \
-d "grant_type=refresh_token&refresh_token={REFRESH TOKEN}" \
{ENV}/o/token/
2.2 Using HTTPie tool
http -v -f
https:
/
/{CLIENT_ID}:{CLIENT_SECRET}@{ENV}/o/token/
grant_type=refresh_token refresh_token={REFRESH_TOKEN}
3. Generate/Refresh token response
Expected Response
{ "access_token":
"Df0Z0r74hxZmO47mo9QnRrncVJIGU6"
, "expires_in":
3600
, "refresh_token":
"Y23rwVNSRtLjhy2nIwslJdo3FbAS6d"
, "scope":
"read write {OTHER_SCOPES}"
, "token_type":
"Bearer"
}
Failure Response: Passed parameters are not valid
{ "error":
"invalid_grant"
, "error_description":
"Invalid credentials given."
}
4. Generate new access token using CURL
curl -i \
-X POST \
-H
'Content-Type: application/x-www-form-urlencoded'
\
-u
4
l9iHGND54sLJILML1xGGkWUDqO77iCda:qZIuRHN0oKxwGFaJtKhnAcTIcVvvz1AmRCv0RTVOozyoc6eqtOWhEFyUPRbyfRs8uqzDLyLxWVxbDB6TxmhyG78jCTpE \
-d
"grant_type=password&username=paymob_send_api_checker&password=H%25bRUg%5EeaOZ%40HGabcLs7SOr9D1EL3%26"
\
https:
//s
tagingpayouts.paymobsolutions.com/api/secure/o/token/
Generate new access token using Postman.
5.5.1) Create new request page

5.2) Change request method from GET to POST

5.3) Add access token url to the request page :

5.4) Open body tab and choose body type to x-www-form-urlencoded then add your Credentials:

5.5) Click on Send Button to get your access token and start using the other API endpoints:

What made this section unhelpful for you?
Instant Cashin API Endpoint
Usage
- This endpoint is used to disburse the E-Money for an anonymous recipients through a specific issuer.
{ENV} | ^disburse/ | POST | JSON |
Headers
{ "Content-Type": "application/json", "Authorization": "Bearer {ACCESS_TOKEN}"}
Request
- Request Parameter.
issuer | M | String | the channel to disburse the e-money through |
amount | M | Float | |
msisdn | C | String | vodafone/etisalat/orange/aman/bank wallets |
bank_card_number | C | String | bank accounts/cards only |
bank_transaction_type | C | String | bank accounts/cards only |
bank_code | C | String | bank accounts/cards only |
full_name | C | String | bank accounts/cards only |
first_name | C | String | aman only |
last_name | C | String | aman only |
C | String | aman only | |
client_reference_id | O | String of uuid4 | it's reference id generated by your side |
Usage:
- {issuer} options list: [vodafone, etisalat, orange, aman, bank_wallet, bank_card] -case insensitive-.
- {amount} it's valid to use decimal point numbers up to 2 decimal points ex: 53.99
- {msisdn}: the +2 added automatically, so it consists of 11 numbers, ex: 01020304050
- {bank_card_number}: expected: [bank account number, IBAN, card number]
- {bank_transaction_type} options list: [salary, credit_card, prepaid_card, cash_transfer] -case insensitive-.
- {client_reference_id} generated UUID by the client to be saved as a reference in case of timeouts.
For concurrent or repeated payments | salary |
For credit cards payments | credit_card |
For prepaid cards and Meeza cards payments | prepaid_card |
For bank accounts, debit cards etc. | cash_transfer |
- aman cases, after every successful disbursement user will be notified at his/her email with the reference number of his/her transaction.
- {bank_code}: the banks list and their corresponding codes -case sensitive-.
Ahli United Bank | AUB |
MIDBANK | MIDB |
Banque Du Caire | BDC |
HSBC Bank Egypt S.A.E | HSBC |
Credit Agricole Egypt S.A.E | CAE |
Egyptian Gulf Bank | EGB |
The United Bank | UB |
Qatar National Bank Alahli | QNB |
Arab Bank PLC | ARAB |
Emirates National Bank of Dubai | ENBD |
Al Ahli Bank of Kuwait – Egypt | ABK |
National Bank of Kuwait – Egypt | NBK |
Arab Banking Corporation - Egypt S.A.E | ABC |
First Abu Dhabi Bank | FAB |
Abu Dhabi Islamic Bank – Egypt | ADIB |
Commercial International Bank - Egypt S.A.E | CIB |
Housing And Development Bank | HDB |
Banque Misr | MISR |
Arab African International Bank | AAIB |
Egyptian Arab Land Bank | EALB |
Export Development Bank of Egypt | EDBE |
Faisal Islamic Bank of Egypt | FAIB |
Blom Bank | BLOM |
Abu Dhabi Commercial Bank – Egypt | ADCB |
Alex Bank Egypt | BOA |
Societe Arabe Internationale De Banque | SAIB |
National Bank of Egypt | NBE |
Al Baraka Bank Egypt B.S.C. | ABRK |
Egypt Post | POST |
Nasser Social Bank | NSB |
Industrial Development Bank | IDB |
Suez Canal Bank | SCB |
Mashreq Bank | MASH |
Arab Investment Bank | AIB |
General Authority For Supply Commodities | GASC |
Arab International Bank | ARIB |
Agricultural Bank of Egypt | PDAC |
National Bank of Greece | NBG |
Central Bank Of Egypt | CBE |
ATTIJARIWAFA BANK Egypt | BBE |
Response
- Response Parameters.
disbursement_status | String | |
status_description | String | |
status_code | String | |
transaction_id | String | |
reference_number | String | AMAN only |
paid | Boolean | AMAN only |
Samples
1. Instant cashin request through Vodafone as an issuer
Request:
{
"amount":
"90.56"
,
"issuer":
"vodafone"
,
"msisdn":
"01092737975"
}
Response:
{
"transaction_id":
"92134d2b-d1a5-4dde-859c-a1175e94582c"
,
"msisdn":
"01092737975"
,
"issuer":
"vodafone"
,
"amount":
"90.56"
,
"full_name":
""
,
"disbursement_status":
"success"
,
"status_code":
"200"
,
"status_description":
"تم إيداع 90.56 جنيه إلى رقم 01010101010 بنجاح"
,
"aman_cashing_details":
null
,
"created_at":
"2020-10-12 06:54:31.849561"
,
"updated_at":
"2020-10-12 06:54:33.146926"
}
2. Instant cashin request through Etisalat as an issuer
Request
{
"issuer":
"etisalat"
,
"amount":
100.0
,
"msisdn":
"01112131415"
}
Response
{
"transaction_id":
"4d8d2215-6b15-4cf0-8a5a-e62e3eb5fdb3"
,
"msisdn":
"01112131415"
,
"issuer":
"etisalat"
,
"amount":
100.0
,
"full_name":
""
,
"disbursement_status":
"failed"
,
"status_code":
"90040"
,
"status_description":
"عزيزي العميل أنت غير مشترك في خدمة اتصالات كاش، للاشتراك برجاء زيارة أقرب فرع من فروع اتصالات بالخط والرقم القومي للمزيد من المعلومات اتصل ب-778"
,
"aman_cashing_details":
null
,
"created_at":
"2020-10-12 07:00:23.453577"
,
"updated_at":
"2020-10-12 07:00:24.615864"
}
3. Instant cashin request through Aman as an issuer.
Request
{
"issuer":
"aman"
,
"amount":
100.0
,
"msisdn":
"01092737975"
,
"first_name":
"Tom"
,
"last_name":
"Bernardo"
,
"email":
"tom.bernardo@gmail.com"
}
Response
{
"transaction_id":
"df1ee23f-c146-4c99-88ef-d6355c727d4b"
,
"msisdn":
"01092737975"
,
"issuer":
"aman"
,
"amount":
100.0
,
"full_name":
"Tom Bernardo"
,
"disbursement_status":
"successful"
,
"status_code":
"200"
,
"status_description":
"“برجاء التوجه إلى فرع أمان. اسأل على خدمة مدفوعات أكسبت. اسخدم الكود الخاص 3988885. لصرف مبلغ 100.00 جنيه. شكراً لاختيارك مدفوعات أكسبت.“"
,
"aman_cashing_details": {
"bill_reference":
3988885
,
"is_paid":
false
},
"created_at":
"2020-10-12 07:04:05.313545"
,
"updated_at":
"2020-10-12 07:04:11.172575"
}
4. Instant cashin request through Orange as an issuer
Request
{
"issuer":
"orange"
,
"amount":
100.0
,
"msisdn":
"01092737975"
}
Response
{
"transaction_id":
"7ce037de-a8d8-411c-be19-65ceb4e0dbd3"
,
"issuer":
"orange"
,
"msisdn":
"01092737975"
,
"amount":
100.0
,
"full_name":
""
,
"disbursement_status":
"success"
,
"status_code":
"200"
,
"status_description":
"amount is deposited successfully"
,
"aman_cashing_details":
null
,
"created_at":
"2020-10-12 07:19:46.121389"
,
"updated_at":
"2020-10-12 07:19:47.550900"
}
5. Instant cashin request through Bank Wallets as an issuer
Request
{
"issuer":
"bank_wallet"
,
"amount":
100.0
,
"msisdn":
"01092737975"
}
Response
{
"transaction_id":
"d9707a55-16af-4d35-9c69-2bce5ecc6cfb"
,
"issuer":
"bank_wallet"
,
"msisdn":
"01092737975"
,
"amount":
100.0
,
"full_name":
""
,
"disbursement_status":
"success"
,
"status_code":
"200"
,
"status_description":
"amount is deposited successfully"
,
"aman_cashing_details":
null
,
"created_at":
"2020-10-12 07:23:17.540219"
,
"updated_at":
"2020-10-12 07:23:18.113919"
}
6. Instant cashin request through Bank Cards / Accounts as an issuer
Request
{
"issuer":
"bank_card"
,
"amount":
100.0
,
"full_name":
"Tom Bernard Ceisar"
,
"bank_card_number":
"1111-2222-3333-4444"
,
"bank_code":
"CIB"
,
"bank_transaction_type":
"cash_transfer"
}
Response
{
"transaction_id":
"01ea2cd1-f01f-4857-b5ae-1e6359d1c779"
,
"issuer":
"bank_card"
,
"amount":
"100.00"
,
"bank_card_number":
"1111 2222 3333 4444"
,
"full_name":
"Tom Bernard Ceisar"
,
"bank_code":
"MISR"
,
"bank_transaction_type":
"salary"
,
"disbursement_status":
"pending"
,
"status_code":
"8000"
,
"status_description":
"Transaction received and validated successfully. Dispatched for being processed by the bank"
,
"created_at":
"2020-10-12 07:25:51.631701"
,
"updated_at":
"2020-10-12 07:25:52.263173"
}
7. Examples of failure cases
7.1 Parameters didn't pass validations
{ "disbursement_status": "failed", "status_description": { "amount": [ "This field is required." ], "issuer": [ "This field is required." ] }, "status_code": "400" }
7.2 Token used is expired
{ "disbursement_status": "failed", "status_description": "Authentication credentials were not provided.", "status_code": "401" }
7.3 The amount to be disbursed exceeds the current balance of the entity
{
"disbursement_status": "failed",
"status_description": "Sorry, the amount to be disbursed exceeds you budget limit, please contact your support team",
"status_code": "400"
}
8. Test e-wallet numbers
IMPORTANT Note:
these numbers will get success response on staging environment only
Test number for vodafone issuer
01023456789
Test number for etisalat issuer
01123456789
Test number for orange issuer
01223456789
Test number for bank_wallet issuer
01123416789
Test number for bank_card issuer
1111222233334444
Test IBAN number for bank_card issuer
EG829299835722904511873050307
NOTE: Transactions on wallet take notime to get final status (on the spot)
NOTE: Transactions on bank take 2 Working Days to get final status
What made this section unhelpful for you?
Cancel Aman Transaction API Endpoint
Usage
- This endpoint is used to cancel aman transaction.
{ENV} | ^transaction/aman/cancel/ | POST | JSON |
Headers
{ "Content-Type": "application/json", "Authorization": "Bearer {ACCESS_TOKEN}"}
Request
- Request Parameters
transaction_id | M | String of uuid4 | transaction id as uuid4 |
Response
- Response Parameters
transaction_id | String | |
reference_number | String | |
paid | String | |
disbursement_status | String | |
status_description | String | |
status_code | String |
Samples
- Cancel Aman transaction request dictionary
Request
{ "transaction_id": "607f2a5a-1109-43d2-a12c-9327ab2dca18" }
Response
{
"transaction_id": "607f2a5a-1109-43d2-a12c-9327ab2dca18",
"issuer": "aman",
"msisdn": "01148223074",
"amount": 91.54,
"full_name": "Hady Hossam",
"disbursement_status": "successful",
"status_code": "200",
"status_description": "برجاء التوجه إلى فرع أمان. اسأل على خدمة مدفوعات أكسبت. اسخدم الكود الخاص 5164539. لصرف مبلغ 91.54 جنيه. شكراً لاختيارك مدفوعات أكسبت.",
"aman_cashing_details": {
"bill_reference": 5164539,
"is_paid": true,
"is_cancelled": true
},
"created_at": "2020-12-24 11:21:08.622826",
"updated_at": "2020-12-24 11:21:09.755258"
}
- Examples of failure cases
2.1 Parameters didn't pass validations
{
"transaction_id": [
"This field is required."
]
}
2.2 Transaction not found
{
"transaction_id": "Not found"
}
2.3 System Error
{
"is_canelled": false
}
What made this section unhelpful for you?
Bulk Transaction Inquiry API Endpoint
Usage
- This endpoint is used to inquire about transaction(s) status.
- This endpoint implements throttling mechanism, so you can ONLY make 5 transaction inquiry requests per minute.
- Requests are paginated, 50 transaction object returned per single request.
{ENV} | ^transaction/inquire/ | GET | JSON |
Headers
{ "Content-Type": "application/json", "Authorization": "Bearer {ACCESS_TOKEN}"}
Request
- Request Parameters.
transactions_ids_list | M | String of uuid4 | List of transaction ids as uuid4 or list of client reference ids or list of mixed |
bank_transactions | M | Boolean | Used when the passed ids list for bank transactions |
Response
- Response Parameters.
count | Integer | Total count of returned transactions |
next | String | Link to the next page of results |
previous | String | Link to the previous page of results |
results | List | List of dictionaries transactions |
2. IMPORTANT:
2.1) failure_reason attribute will be removed soon, you can use the more generic status_description attribute.
2.2) transaction_status attribute will be renamed to be disbursement status.
2.3) channel attribute will be renamed to be issuer.
Samples
- Bulk transaction inquiry request dictionary for non-bank transactions
Request
{
"transactions_ids_list": [
"607f2a5a-1109-43d2-a12c-9327ab2dca18",
"2a08d70c-49a9-48ed-bcbf-734343065477",
"1531eb29-199e-4487-96ab-72ef76564a42",
...
]
}
Response
{
"count": 120,
"next": "{ENV}/api/secure/transaction/inquire/?page=3",
"previous": "{ENV}/api/secure/transaction/inquire/",
"results": [
{
"transaction_id": "607f2a5a-1109-43d2-a12c-9327ab2dca18",
"issuer": "aman",
"msisdn": "01020304050",
"amount": 20.5,
"full_name": "Tom Bernard",
"disbursement_status": "successful",
"status_code": "200",
"status_description": "“برجاء التوجه إلى فرع أمان. اسأل على خدمة مدفوعات أكسبت. اسخدم الكود الخاص 3943627 . لصرف مبلغ 20.50 جنيه . شكراً لاختيارك مدفوعات أكسبت.“",
"aman_cashing_details": {
"bill_reference": 3943627,
"is_paid": false
},
"created_at": "2020-04-21 13:05:02.233574",
"updated_at": "2020-04-21 13:05:10.252393"
},
{
"transaction_id": "2a08d70c-49a9-48ed-bcbf-734343065477",
"issuer": "vodafone",
"msisdn": "01019706920",
"amount": 500.0,
"full_name": "",
"disbursement_status": "successful",
"status_code": "200",
"status_description": "تم إيداع 500.0 جنيه إلى رقم 01019706920 بنجاح",
"aman_cashing_details": null,
"created_at": "2020-04-21 09:14:01.884397",
"updated_at": "2020-04-21 09:14:17.807927"
},
{
"transaction_id": "1531eb29-199e-4487-96ab-72ef76564a42",
"issuer": "vodafone",
"msisdn": "01019506911",
"amount": 5.91,
"full_name": "",
"disbursement_status": "failed",
"status_code": "618",
"status_description": "لا يمكن إتمام العملية؛ برجاء العلم أن هذا العميل ليس غير مؤهل لخدمات فودافون كاش",
"aman_cashing_details": null,
"created_at": "2020-04-16 17:55:57.761411",
"updated_at": "2020-04-16 17:55:59.915782"
},
...
]
}
2. Bulk transaction inquiry request dictionary for bank transactions
Request
{
"transactions_ids_list": [
"2af6d579-f0b1-4dbf-942c-a8204c0fb798",
"7f066fb1-8fc8-4b36-9eb7-aee434d7e39a",
"1e886593-03b1-4af9-b9e0-72b39fef479b",
"b4c86a00-524e-4cfb-9dff-2eea114e26f0",
...
],
"bank_transactions": true
}
Response
{
"count": 120,
"next": "{ENV}/api/secure/transaction/inquire/?page=3",
"previous": "{ENV}/api/secure/transaction/inquire/",
"results": [
{
"transaction_id": "1e886593-03b1-4af9-b9e0-72b39fef479b",
"issuer": "bank_card",
"amount": "100.00",
"bank_card_number": "8881914753038370",
"full_name": "Tom Bernard Ceisar",
"bank_code": "ADCB",
"bank_transaction_type": "cash_transfer",
"disbursement_status": "failed",
"status_code": "8002",
"status_description": "Invalid bank code",
"created_at": "2020-10-06 16:39:06.617370",
"updated_at": "2020-10-06 16:39:13.093580"
},
{
"transaction_id": "8613a98e-3fa3-47c2-8dbf-874bc4fba62d",
"issuer": "bank_card",
"amount": "100.00",
"bank_card_number": "8602522883580815",
"full_name": "Tom Bernard Ceisar",
"bank_code": "ENBD",
"bank_transaction_type": "prepaid_card",
"disbursement_status": "pending",
"status_code": "8000",
"status_description": "Transaction received and validated successfully. Dispatched for being processed by the bank",
"created_at": "2020-10-06 16:35:48.823069",
"updated_at": "2020-10-06 16:35:53.492712"
},
{
"transaction_id": "469b97a0-81b6-4e7c-a224-2ad561e8c3ec",
"issuer": "bank_card",
"amount": "100.00",
"bank_card_number": "7885318081708789",
"full_name": "Tom Bernard Ceisar",
"bank_code": "GASC",
"bank_transaction_type": "credit_card",
"disbursement_status": "pending",
"status_code": "8000",
"status_description": "Transaction received and validated successfully. Dispatched for being processed by the bank",
"created_at": "2020-10-06 16:35:36.526330",
"updated_at": "2020-10-06 16:35:40.100927"
}
] }
}
3. Exceeded your limit of requests per minute
{"status_description": "Request was throttled. Expected available in 55 seconds.",
"status_code": "429"
}
What made this section unhelpful for you?
User Budget Inquiry API Endpoint
Usage
- This endpoint enables entities to inquire about their current balance.
- It implements throttling mechanism, so you can ONLY make 5 budge inquiry requests per minute.
{ENV} | ^budget/inquire/ | GET | JSON |
Headers
{ "Content-Type": "application/json", "Authorization": "Bearer {ACCESS_TOKEN}"}
Request
- Request Parameters
This endpoint takes no parameters just the authenticated user hits the GET request to this endpoint.
Response
- Response Parameters.
current_budget | String |
status_description | String |
status_code | String |
Samples
Success user budget inquiry
{
"current_budget":
"Your current budget is 888.25 LE"
}
Exceeded your limit of requests per minute
{
"status_description":
"Request was throttled. Expected available in 55 seconds."
,
"status_code":
"429"
}
What made this section unhelpful for you?
CallBack Url
Usage
- This url used to notify the client if transaction has new status.
- Note:- this url used for aman transactions and bank transactions only
How to set callback url
1.1) Login by Dashboard user
1.2) Choose from sidebar CallBack Url
1.3) Enter your callback Url then press submit
Samples Of CallBack Request Body
- Bank Transactions
Request
{
"transaction_id":
"1e886593-03b1-4af9-b9e0-72b39fef479b"
,
"issuer":
"bank_card"
,
"amount":
"100.00"
,
"bank_card_number":
"8881914753038370"
,
"full_name":
"Tom Bernard Ceisar"
,
"bank_code":
"ADCB"
,
"bank_transaction_type":
"cash_transfer"
,
"disbursement_status":
"failed"
,
"status_code":
"8002"
,
"status_description":
"Invalid bank code"
,
"created_at":
"2020-10-06 16:39:06.617370"
,
"updated_at":
"2020-10-06 16:39:13.093580"
}
- Aman Transactions
Request
{ "transaction_id":
"607f2a5a-1109-43d2-a12c-9327ab2dca18"
, "issuer":
"aman"
, "msisdn":
"01020304050"
, "amount":
20.5
, "full_name":
"Tom Bernard"
, "disbursement_status":
"successful"
, "status_code":
"200"
, "status_description":
"“برجاء التوجه إلى فرع أمان. اسأل على خدمة مدفوعات أكسبت. اسخدم الكود الخاص 3943627 . لصرف مبلغ 20.50 جنيه . شكراً لاختيارك مدفوعات أكسبت.“"
, "aman_cashing_details": { "bill_reference":
3943627
, "is_paid":
true
}, "created_at":
"2020-04-21 13:05:02.233574"
, "updated_at":
"2020-04-21 13:05:10.252393"
}
What made this section unhelpful for you?
Response Codes
General Responses
Vodafone / Etisalat / Orange / Bank Wallet Codes
Error Code | Description | Http Code |
403 | Channel Authentication Failed | 403 |
404 | Undefined request type | 404 |
406 | Incorrect input given to request | 406 |
501 | Internal Error | 501 |
583 | Exceeded Maximum Limit Per Single Transaction | 583 |
604 | Below Minimum Transaction Limit Per Single Transaction | 200 |
610 | User Not Eligible To Perform Transaction | 200 |
615 | Sender and Recipient Accounts are the Same | 200 |
618 | Recipient Is Unregistered | 200 |
1051 | MSISDN Does Not Exist | 200 |
1056 | Invalid Consumer PIN | 200 |
1033 | Initial MPIN has not been changed | 200 |
1069 | Sender and Recipient Accounts are the Same | 200 |
1102 | M-PIN is Empty | 200 |
1118 | MSISDN is Locked | 200 |
1301 | Invalid Client ID | 200 |
1996 | Catch All SE Errors | 200 |
1997 | Inactive Service | 200 |
4011 | Initial MPIN has not been changed. | 200 |
4037 | Consumer MSISDN Does Not Exist | 200 |
4051 | Agent MSISDN Does Not Exist | 200 |
4055 | Consumer Account Status is Not Active | 200 |
4056 | Invalid Agent M-PIN | 200 |
4070 | Agent Type is Invalid | 200 |
4081 | Consumer has No Default Funding Account | 200 |
4139 | Agent MSISDN does not exist | 200 |
4140 | Agent ID Does Not Exist | 200 |
4333 | Recipient Consumers MPIN has not been changed | 200 |
4334 | Recipient Consumers has exceeded transaction count limit | 200 |
5465 | Service Call Failed | 200 |
6001 | Funding Account Status is Referral | 200 |
6003 | Invalid Agent | 200 |
6004 | Funding Account Status is Pick-up CR Problem or Fraud/Capture Card | 200 |
6005 | Funding Account was not Honored/General Decline | 200 |
6012 | Invalid Transaction | 200 |
6013 | Invalid Amount | 200 |
6014 | Invalid Funding Account Card Number | 200 |
6015 | Invalid Issuer | 200 |
6030 | Format Error | 200 |
6041 | Funding Account Status is Lost | 200 |
6043 | Funding Account Status is Stolen | 200 |
6051 | Service temporarily suspended | 200 |
6054 | Funding Account is Expired | 200 |
6055 | Invalid C-PIN | 200 |
6057 | Transaction Not Permitted to Issuer/Card Holder | 200 |
6058 | Transaction Not Permitted to Acquirer/Terminal | 200 |
6061 | Exceeded Transaction Amount Limit | 200 |
6062 | Restricted Card | 200 |
6063 | Security Violation | 200 |
6065 | Exceeded Transaction Count Limit | 200 |
6070 | Contact Card Issuer | 200 |
6071 | C-PIN Not Changed | 200 |
6075 | Allowable Number of C-PIN Tries Exceeded | 200 |
6076 | Invalid/Non-Existent "To Account" | 200 |
6077 | Invalid/Non-Existent "From Account" | 200 |
6078 | Invalid/Non-Existent Account | 200 |
6084 | Invalid Authorization Life Cycle | 200 |
6086 | C-PIN Validation Not Possible | 200 |
6088 | Cryptographic Failure | 200 |
6089 | Unacceptable C-PIN | 200 |
6091 | Authorization System/Issuer System Inoperative | 200 |
6092 | Unable to Route Transaction | 200 |
6094 | Duplicate Authorization Request | 200 |
6096 | General System Error | 200 |
6097 | MIP is Down/Not Connected | 200 |
6098 | No Response from MIP | 200 |
6099 | Catch All Acquirer SE Error | 200 |
200 | Deposit was successful. | 200 |
400 | Validation Error, status description will inform you with the issue. | 400 |
401 | Unauthorized request, access token expired or not sent. | 401 |
500 | Server Error. | 500 |
404 | Bad URL (not found). | 404 |
405 | Method not allowed. | 405 |
504 | Bad gateway. | 504 |
0009 | Regulatory reason. | 200 |
1051 | This service is only available to Vodafone Cash customers. Please try again later. | 200 |
1082 | The mobile number entered is invalid. | 200 |
1118 | Transaction cannot be completed due to three incorrect PIN attempts. | 200 |
1301 | Unable to process your transaction at this time. Please call Customer Care. | 200 |
1333 | Unable to process your transaction. Recipient account cannot receive funds. | 200 |
1652 | Recipient is not registered with any wallet program. | 200 |
1705 | A transaction with the same request details is already in progress. | 200 |
1706 | Transactions between different wallet schemes are not allowed. | 200 |
194 | Transaction cannot be completed due to account suspension. Please visit a branch for reactivation. | 200 |
1996 | Unable to process your transaction at this time. Please try again later. | 200 |
3099 | Unable to process your transaction at this time. Please try again later. | 200 |
4037 | Consumer mobile number is not currently registered. Please call Customer Care. | 200 |
405 | Channel has been blocked. | 200 |
4055 | Consumer has not yet been activated. Please call Customer Care. | 200 |
4056 | The entered PIN is incorrect. Please try again. | 200 |
406 | Incorrect input. | 200 |
4077 | You are not registered as a Vodafone Cash customer. | 200 |
408 | Request timeout error. | 200 |
424 | Process stopped during an external error. Please try again or contact support. | 200 |
4333 | Transaction cannot be completed because the customer has not set up a PIN. | 200 |
4334 | Recipient account cannot receive funds. | 200 |
442 | Network error. | 200 |
500 | External error. | 200 |
501 | Internal error. | 200 |
504 | Process stopped due to an external error. Please try again or contact support. | 200 |
5465 | Service call failed. | 200 |
583 | The deposit limit has been exceeded. Please try again. | 200 |
6005 | Transaction cannot be completed due to account suspension. | 200 |
6012 | Unable to process your request. Please call Customer Care. | 200 |
6014 | Transaction not completed. Please try again. | 200 |
6051 | Insufficient funds in your account. | 200 |
6061 | Transaction cannot be completed; the maximum transaction limit has been exceeded. | 200 |
6062 | Unable to process your request. Please call Customer Care. | 200 |
6065 | You have exceeded your daily transaction limit. Please try again tomorrow. | 200 |
6082 | Your request cannot be processed at this time. Please try again later. | 200 |
6091 | Unable to process your request. Please call Customer Care. | 200 |
6096 | General system error. Please try again. | 200 |
6098 | Unable to process your transaction at this time. Please try again later. | 200 |
618 | This customer is not eligible for the service. | 200 |
6865 | Downstream system is inoperative. Please try again later. | 200 |
9000 | Unable to process your transaction at this time. Please try again later. | 200 |
90001 | Unable to complete your request at this time. Please try again later. | 200 |
9001 | Unable to process your transaction at this time. Please try again later. | 200 |
90015 | The entered branch code is prohibited. | 200 |
90039 | Service temporarily suspended. Please contact support or visit a branch for assistance. | 200 |
9004 | Unable to process your transaction at this time. Please try again later. | 200 |
90040 | You are not subscribed to the required service. Please visit a branch for more information. | 200 |
9005 | Unable to process your transaction at this time. Please try again later. | 200 |
9007 | Unable to process your transaction at this time. Please try again later. | 200 |
90093 | Service temporarily suspended. | 200 |
9010 | Unable to process your transaction at this time. Please try again later. | 200 |
9011 | Unable to process your transaction at this time. Please try again later. | 200 |
9013 | Unable to process your transaction at this time. Please try again later. | 200 |
9015 | Unable to process your transaction at this time. Please try again later. | 200 |
9025 | Unable to process your transaction at this time. Please try again later. | 200 |
9027 | Unable to process your transaction at this time. Please try again later. | 200 |
9035 | Unable to process your transaction at this time. Please try again later. | 200 |
9037 | Unable to process your transaction at this time. Please try again later. | 200 |
9040 | Unable to process your transaction at this time. Please try again later. | 200 |
Bank Card Codes | ||
Status Code | Status | Status Description |
8000 | Pending | Transaction received and validated successfully. Dispatched for being processed by the bank |
8111 | Pending | Transaction received and validated successfully. Dispatched for being processed by the bank |
8222 | Successful | Successful with warning, A transfer will take place once authorized by the receiver bank |
8333 | Successful | Successful, transaction is settled by the receiver bank |
501 | Failed | Duplicate Transaction ID |
000005 | Rejected | Invalid Account Details |
002248 | Rejected | Creditor Agent for this transaction is not an active agent |
000100 | Returned | Invalid Account Details |
000102 | Returned | Frozen or Blocked Account |
000105 | Returned | Insufficient Payment Details |
000108 | Returned | Invalid Account Details |
Error Codes for Generate token | ||
Status Code | Status | Http Code |
400 | Invalid credentials given (wrong username or password | 400 |
400 | invalid_client (wrong client ID or secret | 400 |
500 | Server Error. | 500 |
404 | Bad URL (not found). | 404 |
405 | Method not allowed. | 405 |
504 | Bad gateway. | 504 |
What made this section unhelpful for you?
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.