Skip to main content
POST
Create an instrument for a beneficiary

Authorizations

DPoP
string
header
required

Per-request DPoP proof JWT (RFC 9449). MUST accompany the Authorization: DPoP <access_token> header on every protected operation. The proof is signed by the merchant's private DPoP key and carries htm, htu, iat, jti, and ath claims.

Headers

Idempotency-Key
string
required

Unique key identifying this operation. Sending the same key twice returns the original response instead of creating a duplicate. Keys are retained for 24 hours.

Maximum string length: 255

Path Parameters

id
string
required
Pattern: ^ben_[a-zA-Z0-9]+$

Body

application/json

Create an instrument attached to a beneficiary.

The credentials object shape varies by method. A few common shapes:

  • iban: { "iban": "GB82WEST12345698765432", "bic": "WESTGB22" } (BIC optional)
  • uk_bank: { "account_number": "12345678", "sort_code": "123456" }
  • us_bank: { "routing_number": "026073150", "account_number": "...", "account_type": "checking" }
  • crypto: { "wallet_address": "0x...", "network": "ethereum", "token_symbol": "USDC" }
  • card: { "pan": "...", "expiry_month": 12, "expiry_year": 2028 } (routed through PCI vault)

Call GET /v1/payment-methods?country=XX for the complete per-country catalog with the exact credential schema required.

method
enum<string>
required

Credential format of a payment instrument — named by what data is stored, not by the rail that delivers the funds. One credential type can route to multiple rails (e.g. an IBAN can go via SEPA, SEPA Instant, TARGET2, SWIFT, or CHAPS — the rail is selected at payout time).

Query GET /v1/payment-methods for the full country-specific catalog including per-method credential schemas.

Available options:
iban,
uk_bank,
us_bank,
ca_bank,
au_bank,
nz_bank,
jp_bank,
in_bank,
za_bank,
ng_bank,
ph_bank,
cl_bank,
co_bank,
swift,
clabe,
cbu,
cci,
pix,
upi,
interac,
paynow,
fps_hk,
promptpay,
card,
crypto,
mobile_money
currency
string

Uppercase supported fiat currency or crypto asset code.

Pattern: ^[A-Z]{3,5}$
Examples:

"USD"

"BTC"

"USDC"

country
string

ISO 3166-1 alpha-2 country code.

Pattern: ^[A-Z]{2}$
Example:

"US"

label
string

Merchant-visible label for this instrument (e.g. "Payroll - primary account").

Maximum string length: 255
credentials
object

Method-specific credential fields. Tokenized on receipt.

is_default
boolean
default:false

Make this the default instrument for the beneficiary. The previous default (if any) is unflagged.

end_user_ip
string

Response

Instrument created.

data
object
required

A payment destination attached to a beneficiary. Credentials (account numbers, wallet addresses, card PANs) are tokenized in Basis Theory and never returned by the API. Only masked display fields and method metadata are exposed.

Example: