TillsafeDocstillsafe.comRequest early access

Reviews

When a payment is held for a person to approve, and how to accept or reject it.

Some payments are too large, or too unusual, to credit automatically. They are held, and the invoice is under_review until someone decides.

What puts an invoice under review

  • A large payment: a single transfer worth US$250,000 or more, once it is final. (An asset with no known price is treated as large.)
  • A finality violation: a payment that was reported final and later retracted by the chain.

While an invoice is under review nothing more is credited to it, and its clock stops: it cannot expire while you decide.

Deciding

POST /v1/invoices/{id}/resolve_review with a decision and a reason for your records:

json
{ "decision": "accept", "reason": "Customer verified by phone" }
  • accept credits the held payment, exactly once, and the invoice moves on, usually to paid.
  • reject cancels the invoice. Everything it received, including earlier credited payments, becomes refundable. No money moves on its own: refund it with the refunds API.

You get invoice.review_resolved, with review: {decision, reason, via}, and then the status webhook (invoice.paid, invoice.cancelled, …). With no open review the call is 409 review_not_open.

In live mode an API key may only accept holds for size (manual_review). A finality violation or a risk hold must be accepted by a person on the dashboard (409 review_requires_dashboard otherwise; the dashboard is in early access). Rejecting is always allowed.