Private beta — API keys on request

The e-invoicing API for your product

Validate and parse XRechnung, ZUGFeRD and Factur-X through two endpoints — maintained against format updates so your team doesn't have to.

Request a key    Read the docs

Validate

EN 16931 (BR, BR-CO), XRechnung (BR-DE, Leitweg-ID) and French rules (SIREN/SIRET, VAT) — every finding with a rule id and explainer page.

Parse

UBL, CII or hybrid PDF in — normalized EN 16931 JSON out. One schema for all formats, amounts as decimal strings.

Three languages

Error messages in English, German or French (?lang=en|de|fr) — pass them straight to your end users.

Self-hosted

The identical container image runs in your infrastructure — invoice data never leaves your network. One binary, no database.

Validate an invoice

curl -s -X POST "https://api.billhorse.com/v1/validate?lang=en" \
  -H "Authorization: Bearer $BILLHORSE_API_KEY" \
  --data-binary @invoice.pdf

{
  "valid": false,
  "profile": { "label": "Factur-X EN 16931", "en16931": true },
  "findings": [
    { "id": "BR-CO-16", "severity": "error",
      "expected": "178.50", "actual": "170.00", ... }
  ]
}

Tested against the official KOSIT test suite (86/86) and the FNFE Factur-X corpus (7/7). Processing happens in memory only — invoices are never stored.

Get a private beta API key

We're onboarding 3–5 design partners: early access, influence on the API design, permanent preferred terms. One e-mail is enough.

[email protected]