rechnung library

Rechnungen (§ 11 UStG, keine Belege) und Kunden über die Rechnungs-API — Zwilling von @kreiseck/kasseneck-api/rechnung im JS-Paket.

Der Schlüssel ist der api_key des Kontos, ohne Kassen-Token. Live braucht das Konto die Freigabe durch Kasseneck; vor dem ersten Ausstellen RechnungApi.getInvoiceSetupStatus aufrufen.

Classes

Brand
Eine Marke des Kontos (Logo, Farbe, Absender); id geht als brandId in issueInvoice.
CancelResult
CreditNoteRequest
CreditNoteResult
CreditNoteSummary
Customer
CustomerInput
CustomerPage
EInvoiceStatus
Wie weit eine Rechnung als E-Rechnung (EN 16931) taugt.
Invoice
Eine Rechnung oder Gutschrift. Die Felder unter „Detail" liefert nur getInvoice; in Listen und Ausstell-Antworten sind sie null.
InvoiceItem
Eine gespeicherte Position — wie gesendet, fehlende Angaben mit ihrem Standardwert.
InvoiceItemInput
InvoiceNotice
Ein Hinweis an einer erfolgreichen Antwort — kein Fehler, nur etwas, das der Aufrufer wissen sollte. Die Codes stehen in invoiceNoticeCodes.
InvoicePage
InvoicePayment
Eine gebuchte Zahlung, wie die API sie zurückgibt.
InvoicePreview
Was issueInvoice mit dieser Anfrage ausstellen würde — ohne Nummer, ohne Dokument, ohne Zahlung (previewInvoice).
InvoiceSetupGap
InvoiceSetupStatus
InvoiceTotals
Summen einer Rechnung in Cent, immer positiv — auch bei einer Gutschrift (docType: 'GU'); das Vorzeichen steht im Belegtyp, nicht im Betrag. Gerechnet wird je Satz wie in rechnungSummen.
IssueInvoiceRequest
IssueResult
PaymentInput
Eine Zahlung, wie das Fremdsystem sie meldet.
PreviewResult
Ergebnis von previewInvoice.
RechnungApi
RechnungTransport
RecordPaymentRequest
Eine Zahlung nachtragen. Der Schlüssel ist Pflicht: ohne ihn bucht eine Wiederholung nach einem Zeitlimit ein zweites Mal.
RecordPaymentResult
Ergebnis von recordInvoicePayment.
SummenPosition
Was für die Summe einer Rechnung zählt (rechnungSummen) — InvoiceItemInput erfüllt es unverändert.
VatRateTotal
Summen eines USt-Satzes.

Constants

creditNoteReasons → const List<String>
Gründe einer Gutschrift; der Server druckt den deutschen Text.
customerTypes → const List<String>
docTypes → const List<String>
einvoiceFormats → const List<String>
invoiceErrorCodes → const List<String>
Stabile Fehlercodes — am Code entscheiden, nie am Text.
invoiceLanguages → const List<String>
Sprachen einer Rechnung. Eine Rechnung hat eine Nummer und eine Sprache, beim Ausstellen eingefroren; Behörden bekommen immer de.
invoiceListStatus → const List<String>
invoiceNoticeCodes → const List<String>
Hinweise an einer erfolgreichen Antwort — keine Fehler.
invoicePaymentMethods → const List<String>
Einheiten einer Position. Der Aufdruck folgt der Sprache der Rechnung (Stk / pcs), in der E-Rechnung steht der Code aus UN/ECE Rec 20/21. Wie eine Rechnung bezahlt wurde. cash wird gebucht, die Antwort trägt dann zusätzlich den Hinweis cash_receipt_required: eine Barzahlung ist ein Barumsatz und braucht einen Beleg (§ 132a BAO).
invoiceSetupRequirements → const List<String>
Was vor dem Ausstellen erfüllt sein muss — in dieser Reihenfolge meldet getInvoiceSetupStatus die Lücken.
invoiceUnits → const List<String>
itemKinds → const List<String>
Ware oder Leistung — ohne das lässt sich ig. Lieferung nicht von Reverse Charge trennen. Ohne Angabe gilt goods.
kRechnungBaseUrl → const String
Standardadresse der Rechnungs-API.
priceModes → const List<String>
rechnungAufrufe → const List<String>
Die Aufrufe der Rechnungs-API, in der Reihenfolge des Vertrags.
reverseChargeReasons → const List<String>
Gründe für den Übergang der Steuerschuld im Inland (§ 19 UStG samt Verordnungen). Ohne Grund gibt es kein domesticReverseCharge.
steuerfreieFaelle → const List<String>
Steuerfälle, in denen die Rechnung keine Steuer ausweist: jede Position zählt zu 0 %, gleich welcher vatRate an ihr steht (rechnungSummen). oss gehört nicht dazu — dort wird Steuer ausgewiesen, nur nicht österreichische.
taxSchemes → const List<String>
Der Steuerfall einer Rechnung. Er wird vom Server abgeleitet (Kundenland, Kundenart, UID, Ware oder Leistung); eine mitgeschickte Angabe muss dazu passen, sonst tax_scheme_mismatch. Neue Fälle stehen hinten.
vatRates → const List<int>

Functions

istRechnungFehlercode(String? code) → bool
Gehört code zum Katalog der Rechnungs-API?
rechnungFehlerCode(Object? fehler) → String?
Der Fehlercode eines geworfenen Fehlers — null, wenn es keiner der Rechnungs-API ist.
rechnungFeldFehler(Object? fehler) → List<({String field, String message})>
Die Feldfehler einer validation-Antwort; leer, wenn es keine sind.
rechnungSummen(Iterable<SummenPosition> items, String priceMode, [String taxScheme = 'normal']) → InvoiceTotals
Netto, USt und Brutto einer Rechnung in Cent, je Satz absteigend — dieselbe Form wie invoice.totals in den Antworten.

Exceptions / Errors

KasseneckApiError
Fachlicher Fehler des Backends (PIN falsch, Kasse belegt, Geraet gesperrt …).
KasseneckHttpError
Die Antwort war keine brauchbare Huelle {status, data} oder der HTTP-Weg scheiterte. Traegt bewusst nichts aus dem Rumpf: dort koennten Werte stehen, die wir gerade nicht ins Protokoll lassen wollen.
KasseneckValidationError
Der Aufrufer hat etwas nicht mitgegeben, oder die Antwort trug nicht, was der Aufruf zusagt. Die Meldung nennt immer nur das Feld, nie seinen Wert — sonst stuende ein Geraetegeheimnis im Protokoll.