> ## Documentation Index
> Fetch the complete documentation index at: https://v2.docs.conduit.financial/llms.txt
> Use this file to discover all available pages before exploring further.

# TRAVEL_RULE_REJECTED error

> The receiving institution rejected the Travel Rule transfer, so the payout did not broadcast and no funds moved

## What happened

Your payout required a Travel Rule message to the receiving institution, but the institution rejected it before the on-chain broadcast. No funds were moved. The payout is in a terminal failed state with `failureCode: travel_rule_rejected`.

```json theme={null}
{
  "type": "TRAVEL_RULE_REJECTED",
  "title": "Travel Rule counterparty rejected",
  "status": 422,
  "detail": "The counterparty rejected the Travel Rule transfer before broadcast.",
  "resolution": "Confirm beneficiary details with the recipient institution and submit a new payout once the underlying issue is resolved.",
  "docs": "/errors#travel-rule-rejected",
  "instance": "/v2/payouts/txn_abc123/travel-rule/counterparty",
  "correlationId": "corr_xyz789",
  "timestamp": "2026-01-15T09:30:00.000Z"
}
```

## Common causes

* **Unrecognized beneficiary** -- the receiving institution could not match the destination address or account to a known entity
* **Policy mismatch** -- the originating or beneficiary information did not meet the receiving institution's compliance requirements
* **Unsupported corridor** -- the receiving institution does not accept Travel Rule messages for the requested corridor

## Recovery

<Warning>
  This is a terminal state. The payout cannot be recovered; a new payout must be
  submitted.
</Warning>

**1. Inspect the failure detail**

Read the payout to get the `failureMessage` field, which carries the institution's rejection reason when one was provided:

```bash theme={null}
curl -X GET https://api.conduit.financial/v2/payouts/txn_abc123 \
  -H "x-api-key: YOUR_API_KEY"
```

The `failureMessage` is the institution-supplied reason (if present). When absent, contact your account manager for the raw rejection detail.

**2. Investigate the destination**

Verify the destination address is associated with a regulated custodian that participates in Travel Rule messaging. Unhosted wallets or unsupported custodians cannot be matched during the Travel Rule exchange.

**3. Submit a new payout to a different destination**

Once the issue is resolved, submit a new payout with a corrected or alternative destination:

```bash theme={null}
curl -X POST https://api.conduit.financial/v2/payouts \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Idempotency-Key: idem_NEW_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "cus_abc123",
    "assetAmount": {"code": "USDC", "amount": "100.000000", "chain": "ethereum"},
    "destination": {
      "recipient": {
        "rail": "crypto",
        "chain": "ethereum",
        "address": "0xnew..."
      }
    }
  }'
```

## Prevention

* **Verify destination eligibility** -- confirm the destination address belongs to a custodian that supports Travel Rule before submitting high-value transfers
* **Handle `transaction.failed` with this code** -- use `failureCode === 'travel_rule_rejected'` to branch on this specific terminal state and surface the `failureMessage` to the relevant party

## Related webhooks

The `transaction.failed` event fires when the payout terminates:

```json theme={null}
{
  "type": "transaction.failed",
  "data": {
    "transactionId": "txn_abc123",
    "failureCode": "travel_rule_rejected",
    "failureMessage": "Beneficiary institution rejected the transfer: unrecognized address"
  }
}
```

`failureMessage` carries the institution-supplied reason when one was provided. When absent, the rejection had no machine-readable message.

## Related endpoints

* [GET /v2/payouts/:id](/api-reference/payouts/retrieve-a-payout) -- read payout state and failure details
* [POST /v2/payouts](/api-reference/payouts/create-a-payout) -- submit a new payout
* [POST /v2/sandbox/payouts/:id/simulate/counterparty-webhook](/sandbox/cheat-sheet) -- simulate a counterparty rejection in sandbox
