Tổng Kho eSIM
Fehler · 91 veröffentlichte Codes

Fehlercodes

Fehler liefern { ok: false, error: { code, message, field?, meta?, request_id } } mit passendem HTTP-Status, niemals 200. Die Liste für /v1 und Embed stammt aus dem Backend-Register.

Fehlerstruktur

http
HTTP/1.1 402 Payment Required
Content-Type: application/json
X-Request-Id: 018f2b00-0000-7000-8000-0000000000ff

{
  "ok": false,
  "error": {
    "code": "wallet.insufficient_balance",
    "message": "Số dư ví không đủ để thực hiện giao dịch.",
    "field": null,
    "meta": null,
    "request_id": "018f2b00-0000-7000-8000-0000000000ff"
  }
}
Warum domain.reason statt 0000

HTTP-nativ: Proxys, Monitoring und REST-Clients verstehen bereits Standard-HTTP-Statuscodes.

Selbsterklärend: wallet.insufficient_balance ist ohne Tabelle verständlich; neue Codes brechen bestehende Abläufe nicht.

Altsystem erwartet Zahlen? Der unveränderliche Code ist ein stabiler Übersetzungsschlüssel.

4 Regeln zur Fehlerbehandlung

Erst HTTP-Status, dann Fehlercode
Status steuert Wiederholungen, Warnungen und Schutzschalter; error.code steuert Benutzermeldungen. Statuscodes sind stabiler.
Unbekannte Codes dürfen Abläufe nicht abbrechen
Bei unbekannten Codes HTTP-Status nutzen, Code und request_id protokollieren und Ersatzmeldung anzeigen. Keine unbehandelten Ausnahmen.
request_id immer protokollieren
X-Request-Id steht in jeder Antwort und im Fehler. Geben Sie ihn für die Anfrageanalyse an den Support weiter.
Retry-After bei 429 und 503 beachten
Retry-After lesen statt feste Wartezeiten verwenden. 429 enthält auch X-RateLimit-Limit / Remaining / Reset.

Code-HTTP-Zuordnung

Nach Domain gruppiert. Die API-Referenz zeigt die Fehlerzweige je Endpunkt.

91 / 91 Codes angezeigt

Authentifizierung, Schlüssel und Limits partner.*

codeHTTPBedeutungWiederholbar?
partner.invalid_key401Ungültiger API-Schlüssel.Nein: unverändert erneut erfolglos
partner.invalid_signature401Ungültige Anfragesignatur.Nein: unverändert erneut erfolglos
partner.timestamp_expired401Der Zeitstempel der Anfrage weicht zu stark von der Serverzeit ab.Nein: unverändert erneut erfolglos
partner.nonce_reused401Dieser Nonce wurde bereits verwendet.Nein: unverändert erneut erfolglos
partner.ip_not_allowed403Diese IP-Adresse steht nicht auf der Zulassungsliste.Nein: unverändert erneut erfolglos
partner.scope_denied403Dieser API-Schlüssel hat keine Berechtigung für diesen Endpunkt.Nein: unverändert erneut erfolglos
partner.key_suspended403Dieser API-Schlüssel ist derzeit gesperrt.Nein: unverändert erneut erfolglos
partner.key_revoked403Dieser API-Schlüssel wurde widerrufen.Nein: unverändert erneut erfolglos
partner.endpoint_disabled503Diese Endpunktgruppe ist vorübergehend außer Betrieb.Ja: unverändert wiederholen
partner.rate_limited429Das Anfragelimit wurde überschritten. Versuchen Sie es später erneut.Ja: unverändert wiederholen
partner.package_not_visible404Dieses Paket kann mit Ihrem Schlüssel nicht gekauft werden.Nein: unverändert erneut erfolglos
partner.daily_quota_exceeded429Das tägliche Anfragekontingent ist aufgebraucht. Versuchen Sie es morgen erneut.Ja: unverändert wiederholen
partner.wrong_host403Dieser Schlüssel passt nicht zum Host. Verwenden Sie `https://api-testing.tongkhoesim.com` für `tke_test_` und `https://api.tongkhoesim.com` für `tke_live_`.Nein: unverändert erneut erfolglos

Allgemeine API-Fehler internal.*

codeHTTPBedeutungWiederholbar?
internal.validation_failed400Die übermittelten Daten sind ungültig.Nein: unverändert erneut erfolglos
internal.invalid_filter400Ungültige Filterbedingung.Nein: unverändert erneut erfolglos
internal.invalid_sort_field400Ungültiges Sortierfeld.Nein: unverändert erneut erfolglos
internal.unauthenticated401Sie sind nicht angemeldet oder Ihre Sitzung ist abgelaufen.Nein: unverändert erneut erfolglos
internal.forbidden403Sie haben keine Berechtigung für diese Aktion.Nein: unverändert erneut erfolglos
internal.not_found404Die angeforderte Ressource wurde nicht gefunden.Nein: unverändert erneut erfolglos
internal.route_not_found404Dieser Pfad existiert nicht. Prüfen Sie Methode und Pfad in der Dokumentation.Nein: unverändert erneut erfolglos
internal.method_not_allowed405Diese HTTP-Methode wird nicht unterstützt.Nein: unverändert erneut erfolglos
internal.conflict409Ein Zustandskonflikt verhindert diese Aktion.Nein: unverändert erneut erfolglos
internal.unsupported_media_type415Dieser Inhaltstyp wird nicht unterstützt.Nein: unverändert erneut erfolglos
internal.rate_limited429Zu viele Anfragen. Versuchen Sie es später erneut.Ja: unverändert wiederholen
internal.server_error500Ein Systemfehler ist aufgetreten. Versuchen Sie es später erneut.Ja: unverändert wiederholen
internal.service_unavailable503Der Dienst ist vorübergehend nicht verfügbar. Versuchen Sie es später erneut.Ja: unverändert wiederholen
internal.limit_exceeded422Das zulässige Limit ist erreicht. Entfernen Sie einige Einträge und versuchen Sie es erneut.Nein: unverändert erneut erfolglos
internal.money_frozen503Finanztransaktionen sind zur Prüfung des Hauptbuchs vorübergehend ausgesetzt. Versuchen Sie es später erneut.Ja: unverändert wiederholen

Tarifkatalog catalog.*

codeHTTPBedeutungWiederholbar?
catalog.cursor_mismatch400Dieser Cursor passt nicht zu den aktuellen Filtern. Beginnen Sie ohne cursor-Parameter auf der ersten Seite.Nein: unverändert erneut erfolglos

Angebote und Bestellungen order.*

codeHTTPBedeutungWiederholbar?
order.quote_not_found404Angebot nicht gefunden.Nein: unverändert erneut erfolglos
order.quote_expired409Dieses Angebot ist abgelaufen. Erstellen Sie ein neues.Nein: unverändert erneut erfolglos
order.quote_already_committed409Dieses Angebot wurde bereits in eine Bestellung umgewandelt.Nein: unverändert erneut erfolglos
order.package_not_allowed400Dieses Paket existiert nicht oder ist nicht zum Kauf verfügbar.Nein: unverändert erneut erfolglos
order.not_deliverable409Diese Bestellung ist noch nicht abgeschlossen; die Aktion ist daher nicht verfügbar.Nein: unverändert erneut erfolglos
order.quantity_limit_exceeded400Die Anzahl der eSIMs überschreitet das Limit pro Bestellung.Nein: unverändert erneut erfolglos
order.fulfillment_config_changed409Die Bereitstellungskonfiguration des Pakets hat sich geändert. Erstellen Sie ein neues Angebot.Nein: unverändert erneut erfolglos
order.refund_suggestion_pending409Für diese Bestellung wartet ein Erstattungsvorschlag auf Freigabe. Bearbeiten Sie diesen zuerst.Nein: unverändert erneut erfolglos

eSIM esim.*

codeHTTPBedeutungWiederholbar?
esim.out_of_stock409Für dieses Paket ist nicht genügend Bestand vorhanden.Nein: unverändert erneut erfolglos
esim.not_cancellable409Der Status dieser eSIM erlaubt keine Stornierung.Nein: unverändert erneut erfolglos
esim.lpa_not_available409Diese eSIM hat noch keinen LPA-Code (noch nicht aktiviert oder registriert).Nein: unverändert erneut erfolglos
esim.not_eligible409Diese eSIM ist nicht für eine Aufladung berechtigt.Nein: unverändert erneut erfolglos
esim.not_activated409Diese eSIM ist noch nicht installiert. Installieren und aktivieren Sie sie vor der Aufladung.Nein: unverändert erneut erfolglos
esim.topup_not_supported409Dieses Paket unterstützt keine Aufladungen.Nein: unverändert erneut erfolglos
esim.topup_provider_mismatch409Dieses Aufladepaket gehört zu einem anderen Anbieter. Wählen Sie ein für diese eSIM angebotenes Paket.Nein: unverändert erneut erfolglos
esim.refund_not_eligible409Diese eSIM ist nicht für einen Erstattungsantrag berechtigt.Nein: unverändert erneut erfolglos
esim.refund_request_pending409Für diese eSIM ist bereits ein Erstattungsantrag offen.Nein: unverändert erneut erfolglos
esim.suspended409Diese eSIM ist gesperrt. Reaktivieren Sie sie vor dieser Aktion.Nein: unverändert erneut erfolglos

Wallet wallet.*

codeHTTPBedeutungWiederholbar?
wallet.frozen409Dieses Wallet ist eingefroren und kann nicht belastet werden.Nein: unverändert erneut erfolglos
wallet.velocity_hold409Dieses Wallet ist zur Prüfung gesperrt. Wenden Sie sich an den Support.Nein: unverändert erneut erfolglos
wallet.insufficient_balance402Das Wallet-Guthaben reicht für diese Transaktion nicht aus.Nein: unverändert erneut erfolglos
wallet.deleted409Das Ziel-Wallet ist ungültig (gelöscht).Nein: unverändert erneut erfolglos
wallet.velocity_exceeded429Die Transaktionsgrenze wurde in kurzer Zeit überschritten. Das Wallet wurde zur Prüfung gesperrt.Nein: unverändert erneut erfolglos

Erstattungsanträge refund.*

codeHTTPBedeutungWiederholbar?
refund.note_required400Geben Sie einen Grund für die Ablehnung der Erstattung an.Nein: unverändert erneut erfolglos

Verkaufspreise pricing.*

codeHTTPBedeutungWiederholbar?
pricing.no_price_for_buyer409Für Sie ist noch kein Verkaufspreis für dieses Paket festgelegt.Nein: unverändert erneut erfolglos

eSIM-Anbieter provider.*

codeHTTPBedeutungWiederholbar?
provider.disabled409Der Anbieter dieses Pakets ist deaktiviert; ein Verkauf ist nicht möglich.Nein: unverändert erneut erfolglos
provider.api_group_disabled409Diese Dienstgruppe des Anbieters ist deaktiviert.Nein: unverändert erneut erfolglos
provider.not_registered500Für diesen Anbieter ist kein Konnektor eingerichtet.Ja: unverändert wiederholen
provider.unsupported400Dieser Anbieter unterstützt diese Aktion nicht.Nein: unverändert erneut erfolglos
provider.timeout504Die Antwort des Anbieters hat zu lange gedauert. Versuchen Sie es später erneut.Ja: unverändert wiederholen
provider.auth_failed502Die Authentifizierung beim Anbieter ist fehlgeschlagen.Ja: unverändert wiederholen
provider.rate_limited429Der Anbieter begrenzt Anfragen. Versuchen Sie es später erneut.Ja: unverändert wiederholen
provider.malformed_response502Der Anbieter hat ungültige Daten zurückgegeben.Ja: unverändert wiederholen
provider.call_failed502Der Aufruf beim Anbieter ist fehlgeschlagen.Ja: unverändert wiederholen
provider.out_of_stock409Dieses Paket ist beim Anbieter ausverkauft.Nein: unverändert erneut erfolglos
provider.msisdn_taken409Diese MSISDN gehört beim Anbieter bereits zu einem anderen Teilnehmer.Nein: unverändert erneut erfolglos
provider.msisdn_exhausted409Beim Anbieter ist keine verwendbare MSISDN mehr verfügbar.Nein: unverändert erneut erfolglos

Idempotency idempotency.*

codeHTTPBedeutungWiederholbar?
idempotency.conflict409Dieser Idempotency-Key wurde bereits mit anderem Inhalt verwendet.Nein: unverändert erneut erfolglos

Anbieterfunktionen capability.*

codeHTTPBedeutungWiederholbar?
capability.not_supported422Dieses Paket unterstützt die angeforderte Funktion nicht.Nein: unverändert erneut erfolglos

Testmodus / Simulation testmode.*

codeHTTPBedeutungWiederholbar?
testmode.live_key_forbidden403Dieser Endpunkt erfordert einen Testschlüssel (`tke_test_`) auf api-testing. Verwenden Sie statt des Live-Schlüssels einen Testschlüssel derselben Organisation.Nein: unverändert erneut erfolglos
testmode.not_test_item422Diese eSIM ist ein Live-Datensatz; der Testmodus bearbeitet nur Test-eSIMs. Beantragen Sie für eine echte Bestellung eine Erstattung.Nein: unverändert erneut erfolglos
testmode.invalid_scenario422Ungültiges Szenario. Senden Sie mindestens eines von `data_used_mb`, `status`, `expire_now`, `throttled`; `status` erlaubt nur released|installed|enabled|disabled.Nein: unverändert erneut erfolglos
testmode.no_sellable_package422Zum Erstellen von Beispieldaten fehlt ein Paketpreis. Mindestens ein verkäufliches Paket mit Preis ist erforderlich.Nein: unverändert erneut erfolglos

Webhook webhook.*

codeHTTPBedeutungWiederholbar?
webhook.health_check_failed422Die Webhook-URL hat beim Funktionstest nicht gültig geantwortet.Nein: unverändert erneut erfolglos
webhook.url_not_allowed422Diese Webhook-URL ist nicht zulässig. Sie muss öffentlich sein und https verwenden.Nein: unverändert erneut erfolglos
webhook.not_configured404Für diesen API-Schlüssel ist kein Webhook eingerichtet.Nein: unverändert erneut erfolglos
webhook.delivery_not_found404Webhook-Zustellung nicht gefunden.Nein: unverändert erneut erfolglos
webhook.already_configured409Dieser API-Schlüssel hat bereits einen Webhook (einen pro Schlüssel). Ändern Sie ihn mit `PUT /v1/webhooks/{id}` oder löschen Sie ihn mit `DELETE /v1/webhooks/{id}`, bevor Sie einen neuen erstellen.Nein: unverändert erneut erfolglos
webhook.not_found404Dieser Webhook-Endpunkt gehört nicht zum aufrufenden API-Schlüssel.Nein: unverändert erneut erfolglos

Organisationsstatus org.*

codeHTTPBedeutungWiederholbar?
org.invoice_profile_incomplete422Das Rechnungsprofil der Organisation ist unvollständig (Firmenname, Steuernummer, Adresse).Nein: unverändert erneut erfolglos
org.suspended403Diese Organisation ist derzeit gesperrt.Nein: unverändert erneut erfolglos
org.closed403Diese Organisation ist geschlossen.Nein: unverändert erneut erfolglos

Öffentliche Einbettung embed.*

codeHTTPBedeutungWiederholbar?
embed.invalid_token401Ungültiges Einbettungstoken.Nein: unverändert erneut erfolglos
embed.token_revoked410Dieser Einbettungskanal ist nicht mehr aktiv.Nein: unverändert erneut erfolglos
embed.rate_limited429Dieser Einbettungskanal ruft zu schnell auf. Versuchen Sie es später erneut.Ja: unverändert wiederholen
embed.package_not_visible404Paket nicht gefunden.Nein: unverändert erneut erfolglos

MwSt.-Rechnungen invoice.*

codeHTTPBedeutungWiederholbar?
invoice.order_not_settled409Die Bestellung ist wegen einer laufenden Erstattung noch nicht abgerechnet. Versuchen Sie die Rechnungsstellung in einigen Minuten erneut.Ja: unverändert wiederholen
invoice.profile_incomplete422Das Rechnungsprofil der Organisation ist unvollständig. Ergänzen Sie es vor der Rechnungsstellung.Nein: unverändert erneut erfolglos
invoice.already_requested409Für diese Bestellung liegt bereits eine Rechnung vor.Nein: unverändert erneut erfolglos
invoice.nothing_to_invoice409Nach Abzug der Erstattungen bleibt kein Rechnungsbetrag übrig.Nein: unverändert erneut erfolglos
invoice.amount_changed409Eine neue Erstattung hat den Bestellbetrag geändert. Prüfen Sie den Betrag und stellen Sie die Rechnung erneut aus.Ja: unverändert wiederholen
invoice.buyer_invalid422Die Angaben des Rechnungsempfängers sind unvollständig oder die Steuernummer ist ungültig.Nein: unverändert erneut erfolglos