Account Intelligence Geographic Coverage

See which countries Account Intelligence supports for bank account verification, and the identifiers each market requires.

Account Intelligence verifies both domestic (United States) and international bank accounts. The identifiers you send in an evaluation request differ by market, so please review the coverage and requirements in the following sections before building an international integration.

Domestic coverage

Both Account Intelligence Standard and Account Intelligence Premier support United States 🇺🇸 bank accounts. Domestic requests identify an account with an account_number and routing_number. For domestic request and response details, see the Account Intelligence integration guide.

International coverage

In addition to domestic coverage, Account Intelligence Standard supports the international markets listed below. The system treats a request as international when the account's country uses a supported non-US country code.

CountryCodeCountryCode
🇦🇷 ArgentinaAR🇱🇺 LuxembourgLU
🇦🇺 AustraliaAU🇲🇾 MalaysiaMY
🇦🇹 AustriaAT🇲🇹 MaltaMT
🇧🇩 BangladeshBD🇲🇽 MexicoMX
🇧🇪 BelgiumBE🇳🇵 NepalNP
🇧🇷 BrazilBR🇳🇱 NetherlandsNL
🇧🇬 BulgariaBG🇳🇬 NigeriaNG
🇨🇱 ChileCL🇵🇰 PakistanPK
🇨🇳 ChinaCN🇵🇪 PeruPE
🇨🇴 ColombiaCO🇵🇱 PolandPL
🇭🇷 CroatiaHR🇵🇹 PortugalPT
🇨🇾 CyprusCY🇸🇦 Saudi ArabiaSA
🇪🇨 EcuadorEC🇸🇰 SlovakiaSK
🇪🇪 EstoniaEE🇸🇮 SloveniaSI
🇫🇮 FinlandFI🇿🇦 South AfricaZA
🇫🇷 FranceFR🇰🇷 South KoreaKR
🇩🇪 GermanyDE🇪🇸 SpainES
🇬🇭 GhanaGH🇹🇿 TanzaniaTZ
🇬🇷 GreeceGR🇹🇭 ThailandTH
🇮🇳 IndiaIN🇹🇷 TurkeyTR
🇮🇩 IndonesiaID🇺🇬 UgandaUG
🇮🇪 IrelandIE🇦🇪 United Arab EmiratesAE
🇮🇹 ItalyIT🇬🇧 United KingdomGB
🇱🇻 LatviaLV🇺🇾 UruguayUY
🇱🇹 LithuaniaLT🇻🇳 VietnamVN

How international requests are routed

RiskOS™ reads account.country_code to decide how to process each request:

  • Missing, empty, or US → the request follows the domestic flow (account_number + routing_number).
  • A supported non-US country code → the request follows the international flow, which applies corridor validation and country-specific rules.
  • An unsupported country code → the request returns a validation error.

International account fields

International requests reuse the data.individual.account object, with these additional fields. The Required column marks fields that every international request must include; fields marked Conditional are required only for certain markets — see Country-specific requirements for the exact combination each market needs.

RiskOS™ fieldTypeRequiredDescription
account.country_codeStringRequiredISO 3166-1 alpha-2 country code of the account. Determines domestic vs. international routing.
account.account_typeStringRequiredAccount holder type. One of PERSONAL or BUSINESS.
account.account_inquiriesArray of stringRequiredChecks to perform. International markets return a result only for the combined check, so send both AVAILABILITY and OWNERSHIP together.
account.ibanStringConditionalInternational Bank Account Number, in valid IBAN format.
account.swift_bicStringConditionalBank identifier code, in valid SWIFT/BIC format.
account.account_numberStringConditionalLocal bank account number. Alphanumeric, 4–35 characters.
account.clearing_system_idStringConditionalLocal routing identifier (for example, sort code, IFSC, BSB, bank or branch code).
account.document_idStringConditionalPrimary personal or business identity document value.
account.documentsArray of objectConditionalStructured identity documents. Each entry requires a type and a value.

Common rules across all supported markets:

  • account_type is always required and must be PERSONAL or BUSINESS.
  • For PERSONAL accounts, provide given_name, family_name, or both. For international requests, the combined length of given_name and family_name must not exceed 255 characters.
  • For BUSINESS accounts, provide the business name.
  • International markets return a result only when you request both AVAILABILITY and OWNERSHIP. Send both values in account_inquiries.
  • documents entries must include both type and value. You can pass a document_id value inside documents with a valid type and value, but not the reverse.

Country-specific requirements

Markets are grouped by the required field combination. Find your market, send the listed fields, then refer to the linked sample request for a complete example.

In these tables, + means send those fields together in the same request. Where a market accepts more than one combination, send any one of them. Every international request also requires account_type (PERSONAL or BUSINESS). Formats for routing codes and documents are listed under Validation patterns.

IBAN-only markets

Send iban. See the IBAN only sample.

MarketNotes
🇧🇬 Bulgaria (BG)
🇵🇱 Poland (PL)
🇦🇪 United Arab Emirates (AE)
🇹🇷 Turkey (TR)
🇪🇺 EU marketsCovers AT, BE, HR, CY, EE, FI, FR, DE, GR, IE, IT, LV, LT, LU, MT, NL, PT, SK, SI, ES.

SWIFT/BIC and account number markets

Send swift_bic + account_number. See the SWIFT/BIC + account number sample.

MarketNotes
🇻🇳 Vietnam (VN)
🇳🇬 Nigeria (NG)
🇳🇵 Nepal (NP)
🇧🇩 Bangladesh (BD)
🇬🇭 Ghana (GH)
🇹🇿 Tanzania (TZ)
🇺🇬 Uganda (UG)
🇲🇾 Malaysia (MY)
🇹🇭 Thailand (TH)given_name and family_name are optional.

Account number markets

Send account_number. See the Account number only sample.

MarketNotes
🇲🇽 Mexico (MX)
🇦🇷 Argentina (AR)
🇵🇪 Peru (PE)

Account number and routing code markets

Send account_number + clearing_system_id. See the Account number + clearing system ID sample.

MarketRouting code (clearing_system_id)
🇮🇳 India (IN)IFSC
🇦🇺 Australia (AU)BSB

IBAN or SWIFT/BIC + account number

Send iban, or swift_bic + account_number. See the IBAN only or SWIFT/BIC + account number sample.

MarketNotes
🇵🇰 Pakistan (PK)

IBAN or account number + routing code

Send iban, or account_number + clearing_system_id. See the IBAN only or Account number + clearing system ID sample.

MarketRouting code (clearing_system_id)
🇬🇧 United Kingdom (GB)Sort Code

SWIFT/BIC + account number or account number + routing code

Send swift_bic + account_number, or account_number + clearing_system_id. See the SWIFT/BIC + account number or Account number + clearing system ID sample.

MarketRouting code (clearing_system_id)
🇮🇩 Indonesia (ID)Bank Code
🇰🇷 South Korea (KR)Bank Code
🇺🇾 Uruguay (UY)Bank Code
🇿🇦 South Africa (ZA)Branch Code

Markets with identity requirements

These markets require an identity document or number, and several vary by account holder type. See the SWIFT/BIC + account number + document and IBAN + document samples. Formats and field mappings are in Validation patterns.

MarketRequired fieldsIdentity document
🇨🇳 China (CN)swift_bic + account_number + document_id
Business accounts only.
UCC
🇸🇦 Saudi Arabia (SA)Personal: iban + national_id
Business: iban + document_id
or
iban + documents
Business name also required.
Personal: national_id, sent at the top level as individual.national_id (not inside account)
Business: UNIFIED_NUMBER or COMMERCIAL_REGISTRATION
🇧🇷 Brazil (BR)iban + document_id
or
iban + documents
CPF or CNPJ
🇨🇱 Chile (CL)swift_bic + account_number + document_id
or
account_number + clearing_system_id + document_id
RUT
🇨🇴 Colombia (CO)swift_bic + account_number + document_id
or
account_number + clearing_system_id + document_id
Personal: CC (document_id)
Business: NIT (documents)
🇪🇨 Ecuador (EC)swift_bic + account_number + document_id
or
account_number + clearing_system_id + document_id
Personal: CC (document_id)
Business: RUC (documents)

Validation patterns

Routing codes and documents must match these formats.

Identifier / documentWhere usedFormatPattern
IFSCIndia clearing_system_id4 letters + 7 alphanumeric^[A-Z]{4}[A-Z0-9]{7}$
Sort CodeUnited Kingdom clearing_system_id6 digits^\d{6}$
BSBAustralia clearing_system_id6 digits^\d{6}$
Branch CodeSouth Africa clearing_system_id6 digits^\d{6}$
Bank CodeIndonesia, South Korea, Uruguay, Colombia clearing_system_id3 digits^\d{3}$
Bank CodeEcuador clearing_system_id4 digits^\d{4}$
UCCChina business document_id18 alphanumeric^[A-Za-z0-9]{18}$
RUTChile document_id9 digits^\d{9}$
CCColombia document_id6–10 digits^\d{6,10}$
NITColombia documents type6–10 digits^\d{6,10}$
CCEcuador document_id10 digits^\d{10}$
RUCEcuador documents type13 digits^\d{13}$
national_idSaudi Arabia root field10 digits^\d{10}$
UNIFIED_NUMBERSaudi Arabia business document_id10 digits^\d{10}$
COMMERCIAL_REGISTRATIONSaudi Arabia business documents type10 digits^\d{10}$
CPFBrazil document_id###.###.###-##
CNPJBrazil documents type##.###.###/####-##
Account numberMexico account_number18 digits^\d{18}$
Account numberArgentina account_number22 digits^\d{22}$
Account numberPeru account_number20 digits^\d{20}$
Account number (NUBAN)Nigeria account_number10 digits^\d{10}$

Sample requests

Each supported market fits one of the field patterns below. The examples use the bank_account_validation workflow — replace it with your configured workflow name. Send the request to /api/evaluation with your API key as a Bearer token, exactly as for domestic requests.

IBAN only

Markets: BG, PK, GB, PL, AE, TR, and the EU markets (AT, BE, HR, CY, EE, FI, FR, DE, GR, IE, IT, LV, LT, LU, MT, NL, PT, SK, SI, ES).

{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "individual": {
      "given_name": "Oliver",
      "family_name": "Bennett",
      "account": {
        "country_code": "GB",
        "account_type": "PERSONAL",
        "iban": "GB28CITI04000198765432",
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "individual": {
      "given_name": "Oliver",
      "family_name": "Bennett",
      "account": {
        "country_code": "GB",
        "account_type": "PERSONAL",
        "iban": "GB28CITI04000198765432",
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}'

SWIFT/BIC + account number

Markets: VN, NG, NP, BD, GH, TZ, UG, MY, TH, and the alternate corridors for ID, ZA, KR, UY, PK.

{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "individual": {
      "given_name": "Minh",
      "family_name": "Tran",
      "account": {
        "country_code": "VN",
        "account_type": "PERSONAL",
        "swift_bic": "VTCBVNVX",
        "account_number": "12345678900000",
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "individual": {
      "given_name": "Minh",
      "family_name": "Tran",
      "account": {
        "country_code": "VN",
        "account_type": "PERSONAL",
        "swift_bic": "VTCBVNVX",
        "account_number": "12345678900000",
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}'

Account number only

Markets: MX, AR, PE.

{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "individual": {
      "given_name": "Mateo",
      "family_name": "Sosa",
      "account": {
        "country_code": "AR",
        "account_type": "PERSONAL",
        "account_number": "0170032450000643500000",
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "individual": {
      "given_name": "Mateo",
      "family_name": "Sosa",
      "account": {
        "country_code": "AR",
        "account_type": "PERSONAL",
        "account_number": "0170032450000643500000",
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}'

Account number + clearing system ID

Markets: IN, AU, and the alternate corridors for GB (Sort Code), ID (Bank Code), KR (Bank Code), UY (Bank Code), ZA (Branch Code).

{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "individual": {
      "given_name": "Aarav",
      "family_name": "Sharma",
      "account": {
        "country_code": "IN",
        "account_type": "PERSONAL",
        "account_number": "987654321001",
        "clearing_system_id": "YESB0000002",
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "individual": {
      "given_name": "Aarav",
      "family_name": "Sharma",
      "account": {
        "country_code": "IN",
        "account_type": "PERSONAL",
        "account_number": "987654321001",
        "clearing_system_id": "YESB0000002",
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}'

SWIFT/BIC + account number + document

Markets: China (business), and the SWIFT/BIC corridors for CL, CO, EC.

{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "business": {
      "name": "Beijing Sample Trading Co., Ltd.",
      "account": {
        "country_code": "CN",
        "account_type": "BUSINESS",
        "swift_bic": "ABOCCNBJ",
        "account_number": "6212345678987654321",
        "document_id": "91111111ABCXYZ1234",
        "documents": [{ "type": "UCC", "value": "91111111ABCXYZ1234" }],
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "business": {
      "name": "Beijing Sample Trading Co., Ltd.",
      "account": {
        "country_code": "CN",
        "account_type": "BUSINESS",
        "swift_bic": "ABOCCNBJ",
        "account_number": "6212345678987654321",
        "document_id": "91111111ABCXYZ1234",
        "documents": [{ "type": "UCC", "value": "91111111ABCXYZ1234" }],
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}'

IBAN + document

Markets: BR, and SA.

{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "individual": {
      "given_name": "Lucas",
      "family_name": "Silva",
      "account": {
        "country_code": "BR",
        "account_type": "PERSONAL",
        "iban": "BR346074694805000010000000505",
        "document_id": "555.555.056-56",
        "documents": [
          { "type": "CPF", "value": "555.555.056-56" },
          { "type": "CNPJ", "value": "55.555.555/0056-56" }
        ],
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}
curl --location 'https://riskos.sandbox.socure.com/api/evaluation' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
  "id": "123456",
  "timestamp": "2025-05-18T02:09:25Z",
  "workflow": "bank_account_validation",
  "data": {
    "individual": {
      "given_name": "Lucas",
      "family_name": "Silva",
      "account": {
        "country_code": "BR",
        "account_type": "PERSONAL",
        "iban": "BR346074694805000010000000505",
        "document_id": "555.555.056-56",
        "documents": [
          { "type": "CPF", "value": "555.555.056-56" },
          { "type": "CNPJ", "value": "55.555.555/0056-56" }
        ],
        "account_inquiries": ["AVAILABILITY", "OWNERSHIP"]
      }
    }
  }
}'

Validation errors

International requests can return the following errors when a required field is missing or malformed.

ScenarioError message
A required country-specific field is missingMissing required parameters for module: AccountIntelligence
document_id value is invalidInvalid documentId. Please resubmit the transaction with a valid documentId.
documents type or value is invalidInvalid documents. Please resubmit the transaction with valid documents.
account_number is invalidInvalid account number. Please resubmit the transaction using proper account number
country_code is invalidInvalid accountCountry. Please resubmit the transaction using ISO 3166-1 alpha-2 country codes only.
account_type is invalidInvalid accountType. Please resubmit the transaction using proper accountType
clearing_system_id is invalidInvalid clearingSystemId. Please resubmit the transaction using proper clearingSystemId
swift_bic is invalidInvalid bankIdentifierCode. Please resubmit the transaction with a valid bank identifier code.
iban is invalidInvalid internationalBankAccountNumber. Please resubmit the transaction with a valid international bank account number.
national_id is invalidInvalid nationalId. Please resubmit the transaction using proper nationalId
Country code is not supportedInvalid accountCountry. Please resubmit the transaction using supported account country.
A US account is sent to the international flowInvalid accountCountry, Account Intelligence module only supported for US accounts

Note: Error messages are returned by the underlying enrichment and reference the underlying field names. The response shape is the same as for domestic requests.


Boundary conditions

  • Domestic vs. international routing: The account country determines how a request is processed. A missing, empty, or US country routes to the domestic flow; a supported non-US country routes to the international flow. An unsupported country code returns a validation error.
  • Coverage varies by market: Verification depth and match rates depend on local data availability and the identifiers you provide.
  • Premier is domestic only: Enhanced coverage through Account Intelligence Premier applies to United States accounts.

Related



Did this page help you?