Example Webhook Payloads — automatic deposits
View sample webhook payloads for different event types
Idempotency Required
A webhook may be delivered more than once. Build the handler to tolerate repeats (idempotent) so the same data is never processed twice.
Event Types
Payment/PAYMENT_PAID
{
"data": {
"payment": {
"id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"amount": "300",
"status": "SUCCESS",
"address": "0x00",
"fx_rate": {
"THB": 300.33,
"USD": 9.276
},
"seq_num": 99065525,
"agent_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"lifetime": 600,
"order_id": "MERCHANT ORDER ID",
"slip_ref": "WH-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"tx_value": 9.276,
"source_id": "payment",
"audit_time": null,
"created_at": "2026-05-13T10:09:47.500Z",
"expired_at": "2026-05-13T10:19:47.496Z",
"payment_qr": "00020101021229370016A0000006770101110213123456789012353037645802TH5406300.336304207D",
"request_ip": null,
"updated_at": "2026-05-13T10:10:26.487Z",
"url_failed": "https://example.com/callback",
"url_return": "https://example.com/callback",
"audit_trail": [],
"payment_url": "https://app.example.com/pay/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"to_currency": "THB",
"url_success": "https://example.com/callback",
"fee_subtract": 0,
"from_address": "x466277",
"invoice_type": "FIAT",
"is_completed": true,
"exchange_rate": 1,
"failed_reason": "UNKNOWN",
"from_currency": "THB",
"merchant_name": "MERCHANT NAME",
"sequence_time": "2026-05-13T10:10:26.486Z",
"owned_by_group": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"payment_amount": 300.33,
"payment_domain": "https://app.example.com",
"payment_status": "PAYMENT_PAID",
"additional_data": {
"description": "deposit"
},
"discount_amount": 0,
"merchant_amount": 296.73,
"merchant_number": "1234567890",
"organization_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"accuracy_percent": 0,
"audit_by_user_id": null,
"discount_percent": 0,
"ebank_account_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"partner_agent_id": null,
"request_platform": "API",
"is_multiple_order": true,
"merchant_provider": "SCB",
"order_tracking_id": null,
"payer_paid_amount": 300.33,
"order_display_mode": "FIAT",
"payment_match_type": "EXACTLY",
"webhook_request_id": null,
"payer_bank_provider": "KBANK",
"payer_paid_currency": "THB",
"payment_method_type": "PROMPTPAY_QR",
"exchange_rate_source": "COINGECKO",
"order_user_reference": "HH123456789",
"merchant_promptpay_id": "1234567890123",
"owned_by_group_parent": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"request_withdrawal_id": null,
"payer_bank_account_name": "นางสาว XXXXX XXXXX",
"payer_bank_account_number": "1234567890",
"order_auto_cancel_previous": true,
"request_withdrawal_sequence_time": null
},
"transaction": {
"id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"fee": 1.2,
"type": "RECEIVE",
"amount": 300.33,
"status": "COMPLETED",
"fx_rate": {
"THB": 300.33,
"USD": 9.276
},
"seq_num": 82871898,
"slip_id": null,
"to_bank": "SCB",
"tx_date": "13/05/2026 17:10",
"agent_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"currency": "THB",
"metadata": null,
"order_id": "MERCHANT ORDER ID",
"tx_value": 9.276,
"from_bank": "KBANK",
"from_name": "นางสาว XXXXX XXXXX",
"reference": "27075970",
"source_id": "payment",
"created_at": "2026-05-13T10:09:47.500Z",
"fee_amount": 3.603959999999999,
"matched_at": null,
"message_id": null,
"payment_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"updated_at": "2026-05-13T10:10:26.487Z",
"webhook_id": null,
"unique_hash": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"from_address": "x466277",
"message_time": null,
"p2p_match_id": null,
"tx_unix_time": 1778692200,
"sequence_time": "2026-05-13T10:10:26.486Z",
"owned_by_group": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"organization_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"realized_amount": 296.72604,
"extra_fee_network": 0,
"settlement_channel": "CLASSIC",
"webhook_request_id": null,
"webhook_response_id": null,
"order_user_reference": "HH123456789",
"owned_by_group_parent": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"is_matched_from_unmatched": false
},
"idempotency_key": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:PAYMENT_PAID"
},
"type": "FIAT",
"event": "PAYMENT_PAID"
}P2P payload examples
Slip deposits and P2P withdrawals — a different set of terminal events from this page
