Create Customer
Create a customer record before initiating a VERIFY session or checkout
Header Parameters
Pass the merchant access code issued by Hesabe
application/json
Convert payload JSON object to encrypted string and send it to the server
Sample Encryption and Decryption Process:
The following steps demonstrate how to integrate with this API using sandbox credentials.
Step 1: Create JSON Object
{
"merchantCode": "842217",
"name": "Ahmed Al-Mansouri",
"email": "ahmed@example.com",
"mobile_number": "12345678"
}Payload Details:
Contains the list of parameters and their corresponding values required to make the API request.
| Field Name | Description | Required |
|---|---|---|
merchantCode | Pass the merchant code provided by Hesabe | Yes |
name | Pass the customer full name | Yes |
email | Pass the customer email address | Yes |
mobile_number | Pass the customer mobile number (Min 8 & Max 10 digits) | Yes |
Step 2: Convert the JSON object into an encrypted string format and post to Hesabe
{
"data": "0e7898bd7464d0c402fe8a949d9cbf9b4385ce35e00b491d6b8610d6d3a3ac76de3a7430ae066c72c1da215d7b627a58bee9e67331ef164caba1ccdd6bda8df9e982d2f6ce4ec412b7410b3b846fa0d07c75034135ece28f51b95b10dcda2d50accb3feadbc8be83dd03aa2ed17f6e08"
}Step 3: Receive encrypted response from Hesabe:
{
"response": "60a8f6241932227b840a9f5e36987f4da8391cf5ed4b4f066f27c91f55ae5116701a5af220c8d309c57bace4cdb855a39dc1fc69cdab56f5e883eb75425a39d479cb519b5d53cc36ec8e7f7e23f2b6c248bb9bdfec833c7e88496cab985ed23044efcf73e9305d1891c148c645f00837f8a162cae69b21fdc940947dbe4d2550edf6416b6f8593e607b020e431ea98ba154f5f9b05ee80b67026cfc8243c0c51c0d8fa77588210cdc45ed29e6c869d0b1a329104cb80c7795b4b0a8ee55e99c8"
}Step 4: Decrypt the API response and view the JSON output
{
"status": true,
"message": "Customer created successfully",
"data": {
"customer_id": "4117",
"name": "Ahmed Al-Mansouri",
"mobile_number": "12345678",
"email": "ahmed@example.com"
}
}Response Body
application/json
application/json
application/json
application/json
application/json
const body = JSON.stringify({ "data": "0e7898bd7464d0c402fe8a949d9cbf9b4385ce35e00b491d6b8610d6d3a3ac76de3a7430ae066c72c1da215d7b627a58bee9e67331ef164caba1ccdd6bda8df9e982d2f6ce4ec412b7410b3b846fa0d07c75034135ece28f51b95b10dcda2d50accb3feadbc8be83dd03aa2ed17f6e08"})fetch("https://sandbox.hesabe.com/api/direct-payment/customer", { method: "POST", headers: { "Content-Type": "application/json", "accessCode": "c333729b-d060-4b74-a49d-7686a8353481" }, body}){
"status": true,
"message": "Customer created successfully",
"data": {
"customer_id": 4117,
"name": "Ahmed Al-Mansouri",
"mobile_number": "12345678",
"email": "ahmed@example.com"
}
}{
"status": false,
"message": "Invalid request data — please check your payload and try again",
"response": null
}{
"status": false,
"message": "Unauthorized — the provided accessCode is missing or invalid",
"response": null
}{
"status": false,
"message": "Forbidden — you do not have permission to access this resource",
"response": null
}{
"status": false,
"message": "Internal Server Error — an unexpected error occurred, please try again later",
"response": null
}Overview
Card Verification & Server-Side Charge API — save a customer's card via a zero-amount checkout, then charge it from your backend at any time without customer interaction.
Initiate Checkout POST
Create a zero-amount checkout session to securely save the customer’s card with full 3DS authentication. For subsequent (first actual) transactions using the saved card, the checkout must be initiated with the actual payment amount, not a zero amount