{
    "service": "zugferd-api",
    "auth": "Authorization: Bearer <api-key>  (Keys im Dashboard erstellen)",
    "billing": "Gewichtetes Credit-Modell: Standard 1, /v1/validate/fraud 3 Credits",
    "endpoints": {
        "POST /v1/cii": "JSON-Rechnung -> EN-16931 CII-XML (1 Credit); invoice.profile=\"xrechnung\" -> XRechnung-XML (B2G)",
        "POST /v1/generate": "JSON-Rechnung -> ZUGFeRD-PDF/A-3 (1 Credit), inkl. GiroCode + Jetzt-zahlen-Zahlseite (URL im Header X-Pay-Url, pro Profil abschaltbar); Rechnung erscheint in der Konto-Historie (Mahnwesen). Optional invoice.payee.name = abweichender Zahlungsempfänger (BG-10). Mit \"seal\":true zusätzlich Echtheits-Siegel: QR wird ins PDF eingebettet, verify_url im Header X-Seal-Verify-Url (+2 Credits, Kunden-Key)",
        "POST /v1/embed": "Eigenes PDF (PDF/A-1b) + JSON -> Factur-X-PDF/A-3, Layout bleibt (2 Credit). Mit \"seal\":true zusätzlich Echtheits-Siegel: verify_url im Header X-Seal-Verify-Url (Layout bleibt unverändert, QR selbst platzieren; +2 Credits, Kunden-Key)",
        "POST /v1/validate": "XML/PDF -> KoSIT-Prüfung (1 Credit)",
        "POST /v1/extract": "PDF -> eingebettetes XML + Felder (1 Credit)",
        "POST /v1/validate/fraud": "PDF/XML -> KoSIT + IBAN-Betrugsabgleich (3 Credits, Kunden-Key)",
        "POST /v1/check": "PDF/XML -> Eingangsprüfung: KoSIT + IBAN-Historie + Dublette -> Risk-Report (grün/gelb/rot), in Historie gespeichert (2 Credits, Kunden-Key)",
        "POST /v1/seal": "Rechnung (JSON wie /generate ODER Kernfelder) -> Echtheits-Siegel: Ed25519-signiert, gibt verify_url zurück; Empfänger prüft öffentlich unter GET /verify/{token} (2 Credits, Kunden-Key)",
        "GET /verify/{token}": "Öffentliche Verifikation eines Siegels (kein Auth, kostenlos): zeigt Aussteller, Nr., Betrag, IBAN + „echt/unverändert\"",
        "POST /v1/diff": "original + corrected -> Positions-Diff (JSON | ?format=html) (1 Credit)",
        "POST /v1/dunning": "Mahnschreiben-PDF zu eigener Rechnung, zählt die Mahnstufe hoch. Body {number, level?} (1 Credit, Kunden-Key)",
        "GET /v1/receivables": "Accounts receivable as JSON (amounts in cents). Query: status=open|overdue|paid|all, since=<ISO>, page, per_page; number=<n> returns one item incl. payments[]. Empty list is HTTP 200. (free, customer key)",
        "POST /v1/receivables/payment": "Book an incoming payment. Body {number, amount_cents} (partial or full, free, customer key)",
        "POST /v1/receivables/paid": "Mark an invoice fully paid. Body {number} (free, customer key)",
        "POST /v1/embed/token": "White-Label: Embed-Token minten (kostenlos)"
    }
}