This field ensures the integrity of requests made to our services. It also allows merchants to control the number of requests made to transactional APIs by a specific user.
The Security Signature is required for the following services:
api/v2/transaction/other or hosted/payment/otherdoSale or API api/v2/transaction/saledoAuth or API api/v2/transaction/authdoCapture or API api/v2/transaction/capturegetStatus or API api/v2/transaction/statusDepending on the service being implemented, the signature must be generated using some of the fields included in the request:
app_key: the merchant identifier, can be extracted hereorder_id: the order number of the transaction you wish to signapp_url: the merchant's platform, can be extracted heresecret_key: the merchant secret key, can be extracted hereIn more advanced cases, you may also need to include other fields in the signature:
transaction_approved_amount: for fund capture transactions, this is the total amount to be capturedpayment_uuid: for fund capture transactions or getting the payment's status, this is the payment identifier| Service | Required Fields |
|---|---|
API api/v2/transaction/other API hosted/payment/other API api/v2/transaction/sale API api/v2/transaction/auth SDK doSale SDK doAuth |
app_key, order_id, app_url |
API api/v2/transaction/capture SDK doCapture |
app_key, transaction_approved_amount, payment_uuid, app_url |
API api/v2/transaction/status SDK getStatus |
app_key, payment_uuid, app_url |
Once you have identified the service and the fields needed to sign your request, you must concatenate all the fields into a string with the symbol |. This string must then be processed through HMAC with the SHA3-512 algorithm, using the secret key to sign it.
Since creating the signature involves using the secret key, make sure you do it in a controlled environment such as a server or internal API, and not within the user's device.
If you suspect your secret key has been exposed, see here to learn how to create a new one.
For example, to create the signature for a transaction made using the service Direct Sale with order number ORDER-8888 and fictitious merchant keys, the result must be 688084a6...e852ee2a:
Once we have created the signature, it must be sent in the request header x-client-signature. If you use the SDK services, see here on how to add this header to your requests.