Webhook Notification¶
Saudi Arabia APIs
Introduction 路 Response Code 路 Checkout 路 Check Deposit Status 路 Deposit WayCode 路 Check Balance 路 Webhook
Overview¶
Key Information
- Request Method:
POST - Data Format:
application/json - Purpose: asynchronous notification for checkout status updates
Brief Description¶
1. Notification Mechanism¶
When a Saudi Arabia transaction status changes, Vexora pushes the latest result to the merchant callback URL configured in the original request.
2. Merchant Response Requirements¶
- Return plain text
OKafter successful processing - The response is plain text and does not require JSON wrapping
- The merchant should respond within 10 seconds when possible
3. Retry Strategy¶
If OK is not received, the system retries automatically.
- Total attempts: up to 8 times within 24 hours
- Retry intervals:
2s -> 5s -> 10s -> 30s -> 1h -> 3h -> 3h -> 3h
4. Status Confirmation¶
If the final webhook cannot be confirmed, use the deposit query API to retrieve the latest transaction status.
Request Parameters¶
| Parameter | Required | Type | Description |
|---|---|---|---|
| platFormTradeNo | Yes | String | Vexora platform transaction number |
| tradeNo | Yes | String | Merchant transaction number |
| amount | Yes | String | Actual transaction amount |
| channelCode | Yes | String | Actual payment product code used to process the transaction. This may differ from the value submitted at checkout |
| wayCode | Yes | String | Actual payment method code used to process the transaction. This may differ from the value submitted at checkout |
| status | Yes | String | Final or current transaction status code |
| message | Yes | String | Status description |
| successTime | Yes | String | Transaction completion time in YYYY-MM-DD HH:mm:ss |
| timestamp | Yes | String | Current timestamp in milliseconds |
| sign | Yes | String | Signature for verification |
Request Example¶
{
"platFormTradeNo": "SAPI202607010001",
"tradeNo": "SA202607010001",
"amount": "100.00",
"channelCode": "MADA",
"wayCode": "MADA",
"status": "0000",
"message": "SUCCESS",
"successTime": "2026-07-01 10:30:00",
"timestamp": "1782878700000",
"sign": "d41d8cd98f00b204e9800998ecf8427e"
}