Übersicht
Die Dodo Payments API verwendet standardisierte HTTP-Statuscodes und benutzerdefinierte Fehlercodes, um den Erfolg oder Misserfolg von API-Anfragen anzuzeigen. Wenn ein Fehler auftritt, gibt die API einen entsprechenden HTTP-Statuscode und eine JSON-Antwort mit detaillierten Informationen über den Fehler zurück. Jede Fehlerantwort enthält:- Einen HTTP-Statuscode, der die allgemeine Kategorie des Fehlers angibt
- Einen spezifischen Fehlercode, der die genaue Art des Fehlers identifiziert
- Eine für Menschen lesbare Fehlermeldung, die erklärt, was schiefgelaufen ist
- Zusätzliche Details zum Fehler, wenn zutreffend
- Die Fehlersuche bei Integrationsproblemen
- Die Implementierung einer ordnungsgemäßen Fehlerbehandlung in Ihrer Anwendung
- Die Bereitstellung sinnvoller Rückmeldungen für Endbenutzer
- Die Aufrechterhaltung eines robusten Zahlungssystem
Standard API-Fehlercodes
| Fehlercode | HTTP-Status | Beschreibung |
|---|---|---|
| 400 | Ungültige Anfrage | Die Anfrage war fehlerhaft oder enthielt ungültige Parameter |
| 401 | Unautorisiert | Die Authentifizierung ist fehlgeschlagen oder der API-Schlüssel ist ungültig |
| 403 | Verboten | Der API-Schlüssel hat keine Berechtigung, auf die angeforderte Ressource zuzugreifen |
| 404 | Nicht gefunden | Die angeforderte Ressource existiert nicht |
| 405 | Methode nicht erlaubt | Die HTTP-Methode wird für diesen Endpunkt nicht unterstützt |
| 409 | Konflikt | Die Anfrage steht im Konflikt mit dem aktuellen Zustand der Ressource |
| 422 | Nicht verarbeitbare Entität | Die Anfrage war gut formuliert, enthielt jedoch semantische Fehler |
| 429 | Zu viele Anfragen | Die Rate-Limit wurde überschritten |
| 500 | Interner Serverfehler | Ein unerwarteter Fehler ist auf unseren Servern aufgetreten |
| 502 | Ungültiges Gateway | Der Server hat eine ungültige Antwort von einem upstream-Server erhalten |
| 503 | Dienst nicht verfügbar | Der Dienst ist vorübergehend nicht verfügbar |
| 504 | Gateway-Zeitüberschreitung | Der Server hat beim Warten auf eine Antwort von einem upstream-Server eine Zeitüberschreitung erreicht |
Fehlerantwortformat
Wenn ein Fehler auftritt, gibt die API eine JSON-Antwort mit folgender Struktur zurück:Fehlercodes Referenz
-
ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT- Auslöser: Lizenzschlüsselaktivierungen: neues Limit < bestehende Instanzanzahl
- Nachricht: Neues Aktivierungslimit darf nicht kleiner sein als die aktuelle Instanzanzahl
-
ADDONS_IN_USAGE_BASED_BILLING_NOT_SUPPORTED- Auslöser: Versuch, Add-ons zu nutzungsbasierten Abonnements hinzuzufügen
- Nachricht: Add-ons in Abonnements werden für nutzungsbasierte Abrechnung nicht unterstützt
-
ADDONS_NOT_ALLOWED_FOR_ON_DEMAND- Auslöser: Versuch, Add-ons zu On-Demand-Abonnements hinzuzufügen
- Nachricht: Add-ons sind für On-Demand-Abonnements nicht erlaubt
-
BRAND_MISMATCH- Auslöser: Warenkorbartikel gehören zu verschiedenen Marken
- Nachricht: Alle Artikel im Produktwarenkorb sollten zur gleichen Marke gehören
-
BRAND_NOT_ENABLED- Auslöser: Marke ist deaktiviert oder nicht aktiv
- Nachricht: Die angegebene Marke ist nicht aktiviert
-
BRAND_SUBMISSION_NOT_ENABLED- Auslöser: Funktion zur erneuten Einreichung der Markenverifizierung ist nicht aktiviert
- Nachricht: Die erneute Einreichung der Markenverifizierung ist nicht aktiviert
-
CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- Auslöser: Versuch, ein Abonnement zu belasten, das zur Stornierung geplant ist
- Nachricht: Abonnement ist zur Stornierung geplant
-
CHECKOUT_SESSION_CONSUMED- Auslöser: Checkout-Sitzung hat bereits eine Zahlung generiert
- Nachricht: Checkout-Sitzung wurde bereits verbraucht
-
DISCOUNT_CODE_ALREADY_EXISTS- Auslöser: Duplizierte Erstellung eines Rabattcodes
- Nachricht: Rabattcode existiert bereits
-
DISCOUNT_CODE_EXPIRED- Auslöser: Rabattcode nach
expires_atDatum abgelaufen - Nachricht: Rabattcode ist abgelaufen
- Auslöser: Rabattcode nach
-
DISCOUNT_CODE_USAGE_LIMIT_EXCEEDED- Auslöser: Rabatt wurde wiederverwendet, nachdem
usage_limiterreicht wurde - Nachricht: Nutzungslimit kann nicht kleiner sein als times_used / Rabattcode hat Nutzungslimit erreicht
- Auslöser: Rabatt wurde wiederverwendet, nachdem
-
DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND- Auslöser: Code wurde auf ein On-Demand-Abonnement angewendet
- Nachricht: Rabattcoupon ist für On-Demand-Abonnements nicht verfügbar
-
DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT- Auslöser: Code wurde auf nicht verwandte Produkt(e) angewendet
- Nachricht: Rabattcoupon ist für dieses Produkt nicht verfügbar
-
DUPLICATE_LINE_ITEMS_IN_REQUEST- Auslöser: Der gleiche
item_iderscheint zweimal initems[] - Nachricht: Duplizierte item_ids im items-Array angegeben
- Auslöser: Der gleiche
-
DUPLICATE_METER_IDS_IN_REQUEST- Auslöser: Die gleiche Meter-ID erscheint mehrfach in der Anfrage
- Nachricht: Duplizierte Meter-IDs sind nicht erlaubt
-
EXCHANGE_RATE_NOT_FOUND- Auslöser: Kein FX-Kurs für
from → toWährungspaar - Nachricht: Wechselkurs nicht gefunden, um von Währung zu Währung zu konvertieren
- Auslöser: Kein FX-Kurs für
-
EXISTING_REFUND_REQUEST_PROCESSING- Auslöser: Vorherige Rückerstattungsanfrage wird noch bearbeitet
- Nachricht: Eine Rückerstattungsanfrage mit dem Status “Ausstehend” wird noch bearbeitet
-
INACTIVE_LICENSE_KEY- Auslöser: Schlüsselstatus ≠
ACTIVE - Nachricht: Lizenzschlüssel ist nicht aktiv
- Auslöser: Schlüsselstatus ≠
-
INACTIVE_SUBSCRIPTION_PLAN_CHANGE_NOT_SUPPORTED- Auslöser: Planänderung bei inaktiven Abonnements
- Nachricht: Planänderungen werden für inaktive Abonnements nicht unterstützt
-
INSUFFICIENT_WALLET_FUNDS- Auslöser: Wallet-Balance < Debitbetrag
- Nachricht: Unzureichende Mittel im Wallet
-
INTEGER_CONVERSION_FAILURE- Auslöser: Jede Ganzzahl ↔ String/Dekimalumwandlung, die serverseitig fehlschlägt
- Nachricht: Fehler bei der Ganzzahlumwandlung
-
INTERNAL_SERVER_ERROR- Auslöser: Unbehandelte Ausnahmen; Sie sollten Details serverseitig protokollieren
- Nachricht: Keine öffentliche Nachricht (allgemeiner 500)
-
INVALID_DISCOUNT_CODE- Auslöser: Code existiert nicht / nicht anwendbar
- Nachricht: Ungültiger Rabattcode / Rabattcode kann auf kein Produkt im Warenkorb angewendet werden
-
INVALID_PERCENTAGE- Auslöser: Prozentbetrag > 100% (oder 10.000 Basispunkte)
- Nachricht: Prozentbetrag darf nicht mehr als 10000 betragen / Rabattcode-Betrag darf nicht mehr als 100% betragen
-
INVALID_QUANTITY- Auslöser: Ungültige Menge für nutzungsbasierte Preisgestaltung angegeben
- Nachricht: Nur 1 Menge in nutzungsbasierten Preisprodukten erlaubt
-
INVALID_QUERY_PARAMS- Auslöser: Gegenseitige Ausschluss- / fehlerhafte Abfrageparameter
- Nachricht: Abfrageparameter sollten nur entweder time_frame oder (start, end) enthalten
-
INVALID_REQUEST_BODY- Auslöser: Fehlerhaftes JSON oder Schema-Verletzung
- Nachricht: Ihr Anfragekörper ist ungültig. Bitte überprüfen Sie Ihre Anfrage-Header und das Objekt.
-
INVALID_REQUEST_PARAMETERS- Auslöser: Semantik falsch (z. B. Datum in der Vergangenheit)
- Nachricht: Nächsten_billing_date kann nicht auf eine Zeit in der Vergangenheit geändert werden
-
INVALID_SUGGESTED_PRICE- Auslöser: PWYW-Preis < minimal zulässiger Preis
- Nachricht: Vorgeschlagener Preis darf nicht niedriger sein als der Mindestpreis. Im Falle von “pay what you want” wird der Preis als minimal akzeptierter Betrag betrachtet
-
INVALID_TAX_ID- Auslöser: USt/GST/TIN hat die Validierung nicht bestanden
- Nachricht: Steuer-ID ist ungültig
-
LICENSE_KEY_LIMIT_REACHED- Auslöser: Aktivierungen = Limit
- Nachricht: Aktivierungsgrenze des Lizenzschlüssels erreicht
-
LICENSE_KEY_NOT_FOUND- Auslöser: Instanz-ID oder Schlüssel-ID ungültig
- Nachricht: Lizenzschlüsselinstanz nicht gefunden oder gehört nicht zu diesem Lizenzschlüssel
-
LINE_ITEM_FULLY_REFUNDED- Auslöser: Versuch, eine bereits vollständig erstattete Position zurückzuerstatten
- Nachricht: Position wurde vollständig erstattet und kann nicht weiter erstattet werden.
-
LINE_ITEM_NOT_FOUND- Auslöser: Artikel-ID ist nicht Teil der referenzierten Zahlung
- Nachricht: Position nicht in der Zahlung gefunden
-
LINE_ITEM_PRORATED- Auslöser: Rückerstattung oder Aktualisierung wurde für eine anteilige Position versucht
- Nachricht: Position kann nicht zurückerstattet werden, da sie anteilig ist
-
LINE_ITEM_REFUND_AMOUNT_TOO_HIGH- Auslöser: Rückerstattungsbetrag > bezahlter Betrag (inkl. Steuer)
- Nachricht: Der angeforderte Rückerstattungsbetrag für die Position einschließlich Steuer beträgt , was über dem bezahlten Betrag liegt
-
LINE_ITEM_REFUND_AMOUNT_TOO_LOW- Auslöser: Rückerstattungsbetrag unter dem Mindestbetrag
- Nachricht: Der angeforderte Rückerstattungsbetrag für die Position beträgt , was zu niedrig ist
-
MAXIMUM_KEYS_REACHED- Auslöser: Metadaten / benutzerdefinierte Felder überschreiten 50 Paare
- Nachricht: Überschreitet 50 Schlüssel-Wert-Paare
-
MERCHANT_NOT_LIVE- Auslöser: Geschäft befindet sich noch im Test-/Sandbox-Modus
- Nachricht: Händler ist nicht live
-
METER_IS_DELETED- Auslöser: Versuch, einen gelöschten Zähler zu verwenden
- Nachricht: Der Zähler wurde bereits gelöscht
-
MISSING_ADDON_IDS- Auslöser:
addon_idListe leer oder unbekannte IDs - Nachricht: Eine oder mehrere Produkt-IDs existieren nicht:
- Auslöser:
-
MISSING_METER_IDS- Auslöser: Zähler-ID-Liste leer oder enthält ungültige IDs
- Nachricht: Eine oder mehrere Zähler-IDs existieren nicht:
-
MISSING_PRODUCT_INFORMATION- Auslöser: Produkt existiert, aber erforderliche Informationen fehlen
- Nachricht: Produkt existiert, aber andere erforderliche Informationen fehlen oder sind ungültig
-
NEGATIVE_BALANCE_ADJUSTMENT- Auslöser: Versuch, das Wallet-Guthaben negativ zu machen
- Nachricht: Wallet-Guthaben darf nicht negativ gemacht werden
-
NO_ELIGIBLE_PAYMENT_METHODS- Auslöser: Nach dem Filtern bleibt nichts übrig
- Nachricht: Keine geeigneten Zahlungsmethoden gefunden
-
NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS- Auslöser: Versuch, das Ablaufdatum für einen abonnementbasierten Schlüssel festzulegen
- Nachricht: Ablaufdatum für einen abonnementbasierten Lizenzschlüssel kann nicht festgelegt werden
-
NOT_FOUND- Auslöser: Allgemeines 404 für jede fehlende Ressource
- Nachricht: Artikel nicht gefunden (oder spezifischer)
-
ON_DEMAND_PLAN_CHANGE_NOT_SUPPORTED- Auslöser: Planwechsel nicht für On-Demand erlaubt
- Nachricht: Planänderungen werden für On-Demand-Abonnements nicht unterstützt
-
ON_DEMAND_SUBSCRIPTIONS_NOT_ENABLED- Auslöser: Geschäft hat das Feature-Flag deaktiviert
- Nachricht: On-Demand-Abonnements sind für dieses Geschäft nicht aktiviert
-
ON_DEMAND_USAGE_BASED_BILLING_NOT_SUPPORTED- Auslöser: Versuch, On-Demand mit nutzungsbasierter Abrechnung zu verwenden
- Nachricht: On-Demand-Abonnements werden für nutzungsbasierte Abrechnung nicht unterstützt
-
PAY_AS_YOU_WANT_AMOUNT_REQUIRED- Auslöser: Preis fehlt für PWYW-Produkt
- Nachricht: Betrag ist obligatorisch für das Produkt “pay what you want”
-
PAYMENT_ALREADY_REFUNDED- Auslöser: Duplizierte Rückerstattung
- Nachricht: Diese Zahlung wurde bereits zurückerstattet
-
PAYMENT_HAS_BEEN_REFUNDED- Auslöser: Zahlung wurde vollständig zurückerstattet
- Nachricht: Die Zahlungs-ID wurde vollständig zurückerstattet.
-
PAYMENT_NOT_SUCCEEDED- Auslöser: Versuch, eine Rückerstattung für eine nicht erfolgreiche Zahlung zu veranlassen
- Nachricht: Die angegebene Zahlung war nicht erfolgreich
-
PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- Auslöser: Planänderung bei einem Abonnement, das zur Stornierung geplant ist
- Nachricht: Abonnement ist zur Stornierung geplant
-
PREVIOUS_PAYMENT_PENDING- Auslöser: Versuch, eine Gebühr zu erstellen, während die vorherige in einem nicht-terminalen Zustand ist
- Nachricht: Kann keine neue Gebühr erstellen, da die vorherige Zahlung noch nicht erfolgreich ist
-
PRODUCT_CART_EMPTY- Auslöser: Leerer Produktwarenkorb eingereicht
- Nachricht: product_cart ist leer
-
PRODUCT_IS_DELETED- Auslöser: Produkt wurde soft gelöscht
- Nachricht: Keine Nachrichten
-
REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT- Auslöser: Aggregierte Rückerstattungssumme > bezahlte Summe
- Nachricht: Der berechnete Rückerstattungsbetrag ist größer als der bezahlte Betrag
-
REFUND_WINDOW_EXPIRED- Auslöser: Außerhalb des zulässigen Rückerstattungsfensters
- Nachricht: Rückerstattungen können Tage nach der Zahlungs Erstellung nicht initiiert werden. Kontaktieren Sie [email protected].
-
REQUEST_AMOUNT_BELOW_MINIMUM- Auslöser: Betrag < minimaler Produktbetrag
- Nachricht: Betrag darf nicht geringer sein als der für das Produkt angegebene Mindestbetrag
-
SUBSCRIPTION_EXPIRED- Auslöser: Abrechnung nach
ends_at - Nachricht: Abonnement abgelaufen, neue Gebühren können nicht erstellt werden
- Auslöser: Abrechnung nach
-
SUBSCRIPTION_INACTIVE- Auslöser: Status ≠
ACTIVE - Nachricht: Abonnement ist nicht aktiv
- Auslöser: Status ≠
-
SUBSCRIPTION_NOT_ON_DEMAND- Auslöser: Erwartet On-Demand, aber festes Intervall erhalten
- Nachricht: Abonnement ist bereits nicht On-Demand
-
SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED- Auslöser: Abonnement-Zahlungswiederholungen haben die maximalen Versuche überschritten
- Nachricht: Maximales Wiederholungslimit von 10 Versuchen für dieses Abonnement überschritten
-
TOO_MANY_REQUESTS- Auslöser: 429 Rate-Limit
- Nachricht: Keine Nachrichten
-
TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT- Auslöser: Kombinierter Warenkorbwert < Mindestbetrag des Gateways
- Nachricht: Mindestbetrag von ist erforderlich, um die Zahlung zu verarbeiten
-
UNABLE_TO_EDIT_PRIMARY_BRAND- Auslöser: Versuch, die primäre Marke über die reguläre API zu aktualisieren
- Nachricht: Die primäre Marke kann über diesen API-Endpunkt nicht aktualisiert werden.
-
UNAUTHORIZED- Auslöser: Kein API-Schlüssel oder ungültiges Token / Scope
- Nachricht: Sie sind nicht autorisiert, diese Aktion auszuführen
-
UNSUPPORTED_ACTION- Auslöser: Nicht unterstützte Aktion für Ressourcentyp
- Nachricht: Planänderungen für nutzungsbasierte Abonnements werden nicht unterstützt
-
UNSUPPORTED_BILLING_CURRENCY- Auslöser: Abonnements auf USD beschränkt
- Nachricht: Nicht-USD-Abrechnungswährung wird für Abonnements nicht unterstützt
-
UNSUPPORTED_COUNTRY- Auslöser: Geo noch nicht unterstützt
- Nachricht: Land wird derzeit nicht unterstützt
-
UNSUPPORTED_CURRENCY- Auslöser: Produkt- oder Add-on-Währung ungültig
- Nachricht: Währung wird derzeit nicht unterstützt / Nur USD und INR-Produkte werden derzeit unterstützt / Nur USD und INR werden für den Add-on-Preis unterstützt / Es kann nur USD oder INR für billing_currency angefordert werden / Währung nicht unterstützt / Unerwartete Währung für indische Kartenabonnements
-
UNSUPPORTED_DISCOUNT_TYPE- Auslöser: Pauschalrabatte usw. noch nicht live
- Nachricht: Derzeit werden nur prozentuale Rabattcodes unterstützt
-
UNSUPPORTED_PAYMENT_CURRENCY- Auslöser: Zahlungsmethode für Connector blockiert
- Nachricht: INR-Transaktion wird für diese Transaktion nicht unterstützt
-
UNSUPPORTED_TAX_CATEGORY- Auslöser: Steuerkategorie-String nicht im Enum
- Nachricht: Kategorie wird derzeit nicht unterstützt
-
UNSUCCESSFUL_PAYMENT_ID- Auslöser: Zahlungs-ID verweist auf nicht erfolgreiche Zahlung
- Nachricht: Die Zahlungs-ID hat einen nicht erfolgreichen Status.
-
ZERO_AMOUNT_PAYMENT_REFUND_NOT_ALLOWED- Auslöser: Versuch, eine Zahlung mit null Betrag zurückzuerstatten
- Nachricht: Kann eine Zahlung mit null Währungsbetrag nicht zurückerstatten
Best Practices
- Behandeln Sie Fehler immer elegant in Ihrer Anwendung
- Implementieren Sie eine ordnungsgemäße Fehlerprotokollierung
- Verwenden Sie geeignete Fehlermeldungen für Endbenutzer
- Implementieren Sie eine Wiederholungslogik für vorübergehende Fehler
- Kontaktieren Sie den Support bei ungelösten Problemen