Docs/Fehlerbehandlung

Fehlerbehandlung

Fehler in der Fivo API verstehen und behandeln.

Fehlerantwort-Format

Alle API-Fehler folgen einem einheitlichen Format:

Error Response Structure
{
  "success": false,
  "error": "Human-readable error message",
  "details": [
    {
      "field": "amount",
      "message": "Must be a positive number"
    }
  ]
}

HTTP-Statuscodes

200OK

Anfrage erfolgreich

201Created

Ressource erfolgreich erstellt

400Bad Request

Ungültige Anfragedaten oder Validierungsfehler

401Unauthorized

Fehlende oder ungültige Authentifizierung

403Forbidden

Nicht berechtigt, auf diese Ressource zuzugreifen

404Not Found

Ressource nicht gefunden

429Too Many Requests

Ratenbegrenzung überschritten

500Internal Error

Serverfehler – bitte kontaktieren Sie den Support

Häufige Fehler

Validierungsfehler (400)

Ungültige Eingabedaten

Der Anfragekörper entspricht nicht dem erwarteten Schema. Prüfen Sie das -Array für spezifische Feldfehler.details

json
{
  "success": false,
  "error": "Invalid input data",
  "details": [
    {"path": ["amount"], "message": "Expected number, received string"},
    {"path": ["token"], "message": "Invalid enum value. Expected 'USDC' | 'EURC'"}
  ]
}
Ungültiger Betrag

Der Betrag muss zwischen 0,01 und 1.000.000 liegen.

Ungültige Händleradresse

Die stimmt nicht mit der Wallet-Adresse des Händlers überein.toAddress

Authentifizierungsfehler (401/403)

Kein Token bereitgestellt

Geschützter Endpunkt erfordert Authentifizierung. Fügen Sie den - oder -Header hinzu.AuthorizationX-API-Key

Ungültiger oder abgelaufener Token

JWT-Token ist abgelaufen (15 Min. Lebensdauer) oder fehlerhaft. Authentifizieren Sie sich erneut, um einen neuen Token zu erhalten.

Ungültiger API Key

API Key nicht gefunden oder wurde widerrufen. Stellen Sie sicher, dass Sie den richtigen Key verwenden.

Ressourcenfehler (404)

Händler nicht gefunden

Kein Händler mit der angegebenen ID vorhanden. Überprüfen Sie Ihre .merchantId

Zahlung nicht gefunden

Keine Zahlung mit der angegebenen ID vorhanden. Prüfen Sie, ob die Zahlungs-ID korrekt ist.

Zahlung existiert bereits

Eine Zahlung mit diesem existiert bereits. Die API gibt mit den vorhandenen Zahlungsdaten zurück. Dies verhindert Double-Spend-Angriffe.txHash200

API-Fehlercodes

Bei einem Fehler enthält die Antwort ein maschinenlesbares -Feld, das Sie für die programmatische Fehlerbehandlung verwenden können:code

Error Response with Code
{
  "success": false,
  "error": "Human-readable message",
  "code": "RATE_LIMIT_EXCEEDED",
  "retryAfter": 60
}

Allgemeine Fehlercodes

RATE_LIMIT_EXCEEDED429

Ratenbegrenzung für diesen Endpunkt überschritten

INVALID_UUID_FORMAT400

ID-Parameter ist keine gültige UUID

MISSING_PARAMETER400

Ein erforderlicher Parameter fehlt

2FA_REQUIRED403

Vorgang erfordert aktivierte 2FA

2FA_CODE_REQUIRED400

2FA-Code wurde nicht angegeben

2FA_INVALID401

2FA-Code ist falsch oder abgelaufen

SELF_TRANSFER_NOT_ALLOWED400

Auszahlung an Ihr eigenes Fivo-Wallet nicht möglich

INVALID_MERCHANT_ID400

Merchant ID-Format ist ungültig

WEBHOOK_LIMIT_REACHED400

Maximale Webhooks pro Händler erreicht

REFUND_WINDOW_EXPIRED400

Rückerstattungsfenster (180 Tage) ist abgelaufen

REFUND_EXCEEDS_REMAINING400

Betrag übersteigt den erstattungsfähigen Saldo

PAYMENT_NOT_COMPLETED400

Zahlung hat nicht den Status "abgeschlossen"

NO_SOURCE_ADDRESS400

Zahlung hat keine Quelladresse

REFUND_NOT_CANCELABLE400

Rückerstattung hat nicht den Status "ausstehend"

Blockchain-Fehlercodes

Diese Codes erscheinen im -Feld fehlgeschlagener Zahlungen:failure_reason

E001

Unzureichendes Guthaben im Absender-Wallet

E002

Transaktion auf der Blockchain zurückgewiesen

E003

Netzwerk-Timeout während der Transaktion

E004

Ungültige Wallet-Adresse

E005

Gas-Schätzung fehlgeschlagen

E006

Benutzer hat die Transaktion abgebrochen

E007

CCTP-Attestierung fehlgeschlagen

E999

Unbekannter Blockchain-Fehler

Ratenbegrenzung

Wenn Sie Ratenbegrenzungen überschreiten, erhalten Sie eine 429-Antwort mit zusätzlichen Headern:

Rate Limit Response
HTTP/1.1 429 Too Many Requests
Retry-After: 60
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1705312800

{
  "success": false,
  "error": "Rate limit exceeded",
  "message": "Too many requests. Please retry after 1 minute.",
  "code": "RATE_LIMIT_EXCEEDED",
  "retryAfter": 60,
  "context": "general"
}

Ratenbegrenzungs-Header

HeaderBeschreibung
Retry-AfterSekunden bis zum nächsten Versuch
X-RateLimit-LimitMaximale Anfragen im Zeitfenster
X-RateLimit-RemainingVerbleibende Anfragen im aktuellen Zeitfenster
X-RateLimit-ResetUnix-Zeitstempel, wann das Limit zurückgesetzt wird

Ratenbegrenzungen nach Endpunkt

API Key-Endpunkte

200 req / 1 minute

Per: API Key

Allgemeine API

100 req / 1 minute

Per: IP

Zahlungserstellung (Widget)

20 req / 1 minute

Per: IP

Login

5 req / 5 minutes

Per: IP + E-Mail

Registrierung

3 req / 15 minutes

Per: IP

Passwort zurücksetzen

3 req / 15 minutes

Per: IP + E-Mail

2FA-Verifizierung

5 req / 5 minutes

Per: IP

Auszahlungen

10 req / 10 minutes

Per: IP

Kontaktformular

3 req / 15 minutes

Per: IP

i

Best Practice

Implementieren Sie exponentielles Backoff bei 429-Fehlern. Beginnen Sie mit dem -Wert und erhöhen Sie die Wartezeit bei nachfolgenden Versuchen.Retry-After

Kettenübergreifende Fehler

Kettenübergreifende Zahlungen werden clientseitig durch Bridge Kit im Widget abgewickelt. Wenn der Bridge-Vorgang fehlschlägt (z.B. Attestierungs-Timeout, Mint-Fehler), zeigt das Widget den Fehler direkt dem Kunden an. Diese Fehler erreichen nicht die Backend-API.

Wenn eine kettenübergreifende Zahlung nach der Burn-Transaktion fehlschlägt, kann der Kunde den Support mit seinem Transaktions-Hash kontaktieren. Fehlgeschlagene Zahlungen speichern den Fehler im -Feld, das über die Zahlungsstatus-API zugänglich ist.failure_reason

Betrugserkennung

Fivo enthält eine integrierte Betrugserkennung. Diese Fehler weisen auf potenzielle Angriffe hin:

Zahlungsbetrag-Verifizierung fehlgeschlagen

Der angegebene Betrag stimmt nicht mit dem tatsächlichen Blockchain-Transaktionsbetrag überein. Dies könnte auf einen Versuch hindeuten, Zahlungsdatensätze zu manipulieren.

!

Sicherheit

Betrugsversuche werden mit vollständigen Details (IP, Wallet-Adresse, Transaktion) protokolliert. Wiederholte Versuche können zu einer IP-Sperrung führen.

Beispiel zur Fehlerbehandlung

So behandeln Sie API-Fehler korrekt in Ihrem Code:

JavaScript Error Handling
async function createCheckoutSession(data) {
  try {
    const response = await fetch('https://api.fivo.finance/checkout/sessions', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'X-API-Key': process.env.FIVO_API_KEY
      },
      body: JSON.stringify(data)
    });

    const result = await response.json();

    if (!response.ok) {
      // Handle specific error codes
      switch (response.status) {
        case 400:
          console.error('Validation error:', result.details);
          throw new Error('Invalid session data');

        case 401:
          console.error('Authentication failed');
          throw new Error('Please check your API key');

        case 429:
          const retryAfter = response.headers.get('Retry-After');
          console.log(`Rate limited. Retry after ${retryAfter}s`);
          throw new Error('Too many requests');

        default:
          throw new Error(result.error || 'Unknown error');
      }
    }

    return result.data;
  } catch (error) {
    console.error('Checkout session failed:', error.message);
    throw error;
  }
}

Weiterhin Probleme?

Wenn Sie auf einen hier nicht aufgeführten Fehler stoßen, kontaktieren Sie bitte den Support mit:

  • Der vollständigen Fehlerantwort
  • Anfragedetails (Endpunkt, Methode, Body)
  • Zahlungs-ID oder Transaktions-Hash (falls zutreffend)
  • Zeitstempel, wann der Fehler aufgetreten ist
Support kontaktieren