Skip to main content
XPayLabs sends webhook notifications based on the NotifyType enum. Each notification corresponds to a change in state of an order or a collection sweep.

Event Types


Order Events (ORDER_*)

ORDER_PENDING

Sent when a collection or payout order is created and is awaiting the next action (customer payment for collections, processing for payouts).

ORDER_PENDING_CONFIRMATION

Sent when a blockchain transaction is detected but has not yet reached the required number of block confirmations. The transaction field is populated with the detected transaction details.

ORDER_SUCCESS

Sent when the payment is fully confirmed (required block confirmations reached) or a payout completes successfully.

ORDER_EXPIRED

Sent when an order reaches its expiry time without receiving the required payment.

ORDER_FAILED

Sent when a payout transaction fails or a collection transaction is rejected by the blockchain.

Collection Events (COLLECT_*)

Collection events are sent when the gateway performs automatic hot-to-cold wallet sweeps (settlement). These are distinct from order events — they relate to the internal movement of funds between the gateway’s wallets.

Best Practices

  1. Respond with 200 quickly. Return 200 OK immediately and process the event asynchronously in a background worker.
  2. Verify the signature. Always validate the sign field using your webhook-secret before acting on any event.
  3. Deduplicate with nonce. The same event may be delivered more than once. Store processed nonces in your database and skip duplicates.
  4. Check notifyType first. Route to different handlers based on the event type.
  5. Handle ORDER_PENDING_CONFIRMATION. Use this event to show “payment detected” in your UI before the transaction is fully confirmed.
Last modified on June 26, 2026