---
title: "External fiat account requirements"
method: GET
path: "/v0/accounts/fiat/external/requirements"
tags: ["Accounts"]
---

# External fiat account requirements

`GET /v0/accounts/fiat/external/requirements`

## Request

- Base URL: `https://orchestration.seismic.systems/api`
- URL: `https://orchestration.seismic.systems/api/v0/accounts/fiat/external/requirements`
- Auth: none declared

The fields Seismic needs to register an external fiat account on this corridor. The response reflects the corridor's default configuration, which needs no caller identity — this endpoint needs no authentication. Pass `rail=swift` for SWIFT-specific USD requirements. A customer whose payout setup has been configured beyond that default can be asked for additional fields when the account is created.

## Query parameters

- `currency` string, required
- `bank_country` string, required
- `account_holder_type` 'individual' | 'business', required
- `rail` string

## Response `200`

The merged field recipe for the corridor.

- ExternalFiatAccountRequirements: Response body of `GET /v0/accounts/fiat/external/requirements`.
  - `account_holder_type` 'individual' | 'business', required
  - `bank_country` string, required
  - `currency` string, required
  - `fields` FieldRequirement[], required
    - `accepted_for_rails` string[]: Rails that accept this field, present only when some candidate rails do not: a request that settles over any other rail is rejected if it sends the field. Absent when every rail of the corridor accepts it.
    - `example` string, nullable
    - `field` string, required
    - `label` string, nullable
    - `max_length` integer, nullable
    - `options` FieldOption[], nullable
      - `label` string, nullable
      - `value` string, required
    - `regex` string, nullable
    - `required_for_rails` string[]: Rails that escalate this field to required. Present only on `optional` fields — e.g. a wire-only identifier is optional for a corridor reachable by other rails, but required once the account settles over that rail. A `required` field is needed regardless of rail, so it never carries this list.
    - `required_when` FieldCondition[]: Conditions on other fields of the same request, any one of which makes this field required — e.g. a phone number required when the holder's address is in one of a list of countries. Present only on `optional` fields, like `required_for_rails`.
      - `field` string, required: Dotted request path of the field the condition reads, e.g. `account_holder.address.country`.
      - `in` string[], required: Values of `field` that make the field required. Country codes are ISO 3166-1 alpha-2.
    - `requirement` 'required' | 'optional', required

## Other responses

- `400`: `bank_country` isn't a two-letter country code, or `account_holder_type` isn't `individual` / `business`.
- `422`: An external fiat account can't be created for this currency, bank country and `rail` (`CorridorUnsupported`).

---

[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)
