OpenAPI Specification
Our complete API is available as an OpenAPI 3.1 specification — for looking up every endpoint and for interactive documentation. It is not yet suitable for code generation; the note further down names the four defects.
Download
OpenAPI specification (JSON)
Full spec, all 81 endpoints — public, no login. Fine for reading; not yet suitable for code generation (see the note below).
openapi-full.jsonInteractive reference
Browse and try every endpoint in the browser
service.invoice-api.xhub.io/docs-fullAPI Endpoints
The most important endpoints of the Invoice-api.xhub API (Version 1.4.0):
/api/v1/invoice/{countryCode}/{format}/generate/api/v1/invoice/parse/api/v1/invoice/{countryCode}/validate/api/v1/invoice/{countryCode}/formats/api/v1/invoice/formats/api/v1/invoice/convert/api/v1/invoice/attachments/api/v1/pdf/attachments/api/v1/invoice/es/verifactu-qrAuthentication
Bearer Token
Authenticate with your API key in the Authorization header:
1Authorization: Bearer sk_live_xxxxxxxxxxxxx2 3# Testmodus4Authorization: Bearer sk_test_xxxxxxxxxxxxxLive Keys (sk_live_*) are for production data. Test Keys (sk_test_*) are for development and testing.
Supported Countries
The API supports e-invoice formats for the following countries:
Germany
Austria
Switzerland
France
Italy
Spain
Netherlands
Belgium
Poland
Portugal
United Arab Emirates
Australia
Bulgaria
Cyprus
Czech Republic
Denmark
Estonia
Finland
United Kingdom
Greece
Croatia
Hungary
Ireland
Iceland
Japan
Liechtenstein
Lithuania
Luxembourg
Latvia
Malta
Norway
New Zealand
Oman
Romania
Sweden
Slovenia
Slovakia
Preview
Excerpt from the OpenAPI specification: service.invoice-api.xhub.io/openapi-full.json
1openapi: 3.1.02info:3 title: Invoice.xhub API4 version: 1.4.05 6servers:7 # Relative — the spec is served from the API host itself, so an import8 # without a base URL has no host to call. Set it in your client:9 # https://service.invoice-api.xhub.io10 - url: /11 description: Invoice API v112 13security:14 - bearerAuth: []15 16paths:17 /api/v1/invoice/{countryCode}/{format}/generate:18 post:19 summary: Generate invoice document20 parameters:21 - name: countryCode22 in: path23 required: true24 schema:25 type: string26 # 37 Länder, klein geschrieben — Auszug:27 enum: [ae, at, au, be, bg, ch, cy, cz, de, dk, ee, es, fi, fr, ...]28 - name: format29 in: path30 required: true31 schema:32 type: string33 # 15 Format-Slots — Auszug:34 enum: [pdf, xrechnung, zugferd, facturx, ubl, ...]35 # ...36 37 /api/v1/invoice/{countryCode}/validate:38 post:39 summary: Validate invoice data40 description: >-41 Validate invoice data against country-specific rules and e-invoice42 format requirements. Returns validation errors and warnings without43 consuming billing quota. Braucht wie jeder Endpoint einen API-Key und44 ist an das Kontingent gebunden (aufgebraucht = 429).45 # ...46 47 /api/v1/invoice/convert:48 post:49 summary: Convert an e-invoice between formats50 # ...51 52components:53 securitySchemes:54 bearerAuth:55 type: http56 scheme: bearer57 bearerFormat: API Key58 description: >-59 API Key authentication. Use `sk_live_*` for production or `sk_test_*`60 for testing.61 # ...Import into API Clients
Read before importing: the spec is not generator-ready yet
The file imports, but four measured defects (as of 2026-09-15) leave clients and generated code without any models:
- • 138 of 138 internal `$ref`s point at `#/components/schemas/__schema0` — a schema the file does not define. Request and response models therefore come out empty.
- • 65 request bodies appear as `{"vendor":"zod"}` instead of a JSON schema.
- • `POST /api/v1/invoice/convert` carries no `requestBody` at all.
- • `servers` is `[{"url":"/"}]` — relative. Add `https://service.invoice-api.xhub.io` as the base URL in your client, or every call goes nowhere.
Until that is fixed: the complete invoice field structure, generated from the same spec, is on /docs/api/schema , and the examples on the reference pages are verified against the spec (`pnpm exec node scripts/verify-doc-examples.mjs`).
Postman
1# Via URL importieren21. Öffne Postman32. Klicke auf "Import" (oben links)43. Wähle "Link" Tab54. Füge ein: https://service.invoice-api.xhub.io/openapi-full.json65. Klicke "Continue" → "Import" (Postman liest OpenAPI 3 direkt)7 8# Alternativ: Spec herunterladen und als Datei importieren9curl -O https://service.invoice-api.xhub.io/openapi-full.jsonInsomnia
1# Via URL importieren21. Öffne Insomnia32. Application → Preferences → Data43. "Import Data" → "From URL"54. URL: https://service.invoice-api.xhub.io/openapi-full.json65. "Fetch and Import"Code Generation
Generate type-safe API clients from the OpenAPI specification:
Note: because of the dangling `$ref`s described above, these generators currently produce clients with empty models. The commands are listed so they are correct the moment the backend fix lands.
1# TypeScript/JavaScript mit openapi-typescript2npx openapi-typescript https://service.invoice-api.xhub.io/openapi-full.json -o ./types/api.d.ts3 4# Python mit openapi-python-client5pip install openapi-python-client6openapi-python-client generate --url https://service.invoice-api.xhub.io/openapi-full.json7 8# Go mit oapi-codegen9go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@latest10oapi-codegen -package api https://service.invoice-api.xhub.io/openapi-full.json > api/api.gen.goVersioning
The OpenAPI specification is updated with API changes. Use the version number in the spec to ensure compatibility. Breaking changes are announced in the Changelog.