Developer v1
JSON API for ERP, inventory systems or custom automations. Authentication via X-API-Key · EN 16931 compliant · optional hybrid PDF output.
Authentication
Every request (except /health) requires the header X-API-Key: <your-key>. Find your API keys in your
Dashboard.
X-API-Key: xr_abc123... Content-Type: application/json
Endpoints
Simple liveness check. Returns DB status. Ideal for monitoring.
Response:
{ "status": "ok", "db": true }
Returns all supported profiles with metadata (required fields, export type).
{ "profiles": ["XRECHNUNG", "B2B_UBL", "ZUGFERD"] }
Submit invoice as JSON → generate valid XML (and optionally generate a hybrid PDF with embedded XRechnung).
Request body:
{
"profile": "XRECHNUNG",
"invoice_number": "RE-2026-0042",
"issue_date": "2026-04-20",
"due_date": "2026-05-04",
"currency": "EUR",
"buyer_reference": "04011000-1234567-89",
"seller": {
"name": "Mustermann IT GmbH",
"vat_id": "DE123456789",
"address": { "street":"Musterstraße 12","postal_code":"70173",
"city":"Stuttgart","country_code":"DE" }
},
"buyer": {
"name": "Landratsamt Musterhausen",
"address": { "street":"Rathausplatz 1","postal_code":"70173",
"city":"Musterhausen","country_code":"DE" }
},
"lines": [{
"name": "Webentwicklung", "quantity": "12",
"unit": "HUR", "unit_price": "120.00", "tax_percent": "19"
}],
"bank_account": { "iban": "DE89370400440532013000" },
"include_zugferd": false
}
Successful response (200):
{
"invoice": { ... },
"validation": { "ok": true, "errors": [] },
"xml_base64": "PD94bWwgdmVyc2lvbj0iMS4wIi4uLg==",
"zugferd_base64": null
}
ⓘ unit = UN/CEFACT-Code: HUR Stunde, C62 Stück, KGM kg.
Bei XRechnung ist buyer_reference (Leitweg-ID) Pflicht.
Same body as /invoices, but returns only the validation result — no XML, no PDF.
{
"ok": false,
"errors": [
{ "level": "error", "code": "BR-04",
"message": "Seller VAT identifier is mandatory." }
]
}
Sends a PDF invoice as multipart/form-data. The scanner extracts all recognisable fields and returns valid XML directly.
curl -X POST https://rechnung.syypro.com/api/v1/extract \
-H "X-API-Key: $XR_KEY" \
-F "file=@rechnung.pdf" \
-F "profile=ZUGFERD"
Response fields:
confidence– Recognition quality 0–100warnings– Fields that were unclearchecklist– Completeness check with BT codesxml_base64– complete XRechnung XMLzugferd_base64– Hybrid PDF (if profile is ZUGFERD)
⚠ Error Codes
| HTTP | Code | Meaning |
|---|---|---|
| 400 | invalid_body | Malformed JSON or missing required fields |
| 401 | unauthorized | API key missing or invalid |
| 413 | too_large | Upload > 16 MB |
| 415 | wrong_type | Only PDF allowed for extract |
| 422 | invalid_invoice | Invoice fails EN-16931 validation |
| 429 | rate_limited | More than 60 requests/minute |
| 503 | api_disabled | API not enabled or no key configured |
Select a function (step 2), enter your API key (step 1) and click Send request. The result appears right below.
→ Log in to use your key
Find your key in the Dashboard under "API Keys". It always starts with xr_.