Documentation API v1
API JSON pour ERP, gestion des stocks ou automatisations personnalisées. Authentification via X-API-Key · conforme EN 16931 · sortie PDF hybride optionnelle.
Authentification
Chaque requête (sauf /health) nécessite l'en-tête X-API-Key: <votre-clé>. Retrouvez vos clés API dans votre
Tableau de bord.
X-API-Key: xr_abc123... Content-Type: application/json
Points de terminaison
Vérification de disponibilité simple. Retourne le statut de la base de données. Idéal pour la surveillance.
Réponse :
{ "status": "ok", "db": true }
Retourne tous les profils pris en charge avec les métadonnées (champs obligatoires, type d'export).
{ "profiles": ["XRECHNUNG", "B2B_UBL", "ZUGFERD"] }
Soumettre une facture en JSON → générer un XML valide (et générer optionnellement un PDF hybride).
Corps de la requête :
{
"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
}
Réponse réussie (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.
Même corps que /invoices, mais retourne uniquement le résultat de validation — pas de XML, pas de PDF.
{
"ok": false,
"errors": [
{ "level": "error", "code": "BR-04",
"message": "Seller VAT identifier is mandatory." }
]
}
Envoie une facture PDF en multipart/form-data. Le scanner extrait tous les champs reconnaissables et retourne directement un XML valide.
curl -X POST https://rechnung.syypro.com/api/v1/extract \
-H "X-API-Key: $XR_KEY" \
-F "file=@rechnung.pdf" \
-F "profile=ZUGFERD"
Champs de réponse :
confidence– Qualité de reconnaissance 0–100warnings– Champs qui n'étaient pas clairschecklist– Vérification de complétude avec codes BTxml_base64– XML XRechnung completzugferd_base64– PDF hybride (si profil ZUGFERD)
⚠ Codes d'erreur
| HTTP | Code | Signification |
|---|---|---|
| 400 | invalid_body | JSON malformé ou champs obligatoires manquants |
| 401 | unauthorized | Clé API manquante ou invalide |
| 413 | too_large | Téléchargement > 16 Mo |
| 415 | wrong_type | Seul le PDF est autorisé pour l'extraction |
| 422 | invalid_invoice | La facture échoue à la validation EN-16931 |
| 429 | rate_limited | Plus de 60 requêtes/minute |
| 503 | api_disabled | API non activée ou aucune clé configurée |
Choisissez une fonction (étape 2), entrez votre clé API (étape 1) et cliquez sur Envoyer la requête. Le résultat apparaît directement en dessous.
→ Se connecter pour utiliser votre clé
Retrouvez votre clé dans le tableau de bord sous "Clés API". Elle commence toujours par xr_.