---
title: "Add a rail to an external bank account"
method: POST
path: "/v0/customers/{id}/accounts/fiat/{account_id}/rails"
tags: ["Accounts"]
---

# Add a rail to an external bank account

`POST /v0/customers/{id}/accounts/fiat/{account_id}/rails`

## Request

- Base URL: `https://orchestration.seismic.systems/api`
- URL: `https://orchestration.seismic.systems/api/v0/customers/{id}/accounts/fiat/{account_id}/rails`
- Auth: API key in header `Api-Key`

Enable ACH or Wire on an active US USD external bank account. Existing rails remain available if the addition fails. Use the routing number the bank publishes for the requested rail. Where the account supports a separate routing number per rail, a number differing from the account's is registered for the rail being added and the rails already on the account keep theirs; where the account's rails share one routing number, a differing number is rejected. A rail that already holds a different routing number is not repointed.

## Path parameters

- `id` string, uuid, required
- `account_id` string, uuid, required

## Headers

- `Idempotency-Key` string, required

## Request body

- AddExternalFiatRailRequest: Enable another rail on an existing US USD external bank account.
  - `rail` 'ach' | 'wire', required
  - `routing_number` string, required: Bank-confirmed routing number for the requested rail. On an account that supports a separate routing number per rail, a number that differs from the account's registers that ABA for the rail being added and leaves the rails already on the account on theirs; on an account whose rails share one routing number, only the account's own is accepted. A rail that already holds a different routing number is not repointed.

## Response `200`

Rail enabled or already available; the account id is unchanged.

- AddExternalFiatRailResponse
  - `account` ApiAccount, required: Materialized partner-facing account. `kind` + `shape` together determine the layout of `details`: `kind=fiat,shape=us` → `details` is an `ApiUsBankFiatAccount`; `kind=crypto,shape=evm` → `details` is an `ApiCryptoAccount`. There is no discriminator key inside `details` — the wire form carries the shape-specific keys directly inside the `details` object. `currency` is singular for both kinds. `rails` is plural — fiat accounts can settle over multiple rails (ACH + wire + RTP for US, SEPA + SWIFT for EUR, …), and crypto accounts return a one-element array (one wallet address lives on one chain).
    - `account_holder` ApiAccountHolder: Owner of an account — the legal entity funds are sent to. On an external account that is whoever was named at create time, which may be a third party; on a virtual account it is always the customer.
      - `address` Address, required
        - `city` string, nullable
        - `line1` string, nullable
        - `line2` string, nullable
        - `postal_code` string, nullable
        - `state` string, nullable
        - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
        - `transliterated_address` AddressLines
          - `city` string, nullable
          - `line1` string, nullable
          - `line2` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
      - `industry` string, nullable: The holder business's NAICS industry code, as the create request carried it. Absent when none was sent, and on crypto accounts.
      - `is_third_party` boolean: `true` when the account belongs to someone other than the customer (vendor, employer, counterparty). Always `false` on virtual accounts.
      - `name` string, nullable: The registered account holder's name. Virtual accounts use the recorded bank holder name when available, otherwise the customer's profile name. A missing first-party crypto holder name also falls back to that customer's profile; third-party names are never inferred.
      - `relationship` 'PART' | 'CHIL' | 'SPOU' | 'CUST' | 'EMPL' | 'EXSP' | 'FREN' | 'CONT' | 'LAND' | 'OTHR' | 'PARE' | 'RELA' | 'SELF' | 'SIBL' | 'VEND' | 'BRAN' | 'FRAN' | 'HOLD' | 'SUBS' | 'SUPP': Who an external account's holder is to the customer, as a four-letter code. The set accepted depends on the holder's `type`.
      - `type` 'individual' | 'business'
    - `asset_contract_address` string, nullable: Token contract pinned to a crypto account when it is created.
    - `asset_standard` string, nullable: Token interface used by a crypto account, such as `erc20` or `src20`.
    - `available_balance` string, nullable: Portion of `balance` spendable right now (total minus holds/pending). Absent when the distinction doesn't exist for the account.
    - `balance` string, nullable: Funds held in the account, in `currency` major units, as of `balance_as_of`. Seismic keeps this in sync as funds move (deposits, payments, account updates). Present on virtual accounts once the first sync lands; always absent on external accounts (their funds sit at the partner's own bank/wallet).
    - `balance_as_of` string, date-time, nullable: When Seismic last refreshed `balance`.
    - `can_enable_liquidation` boolean, nullable: Whether auto-liquidation can be enabled on this account via `PUT /v0/accounts/{id}/liquidation`. Present only on virtual bank accounts that don't auto-liquidate; where `false` (or absent), a liquidation target can only be attached when a virtual account is created.
    - `chain_id` integer, nullable: Numeric network identifier pinned when a crypto account is created.
    - `created_at` string, date-time, required
    - `currency` string, required
    - `customer_id` string, uuid, required
    - `details` union: Shape-specific detail block on `ApiAccount` / `ApiAccountCreationRequest`. There is no discriminator key — the variant is identified by its field set. `kind` on the parent gives callers an explicit fiat-vs-crypto discriminator without needing to inspect the body.
      - union: Per-shape fiat-side response payload. Mirrors the request-side `CreateFiatDetails`. There is no discriminator key: each variant's field set identifies it on the wire. New fields may be added to these payloads over time — deserialize tolerantly rather than rejecting unknown keys.
        - ApiJpZenginFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_code` string, required
          - `bank_name` string, required
          - `branch_code` string, required
          - `phone` string, required
        - ApiUsBankFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `account_type` 'PERSONAL_CHECKING' | 'PERSONAL_SAVINGS' | 'BUSINESS_CHECKING' | 'BUSINESS_SAVINGS': How an issuing bank labels a US deposit account on the payment instructions it publishes for it. Distinct from the `account_type` supplied when registering an external account, which names the deposit product. This is a label reported back, not a choice made: the account already exists and the bank prints one of these on the instructions a payer copies. The full holder × product grid, not only the labels seen so far: a bank that starts publishing a savings account has a variant waiting rather than a label that reads as absent. Anything outside the grid still reads as absent, and earns a variant here when it turns up.
          - `ach_routing_number` string, nullable: ABA routing number to quote for an ACH credit. Absent when the account does not settle over ACH.
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, nullable
          - `beneficiary_address` Address
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bic` string, nullable: BIC to quote for an inbound international wire, alongside `swift_account_number`. Absent when the account is reachable domestically only.
          - `fedwire_routing_number` string, nullable: ABA routing number to quote for a Fedwire credit. A bank that publishes a separate wire ABA reports it here; otherwise an account that settles over wire routes it off the same nine digits as `ach_routing_number` and reports those. Absent on an account that does not settle over wire.
          - `routing_number` string, required: The account's ABA routing number: the one quoted for an ACH credit when the account has one, otherwise the one quoted for a Fedwire credit. Always present, whatever the account settles over; the per-rail fields below say which credits each number may actually be quoted for.
          - `rtp_routing_number` string, nullable: ABA routing number to quote for an instant (RTP) credit, when the issuing bank publishes one distinct from `ach_routing_number`. Absent otherwise — including for every account that settles over ACH and wire only, which is the common case.
          - `swift_account_number` string, nullable: The account number a foreign sender quotes for an international wire. Frequently the same digits as `account_number` — most issuing banks receive both legs at one number, and this reports them rather than leaving the international route unaddressed. Not always: the payment can be received through a correspondent, in which case this is the number at that bank and can be an IBAN. Quote this one, not `account_number`. Absent on an account registered from supplied details that named no international number.
          - `swift_receiving_bank` ApiBankParty: A bank named on an account's payment instructions: who to address, and where they are.
            - `address` Address
              - …
            - `name` string, nullable
        - ApiUkFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, nullable
          - `iban` string, nullable
          - `sort_code` string, required
        - ApiIbanFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_code` string, nullable
          - `bank_name` string, nullable
          - `bic` string, nullable
          - `id_number` string, nullable
          - `id_type` string, nullable
          - `phone` string, nullable
          - `registration_number` string, nullable
          - `registration_type` string, nullable
        - ApiSwiftFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, required
          - `bic` string, required
          - `intermediary_bank` ApiIntermediaryBank: The correspondent (intermediary) bank a cross-border payout is routed through. Every identifier belongs to the correspondent, never to the destination bank the enclosing block describes.
            - `account_number` string, nullable: The destination bank's account at the correspondent, credited by a cover payment on the way through.
            - `bic` string, nullable: The correspondent's own BIC, quoted where it is outside the US and so has no ABA.
            - `country` string, nullable: ISO-3166-1 alpha-2 country of the correspondent.
            - `name` string, nullable
            - `routing_number` string, nullable
          - `phone` string, nullable
          - `routing_number` string, nullable: ABA routing number of the recipient bank's US correspondent (intermediary) bank. The same nine digits as `intermediary_bank.routing_number`, reported under both names.
          - `tax_number` string, nullable
        - ApiCnyFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, nullable
          - `branch_name` string, nullable
          - `cnaps_code` string, required
          - `id_number` string, required
          - `id_type` string, nullable
          - `registration_number` string, nullable
          - `registration_type` string, nullable
        - ApiBrPixFiatAccount
          - `account_holder_name` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `pix_key` string, required
          - `pix_key_type` 'cpf' | 'cnpj' | 'email' | 'phone' | 'evp', required: PIX key kind on the `br_pix` shape. Each kind implies a distinct key format: `cpf` (11 digits), `cnpj` (14 digits), `email`, `phone` (`+55` then 10–11 digits), or `evp` (a randomly assigned UUID).
        - ApiBrBankFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `account_subtype` 'cc' | 'pp', required: TED account subtype on the `br_bank` shape. Transfers with the wrong account type are rejected by the receiving bank, so the destination's type must be supplied at registration.
          - `agency` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_code` string, required
          - `bank_name` string, nullable
          - `id_number` string, nullable
          - `id_type` string, nullable
          - `phone` string, nullable
          - `registration_number` string, nullable
          - `registration_type` string, nullable
          - `tax_number` string, nullable
        - ApiMxClabeFiatAccount
          - `account_holder_name` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, nullable
          - `clabe` string, required
          - `tax_number` string, nullable
        - ApiInIfscFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, nullable
          - `id_number` string, nullable
          - `id_type` string, nullable
          - `ifsc` string, required
          - `phone` string, nullable
          - `registration_number` string, nullable
          - `registration_type` string, nullable
          - `relationship_to_debtor` 'PART' | 'CHIL' | 'SPOU' | 'CUST' | 'EMPL' | 'EXSP' | 'FREN' | 'CONT' | 'LAND' | 'OTHR' | 'PARE' | 'RELA' | 'SELF' | 'SIBL' | 'VEND' | 'BRAN' | 'FRAN' | 'HOLD' | 'SUBS' | 'SUPP': Who an external account's holder is to the customer, as a four-letter code. The set accepted depends on the holder's `type`.
        - ApiArCbuFiatAccount
          - `account_holder_name` string, required
          - `alias` string, nullable
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, required
          - `cbu` string, required
          - `id_number` string, nullable
          - `id_type` string, nullable
          - `phone` string, required
          - `registration_number` string, nullable
          - `registration_type` string, nullable
          - `tax_number` string, required
        - ApiHkdFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, nullable: Bank display name; absent when the account was registered without one.
          - `bic` string, nullable: ISO 9362 BIC / SWIFT code of the destination bank.
          - `date_of_incorporation` string, nullable
          - `registration_number` string, nullable
          - `registration_type` string, nullable
        - ApiSgdFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, required
          - `id_number` string, nullable
          - `id_type` string, nullable
          - `phone` string, required
          - `registration_number` string, nullable
          - `registration_type` string, nullable
          - `relationship_to_debtor` 'PART' | 'CHIL' | 'SPOU' | 'CUST' | 'EMPL' | 'EXSP' | 'FREN' | 'CONT' | 'LAND' | 'OTHR' | 'PARE' | 'RELA' | 'SELF' | 'SIBL' | 'VEND' | 'BRAN' | 'FRAN' | 'HOLD' | 'SUBS' | 'SUPP': Who an external account's holder is to the customer, as a four-letter code. The set accepted depends on the holder's `type`.
        - ApiPhBankFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, required
          - `date_of_incorporation` string, nullable
          - `phone` string, nullable
          - `registration_number` string, nullable
          - `registration_type` string, nullable
          - `relationship_to_debtor` 'PART' | 'CHIL' | 'SPOU' | 'CUST' | 'EMPL' | 'EXSP' | 'FREN' | 'CONT' | 'LAND' | 'OTHR' | 'PARE' | 'RELA' | 'SELF' | 'SIBL' | 'VEND' | 'BRAN' | 'FRAN' | 'HOLD' | 'SUBS' | 'SUPP': Who an external account's holder is to the customer, as a four-letter code. The set accepted depends on the holder's `type`.
        - ApiPkIbanFiatAccount
          - `account_holder_name` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, nullable
          - `iban` string, required
        - ApiNgBankFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_code` string, required
          - `bank_name` string, nullable
        - ApiThbBankFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, required
        - ApiIdrBankFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, required
        - ApiCaEftFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_name` string, required
          - `institution_number` string, required
          - `transit_number` string, required
        - ApiAuBsbFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bsb` string, required: BSB ("Bank-State-Branch", 6 digits) — names the bank and the branch together.
        - ApiCoBankFiatAccount
          - `account_holder_name` string, required
          - `account_number` string, required
          - `account_type` 'CHECKING' | 'SAVINGS', required: Account type on the `co_bank` shape. ACH Colombia credits a savings (ahorros) and a checking (corriente) account differently, so the destination's type must be supplied at registration.
          - `bank_address` Address, required
            - `city` string, nullable
            - `line1` string, nullable
            - `line2` string, nullable
            - `postal_code` string, nullable
            - `state` string, nullable
            - `country` string, nullable: ISO-3166-1 alpha-2 country code: two letters (`SG`, `US`, `GB`), never the country name.
            - `transliterated_address` AddressLines
              - …
          - `bank_code` string, required: Bank code as published by the Colombian banking association.
          - `id_number` string, required
          - `id_type` 'CC' | 'CE' | 'NIT' | 'PASS' | 'PEP', required: The identity document a Colombian beneficiary is known by. The receiving bank matches the holder against it, so the kind travels with the number.
      - ApiCryptoAccount: Wire view of a crypto account's per-shape details. `address` is optional because a crypto account still being set up has no on-chain address yet. It is omitted from the wire response until the address is assigned.
        - `address` string, nullable
    - `developer_fee_supported` boolean, nullable: Whether `liquidation.developer_fee_bps` is accepted on this account, when enabling or retargeting auto-liquidation. Present only on virtual bank accounts; absent while the account is still provisioning.
    - `id` string, uuid, required
    - `kind` 'fiat' | 'crypto', required: Top-level kind of the account — fiat vs crypto. Carried explicitly on `ApiAccount` and `ApiAccountCreationRequest` so callers can branch without parsing `shape` (and because `details` is an untagged enum that won't help them dispatch).
    - `liquidation` ApiLiquidation: Auto-liquidation destination surfaced on an `ApiAccount`. Names the crypto account incoming fiat is auto-converted and settled to.
      - `account_id` string, uuid, required: The crypto account this account's incoming fiat is auto-converted and settled to.
      - `address` string, required
      - `can_turn_off` boolean: Whether auto-liquidation on this account can be turned off via `DELETE /v0/accounts/{id}/liquidation`. Where `false`, the configuration set at creation stays in place.
      - `currency` string, required
      - `developer_fee_bps` integer, nullable: The developer fee in basis points (100 = 1%) Seismic applies to funds auto-converted through this account, as set on creation or via `PUT /v0/accounts/{id}/liquidation`. Absent when no fee is configured.
    - `liquidation_can_turn_off` boolean, nullable: Whether auto-liquidation on this account, once on, can be turned off via `DELETE /v0/accounts/{id}/liquidation`. Present only on virtual bank accounts; absent while the account is still provisioning.
    - `origin` 'external' | 'virtual', required
    - `rails` string[], required
    - `shape` union, required: The shape of an account — fiat-side or crypto-side. Wire form is a flat string (`"us"`, `"uk"`, `"iban"`, `"evm"`, `"sol"`, …) — serde untagged picks the inner enum whose variant set contains the incoming token. Disjoint variant sets between `FiatShape` and `CryptoShape` make the disambiguation unambiguous.
      - 'us' | 'uk' | 'iban' | 'swift' | 'br_pix' | 'br_bank' | 'mx_clabe' | 'in_ifsc' | 'au_bsb' | 'ca_eft' | 'jp_zengin' | 'ar_cbu' | 'co_bank' | 'cl_bank' | 'pe_cci' | 'cn_cnaps' | 'hk_fps' | 'sg_fast' | 'ph_bank' | 'pk_iban' | 'ng_bank' | 'thb_bank' | 'idr_bank': Family of bank identifiers a fiat account uses — determines the layout of its `details` block. Some variants are declared ahead of their corridor opening; creates for those are rejected today.
      - 'evm' | 'sol' | 'tron' | 'btc': The VM family that determines a crypto account's address format. Unlike `FiatShape` where shape ≈ country, crypto shape is keyed on the cryptographic primitive: one EVM key produces the same address on every EVM chain, so a single shape spans chains — the chains an account transacts on are listed in its `rails` instead.
    - `status` 'pending' | 'active' | 'failed' | 'closed' | 'paused', required: Lifecycle a partner-visible account can be in. `pending` and `failed` occur only for crypto accounts whose setup is still running or failed; every other account is `active` until closed. `paused` is a reversible hold on a fiat account whose holder's verification is paused: it clears on unpause.
    - `updated_at` string, date-time, required
  - `id` string, uuid, required
  - `rail` 'ach' | 'wire', required

## Other responses

- `400`: Invalid input, unsupported addition, or the rail could not be enabled. Existing rails are unchanged.
- `401`: Missing or invalid API key.

---

[API](https://skmtc.dev/seismic/apis/seismic-orchestration-api.md) - [All operations](https://skmtc.dev/seismic/apis/seismic-orchestration-api/llms.txt) - [OpenAPI document](https://skmtc.dev/seismic/apis/seismic-orchestration-api/revisions/08ada1f159fa?raw)
