{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/swift/json-schema/swift-account-format-validation-status1-schema.json",
  "title": "AccountFormatValidationStatus1",
  "description": "This represents the response details that the Account Format validation\nservice will provide to the service consumer.\n",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/swift-payment-pre-validation-api-openapi.yml#/components/schemas/AccountFormatValidationStatus1",
  "required": [
    "reason",
    "status",
    "validation_check"
  ],
  "type": "object",
  "properties": {
    "account_identification": {
      "$ref": "#/$defs/AccountIdentification4Choice"
    },
    "country_code": {
      "$ref": "#/$defs/CountryCode"
    },
    "financial_institution_identification": {
      "$ref": "#/$defs/FinancialInstitutionIdentification24"
    },
    "status": {
      "$ref": "#/$defs/AccountFormatValidationStatus1Code"
    },
    "reason": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AccountFormatValidationReason1Code"
      }
    },
    "validation_check": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AccountFormatValidationCheck1"
      }
    }
  },
  "additionalProperties": false,
  "$defs": {
    "AccountFormatValidationCheck1": {
      "required": [
        "code",
        "reason",
        "status"
      ],
      "type": "object",
      "properties": {
        "code": {
          "$ref": "#/$defs/AccountFormatValidationCheck1Code"
        },
        "status": {
          "$ref": "#/$defs/AccountFormatValidationStatus1Code"
        },
        "reason": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AccountFormatValidationReason1Code"
          }
        }
      },
      "additionalProperties": false,
      "description": "Details the outcome of each individual account format validation\ncheck.\n"
    },
    "AccountFormatValidationCheck1Code": {
      "type": "string",
      "description": "The list of unique identifiers for the individual account format validation checks.\n\n`BBFI_bban_and_financial_institution_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account is the BBAN format used by the instructed financial institution.\n\n`DOCO_domestic_bank_specific_account_and_country_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account matches the domestic, bank specific format rules identified in the instructed country.\n\n`DOFI_domestic_bank_specific_account_and_financial_institution_check`-The  unique identifier of the individual account format validation check that determines if the format of the instructed account matches  the domestic, bank specific format used by the instructed financial institution, in its country. The country of the financial institution can only be determined when the instructed financial institution is identified by BIC 8 or BIC 11, otherwise this individual account format validation check can not be performed.\n\n`IBCO_iban_and_country_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account is the IBAN format used in the instructed country.\n\n`IBFI_iban_and_financial_institution_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account is the IBAN format used by the instructed financial institution.\n\n`IBAN_iban_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account is an IBAN format.\n\n`DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account matches the domestic, bank specific format used by the instructed financial institution, in the instructed country. This individual account format validation check can be performed irrespective of the nature of financial institution identifier, if this is a BIC 8, BIC 11 or Clearing System Member Identifier.\n\n`BBCO_bban_and_country_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account is the BBAN format used in the instructed country.\n",
      "enum": [
        "BBFI_bban_and_financial_institution_check",
        "DOCO_domestic_bank_specific_account_and_country_check",
        "DOFI_domestic_bank_specific_account_and_financial_institution_check",
        "IBCO_iban_and_country_check",
        "IBFI_iban_and_financial_institution_check",
        "IBAN_iban_check",
        "DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check",
        "BBCO_bban_and_country_check"
      ]
    },
    "AccountFormatValidationReason1Code": {
      "type": "string",
      "description": "The list of unique identifiers which describe the reasons for Account Format validation status. \n\n`VIBN_valid_iban`-The instructed account identifier subject to account format validation has a valid IBAN format for the instructed payment context.\n\n`VDOM_valid_domestic_bank_specific`-The instructed account identifier subject to account format validation has a valid domestic, bank specific format  (national domestic standard or bank specific standard) for the instructed payment context.\n\n`VBBN_valid_bban`-The instructed account identifier subject to account format validation has a valid Basic Bank Account Number (BBAN) format for the instructed payment context.\n\n`MCTY_missing_country_code`-Country code is missing from the payment context in order for the validation of the instructed payment information to be performed. \n\n`IIBN_invalid_iban`-The instructed account identifier subject to account format validation does not have a valid IBAN format for the instructed payment context.\n\n`IDOM_invalid_domestic_bank_specific`-The instructed account identifier subject to account format validation does not have a valid domestic, bank specific format  (nor national domestic standard nor bank specific standard) for the instructed payment context.\n\n`IBBN_invalid_bban`-The instructed account identifier subject to account format validation does not have a valid Basic Bank Account Number (BBAN) format for the instructed payment context.\n\n`IFIN_inconsistent_financial_institution_identification`-The instructed financial institution identifier does not match the  financial institution that owns the account that is the subject to the account format validation. \n\n`INCT_inconsistent_country`-The instructed country code does not match the country of the payment information that is subject to validation.\n\n`CFIN_consistent_financial_institution_identification`-The instructed financial institution matches the  financial institution that uses the account format of the instructed account.\n\n`CCTY_consistent_country`-The instructed country code matches the country of the payment information that is subject to validation. \n\n`AINP_account_data_collection_in_progress`-SWIFT account format data coverage index indicates that the account data collection process is in progress ( below 90% level of completion).\n\n`ICCH_check_not_applied`-The individual payment validation check has not been applied for the instructed context. Other individual payment validation checks are more relevant and will be applied instead.\n\n`UCSM_unrecognized_clearing_system_member_identification`-The instructed financial institution identifier subject to financial institution identity validation has not been found in the SWIFT directory for the instructed payment context. \n\n`IBIC_invalid_bic`-The instructed financial institution identifier subject to financial institution identity validation is not a valid BIC for the instructed payment context.\n\n`ICTY_invalid_country`-Instructed country code is not a valid country code on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code)\n\n`MFIN_missing_financial_institution_identifier`-Financial Institution Identifier is missing from the payment context in order for the validation of the instructed payment information to be performed.\n",
      "enum": [
        "VIBN_valid_iban",
        "VDOM_valid_domestic_bank_specific",
        "VBBN_valid_bban",
        "MCTY_missing_country_code",
        "IIBN_invalid_iban",
        "IDOM_invalid_domestic_bank_specific",
        "IBBN_invalid_bban",
        "IFIN_inconsistent_financial_institution_identification",
        "INCT_inconsistent_country",
        "CFIN_consistent_financial_institution_identification",
        "CCTY_consistent_country",
        "AINP_account_data_collection_in_progress",
        "ICCH_check_not_applied",
        "UCSM_unrecognized_clearing_system_member_identification",
        "IBIC_invalid_bic",
        "ICTY_invalid_country",
        "MFIN_missing_financial_institution_identifier"
      ]
    },
    "AccountFormatValidationStatus1Code": {
      "type": "string",
      "description": "The list of unique status identifiers for the Account Format Validation service.\n\n`CVAL_valid_with_comments`-The payment information instructed for validation  is valid but the instructed payment context can be further improved.\n\n`NAVL_not_available`-The validation of the instructed payment information is not available in the instructed payment context, typically due to payment data collection process being in progress and insufficient data coverage. \n\n`IVAL_invalid`-The payment information instructed for validation it is not valid in the instructed payment context. \n\n`CNPR_could_not_perform`-The validation of the instructed payment information could not be performed in the instructed payment context typically due to missing payment context information.\n\n`FVAL_valid`-The payment information instructed for validation it is valid in the instructed payment context. \n\n`NOAP_not_applicable`-The validation of the instructed payment information has not been applied because didn't make sense for the given context.\n",
      "enum": [
        "CVAL_valid_with_comments",
        "NAVL_not_available",
        "IVAL_invalid",
        "CNPR_could_not_perform",
        "FVAL_valid",
        "NOAP_not_applicable"
      ]
    },
    "AccountIdentification4Choice": {
      "type": "object",
      "properties": {
        "iban": {
          "$ref": "#/$defs/IBAN2007Identifier"
        },
        "other": {
          "$ref": "#/$defs/GenericAccountIdentification1"
        }
      },
      "additionalProperties": false,
      "description": "Specifies the unique identification of an account as assigned by\nthe account servicer.\n",
      "oneOf": [
        {
          "required": [
            "iban"
          ]
        },
        {
          "required": [
            "other"
          ]
        }
      ]
    },
    "AccountSchemeName1Choice": {
      "type": "object",
      "properties": {
        "code": {
          "$ref": "#/$defs/ExternalAccountIdentification1Code"
        },
        "proprietary": {
          "$ref": "#/$defs/Max35Text"
        }
      },
      "additionalProperties": false,
      "description": "Sets of elements to identify a name of the identification scheme.\n",
      "oneOf": [
        {
          "required": [
            "code"
          ]
        },
        {
          "required": [
            "proprietary"
          ]
        }
      ]
    },
    "AddressType2Code": {
      "type": "string",
      "description": "Specifies the type of address.\n\n`ADDR`-Address is the complete postal address.\n\n`PBOX`-Address is a postal office (PO) box.\n\n`HOME`-Address is the home address.\n\n`BIZZ`-Address is the business address.\n\n`MLTO`-Address is the address to which mail is sent.\n\n`DLVY`-Address is the address to which delivery is to take place.",
      "enum": [
        "ADDR",
        "PBOX",
        "HOME",
        "BIZZ",
        "MLTO",
        "DLVY"
      ]
    },
    "AddressType3Choice": {
      "type": "object",
      "properties": {
        "code": {
          "$ref": "#/$defs/AddressType2Code"
        },
        "proprietary": {
          "$ref": "#/$defs/GenericIdentification30"
        }
      },
      "additionalProperties": false,
      "description": "Choice of formats for the type of address.\n",
      "oneOf": [
        {
          "required": [
            "code"
          ]
        },
        {
          "required": [
            "proprietary"
          ]
        }
      ]
    },
    "BICFIDec2014Identifier": {
      "pattern": "^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$",
      "type": "string",
      "description": "Code allocated to a financial institution by the ISO 9362 Registration\nAuthority as described in ISO 9362: 2014 - \"Banking - Banking telecommunication  messages - Business identifier code (BIC)\".\n"
    },
    "ClearingSystemIdentification2Choice": {
      "type": "object",
      "additionalProperties": true,
      "description": "Choice of a clearing system identifier.",
      "oneOf": [
        {
          "required": [
            "code"
          ],
          "type": "object",
          "properties": {
            "code": {
              "$ref": "#/$defs/ExternalClearingSystemIdentification1Code"
            }
          },
          "additionalProperties": false
        },
        {
          "required": [
            "proprietary"
          ],
          "type": "object",
          "properties": {
            "proprietary": {
              "$ref": "#/$defs/Max35Text"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "ClearingSystemMemberIdentification2": {
      "required": [
        "member_identification"
      ],
      "type": "object",
      "properties": {
        "clearing_system_identification": {
          "$ref": "#/$defs/ClearingSystemIdentification2Choice"
        },
        "member_identification": {
          "$ref": "#/$defs/Max35Text"
        }
      },
      "additionalProperties": false,
      "description": "Unique identification, as assigned by a clearing system, to unambiguously identify a member of the clearing system.\n"
    },
    "CountryCode": {
      "pattern": "^[A-Z]{2,2}$",
      "type": "string",
      "description": "Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).\n"
    },
    "Exact4AlphaNumericText": {
      "pattern": "^[a-zA-Z0-9]{4}$",
      "type": "string",
      "description": "Specifies an alphanumeric string with a length of 4 characters.\n"
    },
    "ExternalAccountIdentification1Code": {
      "maxLength": 4,
      "minLength": 1,
      "type": "string",
      "description": "Specifies the external account identification scheme name code in the format of character string with a maximum length of 4 characters. The list of valid codes is an external code list published separately. External code sets can be downloaded from www.iso20022.org.\n"
    },
    "ExternalClearingSystemIdentification1Code": {
      "maxLength": 5,
      "minLength": 1,
      "type": "string",
      "description": "Specifies the clearing system identification code, as published in an external clearing system identification code list. External code sets can be downloaded from www.iso20022.org.\n"
    },
    "FinancialInstitutionIdentification24": {
      "type": "object",
      "properties": {
        "bicfi": {
          "$ref": "#/$defs/BICFIDec2014Identifier"
        },
        "clearing_system_member_identification": {
          "$ref": "#/$defs/ClearingSystemMemberIdentification2"
        },
        "name": {
          "$ref": "#/$defs/Max140Text"
        },
        "postal_address": {
          "$ref": "#/$defs/PostalAddress24"
        }
      },
      "additionalProperties": false,
      "description": "Specifies the details to identify a financial institution."
    },
    "GenericAccountIdentification1": {
      "required": [
        "identification"
      ],
      "type": "object",
      "properties": {
        "identification": {
          "$ref": "#/$defs/Max34Text"
        },
        "scheme_name": {
          "$ref": "#/$defs/AccountSchemeName1Choice"
        },
        "issuer": {
          "$ref": "#/$defs/Max35Text"
        }
      },
      "additionalProperties": false,
      "description": "Information related to a generic account identification."
    },
    "GenericIdentification30": {
      "required": [
        "identification",
        "issuer"
      ],
      "type": "object",
      "properties": {
        "identification": {
          "$ref": "#/$defs/Exact4AlphaNumericText"
        },
        "issuer": {
          "$ref": "#/$defs/Max35Text"
        },
        "scheme_name": {
          "$ref": "#/$defs/Max35Text"
        }
      },
      "additionalProperties": false,
      "description": "Information related to an identification, for example, party identification or account identification."
    },
    "IBAN2007Identifier": {
      "pattern": "^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$",
      "type": "string",
      "description": "An identifier used internationally by financial institutions to\nuniquely identify the account of a customer at a financial institution, as\ndescribed in the latest edition of the international standard ISO 13616: 2007\n- \"Banking and related financial services - International Bank Account Number\n(IBAN)\".\n"
    },
    "Max140Text": {
      "maxLength": 140,
      "minLength": 1,
      "type": "string",
      "description": "Specifies a character string with a maximum length of 140 characters."
    },
    "Max16Text": {
      "maxLength": 16,
      "minLength": 1,
      "type": "string",
      "description": "Specifies a character string with a maximum length of 16 characters."
    },
    "Max34Text": {
      "maxLength": 34,
      "minLength": 1,
      "type": "string",
      "description": "Specifies a character string with a maximum length of 34 characters."
    },
    "Max35Text": {
      "maxLength": 35,
      "minLength": 1,
      "type": "string",
      "description": "Specifies a character string with a maximum length of 35 characters."
    },
    "Max70Text": {
      "maxLength": 70,
      "minLength": 1,
      "type": "string",
      "description": "Specifies a character string with a maximum length of 70characters."
    },
    "PostalAddress24": {
      "type": "object",
      "properties": {
        "address_type": {
          "$ref": "#/$defs/AddressType3Choice"
        },
        "department": {
          "$ref": "#/$defs/Max70Text"
        },
        "sub_department": {
          "$ref": "#/$defs/Max70Text"
        },
        "street_name": {
          "$ref": "#/$defs/Max70Text"
        },
        "building_number": {
          "$ref": "#/$defs/Max16Text"
        },
        "building_name": {
          "$ref": "#/$defs/Max35Text"
        },
        "floor": {
          "$ref": "#/$defs/Max70Text"
        },
        "post_box": {
          "$ref": "#/$defs/Max16Text"
        },
        "room": {
          "$ref": "#/$defs/Max70Text"
        },
        "post_code": {
          "$ref": "#/$defs/Max16Text"
        },
        "town_name": {
          "$ref": "#/$defs/Max35Text"
        },
        "town_location_name": {
          "$ref": "#/$defs/Max35Text"
        },
        "district_name": {
          "$ref": "#/$defs/Max35Text"
        },
        "country_sub_division": {
          "$ref": "#/$defs/Max35Text"
        },
        "country": {
          "$ref": "#/$defs/CountryCode"
        },
        "address_line": {
          "maxItems": 7,
          "type": "array",
          "items": {
            "$ref": "#/$defs/Max70Text"
          }
        }
      },
      "additionalProperties": false,
      "description": "Information that locates and identifies a specific address, as defined by postal services."
    }
  }
}