changedOutput schema / properties / bic / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "address": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "as_of": {
- "type": [
- "string",
- "null"
- ]
- },
- "city": {
- "type": [
- "string",
- "null"
- ]
- },
- "country": {
- "type": "string"
- },
- "language": {
- "type": [
- "string",
- "null"
- ]
- },
- "post_code": {
- "type": [
- "string",
- "null"
- ]
- },
- "region": {
- "type": [
- "string",
- "null"
- ]
- },
- "romanization": {
- "enum": [
- "original_latin",
- "gleif_english",
- "unavailable"
- ],
- "type": "string"
- },
- "romanized": {
- "type": [
- "string",
- "null"
- ]
- },
- "source": {
- "type": "string"
- },
- "street": {
- "type": [
- "string",
- "null"
- ]
- },
- "type": {
- "const": "registered",
- "type": "string"
- }
- },
- "required": [
- "type",
- "street",
- "post_code",
- "region",
- "city",
- "country",
- "romanized",
- "romanization",
- "source",
- "language",
- "as_of"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "as_of": {
- "type": [
- "string",
- "null"
- ]
- },
- "authoritative": {
- "description": "Whether this BIC may be stored and settled against. Derived from basis, so the two cannot disagree. NOT bank_code_check.authoritative, which answers a different question — whether a national register was consulted about the BANK CODE. San Marino is where the two part: the pairing is the supervisor’s, the code space is not its to settle.",
- "type": "boolean"
- },
- "bank_name": {
- "type": [
- "string",
- "null"
- ]
- },
- "basis": {
- "description": "Where the bank code to BIC pairing came from, and therefore what may be done with the BIC. national_register (the country register publishes this BIC for this bank code — today DE, AT, BE, SK, CZ, BG, CH, LI and SM; settlement-grade) | curated_map (our maintained bank-code map, exact key, usually right and not an allocation record) | directory_prefix (the bic8 LIKE fallback, which can match several institutions — read bank_code_check.candidates). Outside a national_register basis the BIC is ADVISORY: confirm it with the beneficiary or the bank before storing it as a routing instruction.",
- "type": "string"
- },
- "bic8": {
- "description": "The eight characters of the institution — the field to compare a supplied BIC against. code is served as the consulted source publishes it, so it is 8 or 11 characters; this one never moves. The branch code (last three characters) is informational: in a cooperative network it names the LOCAL bank and the first eight its clearing institution.",
- "type": "string"
- },
- "city": {
- "type": [
- "string",
- "null"
- ]
- },
- "code": {
- "type": "string"
- },
- "lei": {
- "description": "GLEIF identity of the resolved BIC holder, not necessarily the bank-code holder.",
- "type": [
- "string",
- "null"
- ]
- },
- "lei_status": {
- "type": [
- "string",
- "null"
- ]
- },
- "postal_address": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "adr_line": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "as_of": {
- "type": [
- "string",
- "null"
- ]
- },
- "bldg_nb": {
- "type": "string"
- },
- "ctry": {
- "type": "string"
- },
- "format": {
- "enum": [
- "structured",
- "hybrid"
- ],
- "type": "string"
- },
- "pst_cd": {
- "type": "string"
- },
- "source": {
- "type": "string"
- },
- "strt_nm": {
- "type": "string"
- },
- "twn_nm": {
- "type": "string"
- }
- },
- "required": [
- "twn_nm",
- "ctry",
- "format",
- "source",
- "as_of"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "redirected_from": {
- "description": "The bank code asked about, when the register answered for the one that took over its clearing (CH/LI only today: SIX marks an IID concatenated and publishes its successor). The IBAN stays valid — a redirect is not a retirement.",
- "type": "string"
- },
- "source": {
- "description": "Source of the bank-code/BIC pairing; keep its provenance.",
- "type": [
- "string",
- "null"
- ]
- },
- "source_as_of": {
- "description": "Year-month the SOURCE DATA is from, present only when it differs from as_of. as_of dates the import; for the redistributed SWIFT directory the upstream stopped publishing years ago, so as_of alone presents an old bank name as last month's. Absent means no gap has been established, never \"this is current\".",
- "type": "string"
- }
- },
- "required": [
- "code",
- "bank_name",
- "city"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "as_of": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "city": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "country": {
+ "type": "string"
+ },
+ "language": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "post_code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "region": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "romanization": {
+ "enum": [
+ "original_latin",
+ "gleif_english",
+ "unavailable"
+ ],
+ "type": "string"
+ },
+ "romanized": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "source": {
+ "type": "string"
+ },
+ "street": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "registered",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "street",
+ "post_code",
+ "region",
+ "city",
+ "country",
+ "romanized",
+ "romanization",
+ "source",
+ "language",
+ "as_of"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "as_of": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "authoritative": {
+ "description": "Whether this BIC may be stored and settled against. Derived from basis, so the two cannot disagree. NOT bank_code_check.authoritative, which answers a different question — whether a national register was consulted about the BANK CODE. San Marino is where the two part: the pairing is the supervisor’s, the code space is not its to settle.",
+ "type": "boolean"
+ },
+ "bank_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "basis": {
+ "description": "Where the bank code to BIC pairing came from, and therefore what may be done with the BIC. national_register (the country register publishes this BIC for this bank code — today DE, AT, BE, SK, CZ, BG, CH, LI and SM; settlement-grade) | curated_map (our maintained bank-code map, exact key, usually right and not an allocation record) | directory_prefix (the bic8 LIKE fallback, which can match several institutions — read bank_code_check.candidates). Outside a national_register basis the BIC is ADVISORY: confirm it with the beneficiary or the bank before storing it as a routing instruction.",
+ "type": "string"
+ },
+ "bic8": {
+ "description": "The eight characters of the institution — the field to compare a supplied BIC against. code is served as the consulted source publishes it, so it is 8 or 11 characters; this one never moves. The branch code (last three characters) is informational: in a cooperative network it names the LOCAL bank and the first eight its clearing institution.",
+ "type": "string"
+ },
+ "city": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "code": {
+ "type": "string"
+ },
+ "lei": {
+ "description": "GLEIF identity of the resolved BIC holder, not necessarily the bank-code holder.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "lei_status": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "listed_in_current_source": {
+ "description": "Whether this BIC8 still appears in a list refreshed this cycle: GLEIF, the directory sources that carry no vintage, a national register, the EPC scheme registers. true when one of them carries it; null when it was not found in what could be read in full (never false by default). false is reserved for an index built from every list read in full, which is not the case today: the EBA STEP2 and NBP lists are only read through our deduplicated directory, so this field answers true or null. It does NOT prove the bank still exists under this name: a clearing list can keep the name of a bank that was absorbed.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "postal_address": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "adr_line": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "as_of": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "bldg_nb": {
+ "type": "string"
+ },
+ "ctry": {
+ "type": "string"
+ },
+ "format": {
+ "enum": [
+ "structured",
+ "hybrid"
+ ],
+ "type": "string"
+ },
+ "pst_cd": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "strt_nm": {
+ "type": "string"
+ },
+ "twn_nm": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "twn_nm",
+ "ctry",
+ "format",
+ "source",
+ "as_of"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "redirected_from": {
+ "description": "The bank code asked about, when the register answered for the one that took over its clearing (CH/LI only today: SIX marks an IID concatenated and publishes its successor). The IBAN stays valid — a redirect is not a retirement.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Source of the bank-code/BIC pairing; keep its provenance.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "source_as_of": {
+ "description": "Year-month the source DATA is from, present ONLY when it differs from as_of. On a curated_map or directory_prefix answer it dates the directory row that supplied the name, the city, the LEI or the address when that row comes from a frozen public copy; never present on a national_register answer, whose name comes from the register and is dated by as_of. Absent means no gap has been established, never 'this is current'.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "bank_name",
+ "city"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]
addedOutput schema / properties / checks
Added value: +{
+ "additionalProperties": false,
+ "description": "One status per check: pass (checked against a source that settles it), fail (checked, and wrong), inferred (answered from a source that does not settle it), unknown (attempted, no conclusion), not_checked (IBANforge does not make this check here), not_applicable (the check has no object for this IBAN). payee_name: never checked here; the name check is made by the payee's bank through Verification of Payee (VoP), and sepa.vop_register_status says whether that bank answers VoP requests. account_exists: never checked here; only the payee's bank knows whether the account is open. payee_sanctions: never checked; the sanctions screen of POST /v1/iban/compliance is made on the payee's bank (BIC8) and country only. institution_sanctions and country_sanctions are filled by POST /v1/iban/compliance and not_checked on a validation. national_check_digits: checked for GB (Vocalink modulus); other countries are being added. A key may be added later; a key is never removed. Present only when valid is true.",
+ "properties": {
+ "account_exists": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ },
+ "bank_code": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ },
+ "bic": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ },
+ "country_sanctions": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ },
+ "iban_checksum": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ },
+ "iban_structure": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ },
+ "institution_sanctions": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ },
+ "national_check_digits": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ },
+ "payee_name": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ },
+ "payee_sanctions": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ },
+ "sepa_reachability": {
+ "description": "pass | fail | inferred | unknown | not_checked | not_applicable",
+ "type": "string"
+ }
+ },
+ "required": [
+ "iban_structure",
+ "iban_checksum",
+ "bank_code",
+ "bic",
+ "sepa_reachability",
+ "national_check_digits",
+ "account_exists",
+ "payee_name",
+ "institution_sanctions",
+ "country_sanctions",
+ "payee_sanctions"
+ ],
+ "type": "object"
+}