Order Transactions
These webhook events are triggered based on the overall lifecycle of a Payment Order. Merchants must strictly listen to order update events as the authoritative trigger for fulfilling orders or releasing services.
🔔 Event Types
| Event Identifier | Trigger Condition & Business Meaning | Actionable Advice |
|---|---|---|
pay.transaction | Order Created: Triggered when a payment order is successfully created in the system. The status is typically pending. | Use for logging or reconciliation only. Do not fulfill the order. |
pay.transaction.update | Order Updated: Triggered whenever there is a change in the order's status, confirmed amount, etc. | 🌟 Fulfillment Trigger: Listen to this event. When the status field in the payload changes to completed, execute your fulfillment logic. |
📦 Payload Example
When an event occurs, DogPay sends a POST request to your configured webhook endpoint. Below is the complete payload example of a pay.transaction.update event when the order is completed:
{
"event_id": "997daf9b-4162-4864-914c-960ff6cc16ad",
"event_identifier": "pay.transaction.update",
"data": {
"id": "761ca541-df6e-4273-a3f2-e3df85e5c3b7",
"idNo": "1940644675780100097",
"transactionAt": "2025-07-03T05:32:00.796Z",
"completedAt": "2025-07-04T14:32:17.366Z",
"payType": "chain_address",
"payer": null,
"payChannel": "pay_001",
"status": "completed",
"amount": "0.02000000",
"usdAmount": "0.02000000",
"usdFeeAmount": "0.01000000",
"currency": "USDC",
"transactionId": "817f2df2-3b0e-472f-b40e-20ed4c24761c",
"accountId": "0721aeda-ed79-4398-887b-77fd225c69f4",
"fee": "0.01000000",
"totalAmount": "0.00000000",
"usdRate": "1.00000000",
"settleStatus": "unsettled",
"type": "pay",
"originPayOrderId": null,
"callId": "0f38a615-ec28-7866-351f-7fcb78862b7n",
"balanceId": "eb078bf9-82ad-4c00-bf6a-992632b55d21",
"cursorId": "375638181647749120",
"successUrl": "[https://api.string.com/url](https://api.string.com/url)",
"failureUrl": "[https://api.string.com/url](https://api.string.com/url)",
"extraData": {
"payType": "WEB",
"goodsName": "Test_V2"
},
"payChannelCurrencyId": "c4dff705-3012-4b91-a4f5-0a4ec8a4982f",
"waitAmountOnChain": "0",
"doneAmountOnChain": "0.02",
"receiveAddress": "0xB0a2821fAa9AD8c08D2764EAF85C414518137620"
}
}
Idempotency Note
Please useevent_idor the order'sidNoto ensure idempotency. Always check if the order has already been fulfilled in your database before processing to prevent duplicate delivery caused by network retries.
Updated about 15 hours ago