onzodocs
DocumentationAPI Reference
onzo.laRequest access
Sirius Core

Held for review

The exception-handling playbook — what happens, what to show your users, and how reviews resolve.

A held payment is not a failure. It is the system working as designed: something requires human judgment before funds move, and funds have not moved.

This page is the playbook for building your held-payment experience.

What happens on our side

The payment is held
Sirius Core flags the payment. The `payment.held` webhook fires with the reason category. Funds remain in your account.
Review
Our compliance team reviews the flag. Typical reviews resolve in hours. If we need additional context (for example, remittance documentation), we request it through your operations contact.
Resolution
The payment transitions to `cleared` (proceeds to settlement automatically) or `declined` (funds never moved). The corresponding webhook fires.

What to show your users

Do not show a raw error. A held payment deserves calm, specific copy:

Language Suggested copy
en "This payment is under a standard compliance review. Your funds have not moved. Most reviews complete within a few hours."
es "Este pago está en una revisión de cumplimiento estándar. Sus fondos no se han movido. La mayoría de las revisiones se completan en unas horas."
pt "Este pagamento está em uma revisão padrão de conformidade. Seus fundos não foram movimentados. A maioria das revisões é concluída em poucas horas."

Principles: - Say that funds have not moved — it is the single most reassuring true fact - Give the honest time expectation (hours, not "soon") - Never use the words "blocked", "frozen", or "flagged" in user-facing copy - Provide a reference (oz_pay_...) the user can cite to your support team

Building it

Subscribe to payment.held, payment.cleared, and payment.declined. In test mode, trigger a hold deterministically with a counterparty name containing HOLD and exercise your full flow before going live.