What happened
AML screening rejected the transaction. No funds were moved. The transaction is in a terminal failed state with failureCode: AML_REJECTED.
Important: sanctions-class screening signals also route through AML_REJECTED under the active compliance policy. There is no separate AML_SANCTIONED code on the public surface. If you need to distinguish a sanctions match from a general AML rejection in your integration, branch on failureCode === 'AML_REJECTED' and contact support for the case-level detail.
For compliance holds on deposits where funds are frozen rather than rejected, see COMPLIANCE_HOLD.
{
"type": "AML_REJECTED",
"title": "Transaction declined: compliance review required",
"status": 422,
"detail": "This transaction could not be completed due to a regulatory compliance review.",
"resolution": "Contact support. This transaction cannot be retried without a compliance review.",
"docs": "/errors#aml-rejected",
"instance": "/v2/transactions/txn_abc123",
"correlationId": "corr_xyz789",
"timestamp": "2026-01-15T09:30:00.000Z"
}
Common causes
- AML screening result — the transaction or counterparty returned an elevated-risk signal during compliance screening
- Sanctions screening match — wallet screening identified a match against a sanctions list; this surfaces as
AML_REJECTED (see note above)
- Transaction profile — the amount, corridor, or counterparty combination triggered a compliance rule
Recovery
This is a terminal state. No funds were moved. Do not resubmit the same
transaction without contacting support.
1. Confirm the terminal state
curl -X GET https://api.conduit.financial/v2/transactions/txn_abc123 \
-H "x-api-key: YOUR_API_KEY"
2. Contact support
Provide the transaction ID, the affected customer ID, and any context about the transaction. The compliance team will advise on next steps. A new transaction for the same customer or counterparty is unlikely to succeed without a prior resolution.
Prevention
- Handle
transaction.failed with this code — branch on failureCode === 'AML_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 AML rejections without investigation flags additional transactions and does not change the outcome
The transaction.failed event fires when screening rejects the transaction:
{
"type": "transaction.failed",
"data": {
"transactionId": "txn_abc123",
"failureCode": "AML_REJECTED"
}
}