Skip to content
Dashboard

Event Payloads

Webhook payloads include payment status, transaction information, signature data, and optional merchant-supplied fields.

{
"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
}
],
"email": "[email protected]"
}

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.

Use user_id to locate your payment record and transaction_id to make webhook processing idempotent.