invoiceErrorCodes top-level constant

List<String> const invoiceErrorCodes

Stabile Fehlercodes — am Code entscheiden, nie am Text.

Implementation

const List<String> invoiceErrorCodes = [
  'validation',
  'idempotency_conflict',
  'module_inactive',
  'customer_not_found',
  'customer_exists',
  'short_code_taken',
  'short_code_immutable',
  'recipient_required',
  'invoice_requirements_missing',
  'invoice_not_found',
  'invoice_ambiguous',
  'not_cancellable',
  'partial_credit_exists',
  'credit_exceeds_invoice',
  'einvoice_incomplete',
  'invoice_api_not_enabled',
  'invoice_setup_incomplete',
  'language_not_allowed',
  'brand_not_found',
  'not_payable',
  'payment_exceeds_invoice',
  'tax_scheme_mismatch',
  'vat_rate_not_in_country',
  'reverse_charge_reason_required',
  'reverse_charge_threshold',
  'mixed_supply_not_allowed',
  'oss_not_enabled',
  'einvoice_unavailable',
  'amount_too_large',
  // Seit 10.4: UID-Pruefung beim Ausstellen ohne Steuer (ig. Lieferung, Reverse
  // Charge). `vat_id_invalid` sperrt auch mit `acceptVatIdRisk`;
  // `vat_id_check_pending` traegt `details['retryAfter']` (Sekunden bis zum
  // naechsten sinnvollen Versuch, mit demselben `idempotencyKey`).
  'vat_id_invalid',
  'vat_id_check_pending',
  // Seit 10.4: Position mit `reservationId` (nur `issueInvoice`), geprueft
  // beim Ausstellen. Unbekannt oder fremd; keine offene Position mit gleichem
  // Artikel am Lagerstandort der Rechnung; schon eingeloest oder freigegeben.
  'reservation_not_found',
  'reservation_mismatch',
  'reservation_not_active',
];