Skip to main content
A collection order is the thing you drive to completion. Its progress is reflected in the webhook event names, and the order object itself is always the ground truth for where a payment stands.

The happy path

Edge states

Alongside the happy path, these can occur at any point:
  • collection.amount.underpaid / collection.amount.overpaid — the received amount fell outside the quoted asset_amount (see Amounts).
  • collection.deposit.wrong_chain — funds arrived on the wrong network; the order is still payable on the correct one.
  • collection.order.expired — the quote lapsed before a deposit (re-lock via Rates and quotes).
  • collection.order.failed — the order could not complete.

The order object is ground truth

The order carries status, amount_status, deposit, disbursement, and quote. Retrieve it any time with pulse.collectionOrders.retrieve(orderId) — in the current preview, lifecycle is observed by polling this rather than by webhook. The sandbox can simulate every state above against a real order.

Credit only on disbursement.completed

Credit a customer only after a verified disbursement.completed webhook. Client-side callbacks such as onSuccess are UX signals — they can be spoofed. The signed webhook is the only source of truth for crediting a user.

Where to go next