Event Payloads
Webhook payloads include payment status, transaction information, signature data, and optional merchant-supplied fields.
Payment success
Section titled “Payment success”{ "status_code": 10, "success": true, "message": "Operation successful", "sender_account": "793111222", "transaction_id": "0328379001707719668", "user_id": "order-1001", "amount": 65, "memo": "Payment for order #123", "signature": "signature_value", "timestamp": "1707719607", "transaction_date": "2024-02-12 11:04:28", "items": [ { "id": "item1", "name": "Product 1", "price": 45 } ],}Match the payment to your record
Section titled “Match the payment to your record”When creating the payment session, pass a unique order ID, payment ID, or other merchant-side reference in user_id. A successful payment webhook returns that same value unchanged. Use it to find and update the exact payment record in your system.
user_id is included only when you provide it during session creation. It is your identifier and HesabPay does not enforce its uniqueness. transaction_id is different: HesabPay generates it after payment to identify the gateway transaction. Store both values for reconciliation.
Handling
Section titled “Handling”Use user_id to locate your payment record and transaction_id to make webhook processing idempotent.