Skip to main content

What happened

You submitted a payout with purpose: INTERCOMPANY but the destination bank account has no corresponding REGISTERED whitelist recipient for this customer. This returns HTTP 422 with error code RECIPIENT_NOT_WHITELISTED.
{
  "type": "RECIPIENT_NOT_WHITELISTED",
  "title": "Recipient Not Whitelisted",
  "status": 422,
  "detail": "No registered whitelist recipient matches the destination bank account for this customer.",
  "resolution": "Register the recipient via POST /v2/customers/:id/whitelist-recipients and wait for REGISTERED status before submitting the payout.",
  "docs": "/errors#recipient-not-whitelisted",
  "instance": "/v2/payouts",
  "correlationId": "corr_xyz789",
  "timestamp": "2026-01-15T09:30:00.000Z"
}

Common causes

  • No registration submitted — the destination account has never been registered as a whitelist recipient for this customer
  • Registration still in review — a registration exists but its status is PENDING_REVIEW, not REGISTERED
  • Registration rejected or revoked — the entry was declined or cancelled and no active replacement exists

Recovery

1. Check existing registrations for the customer
curl -X GET https://api.conduit.financial/v2/customers/cus_abc123/whitelist-recipients \
  -H "x-api-key: YOUR_API_KEY"
Look for an entry with status: REGISTERED whose accountIdentifier matches the destination account number or IBAN. 2. If no registration exists, submit one Upload evidence documents first (ownership chart, inter-company agreement, or bank statement):
curl -X POST https://api.conduit.financial/v2/documents \
  -H "x-api-key: YOUR_API_KEY" \
  -F "file=@ownership-chart.pdf;type=application/pdf" \
  -F "purpose=transaction_support"
Then register the recipient:
curl -X POST https://api.conduit.financial/v2/customers/cus_abc123/whitelist-recipients \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Idempotency-Key: NEW_IDEMPOTENCY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "rail": "US",
    "routingNumber": "021000021",
    "accountNumber": "1234567890",
    "holderName": "Acme Holdings LLC",
    "relationship": "GROUP_ENTITY",
    "evidenceDocumentIds": ["doc_abc123"]
  }'
3. Wait for compliance review The registration starts in PENDING_REVIEW. Conduit will notify you via webhook when the review is complete:
{
  "type": "whitelist_recipient.registered",
  "data": {
    "whitelistRecipientId": "wlr_abc123",
    "status": "REGISTERED"
  }
}
Do not poll for status. Listen for the whitelist_recipient.registered or whitelist_recipient.rejected webhook events.
4. Once REGISTERED, resubmit the payout
curl -X POST https://api.conduit.financial/v2/payouts \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Idempotency-Key: NEW_IDEMPOTENCY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "cus_abc123",
    "virtualAccountId": "vac_abc123",
    "assetAmount": {"code": "USD", "amount": "5000.00"},
    "purpose": "INTERCOMPANY",
    "destination": {
      "recipient": {
        "rail": "us",
        "type": "BUSINESS",
        "legalName": "Acme Holdings LLC",
        "accountNumber": "1234567890",
        "routingNumber": "021000021",
        "accountType": "CHECKING"
      }
    }
  }'

Prevention

  • Register recipients ahead of time — whitelist registration requires compliance review; submit the registration well before you intend to send funds
  • Listen for whitelist_recipient.registered — trigger your payout flow from the webhook, not from a timer or poll
  • Track registration state in your system — maintain a local map of (customerId, accountNumber)whitelistRecipientId and its status so you can gate payout submission on REGISTERED