# Counterparty Validation There is validation on the [`Create counterparty`](/api-docs/openapi/rail-spec#operation/createCounterparty) API. ## Mandatory Fields by Counterparty Type Mandatory fields by counterparty type and payment rail Below is a breakdown of the mandatory fields by counterparty type and payment rail. ✅ denotes that a field is mandatory for a given counterparty type and rail. ### 🇺🇸 United States - FIAT_US #### General | Field name | Fedwire | ACH | SWIFT | | --- | --- | --- | --- | | `customer_id` | ✅ | ✅ | ✅ | | `counterparty_type` | ✅ (`FIAT_US`) | ✅ (`FIAT_US`) | ✅ (`FIAT_US`) | | `supported_rails` | ✅ (`FEDWIRE`) | ✅ (`ACH`) | ✅ (`SWIFT`) | | `description` |   |   |   | #### Profile | Field name | Fedwire | ACH | SWIFT | | --- | --- | --- | --- | | `profile_type` | ✅ | ✅ | ✅ | | `name` | ✅ | ✅ | ✅ | | `email` |   |   |   | | `telephone_number` |   |   |   | | `tax_reference_number` |   |   |   | | `date_of_birth` |   |   |   | | `unit_number` |   |   |   | | `address_line1` | ✅ |   | ✅ | | `address_line2` |   |   |   | | `address_line3` |   |   |   | | `city` | ✅ |   | ✅ | | `state` | ✅ | ✅ | ✅ | | `postal_code` | ✅ |   | ✅ | | `country_code` | ✅ | ✅ | ✅ | | `line_of_business` |   |   |   | | `relationship_to_customer` | ✅ | ✅ | ✅ | #### Account information | Field name | Fedwire | ACH | SWIFT | | --- | --- | --- | --- | | `type` |   | ✅ | ✅ | | `asset_type_id` |   |   |   | | `account_number` | ✅ | ✅ | ✅ | | `routing_number` | ✅ | ✅ |   | | `swift_bic` |   |   | ✅ | | `institution_name` | ✅ |   | ✅ | | `unit_number` |   |   |   | | `address_line1` | ✅ |   | ✅ | | `address_line2` |   |   |   | | `address_line3` |   |   |   | | `city` | ✅ |   | ✅ | | `state` | ✅ |   | ✅ | | `postal_code` | ✅ |   | ✅ | | `country_code` | ✅ |   | ✅ | ### 🇺🇸 United States - FIAT_US_LINKED #### General | Field name | ACH | | --- | --- | | `customer_id` | ✅ | | `counterparty_type` | ✅ (`FIAT_US_LINKED`) | | `supported_rails` | ✅ (`ACH`) | | `description` |   | #### Profile | Field name | ACH | | --- | --- | | `profile_type` | ✅ | | `name` | ✅ | | `email` |   | | `telephone_number` |   | | `tax_reference_number` |   | | `date_of_birth` |   | | `unit_number` |   | | `address_line1` |   | | `address_line2` |   | | `address_line3` |   | | `city` |   | | `state` | ✅ | | `postal_code` |   | | `country_code` | ✅ | | `line_of_business` |   | | `relationship_to_customer` | ✅ | #### Account information | Field name | ACH | | --- | --- | | `type` |   | | `asset_type_id` |   | | `account_number` |   | | `routing_number` |   | | `swift_bic` |   | | `institution_name` |   | | `unit_number` |   | | `address_line1` |   | | `address_line2` |   | | `address_line3` |   | | `city` |   | | `state` |   | | `postal_code` |   | | `country_code` |   | ### 🇨🇦 Canada - FIAT_CA #### General | Field name | SWIFT | EFT | | --- | --- | --- | | `customer_id` | ✅ | ✅ | | `counterparty_type` | ✅ (`FIAT_CA`) | ✅ (`FIAT_CA`) | | `supported_rails` | ✅ (`SWIFT`) | ✅ (`EFT`) | | `description` |   |   | #### Profile | Field name | SWIFT | EFT | | --- | --- | --- | | `profile_type` | ✅ | ✅ | | `name` | ✅ | ✅ | | `email` |   |   | | `telephone_number` |   |   | | `tax_reference_number` |   |   | | `date_of_birth` |   |   | | `unit_number` |   |   | | `address_line1` | ✅ | ✅ | | `address_line2` |   |   | | `address_line3` |   |   | | `city` | ✅ | ✅ | | `state` | ✅ | ✅ | | `postal_code` | ✅ | ✅ | | `country_code` | ✅ | ✅ | | `line_of_business` |   |   | | `relationship_to_customer` | ✅ | ✅ | #### Account Information | Field name | SWIFT | EFT | | --- | --- | --- | | `type` |   |   | | `asset_type_id` |   |   | | `account_number` | ✅ | ✅ | | `institution_number` |   | ✅ | | `transit_number` |   | ✅ | | `swift_bic` | ✅ |   | | `institution_name` | ✅ | ✅ | | `unit_number` |   |   | | `address_line1` | ✅ | ✅ | | `address_line2` |   |   | | `address_line3` |   |   | | `city` | ✅ | ✅ | | `state` | ✅ | ✅ | | `postal_code` | ✅ | ✅ | | `country_code` | ✅ | ✅ | ### 🇪🇺 Europe - FIAT_EU #### General | Field name | SWIFT | SEPA CT | | --- | --- | --- | | `customer_id` | ✅ | ✅ | | `counterparty_type` | ✅ (`FIAT_EU`) | ✅ (`FIAT_EU`) | | `supported_rails` | ✅ (`SWIFT`) | ✅ (`SEPA_CT`) | | `description` |   |   | #### Profile | Field name | SWIFT | SEPA CT | | --- | --- | --- | | `profile_type` | ✅ | ✅ | | `name` | ✅ | ✅ | | `email` |   |   | | `telephone_number` |   |   | | `tax_reference_number` |   |   | | `date_of_birth` |   |   | | `unit_number` |   |   | | `address_line1` | ✅ | ✅ | | `address_line2` |   |   | | `address_line3` |   |   | | `city` | ✅ | ✅ | | `state` | ✅ | ✅ | | `postal_code` | ✅ | ✅ | | `country_code` | ✅ | ✅ | | `line_of_business` |   |   | | `relationship_to_customer` | ✅ | ✅ | #### Account Information | Field name | SWIFT | SEPA CT | | --- | --- | --- | | `type` |   |   | | `asset_type_id` |   |   | | `account_number` |   |   | | `iban` | ✅ | ✅ | | `swift_bic` | ✅ | ✅ | | `institution_name` | ✅ | ✅ | | `unit_number` |   |   | | `address_line1` | ✅ | ✅ | | `address_line2` |   |   | | `address_line3` |   |   | | `city` | ✅ | ✅ | | `state` | ✅ | ✅ | | `postal_code` | ✅ | ✅ | | `country_code` | ✅ | ✅ | ### 🇬🇧 Great Britain (UK) - FIAT_GB #### General | Field name | SWIFT | FPS | CHAPS | | --- | --- | --- | --- | | `customer_id` | ✅ | ✅ | ✅ | | `counterparty_type` | ✅ (`FIAT_GB`) | ✅ (`FIAT_GB`) | ✅ (`FIAT_GB`) | | `supported_rails` | ✅ (`SWIFT`) | ✅ (`FPS`) | ✅ (`CHAPS`) | | `description` |   |   |   | #### Profile | Field name | SWIFT | FPS | CHAPS | | --- | --- | --- | --- | | `profile_type` | ✅ | ✅ | ✅ | | `name` | ✅ | ✅ | ✅ | | `email` |   |   |   | | `telephone_number` |   |   |   | | `tax_reference_number` |   |   |   | | `date_of_birth` |   |   |   | | `unit_number` |   |   |   | | `address_line1` | ✅ | ✅ | ✅ | | `address_line2` |   |   |   | | `address_line3` |   |   |   | | `city` | ✅ | ✅ | ✅ | | `state` | ✅ | ✅ | ✅ | | `postal_code` | ✅ | ✅ | ✅ | | `country_code` | ✅ | ✅ | ✅ | | `line_of_business` |   |   |   | | `relationship_to_customer` | ✅ | ✅ | ✅ | #### Account Information | Field name | SWIFT | FPS | CHAPS | | --- | --- | --- | --- | | `type` |   |   |   | | `asset_type_id` |   |   |   | | `account_number` |   | ✅ | ✅ | | `iban` | ✅ |   |   | | `sort_code` |   | ✅ | ✅ | | `swift_bic` | ✅ |   |   | | `institution_name` | ✅ | ✅ | ✅ | | `unit_number` |   |   |   | | `address_line1` | ✅ |   |   | | `address_line2` |   |   |   | | `address_line3` |   |   |   | | `city` | ✅ |   |   | | `state` | ✅ |   |   | | `postal_code` | ✅ |   |   | | `country_code` | ✅ |   |   | ### 🇮🇳 India - FIAT_IN #### General | Field name | SWIFT | IMPS | | --- | --- | --- | | `customer_id` | ✅ | ✅ | | `counterparty_type` | ✅ (`FIAT_IN`) | ✅ (`FIAT_IN`) | | `supported_rails` | ✅ (`SWIFT`) | ✅ (`IMPS`) | | `description` |   |   | #### Profile | Field name | SWIFT | IMPS | | --- | --- | --- | | `profile_type` | ✅ | ✅ | | `name` | ✅ | ✅ | | `email` |   | ✅ | | `telephone_number` |   | ✅ | | `tax_reference_number` |   |   | | `date_of_birth` |   |   | | `unit_number` |   |   | | `address_line1` | ✅ | ✅ | | `address_line2` |   |   | | `address_line3` |   |   | | `city` | ✅ | ✅ | | `state` | ✅ | ✅ | | `postal_code` | ✅ | ✅ | | `country_code` | ✅ | ✅ | | `line_of_business` |   |   | | `relationship_to_customer` | ✅ | ✅ | #### Account Information | Field name | SWIFT | IMPS | | --- | --- | --- | | `type` |   |   | | `asset_type_id` |   |   | | `account_number` | ✅ | ✅ | | `swift_bic` | ✅ |   | | `ifsc` |   | ✅ | | `institution_name` | ✅ | ✅ | | `unit_number` |   |   | | `address_line1` | ✅ | ✅ | | `address_line2` |   |   | | `address_line3` |   |   | | `city` | ✅ | ✅ | | `state` | ✅ | ✅ | | `postal_code` | ✅ | ✅ | | `country_code` | ✅ | ✅ | ### 🇲🇽 Mexico - FIAT_MX #### General | Field name | SPEI | SWIFT | | --- | --- | --- | | `customer_id` | ✅ | ✅ | | `counterparty_type` | ✅ (`FIAT_MX`) | ✅ (`FIAT_MX`) | | `supported_rails` | ✅ (`SPEI`) | ✅ (`SWIFT`) | | `description` |   |   | #### Profile | Field name | SPEI | SWIFT | | --- | --- | --- | | `profile_type` | ✅ | ✅ | | `name` | ✅ | ✅ | | `email` |   |   | | `unit_number` |   |   | | `address_line1` | ✅ | ✅ | | `address_line2` |   |   | | `address_line3` |   |   | | `city` | ✅ | ✅ | | `state` | ✅ | ✅ | | `postal_code` | ✅ | ✅ | | `country_code` | ✅ | ✅ | | `line_of_business` |   |   | | `relationship_to_customer` | ✅ | ✅ | #### Account Information | Field name | SPEI | SWIFT | | --- | --- | --- | | `type` |   |   | | `asset_type_id` |   |   | | `clabe` | ✅ | ✅ | | `swift_bic` |   | ✅ | | `institution_name` | ✅ | ✅ | | `unit_number` |   |   | | `address_line1` |   | ✅ | | `address_line2` |   |   | | `address_line3` |   |   | | `city` |   | ✅ | | `state` | ✅ | ✅ | | `postal_code` |   | ✅ | | `country_code` | ✅ | ✅ | ### 🇦🇪 United Arab Emirates - FIAT_AE #### General | Field name | UAEFTS | SWIFT | | --- | --- | --- | | `customer_id` | ✅ | ✅ | | `counterparty_type` | ✅ (`FIAT_AE`) | ✅ (`FIAT_AE`) | | `supported_rails` | ✅ (`UAEFTS`) | ✅ (`SWIFT`) | | `description` |   |   | #### Profile | Field name | UAEFTS | SWIFT | | --- | --- | --- | | `profile_type` | ✅ | ✅ | | `name` | ✅ | ✅ | | `email` |   |   | | `unit_number` |   |   | | `address_line1` | ✅ | ✅ | | `address_line2` |   |   | | `address_line3` |   |   | | `city` | ✅ | ✅ | | `state` | ✅ | ✅ | | `postal_code` | ✅ | ✅ | | `country_code` | ✅ | ✅ | | `line_of_business` |   |   | | `relationship_to_customer` | ✅ | ✅ | #### Account Information | Field name | UAEFTS | SWIFT | | --- | --- | --- | | `type` |   |   | | `asset_type_id` |   |   | | `iban` | ✅ | ✅ | | `swift_bic` | ✅ | ✅ | | `institution_name` |   | ✅ | | `unit_number` |   |   | | `address_line1` |   | ✅ | | `address_line2` |   |   | | `address_line3` |   |   | | `city` |   | ✅ | | `state` |   | ✅ | | `postal_code` |   | ✅ | | `country_code` |   | ✅ | ### 🌐 Crypto #### General | Field name | CRYPTO | | --- | --- | | `customer_id` | ✅ | | `counterparty_type` | ✅ (`CRYPTO`) | | `supported_rails` | ✅ (`CRYPTO`) | | `description` |   | #### Profile | Field name | CRYPTO | | --- | --- | | `profile_type` | ✅ | | `name` | ✅ | | `email` |   | | `unit_number` |   | | `address_line1` |   | | `address_line2` |   | | `address_line3` |   | | `city` |   | | `state` |   | | `postal_code` |   | | `country_code` | ✅ | | `line_of_business` |   | | `relationship_to_customer` | ✅ | #### Wallet information Note Mandatory if `wallet_type` = `INSTITUTION` | Field name | CRYPTO | | --- | --- | | `wallet_type` |   | | `asset_type_id` | ✅ | | `blockchain_address` | ✅ | | `institution_name` | ✅ * | | `unit_number` |   | | `address_line1` | ✅ * | | `address_line2` |   | | `address_line3` |   | | `city` | ✅ * | | `state` | ✅ * | | `postal_code` | ✅ * | | `country_code` | ✅ * | ### 🌎 BASIC External Account/Wallet Used for payments where the source is an external account/wallet. Cannot be used for withdrawals/outbound payments. #### General | Field name | Required | | --- | --- | | `customer_id` | ✅ | | `counterparty_type` | ✅ (`BASIC`) | | `supported_rails` |   | | `description` |   | #### Profile | Field name | Required | | --- | --- | | `profile_type` | ✅ | | `name` | ✅ | | `email` |   | | `telephone_number` |   | | `tax_reference_number` |   | | `date_of_birth` |   | | `unit_number` |   | | `address_line1` |   | | `address_line2` |   | | `address_line3` |   | | `city` |   | | `state` | ✅ | | `postal_code` |   | | `country_code` | ✅ | | `line_of_business` |   | | `relationship_to_customer` | ✅ | ### 🌎 Account Number Jurisdictions Jurisdictions 🌎 `FIAT_ACCNO`, 🇭🇰 `FIAT_HK` (Hong Kong), 🇸🇬 `FIAT_SG` (Singapore), 🇨🇳 `FIAT_CN` (China), 🇵🇦 `FIAT_PA`, (Panama), 🇲🇾 `FIAT_MY` (Malaysia), 🇯🇵 `FIAT_JP` (Japan), 🇧🇸 `FIAT_BS` (Bahamas) #### General | Field name | SWIFT | | --- | --- | | `customer_id` | ✅ | | `counterparty_type` | ✅ | | `supported_rails` | ✅ (`SWIFT`) | | `description` |   | #### Profile | Field name | SWIFT | | --- | --- | | `profile_type` | ✅ | | `name` | ✅ | | `email` |   | | `telephone_number` |   | | `tax_reference_number` |   | | `date_of_birth` |   | | `unit_number` |   | | `address_line1` | ✅ | | `address_line2` |   | | `address_line3` |   | | `city` | ✅ | | `state` | ✅ | | `postal_code` | ✅ | | `country_code` | ✅ | | `line_of_business` |   | | `relationship_to_customer` | ✅ | #### Account Information | Field name | SWIFT | | --- | --- | | `type` |   | | `asset_type_id` |   | | `account_number` | ✅ | | `swift_bic` | ✅ | | `institution_name` | ✅ | | `unit_number` |   | | `address_line1` | ✅ | | `address_line2` |   | | `address_line3` |   | | `city` | ✅ | | `state` | ✅ | | `postal_code` | ✅ | | `country_code` | ✅ | ### 🌎 IBAN Jurisdictions Jurisdictions 🌍 `FIAT_IBAN`, 🇲🇽 `FIAT_AE` (United Arab Emirates), 🇨🇭 `FIAT_CH` (Switzerland), 🇧🇷 `FIAT_BR` (Brazil), 🇸🇦 `FIAT_SA` (Saudi Arabia), 🇪🇬 `FIAT_EG` (Egypt), 🇬🇹 `FIAT_GT` (Guatamala), 🇶🇦 `FIAT_QA` (Qatar), 🇧🇭 `FIAT_BH` (Bahrain), 🇨🇷 `FIAT_CR` (Costa Rica), 🇹🇷 `FIAT_TR` (Turkey), 🇬🇱 `FIAT_GL` (Greenland), 🇵🇱 `FIAT_PL` (Poland) #### General | Field name | SWIFT | | --- | --- | | `customer_id` | ✅ | | `counterparty_type` | ✅ | | `supported_rails` | ✅ (`SWIFT`) | | `description` |   | #### Profile | Field name | SWIFT | | --- | --- | | `profile_type` | ✅ | | `name` | ✅ | | `email` |   | | `telephone_number` |   | | `tax_reference_number` |   | | `date_of_birth` |   | | `unit_number` |   | | `address_line1` | ✅ | | `address_line2` |   | | `address_line3` |   | | `city` | ✅ | | `state` | ✅ | | `postal_code` | ✅ | | `country_code` | ✅ | | `line_of_business` |   | | `relationship_to_customer` | ✅ | #### Account Information | Field name | SWIFT | | --- | --- | | `type` |   | | `asset_type_id` |   | | `iban` | ✅ | | `swift_bic` | ✅ | | `institution_name` | ✅ | | `unit_number` |   | | `address_line1` | ✅ | | `address_line2` |   | | `address_line3` |   | | `city` | ✅ | | `state` | ✅ | | `postal_code` | ✅ | | `country_code` | ✅ | ### 🏦 Intermediary Institution Information (Swift) Intermediary Institution Information If you wish a counterparty with the Swift rail to receive funds via an intermediary institution you must include the `intermediary_information` block. This block is optional, however if you do provide intermediary information the mandatory fields for that block is as follows. | Field name | SWIFT | | --- | --- | | `institution_type` | ✅ | | `swift_bic` | ✅ | | `institution_name` | ✅ | | `unit_number` |   | | `address_line1` |   | | `address_line2` |   | | `address_line3` |   | | `city` |   | | `state` |   | | `postal_code` |   | | `country_code` |   | ## Validation Rules ### All fields - **No leading or trailing spaces** - values with preceding or trailing spaces will be trimmed to remove spaces. - **No language quirks** - values containing letters with language accents (e.g. à) will result in an error. - **Limited special character support** - only certain special characters are valid. Values with unsupported special characters (e.g. =) will result in an error. Valid special characters Valid special characters - .,’&-()@[space]#/:+ ### Field specific #### General | Field name | Validation rules | | --- | --- | | `customer_id` |   | | `counterparty_type` | Valid enum | | `supported_rails` |   | | `description` |   | #### Profile | Field name | Validation rules | | --- | --- | | `profile_type` | Valid enum | | `name` |   | | `email` | Valid email | | `telephone_number` | [E.164](https://en.wikipedia.org/wiki/E.164) format -> +[country code][subscriber phone number] | | `tax_reference_number` |   | | `date_of_birth` |   | | `unit_number` |   | | `address_line1` | Length <= 35 | | `address_line2` | Length <= 35 | | `address_line3` |   | | `city` | Length <= 21 | | `state` | IF US -> [ISO_3166-2:US](https://en.wikipedia.org/wiki/ISO_3166-2:US) | | `postal_code` | IF US -> Length = 5 OR Length = 5-4 | | `country_code` | [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) | | `line_of_business` | Valid enum | | `relationship_to_customer` | Valid enum | #### Account Information | Field name | Validation rules | | --- | --- | | `type` | Valid enum | | `asset_type_id` | Valid enum | | `account_number` |   | | `clabe` |   | | `iban` |   | | `routing_number` | Numbers only; Length = 9 | | `institution_number` |   | | `transit_number` |   | | `swift_bic` | Length = 8 OR Length = 11; [ISO 9362](https://www.swift.com/standards/data-standards/bic-business-identifier-code) | | `institution_name` | Length <= 35 | | `unit_number` |   | | `address_line1` | Length <= 35 | | `address_line2` | Length <= 35 | | `address_line3` |   | | `city` | Length <= 21 | | `state` | IF US -> [ISO_3166-2:US](https://en.wikipedia.org/wiki/ISO_3166-2:US) | | `postal_code` | IF US -> Length = 5 OR Length = 5-4 | | `country_code` | [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) | #### Wallet information | Field name | Validation rules | | --- | --- | | `wallet_type` | Valid enum | | `asset_type_id` | Valid enum | | `blockchain_address` |   | | `institution_name` | Length <= 35 | | `unit_number` |   | | `address_line1` | Length <= 35 | | `address_line2` | Length <= 35 | | `address_line3` |   | | `city` | Length <= 21 | | `state` | IF US -> [ISO_3166-2:US](https://en.wikipedia.org/wiki/ISO_3166-2:US) | | `postal_code` | IF US -> Length = 5 OR Length = 5-4 | | `country_code` | [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) |