POST /pool-deposit-status
Request
string
required
The
intent.id UUID returned when you created the deposit. This is the only accepted key and the only accepted identifier — omit it and you get 400 Missing depositIntentId; send the payment ID from your quote and you get 404 Deposit intent not found.Response
string
Intent ID.
string
Current state. See below.
string
Quoted amount, base units.
string
Actually received. Compare against expected for under- and overpayment.
string
Token.
number
Decimals for that token, so you can render the amounts above.
number
Chain the payment settles on. Null until the chain is known. Every network live today is a test network; the example below is Base Sepolia,
84532.string
Chain family —
eip155 or tron.string
The customer’s inbound transfer, once seen.
string
The transaction that moved the funds into your pool.
string
Set only if the funds were returned on-chain.
string
The one-time pay-to address issued for this payment.
string
Your settlement pool, where the funds end up.
string
Refund address recorded on the intent, if any.
string
Refund deadline recorded on the intent, if any.
boolean
Whether the payment is complete at
paid/overpaid rather than at swept. See the note under Statuses.string
When this deposit intent lapses — a fixed one hour after it was created. This is the intent’s own window, not the shorter price-lock on your quote.
confirmations field: the endpoint reports the confirmation outcome through status, not a running count.
Statuses
When is a payment final?
paid means the customer’s transfer reached the required confirmation depth at the one-time pay-to address. That address can only forward funds to your settlement pool — there is no refund window and no other destination — so the sweep that follows is our step, not a window in which the customer can pull the money back. For most merchants paid is therefore ship-safe, and the hosted checkout already tells the buyer the payment is complete at that point.The one exception is a merchant running payer screening set to Enforce: that screen runs on the sender at sweep time, so for them a paid payment can still become held_sanctioned, and swept stays the fulfilment signal. The confirmAtCapture field on the status response tells you which case you are in — true means confirm at paid/overpaid, false means wait for swept.Either way swept means the money is settled in your pool. The webhook stream follows the same rule: pool.deposit.confirmed fires at paid, before the sweep, and is the fulfilment signal on this rail; pool.swept fires once the sweep lands. There is no payment_confirmed event. Finality · Events.Polling sensibly
Do
Poll pending orders on a schedule — every few minutes, backing off over time. Reconcile daily against the dashboard ledger.
Don't
Poll in a tight loop from the browser, or poll every order forever. You’ll hit rate limits and gain nothing.
429 with Retry-After. Respect it.