api.invoket.com
The checks your agent runs before it acts: verify a bank account, a phone number, a law in force, the weather or a vehicle — computed from official sources, with provenance in every response. You only pay for answers.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Live 402 challenge
Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.
{
"error": "PAYMENT-SIGNATURE header is required. Free trial on request: send the header `X-402-Trial: 1` on this call and on the signed retry to have a free-trial option added to accepts[].",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"amount": "10000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 60
}
],
"resource": {
"url": "https://api.invoket.com/invoice/read",
"tags": [
"compliance",
"verification",
"fraud-prevention",
"regulatory-data",
"weather"
],
"iconUrl": "https://invoket.com/apple-touch-icon.png",
"mimeType": "application/json",
"description": "Read any EU structured e-invoice in one call: post a Factur-X PDF, CII or UBL XML and get faithful structured data - parties with SIREN/VAT identifiers, line items, VAT breakdown, totals, payment IBAN and due dates. Covers the three formats mandated by the French 2026-2027 e-invoicing reform (EN 16931). No account, no key, no OCR guesswork.",
"serviceName": "Invoket"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"document_base64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBDb3JwdXMgRi0xMDIg4oCUIGZhY3R1cmUgc3ludGjDqXRpcXVlIDogYXV0b2xpcXVpZGF0aW9uIChjYXTDqWdvcmllIEFFKSwKICAgICBjb25mb3JtZSBFTiAxNjkzMSAodmVydGUgcG91ciBsJ29yYWNsZSBvZmZpY2llbCkuIC0tPgo8SW52b2ljZSB4bWxuczpjYWM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkFnZ3JlZ2F0ZUNvbXBvbmVudHMtMiIKIHhtbG5zOmNiYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQmFzaWNDb21wb25lbnRzLTIiCiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6SW52b2ljZS0yIj4KICA8Y2JjOkN1c3RvbWl6YXRpb25JRD51cm46Y2VuLmV1OmVuMTY5MzE6MjAxNzwvY2JjOkN1c3RvbWl6YXRpb25JRD4KICA8Y2JjOklEPlNZTi1JQy0wMDE8L2NiYzpJRD4KICA8Y2JjOklzc3VlRGF0ZT4yMDI2LTA2LTE1PC9jYmM6SXNzdWVEYXRlPgogIDxjYmM6RHVlRGF0ZT4yMDI2LTA3LTE1PC9jYmM6RHVlRGF0ZT4KICA8Y2JjOkludm9pY2VUeXBlQ29kZT4zODA8L2NiYzpJbnZvaWNlVHlwZUNvZGU+CiAgPGNiYzpEb2N1bWVudEN1cnJlbmN5Q29kZT5FVVI8L2NiYzpEb2N1bWVudEN1cnJlbmN5Q29kZT4KICA8Y2FjOkFjY291bnRpbmdTdXBwbGllclBhcnR5PgogICAgPGNhYzpQYXJ0eT4KICAgICAgPGNhYzpQb3N0YWxBZGRyZXNzPgogICAgICAgIDxjYmM6U3RyZWV0TmFtZT4xMiBydWUgZGUgbGEgUGFpeDwvY2JjOlN0cmVldE5hbWU+CiAgICAgICAgPGNiYzpDaXR5TmFtZT5QYXJpczwvY2JjOkNpdHlOYW1lPgogICAgICAgIDxjYmM6UG9zdGFsWm9uZT43NTAwMjwvY2JjOlBvc3RhbFpvbmU+CiAgICAgICAgPGNhYzpDb3VudHJ5PgogICAgICAgICAgPGNiYzpJZGVudGlmaWNhdGlvbkNvZGU+RlI8L2NiYzpJZGVudGlmaWNhdGlvbkNvZGU+CiAgICAgICAgPC9jYWM6Q291bnRyeT4KICAgICAgPC9jYWM6UG9zdGFsQWRkcmVzcz4KICAgICAgPGNhYzpQYXJ0eVRheFNjaGVtZT4KICAgICAgICA8Y2JjOkNvbXBhbnlJRD5GUjQwMzAzMjY1MDQ1PC9jYmM6Q29tcGFueUlEPgogICAgICAgIDxjYWM6VGF4U2NoZW1lPgogICAgICAgICAgPGNiYzpJRD5WQVQ8L2NiYzpJRD4KICAgICAgICA8L2NhYzpUYXhTY2hlbWU+CiAgICAgIDwvY2FjOlBhcnR5VGF4U2NoZW1lPgogICAgICA8Y2FjOlBhcnR5TGVnYWxFbnRpdHk+CiAgICAgICAgPGNiYzpSZWdpc3RyYXRpb25OYW1lPkZvdXJuaXNzZXVyIFNBUzwvY2JjOlJlZ2lzdHJhdGlvbk5hbWU+CiAgICAgICAgPGNiYzpDb21wYW55SUQgc2NoZW1lSUQ9IjAwMDIiPjMwMzI2NTA0NTwvY2JjOkNvbXBhbnlJRD4KICAgICAgPC9jYWM6UGFydHlMZWdhbEVudGl0eT4KICAgIDwvY2FjOlBhcnR5PgogIDwvY2FjOkFjY291bnRpbmdTdXBwbGllclBhcnR5PgogIDxjYWM6QWNjb3VudGluZ0N1c3RvbWVyUGFydHk+CiAgICA8Y2FjOlBhcnR5PgogICAgICA8Y2FjOlBvc3RhbEFkZHJlc3M+CiAgICAgICAgPGNiYzpTdHJlZXROYW1lPkhhdXB0c3RyYXNzZSAxPC9jYmM6U3RyZWV0TmFtZT4KICAgICAgICA8Y2JjOkNpdHlOYW1lPkJlcmxpbjwvY2JjOkNpdHlOYW1lPgogICAgICAgIDxjYmM6UG9zdGFsWm9uZT4xMDExNTwvY2JjOlBvc3RhbFpvbmU+CiAgICAgICAgPGNhYzpDb3VudHJ5PgogICAgICAgICAgPGNiYzpJZGVudGlmaWNhdGlvbkNvZGU+REU8L2NiYzpJZGVudGlmaWNhdGlvbkNvZGU+CiAgICAgICAgPC9jYWM6Q291bnRyeT4KICAgICAgPC9jYWM6UG9zdGFsQWRkcmVzcz4KICAgICAgPGNhYzpQYXJ0eVRheFNjaGVtZT4KICAgICAgICA8Y2JjOkNvbXBhbnlJRD5ERTEyMzQ1Njc4OTwvY2JjOkNvbXBhbnlJRD4KICAgICAgICA8Y2FjOlRheFNjaGVtZT4KICAgICAgICAgIDxjYmM6SUQ+VkFUPC9jYmM6SUQ+CiAgICAgICAgPC9jYWM6VGF4U2NoZW1lPgogICAgICA8L2NhYzpQYXJ0eVRheFNjaGVtZT4KICAgICAgPGNhYzpQYXJ0eUxlZ2FsRW50aXR5PgogICAgICAgIDxjYmM6UmVnaXN0cmF0aW9uTmFtZT5LdW5kZSBHbWJIPC9jYmM6UmVnaXN0cmF0aW9uTmFtZT4KICAgICAgPC9jYWM6UGFydHlMZWdhbEVudGl0eT4KICAgIDwvY2FjOlBhcnR5PgogIDwvY2FjOkFjY291bnRpbmdDdXN0b21lclBhcnR5PgogIDxjYWM6RGVsaXZlcnk+PGNiYzpBY3R1YWxEZWxpdmVyeURhdGU+MjAyNi0wNi0xMDwvY2JjOkFjdHVhbERlbGl2ZXJ5RGF0ZT48Y2FjOkRlbGl2ZXJ5TG9jYXRpb24+PGNhYzpBZGRyZXNzPjxjYWM6Q291bnRyeT48Y2JjOklkZW50aWZpY2F0aW9uQ29kZT5ERTwvY2JjOklkZW50aWZpY2F0aW9uQ29kZT48L2NhYzpDb3VudHJ5PjwvY2FjOkFkZHJlc3M+PC9jYWM6RGVsaXZlcnlMb2NhdGlvbj48L2NhYzpEZWxpdmVyeT48Y2FjOlRheFRvdGFsPgogICAgPGNiYzpUYXhBbW91bnQgY3VycmVuY3lJRD0iRVVSIj4wLjAwPC9jYmM6VGF4QW1vdW50PgogICAgPGNhYzpUYXhTdWJ0b3RhbD4KICAgICAgPGNiYzpUYXhhYmxlQW1vdW50IGN1cnJlbmN5SUQ9IkVVUiI+MTIwMC4wMDwvY2JjOlRheGFibGVBbW91bnQ+CiAgICAgIDxjYmM6VGF4QW1vdW50IGN1cnJlbmN5SUQ9IkVVUiI+MC4wMDwvY2JjOlRheEFtb3VudD4KICAgICAgPGNhYzpUYXhDYXRlZ29yeT4KICAgICAgICA8Y2JjOklEPks8L2NiYzpJRD4KICAgICAgICA8Y2JjOlBlcmNlbnQ+MDwvY2JjOlBlcmNlbnQ+CiAgICAgICAgPGNiYzpUYXhFeGVtcHRpb25SZWFzb24+SW50cmEtY29tbXVuaXR5IHN1cHBseTwvY2JjOlRheEV4ZW1wdGlvblJlYXNvbj4KICAgICAgICA8Y2FjOlRheFNjaGVtZT4KICAgICAgICAgIDxjYmM6SUQ+VkFUPC9jYmM6SUQ+CiAgICAgICAgPC9jYWM6VGF4U2NoZW1lPgogICAgICA8L2NhYzpUYXhDYXRlZ29yeT4KICAgIDwvY2FjOlRheFN1YnRvdGFsPgogIDwvY2FjOlRheFRvdGFsPgogIDxjYWM6TGVnYWxNb25ldGFyeVRvdGFsPgogICAgPGNiYzpMaW5lRXh0ZW5zaW9uQW1vdW50IGN1cnJlbmN5SUQ9IkVVUiI+MTIwMC4wMDwvY2JjOkxpbmVFeHRlbnNpb25BbW91bnQ+CiAgICA8Y2JjOlRheEV4Y2x1c2l2ZUFtb3VudCBjdXJyZW5jeUlEPSJFVVIiPjEyMDAuMDA8L2NiYzpUYXhFeGNsdXNpdmVBbW91bnQ+CiAgICA8Y2JjOlRheEluY2x1c2l2ZUFtb3VudCBjdXJyZW5jeUlEPSJFVVIiPjEyMDAuMDA8L2NiYzpUYXhJbmNsdXNpdmVBbW91bnQ+CiAgICA8Y2JjOlBheWFibGVBbW91bnQgY3VycmVuY3lJRD0iRVVSIj4xMjAwLjAwPC9jYmM6UGF5YWJsZUFtb3VudD4KICA8L2NhYzpMZWdhbE1vbmV0YXJ5VG90YWw+CiAgPGNhYzpJbnZvaWNlTGluZT4KICAgIDxjYmM6SUQ+MTwvY2JjOklEPgogICAgPGNiYzpJbnZvaWNlZFF1YW50aXR5IHVuaXRDb2RlPSJEQVkiPjM8L2NiYzpJbnZvaWNlZFF1YW50aXR5PgogICAgPGNiYzpMaW5lRXh0ZW5zaW9uQW1vdW50IGN1cnJlbmN5SUQ9IkVVUiI+MTIwMC4wMDwvY2JjOkxpbmVFeHRlbnNpb25BbW91bnQ+CiAgICA8Y2FjOkl0ZW0+CiAgICAgIDxjYmM6TmFtZT5QcmVzdGF0aW9uIGRlIGNvbnNlaWw8L2NiYzpOYW1lPgogICAgICA8Y2FjOkNsYXNzaWZpZWRUYXhDYXRlZ29yeT4KICAgICAgICA8Y2JjOklEPks8L2NiYzpJRD4KICAgICAgICA8Y2JjOlBlcmNlbnQ+MDwvY2JjOlBlcmNlbnQ+CiAgICAgICAgPGNhYzpUYXhTY2hlbWU+CiAgICAgICAgICA8Y2JjOklEPlZBVDwvY2JjOklEPgogICAgICAgIDwvY2FjOlRheFNjaGVtZT4KICAgICAgPC9jYWM6Q2xhc3NpZmllZFRheENhdGVnb3J5PgogICAgPC9jYWM6SXRlbT4KICAgIDxjYWM6UHJpY2U+CiAgICAgIDxjYmM6UHJpY2VBbW91bnQgY3VycmVuY3lJRD0iRVVSIj40MDAuMDA8L2NiYzpQcmljZUFtb3VudD4KICAgIDwvY2FjOlByaWNlPgogIDwvY2FjOkludm9pY2VMaW5lPgo8L0ludm9pY2U+Cg=="
},
"type": "http",
"method": "POST",
"schema": {
"type": "object",
"required": [
"document_base64"
],
"properties": {
"document_base64": {
"type": "string",
"description": "Base64 (standard alphabet, whitespace tolerated) of the complete document: a Factur-X/ZUGFeRD PDF (PDF/A-3 with embedded XML) or a CII D16B / UBL 2.1 invoice XML. Alternatively, skip JSON entirely and POST the raw bytes with Content-Type: application/pdf or application/xml. Max body 10 MB (413 beyond). Scanned/image PDFs without embedded XML are rejected (400) - this endpoint reads the structured formats of the EN 16931 core, no OCR"
}
}
},
"headers": {
"accept": "application/json",
"content-type": "application/json"
},
"bodyType": "json"
},
"output": {
"type": "json",
"schema": {
"type": "object",
"required": [
"data",
"provenance"
],
"properties": {
"data": {
"type": "object",
"required": [
"coverage",
"format",
"invoice"
],
"properties": {
"format": {
"type": "object",
"required": [
"declared_profile",
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "Detected document format: 'facturx' (PDF with embedded XML), 'cii' (UN/CEFACT Cross Industry Invoice D16B) or 'ubl' (UBL 2.1 Invoice/CreditNote)"
},
"declared_profile": {
"type": [
"string",
"null"
],
"description": "Factur-X/ZUGFeRD profile DECLARED by the document's specification identifier (BT-24): minimum, basicwl, basic, en16931 or extended; null when absent or from an unknown family. Restated without being verified - profile conformance is /invoice/validate's job"
}
}
},
"invoice": {
"type": "object",
"required": [
"allowances",
"buyer",
"charges",
"contract_reference",
"currency",
"due_date",
"issue_date",
"lines",
"notes",
"number",
"order_reference",
"payment_means",
"seller",
"specification_id",
"totals",
"type_code",
"vat_breakdown"
],
"properties": {
"buyer": {
"type": [
"object",
"null"
],
"required": [
"address",
"identifiers",
"legal_registration_id",
"name",
"vat_id"
],
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"vat_id": {
"type": [
"string",
"null"
]
},
"address": {
"type": [
"object",
"null"
],
"required": [
"city",
"country",
"line1",
"postal_code"
],
"properties": {
"city": {
"type": "string"
},
"line1": {
"type": "string"
},
"country": {
"type": "string"
},
"postal_code": {
"type": "string"
}
}
},
"identifiers": {
"type": "array"
},
"legal_registration_id": {
"type": [
"object",
"null"
],
"required": [
"scheme",
"value"
],
"properties": {
"value": {
"type": "string"
},
"scheme": {
"type": "string"
}
}
}
}
},
"lines": {
"type": "array",
"description": "Invoice lines (BG-25) with item identifiers, quantities, unit prices and VAT category per line. Empty for the Factur-X MINIMUM and BASIC WL profiles, which carry document-level data only (then listed in coverage.absent_fields)"
},
"notes": {
"type": "array",
"items": {
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "string"
}
}
}
},
"payee": {
"type": [
"object",
"null"
]
},
"number": {
"type": [
"string",
"null"
]
},
"seller": {
"type": [
"object",
"null"
],
"required": [
"address",
"identifiers",
"legal_registration_id",
"name",
"vat_id"
],
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"vat_id": {
"type": [
"string",
"null"
]
},
"address": {
"type": [
"object",
"null"
],
"required": [
"city",
"country",
"line1",
"postal_code"
],
"properties": {
"city": {
"type": "string"
},
"line1": {
"type": "string"
},
"country": {
"type": "string"
},
"postal_code": {
"type": "string"
}
}
},
"identifiers": {
"type": "array"
},
"legal_registration_id": {
"type": [
"object",
"null"
],
"required": [
"scheme",
"value"
],
"properties": {
"value": {
"type": "string"
},
"scheme": {
"type": "string"
}
}
}
}
},
"totals": {
"type": [
"object",
"null"
],
"required": [
"due",
"grand_total",
"lines_net",
"net",
"prepaid",
"vat_total"
],
"properties": {
"due": {
"type": [
"string",
"null"
]
},
"net": {
"type": [
"string",
"null"
]
},
"prepaid": {
"type": [
"string",
"null"
]
},
"lines_net": {
"type": [
"string",
"null"
]
},
"vat_total": {
"type": [
"string",
"null"
]
},
"grand_total": {
"type": [
"string",
"null"
]
}
},
"description": "Document totals (BG-22): lines net, invoice net, VAT total, grand total, prepaid and amount due - restated as written, arithmetic consistency is /invoice/validate's job"
},
"charges": {
"type": "array"
},
"currency": {
"type": [
"string",
"null"
]
},
"delivery": {
"type": [
"object",
"null"
]
},
"due_date": {
"type": [
"string",
"null"
]
},
"type_code": {
"type": [
"string",
"null"
]
},
"allowances": {
"type": "array"
},
"issue_date": {
"type": [
"string",
"null"
]
},
"payment_means": {
"type": "array",
"items": {
"type": "object",
"required": [
"credit_accounts",
"means_code",
"remittance_info"
],
"properties": {
"means_code": {
"type": [
"string",
"null"
]
},
"credit_accounts": {
"type": "array",
"items": {
"type": "object",
"required": [
"iban_or_account"
],
"properties": {
"iban_or_account": {
"type": [
"string",
"null"
],
"description": "Payment account identifier (BT-84, usually an IBAN) restated as written in the document - syntax and plausibility checks are /invoice/validate's job"
}
}
}
},
"remittance_info": {
"type": [
"string",
"null"
]
}
}
}
},
"payment_terms": {
"type": [
"string",
"null"
]
},
"vat_breakdown": {
"type": "array",
"items": {
"type": "object",
"required": [
"category",
"rate",
"tax_amount",
"taxable_amount"
],
"properties": {
"rate": {
"type": "string"
},
"category": {
"type": "string"
},
"tax_amount": {
"type": "string"
},
"taxable_amount": {
"type": "string"
}
}
}
},
"tax_point_date": {
"type": [
"string",
"null"
]
},
"buyer_reference": {
"type": [
"string",
"null"
]
},
"order_reference": {
"type": [
"string",
"null"
]
},
"business_process": {
"type": [
"string",
"null"
]
},
"invoicing_period": {
"type": [
"object",
"null"
]
},
"specification_id": {
"type": [
"string",
"null"
]
},
"contract_reference": {
"type": [
"string",
"null"
]
},
"invoiced_object_id": {
"type": [
"object",
"null"
]
},
"preceding_invoices": {
"type": "array"
},
"tax_representative": {
"type": [
"object",
"null"
]
},
"supporting_documents": {
"type": "array"
},
"sales_order_reference": {
"type": [
"string",
"null"
]
},
"vat_accounting_currency": {
"type": [
"string",
"null"
]
}
},
"description": "The EN 16931 semantic model (BT/BG terms) projected faithfully: what the document says, inconsistencies included - no conformance judgement, no guessed field. Amounts are exact decimal strings preserving the source scale. Every BT term is always present and null when the document does not carry it; every BG group is an array that may be empty. A MINIMUM-profile invoice is therefore mostly nulls - a perfectly nominal successful answer; coverage.absent_fields lists what is missing"
},
"coverage": {
"type": "object",
"required": [
"absent_fields",
"notes"
],
"properties": {
"notes": {
"type": "array",
"description": "Reading particularities worth knowing: embedded XML found under a non-standard attachment name, multiple PDF attachments, etc."
},
"absent_fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Top-level semantic model fields the document does not carry - the coverage contract: what is not said is named, never silent"
}
}
}
}
},
"provenance": {
"type": "object",
"required": [
"fetched_at",
"freshness",
"source"
],
"properties": {
"source": {
"type": "string"
},
"freshness": {
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string"
}
}
},
"fetched_at": {
"type": "string"
}
}
}
}
},
"example": {
"data": {
"format": {
"kind": "facturx",
"declared_profile": "basicwl"
},
"invoice": {
"buyer": {
"name": "Ma jolie boutique",
"vat_id": "FR19787878784",
"address": {
"city": "Lyon",
"line1": "35 rue de la République",
"country": "FR",
"postal_code": "69001"
},
"identifiers": [],
"legal_registration_id": {
"value": "78787878400035",
"scheme": "0002"
}
},
"lines": [],
"notes": [
{
"content": "Franco de port (commande > 300 € HT)"
}
],
"number": "FA-2017-0010",
"seller": {
"name": "Au bon moulin",
"vat_id": "FR11999999998",
"address": {
"city": "Malaucène",
"line1": "1242 chemin de l'olive",
"country": "FR",
"postal_code": "84340"
},
"identifiers": [],
"legal_registration_id": {
"value": "99999999800010",
"scheme": "0002"
}
},
"totals": {
"due": "470.15",
"net": "624.90",
"prepaid": "201.00",
"lines_net": "624.90",
"vat_total": "46.25",
"grand_total": "671.15"
},
"charges": [],
"currency": "EUR",
"due_date": "2017-12-13",
"type_code": "380",
"allowances": [],
"issue_date": "2017-11-13",
"payment_means": [
{
"means_code": "30",
"credit_accounts": [
{
"iban_or_account": "FR2012421242124212421242124"
}
],
"remittance_info": "FA-2017-0010"
}
],
"vat_breakdown": [
{
"rate": "20.00",
"category": "S",
"tax_amount": "16.38",
"taxable_amount": "81.90"
},
{
"rate": "5.50",
"category": "S",
"tax_amount": "29.87",
"taxable_amount": "543.00"
}
],
"order_reference": "PO445",
"specification_id": "urn:factur-x.eu:1p0:basicwl",
"contract_reference": "MSPE2017"
},
"coverage": {
"notes": [],
"absent_fields": [
"vat_accounting_currency",
"buyer_reference",
"sales_order_reference",
"payment_terms",
"business_process",
"preceding_invoices",
"allowances",
"charges",
"lines"
]
}
},
"provenance": {
"source": "invoice-document",
"freshness": {
"kind": "live"
},
"fetched_at": "2026-07-11T17:17:58Z"
}
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"document_base64"
],
"properties": {
"document_base64": {
"type": "string",
"description": "Base64 (standard alphabet, whitespace tolerated) of the complete document: a Factur-X/ZUGFeRD PDF (PDF/A-3 with embedded XML) or a CII D16B / UBL 2.1 invoice XML. Alternatively, skip JSON entirely and POST the raw bytes with Content-Type: application/pdf or application/xml. Max body 10 MB (413 beyond). Scanned/image PDFs without embedded XML are rejected (400) - this endpoint reads the structured formats of the EN 16931 core, no OCR"
}
}
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"schema": {
"type": "object"
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"queryParams": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object"
}
}
}
}
}
}
},
"x402Version": 2
}Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.01 USDC on Base to 0x4465…128ee. The signed payment is good for 1 minute.
- Paid to
- 0x4465…128ee
- USD Coin contract
- 0x8335…02913
- Payment window
- 1 minute
- As published
- 10000 smallest units
That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.
- Paid to
- Ae1uow…PmMN6
- Token contract
- EPjFWd…TDt1v
- Payment window
- 1 minute
Pay 0.001 USDC on Base to 0x4465…128ee. The signed payment is good for 1 minute.
- Paid to
- 0x4465…128ee
- USD Coin contract
- 0x8335…02913
- Payment window
- 1 minute
- As published
- 1000 smallest units
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"amount": "10000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 60
},
{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"domain": "invoket.com",
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"amount": "10000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 60
},
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 60
}
]Extensions
{
"bazaar": {
"info": {
"input": {
"body": {
"document_base64": "JVBERi0xLjQ="
},
"type": "http",
"method": "POST",
"schema": {
"type": "object",
"required": [
"document_base64"
],
"properties": {
"document_base64": {
"type": "string",
"description": "Base64 (standard alphabet, whitespace tolerated) of the complete document: a Factur-X/ZUGFeRD PDF (PDF/A-3 with embedded XML) or a CII D16B / UBL 2.1 invoice XML. Alternatively, skip JSON entirely and POST the raw bytes with Content-Type: application/pdf or application/xml. Max body 10 MB (413 beyond). Scanned/image PDFs without embedded XML are rejected (400) - this endpoint reads the structured formats of the EN 16931 core, no OCR"
}
}
},
"headers": {
"accept": "application/json",
"content-type": "application/json"
},
"bodyType": "json"
},
"output": {
"type": "json",
"schema": {
"type": "object",
"required": [
"data",
"provenance"
],
"properties": {
"data": {
"type": "object",
"required": [
"coverage",
"format",
"invoice"
],
"properties": {
"format": {
"type": "object",
"required": [
"declared_profile",
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "Detected document format: 'facturx' (PDF with embedded XML), 'cii' (UN/CEFACT Cross Industry Invoice D16B) or 'ubl' (UBL 2.1 Invoice/CreditNote)"
},
"declared_profile": {
"type": "string",
"description": "Factur-X/ZUGFeRD profile DECLARED by the document's specification identifier (BT-24): minimum, basicwl, basic, en16931 or extended; null when absent or from an unknown family. Restated without being verified - profile conformance is /invoice/validate's job"
}
}
},
"invoice": {
"type": "object",
"required": [
"allowances",
"buyer",
"charges",
"contract_reference",
"currency",
"due_date",
"issue_date",
"lines",
"notes",
"number",
"order_reference",
"payment_means",
"seller",
"specification_id",
"totals",
"type_code",
"vat_breakdown"
],
"properties": {
"buyer": {
"type": "object",
"required": [
"address",
"identifiers",
"legal_registration_id",
"name",
"vat_id"
],
"properties": {
"name": {
"type": "string"
},
"vat_id": {
"type": "string"
},
"address": {
"type": "object",
"required": [
"city",
"country",
"line1",
"postal_code"
],
"properties": {
"city": {
"type": "string"
},
"line1": {
"type": "string"
},
"country": {
"type": "string"
},
"postal_code": {
"type": "string"
}
}
},
"identifiers": {
"type": "array"
},
"legal_registration_id": {
"type": "object",
"required": [
"scheme",
"value"
],
"properties": {
"value": {
"type": "string"
},
"scheme": {
"type": "string"
}
}
}
}
},
"lines": {
"type": "array",
"description": "Invoice lines (BG-25) with item identifiers, quantities, unit prices and VAT category per line. Empty for the Factur-X MINIMUM and BASIC WL profiles, which carry document-level data only (then listed in coverage.absent_fields)"
},
"notes": {
"type": "array",
"items": {
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "string"
}
}
}
},
"number": {
"type": "string"
},
"seller": {
"type": "object",
"required": [
"address",
"identifiers",
"legal_registration_id",
"name",
"vat_id"
],
"properties": {
"name": {
"type": "string"
},
"vat_id": {
"type": "string"
},
"address": {
"type": "object",
"required": [
"city",
"country",
"line1",
"postal_code"
],
"properties": {
"city": {
"type": "string"
},
"line1": {
"type": "string"
},
"country": {
"type": "string"
},
"postal_code": {
"type": "string"
}
}
},
"identifiers": {
"type": "array"
},
"legal_registration_id": {
"type": "object",
"required": [
"scheme",
"value"
],
"properties": {
"value": {
"type": "string"
},
"scheme": {
"type": "string"
}
}
}
}
},
"totals": {
"type": "object",
"required": [
"due",
"grand_total",
"lines_net",
"net",
"prepaid",
"vat_total"
],
"properties": {
"due": {
"type": "string"
},
"net": {
"type": "string"
},
"prepaid": {
"type": "string"
},
"lines_net": {
"type": "string"
},
"vat_total": {
"type": "string"
},
"grand_total": {
"type": "string"
}
},
"description": "Document totals (BG-22): lines net, invoice net, VAT total, grand total, prepaid and amount due - restated as written, arithmetic consistency is /invoice/validate's job"
},
"charges": {
"type": "array"
},
"currency": {
"type": "string"
},
"due_date": {
"type": "string"
},
"type_code": {
"type": "string"
},
"allowances": {
"type": "array"
},
"issue_date": {
"type": "string"
},
"payment_means": {
"type": "array",
"items": {
"type": "object",
"required": [
"credit_accounts",
"means_code",
"remittance_info"
],
"properties": {
"means_code": {
"type": "string"
},
"credit_accounts": {
"type": "array",
"items": {
"type": "object",
"required": [
"iban_or_account"
],
"properties": {
"iban_or_account": {
"type": "string",
"description": "Payment account identifier (BT-84, usually an IBAN) restated as written in the document - syntax and plausibility checks are /invoice/validate's job"
}
}
}
},
"remittance_info": {
"type": "string"
}
}
}
},
"vat_breakdown": {
"type": "array",
"items": {
"type": "object",
"required": [
"category",
"rate",
"tax_amount",
"taxable_amount"
],
"properties": {
"rate": {
"type": "string"
},
"category": {
"type": "string"
},
"tax_amount": {
"type": "string"
},
"taxable_amount": {
"type": "string"
}
}
}
},
"order_reference": {
"type": "string"
},
"specification_id": {
"type": "string"
},
"contract_reference": {
"type": "string"
}
},
"description": "The EN 16931 semantic model (BT/BG terms) projected faithfully: what the document says, inconsistencies included - no conformance judgement, no guessed field. Amounts are exact decimal strings preserving the source scale"
},
"coverage": {
"type": "object",
"required": [
"absent_fields",
"notes"
],
"properties": {
"notes": {
"type": "array",
"description": "Reading particularities worth knowing: embedded XML found under a non-standard attachment name, multiple PDF attachments, etc."
},
"absent_fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Top-level semantic model fields the document does not carry - the coverage contract: what is not said is named, never silent"
}
}
}
}
},
"provenance": {
"type": "object",
"required": [
"fetched_at",
"freshness",
"source"
],
"properties": {
"source": {
"type": "string"
},
"freshness": {
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string"
}
}
},
"fetched_at": {
"type": "string"
}
}
}
}
},
"example": {
"data": {
"format": {
"kind": "facturx",
"declared_profile": "basicwl"
},
"invoice": {
"buyer": {
"name": "Ma jolie boutique",
"vat_id": "FR19787878784",
"address": {
"city": "Lyon",
"line1": "35 rue de la République",
"country": "FR",
"postal_code": "69001"
},
"identifiers": [],
"legal_registration_id": {
"value": "78787878400035",
"scheme": "0002"
}
},
"lines": [],
"notes": [
{
"content": "Franco de port (commande > 300 € HT)"
}
],
"number": "FA-2017-0010",
"seller": {
"name": "Au bon moulin",
"vat_id": "FR11999999998",
"address": {
"city": "Malaucène",
"line1": "1242 chemin de l'olive",
"country": "FR",
"postal_code": "84340"
},
"identifiers": [],
"legal_registration_id": {
"value": "99999999800010",
"scheme": "0002"
}
},
"totals": {
"due": "470.15",
"net": "624.90",
"prepaid": "201.00",
"lines_net": "624.90",
"vat_total": "46.25",
"grand_total": "671.15"
},
"charges": [],
"currency": "EUR",
"due_date": "2017-12-13",
"type_code": "380",
"allowances": [],
"issue_date": "2017-11-13",
"payment_means": [
{
"means_code": "30",
"credit_accounts": [
{
"iban_or_account": "FR2012421242124212421242124"
}
],
"remittance_info": "FA-2017-0010"
}
],
"vat_breakdown": [
{
"rate": "20.00",
"category": "S",
"tax_amount": "16.38",
"taxable_amount": "81.90"
},
{
"rate": "5.50",
"category": "S",
"tax_amount": "29.87",
"taxable_amount": "543.00"
}
],
"order_reference": "PO445",
"specification_id": "urn:factur-x.eu:1p0:basicwl",
"contract_reference": "MSPE2017"
},
"coverage": {
"notes": [],
"absent_fields": [
"vat_accounting_currency",
"buyer_reference",
"sales_order_reference",
"payment_terms",
"business_process",
"preceding_invoices",
"allowances",
"charges",
"lines"
]
}
},
"provenance": {
"source": "invoice-document",
"freshness": {
"kind": "live"
},
"fetched_at": "2026-07-11T17:17:58Z"
}
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object"
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"schema": {
"type": "object"
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"queryParams": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object"
}
}
}
}
}
}
}Provenance
- Seen in the source catalog
- 2026-07-13 21:53Z
- Last indexed by Roundhouse
- 2026-08-30 18:50Z
- Last enriched (probe, favicon, geo)
- 2026-09-21 10:15Z
- x402 version
- 2
- Max timeout
- 60s
- Liveness probe
- HTTP 402
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 7 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service api.invoket.com and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=api.invoket.com' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://api.invoket.com/invoice/read, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402, or use an organization key from https://roundhouseai.io/dashboard/team. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.