FETCH402
← Protocol index

Resource / 398

healthy

Unnamed resource.

Before your agent pays a new bank account: validate the IBAN (all countries), resolve its bank and BIC from national bank registries, and check SEPA reachability per scheme (SCT, SCT Inst, SDD Core/B2B) against the EPC register

Eligibility
probeable
Failures
0
Last quote
2026-08-13 00:00:03 UTC
Last probe
2026-08-13 00:00:03 UTC
Payment requirements / accepts[] 3 options
State Network Scheme Atomic amount Asset payTo / untrusted
active eip155:8453 exact 10000 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x4465825B0ac713aA2Fa07Ea29023020804A128ee
active eip155:8453 exact 1000 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x4465825B0ac713aA2Fa07Ea29023020804A128ee
active solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp exact 10000 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6

All advertised payment options are stored. Base (`eip155:8453`) is the operational network for ranking and canaries; non-Base options remain visible for transparency.

Probe evidence 1 recent
healthy 2026-08-13 00:00:03 UTC GET · HTTP 402 · 86ms · accepts 3 · base 2 ok
Request
GET https://api.invoket.com/iban/resolve
Robots
error
Note
robots_error:{:robots_http_status, 404};http_402;accepts=3;base=2
Accepts fingerprint
cee94ad6aaec5f335c40a4a2f4aa2973c966c963d15802aa1282a5b2323bc6b8

Accepts snapshot

[
  {
    "amount": "10000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "assetTransferMethod": null,
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "maxTimeoutSeconds": 60,
    "network": "eip155:8453",
    "payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
    "paymentFlow": null,
    "raw": {
      "amount": "10000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "max_timeout_seconds": 60,
      "network": "eip155:8453",
      "payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
      "pay_to": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
      "scheme": "exact"
    },
    "scheme": "exact"
  },
  {
    "amount": "10000",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "assetTransferMethod": null,
    "extra": {
      "domain": "invoket.com",
      "feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
    },
    "maxTimeoutSeconds": 60,
    "network": "solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp",
    "payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
    "paymentFlow": null,
    "raw": {
      "amount": "10000",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "extra": {
        "domain": "invoket.com",
        "feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
      },
      "maxTimeoutSeconds": 60,
      "max_timeout_seconds": 60,
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
      "pay_to": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
      "scheme": "exact"
    },
    "scheme": "exact"
  },
  {
    "amount": "1000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "assetTransferMethod": null,
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "maxTimeoutSeconds": 60,
    "network": "eip155:8453",
    "payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
    "paymentFlow": null,
    "raw": {
      "amount": "1000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "max_timeout_seconds": 60,
      "network": "eip155:8453",
      "payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
      "pay_to": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
      "scheme": "exact"
    },
    "scheme": "exact"
  }
]

PaymentRequired raw

{
  "accepts": [
    {
      "amount": "10000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "network": "eip155:8453",
      "payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
      "scheme": "exact"
    },
    {
      "amount": "10000",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "extra": {
        "domain": "invoket.com",
        "feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
      },
      "maxTimeoutSeconds": 60,
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
      "scheme": "exact"
    },
    {
      "amount": "1000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "network": "eip155:8453",
      "payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
      "scheme": "exact"
    }
  ],
  "error": "PAYMENT-SIGNATURE header is required",
  "extensions": {
    "bazaar": {
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "headers": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "method": {
                "enum": [
                  "GET",
                  "HEAD",
                  "DELETE"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "iban": {
                    "description": "IBAN to verify, any SEPA or non-SEPA country; spaces are tolerated",
                    "type": "string"
                  }
                },
                "required": [
                  "iban"
                ],
                "type": "object"
              },
              "schema": {
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "resource": {
    "description": "Before your agent pays a new bank account: validate the IBAN (all countries), resolve its bank and BIC from national bank registries, and check SEPA reachability per scheme (SCT, SCT Inst, SDD Core/B2B) against the EPC register",
    "mimeType": "application/json",
    "url": "https://api.invoket.com/iban/resolve"
  },
  "x402Version": 2
}

Response headers

{
  "connection": "keep-alive",
  "content-length": "5510",
  "content-security-policy": "default-src 'none'; frame-ancestors 'none'",
  "content-type": "application/json",
  "date": "Thu, 13 Aug 2026 00:00:03 GMT",
  "payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQQVlNRU5ULVNJR05BVFVSRSBoZWFkZXIgaXMgcmVxdWlyZWQiLCJyZXNvdXJjZSI6eyJ1cmwiOiJodHRwczovL2FwaS5pbnZva2V0LmNvbS9pYmFuL3Jlc29sdmUiLCJkZXNjcmlwdGlvbiI6IkJlZm9yZSB5b3VyIGFnZW50IHBheXMgYSBuZXcgYmFuayBhY2NvdW50OiB2YWxpZGF0ZSB0aGUgSUJBTiAoYWxsIGNvdW50cmllcyksIHJlc29sdmUgaXRzIGJhbmsgYW5kIEJJQyBmcm9tIG5hdGlvbmFsIGJhbmsgcmVnaXN0cmllcywgYW5kIGNoZWNrIFNFUEEgcmVhY2hhYmlsaXR5IHBlciBzY2hlbWUgKFNDVCwgU0NUIEluc3QsIFNERCBDb3JlL0IyQikgYWdhaW5zdCB0aGUgRVBDIHJlZ2lzdGVyIiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sImFjY2VwdHMiOlt7InNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYW1vdW50IjoiMTAwMDAiLCJhc3NldCI6IjB4ODMzNTg5ZkNENmVEYjZFMDhmNGM3QzMyRDRmNzFiNTRiZEEwMjkxMyIsInBheVRvIjoiMHg0NDY1ODI1QjBhYzcxM2FBMkZhMDdFYTI5MDIzMDIwODA0QTEyOGVlIiwibWF4VGltZW91dFNlY29uZHMiOjYwLCJleHRyYSI6eyJuYW1lIjoiVVNEIENvaW4iLCJ2ZXJzaW9uIjoiMiJ9fSx7InNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6InNvbGFuYTo1ZXlrdDRVc0Z2OFA4TkpkVFJFcFkxdnpxS3FaS3ZkcCIsImFtb3VudCI6IjEwMDAwIiwiYXNzZXQiOiJFUGpGV2RkNUF1ZnFTU3FlTTJxTjF4enliYXBDOEc0d0VHR2tad3lURHQxdiIsInBheVRvIjoiQWUxdW93WVNqYkg0N3VDaVpNbWM1MUFxeGY5NjRiMUZzNGQxYmphUG1NTjYiLCJtYXhUaW1lb3V0U2Vjb25kcyI6NjAsImV4dHJhIjp7ImRvbWFpbiI6Imludm9rZXQuY29tIiwiZmVlUGF5ZXIiOiJHVkpKN3JkR2lYcjV4YVliUndSYmpmYUpMN2Ztd1J5Z0ZpMUg2YUdxRHZlYiJ9fSx7InNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYW1vdW50IjoiMTAwMCIsImFzc2V0IjoiMHg4MzM1ODlmQ0Q2ZURiNkUwOGY0YzdDMzJENGY3MWI1NGJkQTAyOTEzIiwicGF5VG8iOiIweDQ0NjU4MjVCMGFjNzEzYUEyRmEwN0VhMjkwMjMwMjA4MDRBMTI4ZWUiLCJtYXhUaW1lb3V0U2Vjb25kcyI6NjAsImV4dHJhIjp7Im5hbWUiOiJVU0QgQ29pbiIsInZlcnNpb24iOiIyIn19XSwiZXh0ZW5zaW9ucyI6eyJiYXphYXIiOnsic2NoZW1hIjp7IiRzY2hlbWEiOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsInByb3BlcnRpZXMiOnsiaW5wdXQiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlLCJwcm9wZXJ0aWVzIjp7ImhlYWRlcnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoib2JqZWN0In0sIm1ldGhvZCI6eyJlbnVtIjpbIkdFVCIsIkhFQUQiLCJERUxFVEUiXSwidHlwZSI6InN0cmluZyJ9LCJxdWVyeVBhcmFtcyI6eyJwcm9wZXJ0aWVzIjp7ImliYW4iOnsiZGVzY3JpcHRpb24iOiJJQkFOIHRvIHZlcmlmeSwgYW55IFNFUEEgb3Igbm9uLVNFUEEgY291bnRyeTsgc3BhY2VzIGFyZSB0b2xlcmF0ZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJpYmFuIl0sInR5cGUiOiJvYmplY3QifSwic2NoZW1hIjp7InR5cGUiOiJvYmplY3QifSwidHlwZSI6eyJjb25zdCI6Imh0dHAiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0eXBlIiwibWV0aG9kIl0sInR5cGUiOiJvYmplY3QifSwib3V0cHV0Ijp7InByb3BlcnRpZXMiOnsiZXhhbXBsZSI6eyJ0eXBlIjoib2JqZWN0In0sInR5cGUiOnsidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJpbnB1dCJdLCJ0eXBlIjoib2JqZWN0In19fX0=",
  "referrer-policy": "strict-origin-when-cross-origin",
  "server": "nginx",
  "strict-transport-security": "max-age=63072000; includeSubDomains",
  "x-content-type-options": "nosniff"
}

Response body

{
  "accepts": [
    {
      "amount": "10000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "network": "eip155:8453",
      "payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
      "scheme": "exact"
    },
    {
      "amount": "10000",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "extra": {
        "domain": "invoket.com",
        "feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
      },
      "maxTimeoutSeconds": 60,
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
      "scheme": "exact"
    },
    {
      "amount": "1000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "network": "eip155:8453",
      "payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
      "scheme": "exact"
    }
  ],
  "error": "PAYMENT-SIGNATURE header is required",
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "headers": {
            "accept": "application/json"
          },
          "method": "GET",
          "queryParams": {
            "iban": "DE89370400440532013000"
          },
          "schema": {
            "properties": {
              "iban": {
                "description": "IBAN to verify, any SEPA or non-SEPA country; spaces are tolerated",
                "type": "string"
              }
            },
            "required": [
              "iban"
            ],
            "type": "object"
          },
          "type": "http"
        },
        "output": {
          "example": {
            "data": {
              "bank": {
                "bic": "COBADEFFXXX",
                "name": "Commerzbank"
              },
              "bank_code": "37040044",
              "country": "DE",
              "coverage": "full",
              "iban": "DE89370400440532013000",
              "reachable": true,
              "sepa_reachability": {
                "match": "exact",
                "schemes": [
                  "SCT",
                  "SCT_INST",
                  "SDD_B2B",
                  "SDD_CORE"
                ],
                "sct": true,
                "sct_inst": true,
                "sdd_b2b": true,
                "sdd_core": true
              },
              "valid": true
            },
            "provenance": {
              "fetched_at": "2026-06-12T09:30:00Z",
              "freshness": {
                "as_of": "2026-06-11T00:00:00Z",
                "kind": "snapshot"
              },
              "source": "national-bank-registries+epc-sepa-registers"
            }
          },
          "schema": {
            "properties": {
              "data": {
                "properties": {
                  "bank": {
                    "properties": {
                      "bic": {
                        "description": "ISO 9362 Business Identifier Code (BIC/SWIFT) of the account's bank",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "name": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "bic",
                      "name"
                    ],
                    "type": [
                      "object",
                      "null"
                    ]
                  },
                  "bank_code": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "branch_code": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "country": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "coverage": {
                    "description": "Registry coverage for the IBAN's country: 'full' (complete national registry — an unknown bank means the account is likely unreachable), 'partial' (curated registry of major FR/GB/PT banks — an unknown bank is unknowable, so reachable stays null rather than a false negative), or 'structure_only' (country not in any registry — only IBAN structure is checked)",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "iban": {
                    "type": "string"
                  },
                  "issue": {
                    "description": "Diagnostic code when 'valid' is false — BAD_CHARACTERS, BAD_LENGTH, BAD_FORMAT, BAD_CHECKSUM, UNKNOWN_COUNTRY or INVALID_BBAN; null when the IBAN is valid",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "reachable": {
                    "description": "Whether the bank is reachable for at least one SEPA scheme (see sepa_reachability)",
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "sepa_reachability": {
                    "properties": {
                      "match": {
                        "type": "string"
                      },
                      "schemes": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "sct": {
                        "description": "Reachable for SEPA Credit Transfer (SCT); null when the BIC is unknown to the EPC registry",
                        "type": "boolean"
                      },
                      "sct_inst": {
                        "description": "Reachable for SEPA Instant Credit Transfer (SCT Inst); null when unknown",
                        "type": "boolean"
                      },
                      "sdd_b2b": {
                        "description": "Reachable for SEPA Direct Debit B2B (SDD B2B); null when unknown",
                        "type": "boolean"
                      },
                      "sdd_core": {
                        "description": "Reachable for SEPA Direct Debit Core (SDD Core); null when unknown",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "match",
                      "schemes",
                      "sct",
                      "sct_inst",
                      "sdd_b2b",
                      "sdd_core"
                    ],
                    "type": [
                      "object",
                      "null"
                    ]
                  },
                  "valid": {
                    "description": "Whether the IBAN passed structural and checksum (ISO 7064 mod-97) validation",
                    "type": "boolean"
                  }
                },
                "required": [
                  "bank",
                  "bank_code",
                  "country",
                  "coverage",
                  "iban",
                  "reachable",
                  "sepa_reachability",
                  "valid"
                ],
                "type": "object"
              },
              "provenance": {
                "properties": {
                  "fetched_at": {
                    "type": "string"
                  },
                  "freshness": {
                    "properties": {
                      "as_of": {
                        "type": "string"
                      },
                      "kind": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "as_of",
                      "kind"
                    ],
                    "type": "object"
                  },
                  "source": {
                    "description": "Names the reference data actually served: 'national-bank-registries' alone, or 'national-bank-registries+epc-sepa-registers' when the response carries a non-null sepa_reachability block. In the composite case provenance.freshness.as_of is the OLDEST of the two snapshot dates: a composite is never fresher than its oldest input.",
                    "type": "string"
                  }
                },
                "required": [
                  "fetched_at",
                  "freshness",
                  "source"
                ],
                "type": "object"
              }
            },
            "required": [
              "data",
              "provenance"
            ],
            "type": "object"
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "headers": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "method": {
                "enum": [
                  "GET",
                  "HEAD",
                  "DELETE"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "iban": {
                    "description": "IBAN to verify, any SEPA or non-SEPA country; spaces are tolerated",
                    "type": "string"
                  }
                },
                "required": [
                  "iban"
                ],
                "type": "object"
              },
              "schema": {
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "resource": {
    "description": "Before your agent pays a new bank account: validate the IBAN (all countries), resolve its bank and BIC from national bank registries, and check SEPA reachability per scheme (SCT, SCT Inst, SDD Core/B2B) against the EPC register",
    "mimeType": "application/json",
    "url": "https://api.invoket.com/iban/resolve"
  },
  "x402Version": 2
}

Request headers

{
  "accept": "*/*",
  "user-agent": "Fetch402Bot/0.1 (+https://fetch402.com/crawler; contact: crawler@fetch402.com)"
}

Machine contract

Schemas.

InputJSON
{
  "headers": {
    "accept": "application/json"
  },
  "method": "GET",
  "queryParams": {
    "iban": "DE89370400440532013000"
  },
  "schema": {
    "properties": {
      "iban": {
        "description": "IBAN to verify, any SEPA or non-SEPA country; spaces are tolerated",
        "type": "string"
      }
    },
    "required": [
      "iban"
    ],
    "type": "object"
  },
  "type": "http"
}
OutputJSON
{
  "example": {
    "data": {
      "bank": {
        "bic": "COBADEFFXXX",
        "name": "Commerzbank"
      },
      "bank_code": "37040044",
      "country": "DE",
      "coverage": "full",
      "iban": "DE89370400440532013000",
      "reachable": true,
      "sepa_reachability": {
        "schemes": [
          "SCT",
          "SCT_INST",
          "SDD_B2B",
          "SDD_CORE"
        ],
        "sct": true,
        "sct_inst": true,
        "sdd_b2b": true,
        "sdd_core": true
      },
      "valid": true
    },
    "provenance": {
      "fetched_at": "2026-06-12T09:30:00Z",
      "freshness": {
        "as_of": "2026-06-11T00:00:00Z",
        "kind": "snapshot"
      },
      "source": "national-bank-registries"
    }
  },
  "schema": {
    "properties": {
      "data": {
        "properties": {
          "bank": {
            "properties": {
              "bic": {
                "description": "ISO 9362 Business Identifier Code (BIC/SWIFT) of the account's bank",
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "bic",
              "name"
            ],
            "type": "object"
          },
          "bank_code": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "coverage": {
            "description": "Registry coverage for the IBAN's country: 'full' (complete national registry — an unknown bank means the account is likely unreachable), 'partial' (curated registry of major FR/GB/PT banks — an unknown bank is unknowable, so reachable stays null rather than a false negative), or 'structure_only' (country not in any registry — only IBAN structure is checked)",
            "type": "string"
          },
          "iban": {
            "type": "string"
          },
          "reachable": {
            "description": "Whether the bank is reachable for at least one SEPA scheme (see sepa_reachability)",
            "type": "boolean"
          },
          "sepa_reachability": {
            "properties": {
              "schemes": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "sct": {
                "description": "Reachable for SEPA Credit Transfer (SCT); null when the BIC is unknown to the EPC registry",
                "type": "boolean"
              },
              "sct_inst": {
                "description": "Reachable for SEPA Instant Credit Transfer (SCT Inst); null when unknown",
                "type": "boolean"
              },
              "sdd_b2b": {
                "description": "Reachable for SEPA Direct Debit B2B (SDD B2B); null when unknown",
                "type": "boolean"
              },
              "sdd_core": {
                "description": "Reachable for SEPA Direct Debit Core (SDD Core); null when unknown",
                "type": "boolean"
              }
            },
            "required": [
              "schemes",
              "sct",
              "sct_inst",
              "sdd_b2b",
              "sdd_core"
            ],
            "type": "object"
          },
          "valid": {
            "description": "Whether the IBAN passed structural and checksum (ISO 7064 mod-97) validation",
            "type": "boolean"
          }
        },
        "required": [
          "bank",
          "bank_code",
          "country",
          "coverage",
          "iban",
          "reachable",
          "sepa_reachability",
          "valid"
        ],
        "type": "object"
      },
      "provenance": {
        "properties": {
          "fetched_at": {
            "type": "string"
          },
          "freshness": {
            "properties": {
              "as_of": {
                "type": "string"
              },
              "kind": {
                "type": "string"
              }
            },
            "required": [
              "as_of",
              "kind"
            ],
            "type": "object"
          },
          "source": {
            "type": "string"
          }
        },
        "required": [
          "fetched_at",
          "freshness",
          "source"
        ],
        "type": "object"
      }
    },
    "required": [
      "data",
      "provenance"
    ],
    "type": "object"
  },
  "type": "json"
}