Fehlercodes: Abrechnung
Die Codes des Bereichs Billing: Paket, Lizenzen, Zubuchungen, Zahlungsmittel, Rechnungen — und warum hier 402 steht.
9 Minuten LesezeitAPIStand: 25.10.2026
Bevor Sie loslegen
- Für wen
- Wer Abrechnungsdaten liest oder einen Vorgang baut, der an einer vertraglichen Sperre scheitern kann.
- Voraussetzung
- das Fehlerformat kennen — siehe Das Fehlerformat
Die Codes des Bereichs Billing: Paket, Lizenzen, Zubuchungen, Zahlungsmittel, Rechnungen, Bestellungen und die Rückmeldungen des Zahlungsdienstleisters.
So lesen Sie die Tabellen
Die Tabellen lesen Sie so: Code ist der Wert im Feld code des Fehlerrumpfs — darauf schaltet Ihre Logik, nie auf message. Bedeutung und Typischer Auslöser ordnen den Fall ein. HTTP ist der tatsächlich gesendete Status. Erwartete Reaktion ist die Antwort Ihres Clients in einem festen Wortschatz, der auf allen sieben Fehlercode-Seiten gleich ist: „Ausweis prüfen“ (401), „Recht oder Paket prüfen“ (402, 403), „Eingabe korrigieren“ (400, 413, 415, 422), „neu laden, erneut senden“ (Versionskonflikte), „nicht wiederholen, Vorgang prüfen“ (404, 409, 410, 426), „warten (Retry-After)“ (429) und „später erneut, bei Wiederholung Trace-Id melden“ (5xx).
Die Codes
Abrechnung (Billing)
Die Statuscodes sind hier eine Aussage: 402 steht an Sperren, die sich durch eine Buchung lösen — Zahlungsmittel, Kontingent, Lizenzen, Zubuchung, App, Paket. 403 Billing.FeatureNotEntitled heißt: Eine vertragliche Fähigkeit fehlt, etwa der API-Zugang oder Webhooks. Das löst nur ein anderes Paket oder der Betreiber, keine Buchung im Portal. Welche Fähigkeit welches Paket enthält, steht im Handbuch unter Abrechnung. 409 steht, wo erst etwas anderes zu erledigen ist (Rechnungsprofil, Zahlungsmittel, Reihenfolge). Die Codes Stripe.* bleiben wörtlich, weil sie so im Katalog stehen.
| Code | Bedeutung | Typischer Auslöser | HTTP | Erwartete Reaktion |
|---|---|---|---|---|
Subscription.NotFound |
Abo nicht gefunden | Unbekannte Abo-Kennung | 404 | nicht wiederholen, Vorgang prüfen |
Subscription.AlreadyExists |
Abo existiert bereits | Doppelte Anlage | 409 | nicht wiederholen, Vorgang prüfen |
Subscription.InvalidStatusTransition |
Ungültiger Abo-Übergang | Unzulässiger Statuswechsel | 409 | nicht wiederholen, Vorgang prüfen |
PaymentMethod.Required |
Zahlungsmittel erforderlich | Aktion ohne hinterlegtes Zahlungsmittel | 402 | Recht oder Paket prüfen |
Quota.Exceeded |
Kontingent überschritten | Vertragliches Limit erreicht | 402 | Recht oder Paket prüfen |
Billing.LicensesExhausted |
Alle Lizenzen belegt | Koppeln eines weiteren Bildschirms, obwohl der Vertrag keine freie Lizenz mehr trägt. Das Detail nennt gebucht und belegt, damit die Oberfläche den Weg zum Dazubuchen zeigen kann | 402 | Recht oder Paket prüfen |
Billing.LicenseReductionBlocked |
Lizenzzahl unter dem Verbrauch | Herabsetzen der gebuchten Lizenzen auf weniger, als aktuell in Betrieb sind — erst Bildschirme lösen, dann reduzieren | 409 | nicht wiederholen, Vorgang prüfen |
Billing.BelowPackageMinimum |
Reduktion unter das Paket-Minimum | Herabsetzen der Bildschirme unter die Mindestzahl des Pakets (Premium: 5) — weniger geht nur mit einem kleineren Paket. Das Detail trägt minimum |
409 | nicht wiederholen, Vorgang prüfen |
Billing.PackageChangeBlocked |
Paketwechsel nicht möglich | Enterprise wird verhandelt statt gebucht, das Zielpaket deckelt weniger Bildschirme als in Betrieb sind, oder der Vertrag ist gekündigt | 409 | nicht wiederholen, Vorgang prüfen |
Billing.AddonRequired |
Zusatzleistung nicht gebucht | Erstmalige Nutzung einer Fähigkeit, die als Zubuchung verkauft wird (API-Zugang, Unternehmens-Anmeldung). Bestehendes arbeitet weiter — nur das Neue verlangt die Buchung | 402 | Recht oder Paket prüfen |
Billing.SkuNotFound |
Artikel nicht im Katalog | Preisabfrage oder Buchung auf einen Artikel-Code, den der Katalog nicht (mehr) aktiv führt | 404 | nicht wiederholen, Vorgang prüfen |
Billing.SkuAlreadyExists |
Artikel-Code schon vergeben | Anlage eines Katalog-Artikels mit belegtem Code. Der Code ist der fachliche Schlüssel und steht auf ausgestellten Rechnungen — er wird nie überschrieben | 409 | nicht wiederholen, Vorgang prüfen |
Billing.AppRequired |
App nicht gebucht | Nutzung einer bepreisten App ohne Buchung. Das Detail trägt den Preis, damit die Oberfläche „X €/Monat — jetzt buchen?“ anbieten kann | 402 | Recht oder Paket prüfen |
Billing.PackageRequired |
Größeres Paket nötig | Nutzung einer App, die erst ab einem höheren Paket enthalten ist. Anders als bei Billing.AppRequired löst hier keine Buchung im Store das Problem, sondern nur ein Paketwechsel. Das Detail trägt die Untergrenze |
402 | Recht oder Paket prüfen |
Billing.FeatureNotEntitled |
Fähigkeit nicht freigeschaltet | Vertragliche Fähigkeit fehlt (z. B. browserDisplays, multiDisplayPerDevice, displayPowerControl). Löst sich nicht durch eine Buchung, sondern nur durch den Betreiber. Der Entzug wirkt sanft — bereits erteilte Befehle laufen zu Ende, nur neue werden abgewiesen |
403 | Recht oder Paket prüfen |
Billing.PastDueBlocksUpgrade |
Offene Rechnung sperrt das Erweitern | Aufstieg oder Zubuchung (Paket, Bildschirme, App, Wand), während eine eigene Rechnung offen ist. Erweiterungen werden sofort fakturiert, die zweite offene Rechnung hielte den Vertrag über den Zahlungseingang hinaus überfällig. Abstiege, Reduktionen und Kündigungen bleiben erlaubt | 403 | Recht oder Paket prüfen |
Billing.PaymentWayNotSelfService |
Zahlweg nicht selbst wählbar | Sitzung einer Organisation stellt den Vertrag über PUT /v1/me/billing/payment-way auf invoice. Kauf auf Rechnung richtet allein der Betreiber ein. Die Gegenrichtung (Zahlungsmittel hinterlegen → Einzug) bleibt Selbstbedienung |
403 | Recht oder Paket prüfen |
Billing.PaymentMethodRemovalBlocked |
Letztes Zahlungsmittel bleibt | Entfernen des einzigen Zahlungsmittels eines Vertrags, der eingezogen wird, außerhalb des Probezeitraums. Der Ausweg gehört dem Kunden: erst ein neues Mittel hinterlegen, dann das alte entfernen. Im Probezeitraum erlaubt, der Vertrag bleibt dabei auf Einzug | 409 | nicht wiederholen, Vorgang prüfen |
Billing.PaymentWayRequiresPaymentMethod |
Einzug ohne Zahlungsmittel | Betreiber stellt einen Vertrag über PUT /v1/platform/tenants/:tenantId/billing/payment-way auf stripe, ohne dass beim Zahlungsdienstleister ein Standard-Zahlungsmittel hinterlegt ist. Erst hinterlegt der Kunde das Zahlungsmittel, dann trägt der Vertrag den Einzug |
409 | nicht wiederholen, Vorgang prüfen |
Billing.PaymentWayMissing |
Kein zugesagter Zahlweg | Zuwachs (Bestellung, Zubuchung, Aufstieg) ohne hinterlegtes Zahlungsmittel und ohne freigegebenen Kauf auf Rechnung. Vorkasse: Leistung entsteht erst, wenn feststeht, wie sie bezahlt wird. Reduktionen bleiben erlaubt | 409 | nicht wiederholen, Vorgang prüfen |
Billing.StripeCustomerMissing |
Kunde beim Dienstleister unbekannt | Der Vertrag trägt eine Kunden-Kennung, die es beim Zahlungsdienstleister nicht (mehr) gibt. Kein 502: Der fremde Dienst antwortet einwandfrei. Der Weg heraus ist der Reparaturweg des Betreibers (POST /v1/platform/tenants/:tenantId/billing/relink-stripe) |
409 | nicht wiederholen, Vorgang prüfen |
Billing.HardwareNotOrderable |
Artikel nicht bestellbar | Bestellung eines Katalog-Artikels, der kein Player ist oder stillgelegt wurde („bald verfügbar“, ausgelaufen). Eigener Code neben Billing.SkuNotFound: „gibt es nicht“ schickt den Besteller auf Fehlersuche, „noch nicht bestellbar“ auf die Warteliste |
409 | nicht wiederholen, Vorgang prüfen |
Billing.BillingProfileMissing |
Rechnungsprofil fehlt | Bestellung aus dem Portal, bevor die Anschrift des Kunden gepflegt ist. Es fehlt kein Geld und kein Artikel, sondern eine Angabe, die der Kunde selbst einträgt | 409 | nicht wiederholen, Vorgang prüfen |
HardwareOrder.NotFound |
Bestellung nicht gefunden | Unbekannte Bestellnummer in der Betreiber-Sicht | 404 | nicht wiederholen, Vorgang prüfen |
Invoice.NotFound |
Rechnung nicht gefunden | Unbekannte Rechnungs-Kennung | 404 | nicht wiederholen, Vorgang prüfen |
Invoice.NotRefundable |
Rechnung nicht erstattbar | Erstattung außerhalb paid |
409 | nicht wiederholen, Vorgang prüfen |
Invoice.PeriodAlreadyBilled |
Periode bereits berechnet | Ein zweiter eigener Perioden-Beleg für dieselbe Periode desselben Vertrags: zwei gleichzeitig laufende Zyklus-Läufe, oder ein Aufstieg, der eine Periode neu anschreibt, die schon eine Rechnung trägt. Eigener Code neben dem allgemeinen Schlüsselkonflikt, weil die Fläche hier etwas ablesen kann — nicht „irgendein Schlüssel doppelt“, sondern „diese Periode ist berechnet“ | 409 | nicht wiederholen, Vorgang prüfen |
Stripe.WebhookSignatureInvalid |
Signatur des Zahlungsdienstleisters ungültig | Manipulierte oder fremde Zustellung | 400 | Eingabe korrigieren |
Stripe.WebhookPayloadInvalid |
Rumpf des Zahlungsdienstleisters unlesbar | Signatur stimmte, der Rumpf passt nicht zum erwarteten Umschlag. Eigener Code, weil die Ursachen weit auseinanderliegen: falsches Geheimnis gegen geändertes Format des Zahlungsdienstleisters — wer beim zweiten das erste sucht, prüft stundenlang Schlüssel | 400 | Eingabe korrigieren |
Stripe.AdapterError |
Fehler in der Anbindung des Zahlungsdienstleisters | Fehlerhafte Antwort des Zahlungsdienstleisters | 502 | später erneut, bei Wiederholung Trace-Id melden |
Billing.SetupIntentNotFound |
Zahlungsvorgang nicht gefunden | Abfrage eines Vorgangs, den der Dienstleister nicht kennt oder der einer anderen Organisation gehört — beides derselbe Code, damit sich ein fremder Vorgang nicht von einem erfundenen unterscheiden lässt | 404 | nicht wiederholen, Vorgang prüfen |
Billing.PreviewStale |
Vorschau überholt | Der Vertrag hat sich seit der Vorschau geändert (zweiter Reiter, Betreiber-Eingriff, Perioden-Dreh). Das Detail trägt die frisch gerechnete Vorschau, damit die Seite sie zeigen und bestätigen lassen kann | 409 | neu laden, erneut senden |
Billing.PreviewExpired |
Vorschau abgelaufen | Der Vorschau-Schlüssel ist abgelaufen oder unbekannt. Getrennt von der überholten Vorschau, weil die Seite anders reagiert: eine Auffrischung ist kein Konflikt | 409 | neu laden, erneut senden |
Billing.OrderBlocked |
Bestellung gesperrt | Der Kaufbereitschafts-Riegel schlägt an. Das Detail nennt die Gründe, und zu jedem Grund gehört ein Weg | 409 | nicht wiederholen, Vorgang prüfen |
Billing.OrderUnchanged |
Auftrag ohne Änderung | Der Auftrag wiederholt den heutigen Vertragsstand. Die Kaufseite belegt jede Position mit dem laufenden Wert vor — ein zweiter Reiter oder ein wiederholtes Absenden genügt. Eigener Code neben der überholten Vorschau, weil die Seite zwei verschiedene Dinge tut: dort eine frische Vorschau nachladen, hier nur den Knopf sperren | 409 | nicht wiederholen, Vorgang prüfen |
Billing.HardwareNotInCheckout |
Ware nicht im Kaufweg | Der Auftrag trägt Einmalartikel, dieser Kaufweg legt aber keine Warenbestellung an — es fehlt die Lieferanschrift. Kein stilles Überlesen: Ein ignoriertes Feld wäre eine Bestellung, die der Kunde aufgegeben hat und die niemand ausführt | 400 | Eingabe korrigieren |
Billing.TermsAcceptanceMissing |
Zustimmung unvollständig | Der Auftrag trägt nicht alle Pflichttexte oder eine veraltete Fassung. Das Detail nennt die geltende Liste, die Seite setzt das Ankreuzfeld neu | 422 | Eingabe korrigieren |
Billing.CheckoutDraftNotFound |
Entwurf nicht gefunden | Unbekannter, fremder oder abgelaufener Entwurf des Kaufwegs | 404 | nicht wiederholen, Vorgang prüfen |
Billing.VatIdRequired |
USt-IdNr erforderlich | Die Steuerregel verlangt eine bestätigte USt-IdNr des Empfängers — ohne sie gibt es keine Umkehr der Steuerschuld und keinen Rückfall auf den Inlandssatz | 409 | nicht wiederholen, Vorgang prüfen |
Billing.TaxRuleNotSupported |
Steuerfall nicht unterstützt | Die Steuerregel kennt den Fall nicht (Ware ins Ausland, fehlender Befreiungsgrund) — hier hilft ein Gespräch, kein Formular | 409 | nicht wiederholen, Vorgang prüfen |
Billing.CreditNoteNotAllowed |
Gutschrift nicht möglich | Gutschrift über mehr, als die Rechnung trägt, oder auf einen Beleg, der keine Rechnung ist | 409 | nicht wiederholen, Vorgang prüfen |
Billing.DunningNotDue |
Mahnstufe nicht fällig | Die vorige Stufe fehlt oder ihre Frist läuft noch. Eine Mahnung ohne vorangegangene Erinnerung ist gegenüber dem Kunden nicht zu vertreten | 409 | nicht wiederholen, Vorgang prüfen |
Billing.DunningNoticeNotFound |
Mahnschreiben nicht gefunden | Zu dieser Rechnung gibt es kein Schreiben dieser Stufe | 404 | nicht wiederholen, Vorgang prüfen |
Billing.HardwareInterestNotFound |
Vormerkung nicht gefunden | Unbekannte Vormerkung oder unbekannter Bestätigungs-Token | 404 | nicht wiederholen, Vorgang prüfen |
Billing.HardwareInterestExpired |
Bestätigungs-Link abgelaufen | Der Link aus der Bestätigungs-Nachricht ist zu alt. Die Vormerkung muss neu abgeschickt werden | 410 | nicht wiederholen, Vorgang prüfen |
Billing.VatIdInvalid |
USt-IdNr abgelehnt | Die europäische Auskunft kennt die Nummer nicht. 422 und nicht 409: Der Rumpf trägt eine Angabe, die sachlich nicht stimmt — es fehlt keine Voraussetzung, die anderswo herzustellen wäre | 422 | Eingabe korrigieren |
Billing.VatIdCheckUnavailable |
Auskunft nicht erreichbar | Die europäische Auskunft antwortet nicht. 503 mit Retry-After und nicht 502: Der Ausfall liegt bei einem fremden Dienst, den dieses Haus nicht ersetzen kann. Ein bereits bestätigter Stand bleibt dabei stehen — eine Störung in Brüssel ist keine Aussage über den Kunden |
503 | später erneut, bei Wiederholung Trace-Id melden |
Billing.PriceBackfillPending |
Rückrechnung läuft noch | Die Perioden-Stückpreise des Bestands sind noch nicht nachgezogen. 503 mit Retry-After und kein 409: Es fehlt keine Voraussetzung, die der Aufrufer herstellen könnte — das Haus ist für einen Augenblick nicht rechenbereit |
503 | später erneut, bei Wiederholung Trace-Id melden |
Billing.EInvoiceGuardFailed |
Beleg nicht ausgefertigt | Der E-Rechnungs-Wächter hat den Beleg abgelehnt — ein Defekt des Hauses, kein Kundenfehler. Die Rechnung bleibt unangetastet, das Detail trägt die gebrochenen Regeln | 500 | später erneut, bei Wiederholung Trace-Id melden |
Subscription.NotSuspended |
Vertrag nicht gesperrt | Zurückholen eines Vertrags, der gar nicht gesperrt ist — eine stille Nicht-Handlung wäre eine Lüge über den ausgeführten Vorgang | 409 | nicht wiederholen, Vorgang prüfen |
Subscription.NotInTrial |
Keine Testphase | Testphasen-Verlängerung an einem Vertrag ohne Testphase | 409 | nicht wiederholen, Vorgang prüfen |
Zählsatz
Diese Seite führt 51 Codes. Zusammen mit den übrigen sechs Fehlercode-Seiten ergeben sich 493 fachliche Codes (4xx) und 119 Serverfehler (5xx), also 612 Codes — der vollständige Katalog der Plattform.