# Add a financial instrument (v3)

Create a financial instrument for the specified identity. The request body must include the payment rail (financialInstrumentType), currency or asset code, and the rail-specific details (for example, US ACH account numbers or a wallet address).
In the current release, each identity can have one financial instrument.
Future releases will support multiple instruments per identity.

Endpoint: POST /v3/identities/{identity-id}/financial-instruments
Version: 2026.04
Security: Bearer

## Path parameters:

  - `identity-id` (string, required)
    Unique identifier of the identity that will own the financial instrument.
    Example: "2f4ac57f-c5ba-4051-b51f-b3565778717b"

## Request fields (application/json):

  - `usAch` (object)
    Rails: RTP, ACH

Rail Definitions:

RTP:
  - Availability: 24/7/365
  - Limit: $5,000,000
  - Settlement: <5 minutes
  - Cut-off time: None
  - Banking holidays: Not applicable

ACH:
  - Availability: Business days only
  - Limit: $1,000,000
  - Settlement: Same-day
  - Cut-off time: 3:00 PM EST
  - Banking holidays: U.S. banking holidays apply

Routing Evaluation Order:

  1. RTP
     - Conditions: beneficiary account is RTP-addressable AND amount ≤ $5,000,000
  2. ACH
     - Conditions: otherwise applicable

  - `usAch.bankName` (string, required)
    The name of the identity's bank

  - `usAch.bankRoutingNumber` (string, required)
    The identity's bank routing number

  - `usAch.accountNumber` (string, required)
    The identity's account number into which the funds must be credited

  - `usAch.accountType` (string, required)
    The identity’s account type.

  - `usFedwire` (object)
    Rails: FEDWIRE

Rail Definitions:

FEDWIRE:
  - Availability: U.S. business days and operating hours.
  - Limit: No limit
  - Settlement: Real-time gross settlement (typically within minutes).
  - Cut-off time: 5:00 p.m. ET; transfers submitted after cut-off queue for next business day.
  - Banking holidays: Follows the Federal Reserve holiday schedule.

  - `usFedwire.bankName` (string, required)
    The name of the identity's bank.

  - `usFedwire.bankRoutingNumber` (string, required)
    9-digit ABA Routing Transit Number (RTN) of the beneficiary’s bank.

  - `usFedwire.accountNumber` (string, required)
    The identity's account number to be credited.

  - `mxSpei` (object)
    Rails: SPEI

Rail Definitions:

SPEI:
- Availability: 24/7/365
- Limit: None
- Settlement: Instant
- Cut-off time: None
- Banking holidays: Not applicable

Routing Evaluation Order: Not applicable

  - `mxSpei.bankName` (string, required)
    The name of the identity's bank

  - `mxSpei.clabe` (string, required)
    The identity's CLABE account identification code

  - `euSepa` (object)
    Rails: SCT Inst, SCT

Rail Definitions:

SCT Inst:
- Availability: 24/7/365
- Limit: €100,000 (bank-dependent)
- Settlement: Instant
- Cut-off time: None
- Banking holidays: Not applicable

SCT:
- Availability: Business days only
- Limit: No limit
- Settlement: T+2 to T+5 
- Cut-off time: 3:00PM GMT/BST
- Banking holidays: TARGET2 holidays apply

Routing Evaluation Order:

  1. SCT Inst  
     - Conditions: beneficiary account is SCT Inst-addressable AND amount ≤ €100,000
  2. SCT  
     - Conditions: otherwise applicable

  - `euSepa.bankName` (string, required)
    The name of the identity's bank

  - `euSepa.iban` (string, required)
    The International Bank Account Number (IBAN) of the identity's account

  - `gbFps` (object)
    Rails: FPS, CHAPS

Rail Definitions:

FPS:
- Availability: 24/7/365
- Limit: £1,000,000
- Settlement: Instant
- Cut-off time: None
- Banking holidays: Not applicable

CHAPS:
- Availability: Business days only
- Limit: No limit
- Settlement: Same-day
- Cut-off time: Typically 5:00 PM GMT/BST (bank-dependent)
- Banking holidays: UK banking holidays apply

Routing Evaluation Order:
  1. FPS  
     - Conditions: beneficiary account is FPS-addressable AND amount ≤ £1,000,000
  2. CHAPS  
     - Conditions: otherwise applicable

  - `gbFps.bankName` (string, required)
    The name of the identity's bank

  - `gbFps.sortCode` (string, required)
    The sort code of the identity's bank account

  - `gbFps.accountNumber` (string, required)
    The account number of the identity's bank account

  - `ngBankPayout` (object)
    Rails: Bank Payout

Rail Definitions:

Bank Payout:
- Availability: Country-dependant
- Limit:
- Nigeria: ₦5,000,000
- Settlement: Real time to 48 hours
- Cut-off time: Real time
- Banking holidays: Nigeria banking holidays apply

Routing Evaluation Order: Not applicable

  - `ngBankPayout.bankName` (string, required)
    The name of the identity's bank

  - `ngBankPayout.bankCode` (string, required)
    The bank code of the identity's bank

  - `ngBankPayout.accountNumber` (string, required)
    The identity's account number associated with the Account Identification Scheme

  - `brPix` (object)
    Rails: PIX

Rail Definitions:

PIX:
- Availability: 24/7/365
- Limit: No limit
- Settlement: Instant
- Cut-off time: None
- Banking holidays: Not applicable

Routing Evaluation Order: Not applicable

  - `brPix.bankName` (string, required)
    The name of the identity's bank

  - `brPix.bankCode` (string, required)
    The code of the identity's bank (BICFI code)

  - `brPix.branchNumber` (string, required)
    The identity's bank branch number

  - `brPix.pixKey` (string, required)
    The identity's PIX key, which can be an email, phone number, or a hash

  - `brPix.pixKeyType` (string, required)
    The type of PIX key used by the identity.

  - `coPse` (object)
    Rails: PSE

Rail Definitions:

PSE:
- Availability: Business days and banking hours only
- Limit: None
- Settlement: 
	- Major banks (Bancolombia, Davivienda, Banco de Bogotá, BBVA, Grupo Aval, Nequi): 35–100 min
	- Other banks (via ACH): Same-day or T+1 depending on cutoff
- Cut-off time: 3PM COT
- Banking holidays: Colombia banking holidays apply

Routing Evaluation Order: Not applicable

  - `coPse.bankName` (string, required)
    The name of the identity's bank

  - `coPse.bankCode` (string, required)
    The identity's bank identifier code

  - `coPse.accountNumber` (string, required)
    The identity's account number associated with the Account Identification Scheme

  - `coPse.accountType` (string, required)
    The type of account associated with the identity.

  - `brTed` (object)
    Rails: TED

Rail Definitions:

TED:
- Availability: Business days only
- Limit: No limit
- Settlement: Same-day
- Cut-off time: ~5:00 PM BRT 
- Banking holidays: Brazil banking holidays apply

Routing Evaluation Order: Not applicable

  - `brTed.bankName` (string, required)
    The name of the identity's bank

  - `brTed.bankCode` (string, required)
    The code of the identity's bank (BICFI code)

  - `brTed.branchNumber` (string, required)
    The branch number of the identity's bank account

  - `brTed.accountNumber` (string, required)
    The identity's account number associated with the Account Identification Scheme

  - `brTed.accountType` (string, required)
    The identity's account type (Savings, Checking etc.)
    Example: "SAVINGS"

  - `caEft` (object)
    Rails: EFT

Rail Definitions:

EFT:
- Availability: Business days only
- Limit: CAD 1,000,000
- Settlement: T+1
- Cut-off time: ~4:30 PM EST
- Banking holidays: Canadian banking holidays apply

Routing Evaluation Order: Not applicable

  - `caEft.bankName` (string, required)
    The name of the identity's bank

  - `caEft.institutionNumber` (string, required)
    The institution number of the identity's bank

  - `caEft.transitNumber` (string, required)
    The transit number of the identity's bank account

  - `caEft.accountNumber` (string, required)
    The identity's account number associated with the Account Identification Scheme

  - `caEft.accountType` (string, required)
    The identity’s account type.

  - `currency` (string, required)
    The 3-letter ISO currency code of the financial instrument.
    Example: "MXN"

  - `label` (string)
    A user-defined label for the financial instrument.
    Example: "mexico bank account"

  - `financialInstrumentType` (string, required)
    The type of financial instrument or payment rail used for executing the transaction.
This determines the structure and validation of account details required for the payout.
    Example: "BR_PIX"

## Response 201 fields (application/json):

  - `financialInstrumentId` (string, required)
    The unique ID of the financial instrument
    Example: "2f4ac57f-c5ba-4051-b51f-b3565778717b"

## Response 400 fields (application/json):

  - `status` (integer, required)
    The HTTP status code of the error
    Example: 404

  - `errors` (array, required)

  - `errors.code` (string, required)
    Unique identifier of an error
    Example: "SYS_100"

  - `errors.title` (string, required)
    Error message providing a brief summary of the error
    Example: "No identity exists for identityId"

  - `errors.type` (string, required)
    Identifies the problem type
    Example: "USER_VALIDATION_ERROR"

  - `errors.description` (string, required)
    Provides more technical information
    Example: "Unable to get identity. Identity ID should be in UUID format"

  - `errors.timestamp` (string, required)
    The time when this error occurred, specified in UTC.
    Example: "2023-11-02T18:26:00.000123Z"

  - `timestamp` (string)
    The timestamp of the error
    Example: "2023-11-02T18:26:00.000Z"


