Payment Accounts

Create payment account

Changed on

Creates a new payment account linked to an AccountHolder.

Maps to ISO 20022 pain:001 <DbtrAcct>/<CdtrAcct>. Enables FATF Recommendation 16 (wire transfer rule) compliance by anchoring payments to a known, verified account.

PCI-DSS 4.0: account_number, iban, and card_pan must be tokenised by the calling orchestration layer before writing. Never submit raw PANs.

post/api/payment-accounts

Request

  • Base URL: http://localhost:4100
  • URL: http://localhost:4100/api/payment-accounts
  • Auth: none required

Request body

account_holder_idstring uuid required
account_numberstring nullable

Bank account number (PCI-DSS sensitive — tokenise before storing)

account_type'bank_account' | 'card' | 'wallet' | 'crypto_wallet' required
bank_namestring nullable

Name of the account's bank

card_panstring nullable

Card PAN last-4 or token (PCI-DSS — never store raw PAN)

counterparty_idstring uuid nullable
currencystring nullable

ISO 4217 3-letter currency code (e.g. USD, EUR, GBP)

enabled_regimesstring[] nullable
external_idstring nullable

Caller-supplied SoE upsert key (unique per tenant when set)

ibanstring nullable

International Bank Account Number (IBAN)

ledger_account_idstring uuid nullable
legal_entity_idstring uuid nullable
payment_account_numberstring nullable

Opaque internal payment account number

routing_numberstring nullable

Bank routing / sort code

status'active' | 'suspended' | 'blocked' nullable
swift_bicstring nullable

SWIFT/BIC code of the account's bank

tenant_idstring uuid required
wallet_addressstring nullable

On-chain wallet address (the actual identifier funds settle to). Set together with wallet_chain when account_type = :crypto_wallet.

wallet_chainstring nullable

Blockchain / asset ticker the wallet_address lives on (e.g. "BTC", "ETH", "TRON"). Disambiguates same-format addresses across chains.

Example request

{
  "account_holder_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
  "account_number": "",
  "account_type": "bank_account",
  "bank_name": "",
  "card_pan": "",
  "counterparty_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
  "currency": "",
  "enabled_regimes": [
    ""
  ],
  "external_id": "",
  "iban": "",
  "ledger_account_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
  "legal_entity_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
  "payment_account_number": "",
  "routing_number": "",
  "status": "active",
  "swift_bic": "",
  "tenant_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
  "wallet_address": "",
  "wallet_chain": ""
}

Changes

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • warning

      removed the request property

    • info

      added the new optional request property