previewInvoice method

Future<PreviewResult> previewInvoice(
  1. IssueInvoiceRequest anfrage
)

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']),
      ));
}