Skip to main content
POST
/
v1
/
recipients
Create recipient
curl --request POST \
  --url https://api.daya.co/v1/recipients \
  --header 'Content-Type: application/json' \
  --header 'X-Api-Key: <x-api-key>' \
  --header 'X-Idempotency-Key: <x-idempotency-key>' \
  --data '
{
  "type": "<string>",
  "customer_id": "<string>",
  "bank_account": {
    "bank_account.account_number": "<string>",
    "bank_account.bank_code": "<string>",
    "bank_account.account_name": "<string>"
  },
  "crypto_address": {
    "crypto_address.asset": "<string>",
    "crypto_address.chain": "<string>",
    "crypto_address.address": "<string>"
  },
  "us_bank_account": {
    "us_bank_account.account_owner_name": "<string>",
    "us_bank_account.account_number": "<string>",
    "us_bank_account.routing_number": "<string>",
    "us_bank_account.bank_name": "<string>",
    "us_bank_account.account_type": "<string>",
    "us_bank_account.payout_scheme": "<string>",
    "us_bank_account.address": {
      "us_bank_account.address.street_line_1": "<string>",
      "us_bank_account.address.street_line_2": "<string>",
      "us_bank_account.address.city": "<string>",
      "us_bank_account.address.state": "<string>",
      "us_bank_account.address.postal_code": "<string>",
      "us_bank_account.address.country": "<string>"
    }
  },
  "swift_bank_account": {
    "swift_bank_account.account_owner_name": "<string>",
    "swift_bank_account.account_owner_type": "<string>",
    "swift_bank_account.account_country": "<string>",
    "swift_bank_account.iban": "<string>",
    "swift_bank_account.bic": "<string>",
    "swift_bank_account.bank_name": "<string>",
    "swift_bank_account.first_name": "<string>",
    "swift_bank_account.last_name": "<string>",
    "swift_bank_account.business_name": "<string>",
    "swift_bank_account.category": "<string>",
    "swift_bank_account.purpose_of_funds": [
      {}
    ],
    "swift_bank_account.short_business_description": "<string>",
    "swift_bank_account.address": {
      "swift_bank_account.address.street_line_1": "<string>",
      "swift_bank_account.address.street_line_2": "<string>",
      "swift_bank_account.address.city": "<string>",
      "swift_bank_account.address.state": "<string>",
      "swift_bank_account.address.postal_code": "<string>",
      "swift_bank_account.address.country": "<string>"
    },
    "swift_bank_account.bank_address": {}
  }
}
'
{
  "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"
}

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.
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.
  • If the customer does not have a Bridge banking partner ID, USD recipient creation will fail.

Authentication

X-Api-Key
string
required
Your merchant API key
X-Idempotency-Key
string
required
Unique idempotency key to prevent duplicate requestsExample: 550e8400-e29b-41d4-a716-446655440000

Request Body

type
string
required
Recipient typeAllowed values: BANK_ACCOUNT | CRYPTO_ADDRESS | US_BANK_ACCOUNT | SWIFT_BANK_ACCOUNT
customer_id
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
bank_account
object
Bank account details. Required when type is BANK_ACCOUNT.
crypto_address
object
Crypto address details. Required when type is CRYPTO_ADDRESS.
us_bank_account
object
US bank account details. Required when type is US_BANK_ACCOUNT.
swift_bank_account
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.

Request Example

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

Response

id
string
required
Unique recipient identifier (UUID)
type
string
required
Recipient type (BANK_ACCOUNT, CRYPTO_ADDRESS, US_BANK_ACCOUNT, or SWIFT_BANK_ACCOUNT)
first_name
string
Recipient first name (resolved from account details)
last_name
string
Recipient last name (resolved from account details)
bank_account
object
Bank account details. Present when type is BANK_ACCOUNT, null otherwise.
crypto_address
object
Crypto address details. Present when type is CRYPTO_ADDRESS, null otherwise.
us_bank_account
object
US bank account details. Present when type is US_BANK_ACCOUNT, null otherwise.
swift_bank_account
object
SWIFT bank account details. Present when type is SWIFT_BANK_ACCOUNT, null otherwise.
created_at
string
required
When the recipient was created (ISO 8601 timestamp)

Success Response

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

Error Responses

{
  "error": {
    "code": "validation_failed",
    "message": "Validation failed",
    "details": "bank_account is required when type is BANK_ACCOUNT"
  }
}

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

List recipients

Retrieve all saved recipients

Get recipient

Look up a single recipient by ID