FETCH402
← Protocol index

Resource / 342

healthy

Unnamed resource.

Before your agent pays an IBAN taken from OCR or invoice ingestion: fix a broken or garbled IBAN — recompute check digits, recover unreadable characters (?) and rank candidates by known bank from national bank registries

Eligibility
probeable
Failures
0
Last quote
2026-08-12 23:00:09 UTC
Last probe
2026-08-12 23:00:09 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-12 23:00:09 UTC GET · HTTP 402 · 88ms · accepts 3 · base 2 ok
Request
GET https://api.invoket.com/iban/repair
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": {
                    "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 an IBAN taken from OCR or invoice ingestion: fix a broken or garbled IBAN — recompute check digits, recover unreadable characters (?) and rank candidates by known bank from national bank registries",
    "mimeType": "application/json",
    "url": "https://api.invoket.com/iban/repair"
  },
  "x402Version": 2
}

Response headers

{
  "connection": "keep-alive",
  "content-length": "4991",
  "content-security-policy": "default-src 'none'; frame-ancestors 'none'",
  "content-type": "application/json",
  "date": "Wed, 12 Aug 2026 23:00:08 GMT",
  "payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQQVlNRU5ULVNJR05BVFVSRSBoZWFkZXIgaXMgcmVxdWlyZWQiLCJyZXNvdXJjZSI6eyJ1cmwiOiJodHRwczovL2FwaS5pbnZva2V0LmNvbS9pYmFuL3JlcGFpciIsImRlc2NyaXB0aW9uIjoiQmVmb3JlIHlvdXIgYWdlbnQgcGF5cyBhbiBJQkFOIHRha2VuIGZyb20gT0NSIG9yIGludm9pY2UgaW5nZXN0aW9uOiBmaXggYSBicm9rZW4gb3IgZ2FyYmxlZCBJQkFOIOKAlCByZWNvbXB1dGUgY2hlY2sgZGlnaXRzLCByZWNvdmVyIHVucmVhZGFibGUgY2hhcmFjdGVycyAoPykgYW5kIHJhbmsgY2FuZGlkYXRlcyBieSBrbm93biBiYW5rIGZyb20gbmF0aW9uYWwgYmFuayByZWdpc3RyaWVzIiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sImFjY2VwdHMiOlt7InNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYW1vdW50IjoiMTAwMDAiLCJhc3NldCI6IjB4ODMzNTg5ZkNENmVEYjZFMDhmNGM3QzMyRDRmNzFiNTRiZEEwMjkxMyIsInBheVRvIjoiMHg0NDY1ODI1QjBhYzcxM2FBMkZhMDdFYTI5MDIzMDIwODA0QTEyOGVlIiwibWF4VGltZW91dFNlY29uZHMiOjYwLCJleHRyYSI6eyJuYW1lIjoiVVNEIENvaW4iLCJ2ZXJzaW9uIjoiMiJ9fSx7InNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6InNvbGFuYTo1ZXlrdDRVc0Z2OFA4TkpkVFJFcFkxdnpxS3FaS3ZkcCIsImFtb3VudCI6IjEwMDAwIiwiYXNzZXQiOiJFUGpGV2RkNUF1ZnFTU3FlTTJxTjF4enliYXBDOEc0d0VHR2tad3lURHQxdiIsInBheVRvIjoiQWUxdW93WVNqYkg0N3VDaVpNbWM1MUFxeGY5NjRiMUZzNGQxYmphUG1NTjYiLCJtYXhUaW1lb3V0U2Vjb25kcyI6NjAsImV4dHJhIjp7ImRvbWFpbiI6Imludm9rZXQuY29tIiwiZmVlUGF5ZXIiOiJHVkpKN3JkR2lYcjV4YVliUndSYmpmYUpMN2Ztd1J5Z0ZpMUg2YUdxRHZlYiJ9fSx7InNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYW1vdW50IjoiMTAwMCIsImFzc2V0IjoiMHg4MzM1ODlmQ0Q2ZURiNkUwOGY0YzdDMzJENGY3MWI1NGJkQTAyOTEzIiwicGF5VG8iOiIweDQ0NjU4MjVCMGFjNzEzYUEyRmEwN0VhMjkwMjMwMjA4MDRBMTI4ZWUiLCJtYXhUaW1lb3V0U2Vjb25kcyI6NjAsImV4dHJhIjp7Im5hbWUiOiJVU0QgQ29pbiIsInZlcnNpb24iOiIyIn19XSwiZXh0ZW5zaW9ucyI6eyJiYXphYXIiOnsic2NoZW1hIjp7IiRzY2hlbWEiOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsInByb3BlcnRpZXMiOnsiaW5wdXQiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlLCJwcm9wZXJ0aWVzIjp7ImhlYWRlcnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoib2JqZWN0In0sIm1ldGhvZCI6eyJlbnVtIjpbIkdFVCIsIkhFQUQiLCJERUxFVEUiXSwidHlwZSI6InN0cmluZyJ9LCJxdWVyeVBhcmFtcyI6eyJwcm9wZXJ0aWVzIjp7ImliYW4iOnsidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiaWJhbiJdLCJ0eXBlIjoib2JqZWN0In0sInNjaGVtYSI6eyJ0eXBlIjoib2JqZWN0In0sInR5cGUiOnsiY29uc3QiOiJodHRwIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSIsIm1ldGhvZCJdLCJ0eXBlIjoib2JqZWN0In0sIm91dHB1dCI6eyJwcm9wZXJ0aWVzIjp7ImV4YW1wbGUiOnsidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjp7InR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsiaW5wdXQiXSwidHlwZSI6Im9iamVjdCJ9fX19",
  "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": "DE89370400440532013?00"
          },
          "schema": {
            "properties": {
              "iban": {
                "type": "string"
              }
            },
            "required": [
              "iban"
            ],
            "type": "object"
          },
          "type": "http"
        },
        "output": {
          "example": {
            "data": {
              "already_valid": false,
              "ambiguous": false,
              "candidates": [
                {
                  "bank_known": true,
                  "iban": "DE89370400440532013000",
                  "resolution": {
                    "bank": {
                      "bic": "COBADEFFXXX",
                      "name": "Commerzbank"
                    },
                    "bank_code": "37040044",
                    "country": "DE",
                    "coverage": "full",
                    "iban": "DE89370400440532013000",
                    "reachable": true,
                    "valid": true
                  }
                }
              ],
              "input": "DE89370400440532013?00",
              "repaired": true
            },
            "provenance": {
              "fetched_at": "2026-06-21T09:30:00Z",
              "freshness": {
                "as_of": "2026-06-11T00:00:00Z",
                "kind": "snapshot"
              },
              "source": "national-bank-registries"
            }
          },
          "schema": {
            "properties": {
              "data": {
                "properties": {
                  "already_valid": {
                    "type": "boolean"
                  },
                  "ambiguous": {
                    "type": "boolean"
                  },
                  "candidates": {
                    "items": {
                      "properties": {
                        "bank_known": {
                          "type": "boolean"
                        },
                        "iban": {
                          "type": "string"
                        },
                        "resolution": {
                          "properties": {
                            "bank": {
                              "properties": {
                                "bic": {
                                  "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": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "reachable": {
                              "type": [
                                "boolean",
                                "null"
                              ]
                            },
                            "sepa_reachability": {
                              "type": [
                                "object",
                                "null"
                              ]
                            },
                            "valid": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "bank",
                            "bank_code",
                            "country",
                            "coverage",
                            "iban",
                            "reachable",
                            "valid"
                          ],
                          "type": "object"
                        }
                      },
                      "required": [
                        "bank_known",
                        "iban",
                        "resolution"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "input": {
                    "type": "string"
                  },
                  "issue": {
                    "description": "Why no candidate was returned, when 'candidates' is empty: 'TOO_AMBIGUOUS' (too many unreadable characters to decide) or 'UNREPAIRABLE' (no valid IBAN can be reconstructed). Null when at least one candidate is returned. An empty result is a SUCCESSFUL answer (HTTP 200), never an error.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "repaired": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "already_valid",
                  "ambiguous",
                  "candidates",
                  "input",
                  "repaired"
                ],
                "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": {
                    "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 an IBAN taken from OCR or invoice ingestion: fix a broken or garbled IBAN — recompute check digits, recover unreadable characters (?) and rank candidates by known bank from national bank registries",
    "mimeType": "application/json",
    "url": "https://api.invoket.com/iban/repair"
  },
  "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": "DE89370400440532013?00"
  },
  "schema": {
    "properties": {
      "iban": {
        "type": "string"
      }
    },
    "required": [
      "iban"
    ],
    "type": "object"
  },
  "type": "http"
}
OutputJSON
{
  "example": {
    "data": {
      "already_valid": false,
      "ambiguous": false,
      "candidates": [
        {
          "bank_known": true,
          "iban": "DE89370400440532013000",
          "resolution": {
            "bank": {
              "bic": "COBADEFFXXX",
              "name": "Commerzbank"
            },
            "bank_code": "37040044",
            "country": "DE",
            "coverage": "full",
            "iban": "DE89370400440532013000",
            "reachable": true,
            "valid": true
          }
        }
      ],
      "input": "DE89370400440532013?00",
      "repaired": true
    },
    "provenance": {
      "fetched_at": "2026-06-21T09:30:00Z",
      "freshness": {
        "as_of": "2026-06-11T00:00:00Z",
        "kind": "snapshot"
      },
      "source": "national-bank-registries"
    }
  },
  "schema": {
    "properties": {
      "data": {
        "properties": {
          "already_valid": {
            "type": "boolean"
          },
          "ambiguous": {
            "type": "boolean"
          },
          "candidates": {
            "items": {
              "properties": {
                "bank_known": {
                  "type": "boolean"
                },
                "iban": {
                  "type": "string"
                },
                "resolution": {
                  "properties": {
                    "bank": {
                      "properties": {
                        "bic": {
                          "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": {
                      "type": "boolean"
                    },
                    "valid": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "bank",
                    "bank_code",
                    "country",
                    "coverage",
                    "iban",
                    "reachable",
                    "valid"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "bank_known",
                "iban",
                "resolution"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "input": {
            "type": "string"
          },
          "repaired": {
            "type": "boolean"
          }
        },
        "required": [
          "already_valid",
          "ambiguous",
          "candidates",
          "input",
          "repaired"
        ],
        "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"
}