Merchant API Fehler
July 30, 2026
HTTP-Statuscodes der FlowAlp Pay Merchant API, Aufbau der JSON-Fehlerantwort und praktische Retry-Empfehlungen mit exponentiellem Backoff.
Schlägt ein Merchant-API-Aufruf fehl, kombiniert die Antwort einen HTTP-Statuscode mit einem JSON-Body, der das Problem erklärt. Diese Seite beschreibt die Status-Semantik, den Aufbau der Fehlerantwort und sichere Retries.
Seit API v1.15 liefern fehlgeschlagene Anfragen einen für den Fehler spezifischen Statuscode statt einer generischen Antwort — siehe API-Versionen und Changelog.
HTTP-Statuscodes
| Status | Bedeutung | Empfohlene Aktion |
|---|---|---|
200 OK | Anfrage verarbeitet; prüfen Sie das status-Feld im Body | Ablauf fortsetzen |
400 Bad Request | Fehlerhafte oder ungültige Anfrage (Felder, Typen, Kodierung) | Payload korrigieren; nicht unverändert wiederholen |
401 Unauthorized | Fehlende oder ungültige Zugangsdaten | API Secret und Auth-Methode prüfen; nicht unverändert wiederholen |
403 Forbidden | Zugriff verweigert; folgt auch auf anhaltende Überlast am Plattform-Edge | Berechtigungen und Instance prüfen; bei hohem Volumen Backoff und Retry |
404 Not Found | Unbekannte Ressource, ID oder Pfad | Object, id und Versionssegment prüfen |
405 Method Not Allowed | Falsches HTTP-Verb; unter Last auch ein frühes Rate-Limit-Signal | Verb-Zuordnung prüfen; bei hohem Volumen Backoff |
429 Too Many Requests | Standard-Status für Rate-Limits | Backoff und später erneut versuchen |
5xx | Vorübergehendes serverseitiges Problem | Mit exponentiellem Backoff wiederholen |
Das dokumentierte Rate-Limit zeigt sich als 405 gefolgt von 403, solange das Limit überschritten bleibt; sollten Sie je 429 erhalten, behandeln Sie es genauso. Details: Merchant API Rate Limits.
Aufbau der Fehlerantwort
Fehlgeschlagene Aufrufe liefern einen JSON-Body mit einem status-Feld und einer lesbaren Erklärung, typischerweise im Feld message:
{
"status": "error",
"message": "Description of what went wrong"
}Erfolgreiche Aufrufe liefern "status": "success" plus ein data-Array. Werten Sie zuerst den HTTP-Status aus, dann den Body. Meldungstexte sind nicht Teil des API-Vertrags — verzweigen Sie auf Statuscodes, nie auf Meldungs-Strings.
Retry-Empfehlungen
| Fehlerklasse | Retry? | Vorgehen |
|---|---|---|
400 / 401 / 404 — Validierungs- und Auth-Fehler | Nein | Zuerst Anfrage oder Zugangsdaten korrigieren |
405 / 403 bei hohem Volumen, 429 | Ja | Exponentieller Backoff mit Jitter |
5xx und Netzwerk-Timeouts | Ja | Exponentieller Backoff; Versuche begrenzen |
Ein bewährter Ausgangspunkt: Startverzögerung 500 ms, Verdopplung pro Versuch, zufälliger Jitter bis 300 ms, maximale Verzögerung 30 s, höchstens 5 Versuche. Machen Sie wiederholte Operationen in Ihrem System idempotent, etwa durch Deduplizierung über referenceId.
<?php
function callWithBackoff(callable $request, int $maxAttempts = 5)
{
$delayMs = 500;
for ($attempt = 1; $attempt <= $maxAttempts; $attempt++) {
[$status, $body] = $request();
if ($status < 400) {
return $body;
}
$retriable = in_array($status, [403, 405, 429], true) || $status >= 500;
if (!$retriable || $attempt === $maxAttempts) {
throw new RuntimeException('FlowAlp Pay request failed: HTTP ' . $status);
}
usleep(($delayMs + random_int(0, 300)) * 1000);
$delayMs = min($delayMs * 2, 30000);
}
}response=$(curl --silent --write-out "\n%{http_code}" \
--url "https://api.pay.flowalp.com/v1.16/Transaction/<transaction-id>/?instance=<instance>" \
--header "x-api-key: <api-secret>")
body=$(printf '%s' "$response" | head -n -1)
status=$(printf '%s' "$response" | tail -n 1)
echo "HTTP $status"
echo "$body"Authentifizierungsfehler eingrenzen
- Führen Sie den SignatureCheck-Smoke-Test aus, um Zugangsdaten-Probleme von Endpoint-Problemen zu trennen.
- Prüfen Sie, ob der Instance-Name der Subdomain Ihrer Zahlungsseite entspricht.
- Vergleichen Sie im Signaturmodus Ihre Query-String-Kodierung mit der Referenzimplementierung in Merchant API Authentifizierung.
Logging-Empfehlungen
- Protokollieren Sie HTTP-Status, Ressourcenpfad und Ihre Korrelations-ID (zum Beispiel
referenceId) — nie das API Secret oderApiSignature. - Trennen Sie Validierungsfehler von Authentifizierungsfehlern in Ihren Metriken.
- Bevorzugen Sie Webhooks gegenüber aggressivem Polling, damit vorübergehende Fehler weniger ins Gewicht fallen.
Verwandte Seiten: Merchant API Rate Limits, Request-Format, Erste API-Anfrage.