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

# Create recipient

> Create a saved transfer or settlement destination

## Overview

Create a saved recipient that can be reused across transfers and settlement configuration. Supported types: `BANK_ACCOUNT`, `CRYPTO_ADDRESS`, `US_BANK_ACCOUNT`, and `SWIFT_BANK_ACCOUNT`. Recipients are deduplicated by fingerprint — submitting the same account details will return the existing recipient rather than creating a duplicate.

<Note>
  **Tier 2 verification required for USD recipients:**

  * `customer_id` is **required** for `US_BANK_ACCOUNT` and `SWIFT_BANK_ACCOUNT` types.
  * The referenced customer must have completed [tier 2 verification](/api-reference/customers/submit-tier2-verification).
  * If the customer does not have a Bridge banking partner ID, USD recipient creation will fail.
</Note>

## Authentication

<ParamField header="X-Api-Key" type="string" required>
  Your merchant API key
</ParamField>

<ParamField header="X-Idempotency-Key" type="string" required>
  Unique idempotency key to prevent duplicate requests

  **Example:** `550e8400-e29b-41d4-a716-446655440000`
</ParamField>

## Request Body

<ParamField body="type" type="string" required>
  Recipient type

  **Allowed values:** `BANK_ACCOUNT` | `CRYPTO_ADDRESS` | `US_BANK_ACCOUNT` | `SWIFT_BANK_ACCOUNT`
</ParamField>

<ParamField body="customer_id" type="string">
  Customer ID to associate with this recipient (UUID). **Required** for `US_BANK_ACCOUNT` and `SWIFT_BANK_ACCOUNT` types. The customer must have completed tier 2 verification.

  **Example:** `650e8400-e29b-41d4-a716-446655440000`
</ParamField>

<ParamField body="bank_account" type="object">
  Bank account details. Required when `type` is `BANK_ACCOUNT`.

  <Expandable title="bank_account properties">
    <ParamField body="bank_account.account_number" type="string" required>
      Bank account number

      **Example:** `1234567890`
    </ParamField>

    <ParamField body="bank_account.bank_code" type="string" required>
      Bank code (e.g. CBN bank code)

      **Example:** `044`
    </ParamField>

    <ParamField body="bank_account.account_name" type="string">
      Account holder name. If omitted, the name will be resolved automatically.

      **Example:** `John Doe`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="crypto_address" type="object">
  Crypto address details. Required when `type` is `CRYPTO_ADDRESS`.

  <Expandable title="crypto_address properties">
    <ParamField body="crypto_address.asset" type="string" required>
      Crypto asset

      **Allowed values:** `USDC` | `USDT`
    </ParamField>

    <ParamField body="crypto_address.chain" type="string" required>
      Blockchain network

      **Allowed values:** `ETHEREUM` | `BASE` | `POLYGON` | `ARBITRUM` | `OPTIMISM` | `CELO`
    </ParamField>

    <ParamField body="crypto_address.address" type="string" required>
      Wallet address

      **Example:** `0x1234567890abcdef1234567890abcdef12345678`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="us_bank_account" type="object">
  US bank account details. Required when `type` is `US_BANK_ACCOUNT`.

  <Expandable title="us_bank_account properties">
    <ParamField body="us_bank_account.account_owner_name" type="string" required>
      Owner of the bank account. 1-256 characters.

      For ACH transfers must match: `^(?!\s*$)[\x20-\x7E]*$`.
      For wire transfers must match: ``^[ \w!"#$%&'()+,\-./:;<=>?@\\_`~]*$``.

      **Example:** `Jane Smith`
    </ParamField>

    <ParamField body="us_bank_account.account_number" type="string" required>
      Bank account number

      **Example:** `123456789`
    </ParamField>

    <ParamField body="us_bank_account.routing_number" type="string" required>
      Bank routing number

      **Example:** `021000021`
    </ParamField>

    <ParamField body="us_bank_account.bank_name" type="string" required>
      Bank name. 1-256 characters.

      **Example:** `Chase`
    </ParamField>

    <ParamField body="us_bank_account.account_type" type="string" required>
      Account type

      **Allowed values:** `checking` | `savings`
    </ParamField>

    <ParamField body="us_bank_account.payout_scheme" type="string" required>
      Payment scheme

      **Allowed values:** `ach` | `wire`
    </ParamField>

    <ParamField body="us_bank_account.address" type="object" required>
      Address of the beneficiary. Please ensure the address is valid. US addresses used to receive wires must include a street number.

      <Expandable title="address properties">
        <ParamField body="us_bank_account.address.street_line_1" type="string" required>
          Street address line 1 (4-35 characters)
        </ParamField>

        <ParamField body="us_bank_account.address.street_line_2" type="string">
          Street address line 2 (maximum 35 characters)
        </ParamField>

        <ParamField body="us_bank_account.address.city" type="string" required>
          City (minimum 1 character)
        </ParamField>

        <ParamField body="us_bank_account.address.state" type="string">
          ISO 3166-2 subdivision code. Must be supplied for US addresses (1-3 characters).
        </ParamField>

        <ParamField body="us_bank_account.address.postal_code" type="string">
          Postal code. Must be supplied for countries that use postal codes.
        </ParamField>

        <ParamField body="us_bank_account.address.country" type="string" required>
          ISO 3166-1 alpha-3 country code (3 characters). Example: `USA`.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="swift_bank_account" type="object">
  SWIFT bank account details. Required when `type` is `SWIFT_BANK_ACCOUNT`. For individual recipients, provide `first_name` and `last_name`. For business recipients, provide `business_name`.

  <Expandable title="swift_bank_account properties">
    <ParamField body="swift_bank_account.account_owner_name" type="string" required>
      Owner of the bank account. 1-256 characters.

      For ACH transfers must match: `^(?!\s*$)[\x20-\x7E]*$`.
      For wire transfers must match: ``^[ \w!"#$%&'()+,\-./:;<=>?@\\_`~]*$``.

      **Example:** `Hans Mueller`
    </ParamField>

    <ParamField body="swift_bank_account.account_owner_type" type="string" required>
      Owner type. For `individual` ownership, `first_name` and `last_name` are required. For `business` ownership, `business_name` is required.

      **Allowed values:** `individual` | `business`
    </ParamField>

    <ParamField body="swift_bank_account.account_country" type="string" required>
      ISO 3166-1 alpha-3 country code where the bank account is held (3 characters).

      **Example:** `DEU`
    </ParamField>

    <ParamField body="swift_bank_account.iban" type="string" required>
      International Bank Account Number that will be used to send the funds. Minimum length 1.

      **Example:** `DE89370400440532013000`
    </ParamField>

    <ParamField body="swift_bank_account.bic" type="string">
      Bank Identifier Code that will be used to send the funds. Minimum length 1. Optional.

      **Example:** `COBADEFFXXX`
    </ParamField>

    <ParamField body="swift_bank_account.bank_name" type="string">
      Bank name. 1-256 characters. Optional.

      **Example:** `Commerzbank`
    </ParamField>

    <ParamField body="swift_bank_account.first_name" type="string">
      First name. Required when `account_owner_type` is `individual`.
    </ParamField>

    <ParamField body="swift_bank_account.last_name" type="string">
      Last name. Required when `account_owner_type` is `individual`.
    </ParamField>

    <ParamField body="swift_bank_account.business_name" type="string">
      Business name. Required when `account_owner_type` is `business`.
    </ParamField>

    <ParamField body="swift_bank_account.category" type="string" required>
      The context of business operations.

      **Allowed values:** `client` | `parent_company` | `subsidiary` | `supplier`
    </ParamField>

    <ParamField body="swift_bank_account.purpose_of_funds" type="array" required>
      The nature of the transactions this account will participate in. At least one value required.

      **Allowed values:** `intra_group_transfer` | `invoice_for_goods_and_services`
    </ParamField>

    <ParamField body="swift_bank_account.short_business_description" type="string" required>
      How the business uses the funds.
    </ParamField>

    <ParamField body="swift_bank_account.address" type="object" required>
      Address of the beneficiary. Please ensure the address is valid. US addresses used to receive wires must include a street number.

      <Expandable title="address properties">
        <ParamField body="swift_bank_account.address.street_line_1" type="string" required>
          Street address line 1 (4-35 characters)
        </ParamField>

        <ParamField body="swift_bank_account.address.street_line_2" type="string">
          Street address line 2 (maximum 35 characters)
        </ParamField>

        <ParamField body="swift_bank_account.address.city" type="string" required>
          City (minimum 1 character)
        </ParamField>

        <ParamField body="swift_bank_account.address.state" type="string">
          ISO 3166-2 subdivision code. Must be supplied for US addresses (1-3 characters).
        </ParamField>

        <ParamField body="swift_bank_account.address.postal_code" type="string">
          Postal code. Must be supplied for countries that use postal codes.
        </ParamField>

        <ParamField body="swift_bank_account.address.country" type="string" required>
          ISO 3166-1 alpha-3 country code (3 characters). Example: `DEU`.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="swift_bank_account.bank_address" type="object" required>
      Bank address. Same shape as `swift_bank_account.address`. `country` must be an ISO 3166-1 alpha-3 code.
    </ParamField>
  </Expandable>
</ParamField>

## Request Example

<CodeGroup>
  ```bash cURL - Bank Account theme={null}
  curl --request POST \
    --url https://api.daya.co/v1/recipients \
    --header 'X-Api-Key: YOUR_API_KEY' \
    --header 'X-Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000' \
    --header 'Content-Type: application/json' \
    --data '{
      "type": "BANK_ACCOUNT",
      "bank_account": {
        "account_number": "1234567890",
        "bank_code": "044",
        "account_name": "John Doe"
      }
    }'
  ```

  ```bash cURL - Crypto Address theme={null}
  curl --request POST \
    --url https://api.daya.co/v1/recipients \
    --header 'X-Api-Key: YOUR_API_KEY' \
    --header 'X-Idempotency-Key: 660e8400-e29b-41d4-a716-446655440000' \
    --header 'Content-Type: application/json' \
    --data '{
      "type": "CRYPTO_ADDRESS",
      "crypto_address": {
        "asset": "USDC",
        "chain": "BASE",
        "address": "0x1234567890abcdef1234567890abcdef12345678"
      }
    }'
  ```

  ```javascript JavaScript - Bank Account theme={null}
  const response = await fetch("https://api.daya.co/v1/recipients", {
    method: "POST",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "X-Idempotency-Key": "550e8400-e29b-41d4-a716-446655440000",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      type: "BANK_ACCOUNT",
      bank_account: {
        account_number: "1234567890",
        bank_code: "044",
        account_name: "John Doe",
      },
    }),
  });

  const recipient = await response.json();
  ```

  ```bash cURL - US Bank Account theme={null}
  curl --request POST \
    --url https://api.daya.co/v1/recipients \
    --header 'X-Api-Key: YOUR_API_KEY' \
    --header 'X-Idempotency-Key: 770e8400-e29b-41d4-a716-446655440000' \
    --header 'Content-Type: application/json' \
    --data '{
      "type": "US_BANK_ACCOUNT",
      "customer_id": "650e8400-e29b-41d4-a716-446655440000",
      "us_bank_account": {
        "account_owner_name": "Jane Smith",
        "account_number": "123456789",
        "routing_number": "021000021",
        "bank_name": "Chase",
        "account_type": "checking",
        "payout_scheme": "ach",
        "address": {
          "street_line_1": "123 Main St",
          "city": "New York",
          "state": "NY",
          "postal_code": "10001",
          "country": "USA"
        }
      }
    }'
  ```

  ```bash cURL - SWIFT Bank Account (individual) theme={null}
  curl --request POST \
    --url https://api.daya.co/v1/recipients \
    --header 'X-Api-Key: YOUR_API_KEY' \
    --header 'X-Idempotency-Key: 880e8400-e29b-41d4-a716-446655440000' \
    --header 'Content-Type: application/json' \
    --data '{
      "type": "SWIFT_BANK_ACCOUNT",
      "customer_id": "650e8400-e29b-41d4-a716-446655440000",
      "swift_bank_account": {
        "account_owner_name": "Hans Mueller",
        "account_owner_type": "individual",
        "first_name": "Hans",
        "last_name": "Mueller",
        "account_country": "DEU",
        "iban": "DE89370400440532013000",
        "bic": "COBADEFFXXX",
        "bank_name": "Commerzbank",
        "category": "client",
        "purpose_of_funds": ["invoice_for_goods_and_services"],
        "short_business_description": "Receives payments for design services",
        "address": {
          "street_line_1": "Kaiserstrasse 16",
          "city": "Frankfurt",
          "postal_code": "60311",
          "country": "DEU"
        },
        "bank_address": {
          "street_line_1": "Kaiserplatz",
          "city": "Frankfurt",
          "postal_code": "60311",
          "country": "DEU"
        }
      }
    }'
  ```
</CodeGroup>

## Response

<ResponseField name="id" type="string" required>
  Unique recipient identifier (UUID)
</ResponseField>

<ResponseField name="type" type="string" required>
  Recipient type (`BANK_ACCOUNT`, `CRYPTO_ADDRESS`, `US_BANK_ACCOUNT`, or `SWIFT_BANK_ACCOUNT`)
</ResponseField>

<ResponseField name="first_name" type="string">
  Recipient first name (resolved from account details)
</ResponseField>

<ResponseField name="last_name" type="string">
  Recipient last name (resolved from account details)
</ResponseField>

<ResponseField name="bank_account" type="object">
  Bank account details. Present when `type` is `BANK_ACCOUNT`, `null` otherwise.

  <Expandable title="bank_account properties">
    <ResponseField name="bank_account.account_number" type="string">
      Bank account number
    </ResponseField>

    <ResponseField name="bank_account.account_name" type="string">
      Resolved account holder name
    </ResponseField>

    <ResponseField name="bank_account.bank_code" type="string">
      Bank code
    </ResponseField>

    <ResponseField name="bank_account.bank_name" type="string">
      Resolved bank name
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="crypto_address" type="object">
  Crypto address details. Present when `type` is `CRYPTO_ADDRESS`, `null` otherwise.

  <Expandable title="crypto_address properties">
    <ResponseField name="crypto_address.asset" type="string">
      Crypto asset (`USDC` or `USDT`)
    </ResponseField>

    <ResponseField name="crypto_address.chain" type="string">
      Blockchain network
    </ResponseField>

    <ResponseField name="crypto_address.address" type="string">
      Wallet address
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="us_bank_account" type="object">
  US bank account details. Present when `type` is `US_BANK_ACCOUNT`, `null` otherwise.

  <Expandable title="us_bank_account properties">
    <ResponseField name="us_bank_account.account_owner_name" type="string">
      Account owner name
    </ResponseField>

    <ResponseField name="us_bank_account.account_number_last4" type="string">
      Last 4 digits of account number
    </ResponseField>

    <ResponseField name="us_bank_account.routing_number" type="string">
      Routing number
    </ResponseField>

    <ResponseField name="us_bank_account.bank_name" type="string">
      Bank name
    </ResponseField>

    <ResponseField name="us_bank_account.account_type" type="string">
      Account type (`checking` or `savings`)
    </ResponseField>

    <ResponseField name="us_bank_account.payout_scheme" type="string">
      Payment scheme (`ach` or `wire`)
    </ResponseField>

    <ResponseField name="us_bank_account.address" type="object">
      Recipient address
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="swift_bank_account" type="object">
  SWIFT bank account details. Present when `type` is `SWIFT_BANK_ACCOUNT`, `null` otherwise.

  <Expandable title="swift_bank_account properties">
    <ResponseField name="swift_bank_account.account_owner_name" type="string">
      Account owner name
    </ResponseField>

    <ResponseField name="swift_bank_account.account_owner_type" type="string">
      Owner type (`individual` or `business`)
    </ResponseField>

    <ResponseField name="swift_bank_account.account_country" type="string">
      ISO 3166-1 alpha-3 country code
    </ResponseField>

    <ResponseField name="swift_bank_account.iban_last4" type="string">
      Last 4 digits of IBAN
    </ResponseField>

    <ResponseField name="swift_bank_account.bic" type="string">
      Bank Identifier Code
    </ResponseField>

    <ResponseField name="swift_bank_account.bank_name" type="string">
      Bank name
    </ResponseField>

    <ResponseField name="swift_bank_account.first_name" type="string">
      First name (present when `account_owner_type` is `individual`)
    </ResponseField>

    <ResponseField name="swift_bank_account.last_name" type="string">
      Last name (present when `account_owner_type` is `individual`)
    </ResponseField>

    <ResponseField name="swift_bank_account.business_name" type="string">
      Business name (present when `account_owner_type` is `business`)
    </ResponseField>

    <ResponseField name="swift_bank_account.category" type="string">
      Recipient category
    </ResponseField>

    <ResponseField name="swift_bank_account.purpose_of_funds" type="array">
      Purpose of funds
    </ResponseField>

    <ResponseField name="swift_bank_account.short_business_description" type="string">
      Short business description
    </ResponseField>

    <ResponseField name="swift_bank_account.address" type="object">
      Recipient address
    </ResponseField>

    <ResponseField name="swift_bank_account.bank_address" type="object">
      Bank address
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="created_at" type="string" required>
  When the recipient was created (ISO 8601 timestamp)
</ResponseField>

### Success Response

<ResponseExample>
  ```json 201 Created - Bank Account theme={null}
  {
    "id": "750e8400-e29b-41d4-a716-446655440000",
    "type": "BANK_ACCOUNT",
    "first_name": "John",
    "last_name": "Doe",
    "bank_account": {
      "account_number": "1234567890",
      "account_name": "John Doe",
      "bank_code": "044",
      "bank_name": "Access Bank"
    },
    "crypto_address": null,
    "created_at": "2026-01-05T15:04:05Z"
  }
  ```

  ```json 201 Created - Crypto Address theme={null}
  {
    "id": "850e8400-e29b-41d4-a716-446655440000",
    "type": "CRYPTO_ADDRESS",
    "first_name": null,
    "last_name": null,
    "bank_account": null,
    "crypto_address": {
      "asset": "USDC",
      "chain": "BASE",
      "address": "0x1234567890abcdef1234567890abcdef12345678"
    },
    "created_at": "2026-01-05T15:04:05Z"
  }
  ```

  ```json 201 Created - US Bank Account theme={null}
  {
    "id": "950e8400-e29b-41d4-a716-446655440000",
    "type": "US_BANK_ACCOUNT",
    "first_name": "Jane",
    "last_name": "Smith",
    "us_bank_account": {
      "account_owner_name": "Jane Smith",
      "account_number_last4": "6789",
      "routing_number": "021000021",
      "bank_name": "Chase",
      "account_type": "checking",
      "payout_scheme": "ach",
      "address": {
        "street_line_1": "123 Main St",
        "city": "New York",
        "state": "NY",
        "postal_code": "10001",
        "country": "USA"
      }
    },
    "created_at": "2026-01-05T15:04:05Z"
  }
  ```

  ```json 201 Created - SWIFT Bank Account theme={null}
  {
    "id": "a50e8400-e29b-41d4-a716-446655440000",
    "type": "SWIFT_BANK_ACCOUNT",
    "first_name": "Hans",
    "last_name": "Mueller",
    "swift_bank_account": {
      "account_owner_name": "Hans Mueller",
      "account_owner_type": "individual",
      "first_name": "Hans",
      "last_name": "Mueller",
      "account_country": "DEU",
      "iban_last4": "3000",
      "bic": "COBADEFFXXX",
      "bank_name": "Commerzbank",
      "category": "client",
      "purpose_of_funds": ["personal_or_living_expenses"],
      "short_business_description": "Personal account for living expenses",
      "address": {
        "street_line_1": "Kaiserstrasse 16",
        "city": "Frankfurt",
        "postal_code": "60311",
        "country": "DEU"
      },
      "bank_address": {
        "street_line_1": "Kaiserplatz",
        "city": "Frankfurt",
        "postal_code": "60311",
        "country": "DEU"
      }
    },
    "created_at": "2026-01-05T15:04:05Z"
  }
  ```
</ResponseExample>

## Error Responses

<ResponseExample>
  ```json 400 Bad Request - Validation failed theme={null}
  {
    "error": {
      "code": "validation_failed",
      "message": "Validation failed",
      "details": "bank_account is required when type is BANK_ACCOUNT"
    }
  }
  ```

  ```json 401 Unauthorized theme={null}
  {
    "error": {
      "code": "unauthorized",
      "message": "Invalid or missing API key"
    }
  }
  ```
</ResponseExample>

## Notes

* Recipients are deduplicated by fingerprint. If you submit the same account details, the existing recipient is returned instead of creating a duplicate.
* When `account_name` is omitted for a `BANK_ACCOUNT` recipient, the name is resolved automatically from the bank.
* `customer_id` is optional for `BANK_ACCOUNT` and `CRYPTO_ADDRESS` types, but **required** for `US_BANK_ACCOUNT` and `SWIFT_BANK_ACCOUNT` types.
* For USD recipient types, the referenced customer must have completed tier 2 verification and have a Bridge banking partner ID.
* For `US_BANK_ACCOUNT` and `SWIFT_BANK_ACCOUNT`, the `address.country` field must be an ISO 3166-1 alpha-3 country code (e.g. `USA`, `DEU`, `GBR`).

## Next Steps

<CardGroup cols={2}>
  <Card title="List recipients" icon="list" href="/api-reference/recipients/list-recipients">
    Retrieve all saved recipients
  </Card>

  <Card title="Get recipient" icon="magnifying-glass" href="/api-reference/recipients/get-recipient">
    Look up a single recipient by ID
  </Card>
</CardGroup>
