# Invoket Invoice Validator

> Invoket Invoice Validator is a paid API for AI agents from api.invoket.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-15).

Validates Factur-X/ZUGFeRD PDF and CII/UBL 2.1 XML invoices against EN 16931, XRechnung, and Peppol BIS Billing standards, returning a structured conformance verdict with provenance.

## Facts

- Endpoint: POST https://api.invoket.com/invoice/validate
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/invoket-invoice-validator-432b837c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_SH7vW4_Ort5Mipfmy6UcB

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability invoket-invoice-validator-432b837c -d '<json body>'
```

Example prompt: Can you validate this Factur-X invoice PDF to make sure it's fully EN 16931 compliant? I want strict profile checking and also run the XRechnung German ruleset on top — here's the document in base64.

## When to prefer this

Choose this endpoint when you need authoritative, multi-layer EN 16931 conformance validation for structured European e-invoices (Factur-X/ZUGFeRD PDF or CII/UBL XML) with optional German XRechnung or Peppol BIS Billing overlay rules. It is the right choice for pre-send compliance gating, AP ingestion quality control, or any workflow requiring provenance-backed validation results. It does not perform OCR on scanned PDFs and is not suited for informal invoice images or non-EN-16931 invoice formats.

## Known failure modes

- 400 Bad Request — scanned/image-only PDF without embedded XML (no OCR performed)
- 400 Bad Request — unknown ?profile or ?ruleset parameter value
- 400 Bad Request — malformed or unrecognizable document format
- 413 Payload Too Large — document body exceeds 10 MB
- 200 with invalid verdict and peppol_requires_ubl violation — CII document submitted with ?ruleset=peppol
- Payment required (x402) if USDC payment not included

## How this service works

Should you accept this invoice? Post a Factur-X PDF, CII or UBL XML and get a deterministic EN 16931 verdict: XSD conformance, every violated business rule by its official BR id with observed vs expected values, Factur-X profile consistency, and syntax checks on IBAN, SIREN/SIRET and VAT identifiers. The formats mandated by the French 2026-2027 reform. A non-conformant invoice is a paid, documented answer - no LLM guesswork. Add ?ruleset=xrechnung or ?ruleset=peppol to layer a national CIUS pack on top of the EN 16931 base: XRechnung (German BR-DE rules, DE mandate) or Peppol BIS Billing 3.0 (BE mandate, live since 2026-04), each violation sourced by its official id (BR-DE-xx, PEPPOL-EN16931-Rxxx).

## Output

A structured JSON object containing a pass/fail verdict, lists of fatal violations and warnings keyed by rule layer (EN 16931 base, optional national CIUS pack), and provenance metadata. For XRechnung or Peppol rulesets, violations from the additive national rules are surfaced separately under data.ruleset. Invalid structured formats return a 400; unsupported format combinations return a 200 with an invalid verdict and a descriptive violation code.

## Request schema (JSON Schema)

```json
{
 "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). Optional query parameter ?profile=declared|strict (default declared): strict additionally evaluates full EN 16931 conformance even when the declared Factur-X profile is poorer (no-op for UBL). Optional query parameter ?ruleset=en16931|xrechnung|peppol (default en16931, the EN 16931 base alone): additive - the requested national CIUS pack is checked ON TOP of the four base layers, its fatal violations count toward the verdict and its warnings are surfaced separately under data.ruleset. xrechnung applies the German BR-DE rules (UBL or CII); peppol applies Peppol BIS Billing 3.0 (UBL only - a CII document with ?ruleset=peppol is a paid 200 with an invalid verdict and a peppol_requires_ubl violation, never a 4xx). Composable with ?profile=strict; an unknown value is a 400. Scanned/image PDFs without embedded XML are rejected (400) - this endpoint judges the structured formats of the EN 16931 core, no OCR"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/invoket-invoice-validator-432b837c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.invoket.com](https://www.zero.xyz/host/api.invoket.com/llms.txt)
