previewInvoice method
Probelauf von issueInvoice: dieselbe Anfrage wird geprüft und gerechnet wie beim Ausstellen, aber nichts festgeschrieben — keine Nummer, kein Dokument, keine Zahlung. Die Antwort nennt Summen, Steuerfall samt Grund, Sprache, Marke, E-Rechnung und die Hinweise — oder scheitert mit demselben Fehlercode, mit dem das Ausstellen scheitern würde.
Der idempotencyKey wird nicht verbraucht: dieselbe Anfrage lässt sich
danach unverändert ausstellen. Verbindlich ist das Ausstellen — zwischen
Probelauf und Ausstellen können sich Kunde oder Konto ändern.
Geht als issueInvoice mit dryRun: true hinaus; Fehler tragen deshalb
den Aufrufnamen issueInvoice. Ein Server ohne Probelauf lehnt das
unbekannte Feld als validation ab.
Implementation
Future<PreviewResult> previewInvoice(IssueInvoiceRequest anfrage) async {
const name = Aufrufe.issueInvoice;
final daten = await _transport.rufen(name, {...anfrage.toJson(), 'dryRun': true});
return _lesen(name, () => PreviewResult(
preview: InvoicePreview.fromJson(_objekt(daten, 'preview')),
notice: _hinweise(daten['notice']),
));
}