What happened
The transaction could not be completed due to a regulatory compliance review. No funds were moved. The transaction is in a terminal failed state withfailureCode: compliance_review_rejected.
This code is specific to a transaction declined in compliance screening — no funds moved, not retryable. It is distinct from two other compliance outcomes, so branch on the exact failureCode rather than treating them interchangeably:
COMPLIANCE_HOLD— funds frozen pending a manual review, not a clean decline.COMPLIANCE_REJECTED— a payout’s supporting documents were rejected; this one is retryable (it arrives ontransaction.rejected— upload new documents and resubmit).
COMPLIANCE_REVIEW_REJECTED.
Common causes
- Compliance review outcome — the transaction or counterparty returned a signal during compliance screening that prevents completion
- Transaction profile — the amount, corridor, or counterparty combination triggered a compliance rule
Recovery
1. Confirm the terminal statePrevention
- Handle
transaction.failedwith this code — branch onfailureCode === 'compliance_review_rejected'to surface a neutral “this transfer could not be processed” message; never disclose the compliance reason to the end user - Do not retry automatically — retrying without investigation does not change the outcome
Related webhooks
Thetransaction.failed event fires when compliance review rejects the transaction:
Related endpoints
- GET /v2/transactions/:id — read transaction state