← Protocol index
Resource / 342
healthyUnnamed 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
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
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"
}