Skip to main content

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"
  }
}