In this section, you'll find everything you need to manage the various entry points your application will receive during and after an Axepta BNP Paribas Online payment.
You'll learn:
When initializing the payment, you must provide a URLs object:
urls{
"return":"https://myProcessingServer.net/myApi/success.php?transId=95330876-67ae-4949-a11c-b9a29257831b",
"cancel":"https://myProcessingServer.net/myApi/cancel.php?transId=95330876-67ae-4949-a11c-b9a29257831b",
"webhook":"https://myBackOfficeServer.net/webhook.php"
} |
|
One of these two URLs (return or cancel) will be called at the end of transaction processing to:
When either of these URLs is called, Axepta BNP Paribas Online automatically adds the parameter: PayId=<paymentId generated by Axepta> - see Integration recommendation
Add a unique identifier from your system to your URLs to link the response to your order. Example of URL called during customer payment validation:
https://myProcessingServer.net/myApi/success.php?transId=95330876-67ae-4949-a11c-b9a29257831b&PayId=b6eae9b16e3343fa90da39d4ee7bf4ad |
When one of these URLs is called:
Retrieve the PayId parameter.
Call the API to get the actual transaction status: GET /payments/getByPayId/{payId} - Retrieve payment details by Payment ID
Important Fields in the API Response
Example Response
{
"amount":{
"value":126,
"currency":"EUR",
"capturedValue":0,
"refundedValue":0
},
"payId":"91a6299a704147bf934aabd79fd1dc5d",
"merchantId":"MY_MERCHANT_ID",
"transId":"Trans361039",
"xId":"b55e68b7e4644a90836ae31effe1fc60",
"refNr":"refNb77254",
"status":"AUTHORIZED",
"responseCode":"00000000",
"responseDescription":"Transaction successful",
"paymentMethods":{
"type":"CARD"
}
} |
The Webhook notification is the only reliable way to be informed of transaction completion. It is essential for the merchant site to process requests received at the Webhook URL.
This notification is sent even if the customer:
At the end of each asynchronous payment processing.
Important: Never trigger order finalization based solely on the Return URL. Always use the webhook as the reliable source of information. |
Provided Fields
Example
{
"merchantId": "YOUR_MERCHANT_ID",
"payId": "91a6299a704147bf934aabd79fd1dc5d",
"transId": "Trans361039",
"xid": "b55e68b7e4644a90836ae31effe1fc60",
"refNr": "refNb77254",
"status": "AUTHORIZED",
"responseCode": "00000000",
"responseDescription": "Transaction successful",
"amount": {
"value": 126,
"currency": "EUR"
},
"paymentMethods": {
"type": "CARD"
},
"creationDate": "2025-10-30T11:27:57Z",
"channel": "ECOM"
}
|
To ensure the authenticity of webhook data, it is signed using HMAC-SHA256.
The signature is included in three HTTP headers within the webhook message.
| X-Paygate-Signature-Version | Version of the signature format (currently, v1) |
| X-Paygate-Timestamp | Unix epoch timestamp (seconds since 1970-01-01T00:00:00Z, UTC) |
| X-Paygate-Signature | Signature in the format |
signed_payload = timestamp + "." + raw_json_body
signature = HMAC_SHA256(secret, signed_payload)
secret – HMAC keySignature is encoded 'hex' and the header is set as follows:X-Paygate-Signature: v1=<hex-hmac>To verify the authenticity of the webhook message data:
Extract the data carried by the HTTP headers:
X-Paygate-TimestampX-Paygate-SignatureTake the raw JSON payload data (the binary data received)
Calculate the HMAC with the extracted data
|