Docs/API-Referenz

API-Referenz

Vollständige Referenz für alle Fivo-API-Endpunkte.

Basis-URL

https://api.fivo.finance

Authentifizierung

Geschützte Endpunkte erfordern eine Authentifizierung über API Key oder JWT-Token.

Authentication Headers
# Option 1: API Key (recommended for server-side)
X-API-Key: your_api_key_here

# Option 2: JWT Token (for user sessions)
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Idempotenz

Die Fivo-API verfügt über integrierte Idempotenz-Schutzmechanismen, um doppelte Operationen zu verhindern:

Zahlungen

Jeder einer Zahlung ist einzigartig. Wenn Sie eine Zahlung mit einem bereits existierenden einreichen, gibt die API mit den vorhandenen Zahlungsdaten zurück, anstatt ein Duplikat zu erstellen.txHashtxHash200

Checkout Sessions

Jede Sitzung hat eine einzigartige . Eine einzelne Checkout-Sitzung kann nur eine Zahlung erzeugen.payment_id

Benachrichtigungen

Webhook-Zustellungen und E-Mails verwenden ein internes Idempotenz-System, um doppelte Benachrichtigungen für dasselbe Ereignis zu verhindern.

i

Umgang mit POST-Antworten

Wenn ein POST-Endpunkt statt zurückgibt, bedeutet dies, dass die Ressource bereits existiert. Ihr Code sollte beide Statuscodes als Erfolg behandeln.200201

Zahlungen

POST/payments/create-public
Zahlung vom Widget erstellen

Erstellt einen Zahlungsdatensatz nach einer erfolgreichen Blockchain-Transaktion. Dieser Endpunkt wird automatisch vom Fivo-Widget aufgerufen.

Request Body

merchantIdstringRequired

Merchant ID mit Präfix (fivo_live_UUID)

txHashstringRequired

Blockchain-Transaktions-Hash (0x...)

amountnumberRequired

Zahlungsbetrag (0,01 - 1.000.000)

expectedAmountnumberOptional

Erwarteter Betrag für On-Chain-Validierung. Erforderlich für Same-Chain-Zahlungen, optional für kettenübergreifende.

tokenstringRequired

"USDC" oder "EURC"

chainIdnumberRequired

Quell-Blockchain Chain ID

fromAddressstringRequired

Absender-Wallet-Adresse

toAddressstringRequired

Händler-Wallet-Adresse

isCrossChainbooleanOptional

Ob es sich um eine kettenübergreifende CCTP-Zahlung handelt

bridgeKitobjectOptional

Bridge Kit-Payload für kettenübergreifende Zahlungen: { burnTxHash: string, mintTxHash?: string }. Erforderlich für den kettenübergreifenden Bridge Kit-Ablauf.

feeQuoteobjectOptional

Signiertes Gebührenangebot für legacy CCTP kettenübergreifend (veraltet). Verwenden Sie stattdessen bridgeKit.

destinationChainIdnumberOptional

Ziel-Chain (bei kettenübergreifend)

sessionIdstringOptional

Checkout-Sitzungs-ID, um diese Zahlung zu verknüpfen (bei Verwendung von Checkout Sessions)

customerEmailstringRequired

E-Mail-Adresse des Kunden für Belegzustellung. Max. 255 Zeichen.

referencestringOptional

Ihre interne Referenz (Bestellnummer, Rechnungsnummer). Max. 255 Zeichen.

descriptionstringOptional

Zahlungsbeschreibung. Max. 500 Zeichen.

metadataobjectOptional

Benutzerdefinierte Schlüssel-Wert-Paare für Ihre interne Verwendung. Max. 10KB.

Example Request
const response = await fetch(`https://api.fivo.finance/payments/create-public`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    merchantId: 'fivo_live_969c4442-5741-4624-8305-427391683190',
    txHash: '0x1234567890abcdef...',
    amount: 49.99,
    expectedAmount: 49.99,
    token: 'USDC',
    chainId: 137,
    fromAddress: '0xCustomerWallet...',
    toAddress: '0xMerchantWallet...',
    isCrossChain: false,
    customerEmail: 'customer@example.com',
    reference: 'ORD-2024-001',
    metadata: { product_id: 'plan_pro' }
  })
});
Response (201)
{
  "success": true,
  "data": {
    "paymentId": "payment-uuid-here",
    "status": "completed",
    "isCrossChain": false
  }
}
i

Minimale Antwort

Dieser Endpunkt gibt nur die vom Widget benötigten Felder zurück. Für vollständige Zahlungsdetails (Betrag, tx_hash usw.) verwenden Sie mit Authentifizierung.GET /payments/:id
GET/payments/:id/status
Zahlungsstatus abrufen

Gibt den aktuellen Status einer Zahlung zurück. Nützlich für das Abfragen des Zahlungsabschlusses.

Pfadparameter

idstringRequired

Zahlungs-UUID

Response
{
  "success": true,
  "data": {
    "id": "payment-uuid-here",
    "status": "completed",
    "is_cross_chain": true,
    "cctp_attestation_status": null,
    "updated_at": "2026-03-04T10:32:00.000Z"
  }
}
i

Minimaler öffentlicher Endpunkt

Dies ist ein öffentlicher Endpunkt, der nur Statusfelder zurückgibt. Sensible Daten wie Beträge, tx_hash und Adressen sind nicht enthalten. Verwenden Sie mit Authentifizierung für vollständige Details. Hinweis: ist für Bridge Kit-Zahlungen (aktuelles System). Es hat nur Werte für legacy CCTP-Relayer-Zahlungen.GET /payments/:idcctp_attestation_statusnull

Zahlungsstatus-Werte

StatusBeschreibung
completedZahlung erfolgreich und Guthaben erhalten
pendingZahlung erstellt, wartet auf Verarbeitung
pending_attestationKettenübergreifend: Warten auf CCTP-Attestierung von Circle
ready_to_mintKettenübergreifend: Attestierung erhalten, Prägung auf Ziel-Chain
minted_pending_transferKettenübergreifend: geprägt, Übertragung an Händler-Wallet
failedZahlung fehlgeschlagen (prüfen Sie failure_reason)
GET/payments
Auth RequiredHändlerzahlungen auflisten

Gibt eine paginierte Liste der Zahlungen für den authentifizierten Händler zurück.

Abfrageparameter

statusstringOptional

Filter: "pending", "completed", "failed"

currencystringOptional

Filter: "USDC" oder "EURC"

startDatestringOptional

Filter: ISO-Datumszeichenfolge

endDatestringOptional

Filter: ISO-Datumszeichenfolge

searchstringOptional

Suche in tx_hash, from_address, customer_email, reference (min. 3 Zeichen)

limitnumberOptional

Ergebnisse pro Seite (Standard: 50)

offsetnumberOptional

Paginierungs-Offset (Standard: 0)

sortBystringOptional

Sortierfeld (z.B. "created_at", "amount")

sortDirectionstringOptional

"asc" oder "desc"

sincestringOptional

ISO-Datetime: nur Zahlungen zurückgeben, die nach diesem Datum erstellt wurden. Nützlich für Echtzeit-Abfragen.

Example Request
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  "https://api.fivo.finance/payments?status=completed&limit=10&sortBy=created_at&sortDirection=desc"
GET/payments/:id
Auth RequiredZahlungsdetails abrufen

Gibt vollständige Details einer bestimmten Zahlung zurück, einschließlich aller CCTP-Felder.

GET/payments/api/list
Auth RequiredZahlungen auflisten (API Key)

Gibt eine paginierte Liste der Zahlungen für den über API Key authentifizierten Händler zurück. Nützlich für serverseitige Abstimmung und Verifizierung von Webhook-Daten.

Abfrageparameter

statusstringOptional

Filter: "pending", "completed", "failed"

currencystringOptional

Filter: "USDC" oder "EURC"

startDatestringOptional

Filter: ISO-Datumszeichenfolge

endDatestringOptional

Filter: ISO-Datumszeichenfolge

searchstringOptional

Suche in tx_hash, from_address, customer_email, reference (min. 3 Zeichen)

limitnumberOptional

Ergebnisse pro Seite (Standard: 50, max: 200)

offsetnumberOptional

Paginierungs-Offset (Standard: 0)

sortBystringOptional

Sortierfeld (z.B. "created_at", "amount")

sortDirectionstringOptional

"asc" oder "desc"

sincestringOptional

ISO-Datetime: nur Zahlungen zurückgeben, die nach diesem Datum erstellt wurden

Example Request
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.fivo.finance/payments/api/list?status=completed&limit=10"
Response
{
  "success": true,
  "data": {
    "payments": [
      {
        "id": "payment-uuid",
        "amount": "49.990000",
        "currency": "USDC",
        "status": "completed",
        "tx_hash": "0x1234567890abcdef...",
        "from_address": "0xCustomer...",
        "to_address": "0xMerchant...",
        "source_chain": "BASE",
        "is_cross_chain": false,
        "customer_email": "customer@example.com",
        "reference": "ORD-2024-001",
        "metadata": { "product_id": "plan_pro" },
        "created_at": "2026-02-28T10:30:00.000Z"
      }
    ],
    "total": 1,
    "limit": 10,
    "offset": 0
  }
}
GET/payments/api/:id
Auth RequiredZahlungsdetails abrufen (API Key)

Gibt vollständige Details einer bestimmten Zahlung zurück. Verwenden Sie dies, um eine Zahlung nach Erhalt einer Webhook-Benachrichtigung zu verifizieren.

Pfadparameter

idstringRequired

Zahlungs-UUID

Example Request
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.fivo.finance/payments/api/abc123-payment-uuid"
Response
{
  "success": true,
  "data": {
    "id": "abc123-payment-uuid",
    "amount": "49.990000",
    "expected_amount": "49.990000",
    "currency": "USDC",
    "status": "completed",
    "tx_hash": "0x1234567890abcdef...",
    "from_address": "0xCustomer...",
    "to_address": "0xMerchant...",
    "source_chain": "BASE",
    "destination_chain": null,
    "is_cross_chain": false,
    "bridge_provider": null,
    "customer_email": "customer@example.com",
    "reference": "ORD-2024-001",
    "metadata": { "product_id": "plan_pro" },
    "created_at": "2026-02-28T10:30:00.000Z",
    "updated_at": "2026-02-28T10:30:00.000Z"
  }
}
i

Typischer Ablauf

1. -Webhook empfangen → 2. Mit verifizieren → 3. Bestellung ausführen.payment.completedGET /payments/api/:id
GET/payments/cctp-fee
Kettenübergreifende Gebühr schätzen

Gibt ein signiertes Gebührenangebot für eine kettenübergreifende (CCTP) Zahlung zurück. Das Widget ruft dies automatisch auf, aber Sie können es für benutzerdefinierte Integrationen verwenden, um Gebührenaufschlüsselungen anzuzeigen, bevor der Benutzer bezahlt.

Abfrageparameter

destinationChainstringRequired

Name der Ziel-Blockchain (z.B. "ETH", "BASE", "ARB")

productPricestringRequired

Produktpreis in USD (z.B. "49.99")

Example Request
curl "https://api.fivo.finance/payments/cctp-fee?destinationChain=BASE&productPrice=49.99"
Response
{
  "success": true,
  "data": {
    "productPrice": 49.99,
    "amountToBurn": 50.74,
    "feeGas": 0.5,
    "feeCircle": 0.25,
    "feeTotal": 0.75,
    "totalUserPays": 50.74,
    "merchantReceives": 49.99,
    "destinationChain": "BASE",
    "validUntil": 1739871300,
    "validForSeconds": 300,
    "breakdown": {
      "gasEstimateUSD": 0.35,
      "gasWithBuffer": 0.5,
      "minGasFee": 0.5,
      "bufferPercent": 40
    },
    "signature": "hmac-sha256-hex..."
  }
}
i

Signiertes Angebot

Die Antwort enthält eine HMAC-Signatur. Wenn Sie eine kettenübergreifende Zahlung über erstellen, übergeben Sie die Angebotsfelder als -Parameter zurück. Das Backend verifiziert die Signatur, um Gebührenmanipulation zu verhindern.POST /payments/create-publicfeeQuote

Händler

GET/merchants/:id/wallet
Händler-Wallet-Adresse abrufen

Gibt die Wallet-Adresse und Blockchain des Händlers zurück. Wird vom Widget verwendet, um zu wissen, wohin Zahlungen gesendet werden sollen.

Response
{
  "success": true,
  "data": {
    "wallet": {
      "id": "wallet-uuid",
      "address": "0x1234567890abcdef...",
      "blockchain": "MATIC",
      "chainId": 137
    }
  }
}
GET/merchants/:id/info
Öffentliche Händlerinformationen abrufen

Gibt öffentliche Händlerinformationen wie Name und akzeptierte Währungen zurück.

Response
{
  "success": true,
  "data": {
    "name": "My Store",
    "blockchain": "MATIC",
    "accepted_currencies": "USDC,EURC"
  }
}

Checkout Sessions

Checkout Sessions ermöglichen es Ihnen, eine von Fivo gehostete Zahlungsseite zu erstellen und Ihren Kunden dorthin weiterzuleiten. Nach der Zahlung wird der Kunde zurück zu Ihrer Seite weitergeleitet. Ähnlich wie Stripe Checkout.

i
Alle Checkout-Session-Endpunkte (außer ) erfordern API Key-Authentifizierung./public
POST/checkout/sessions
Auth RequiredCheckout-Sitzung erstellen

Erstellt eine neue Checkout-Sitzung und gibt eine URL zurück, um Ihren Kunden weiterzuleiten.

Request Body

amountstring | numberOptional

Zahlungsbetrag (0,01 - 1.000.000). Weglassen für variablen Betrag.

currencystringOptional

"USDC" oder "EURC". Standard: "USDC".

return_urlstringRequired

URL für Weiterleitung nach Zahlung. Muss in der Produktion HTTPS sein.

cancel_urlstringOptional

URL für Weiterleitung bei Abbruch. Muss in der Produktion HTTPS sein.

metadataobjectOptional

Bis zu 5 Schlüssel-Wert-Paare für Ihre Referenz (z.B. order_id).

expires_innumberOptional

Sitzungsdauer in Sekunden (60 - 86400). Standard: 1800 (30 Min.).

Example Request
curl -X POST https://api.fivo.finance/checkout/sessions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "amount": "49.99",
    "currency": "USDC",
    "return_url": "https://yoursite.com/success",
    "cancel_url": "https://yoursite.com/cancel",
    "metadata": { "order_id": "order_123" }
  }'
Response (201)
{
  "success": true,
  "data": {
    "id": "cs_live_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "url": "https://checkout.fivo.finance?session=cs_live_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "expires_at": "2026-02-18T11:00:00.000Z"
  }
}
GET/checkout/sessions/:id
Auth RequiredSitzungsdetails abrufen

Gibt den Sitzungsstatus und verknüpfte Zahlungsdaten zurück. Verwenden Sie dies, um den Zahlungsabschluss zu überprüfen, nachdem der Kunde auf Ihre Seite zurückgekehrt ist.

Response
{
  "success": true,
  "data": {
    "id": "cs_live_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "complete",
    "amount": "49.99",
    "currency": "USDC",
    "metadata": { "order_id": "order_123" },
    "return_url": "https://yoursite.com/success",
    "cancel_url": "https://yoursite.com/cancel",
    "payment": {
      "id": "payment-uuid",
      "status": "completed",
      "tx_hash": "0x1234567890abcdef...",
      "amount": "49.99",
      "is_cross_chain": false
    },
    "created_at": "2026-02-18T10:30:00.000Z",
    "expires_at": "2026-02-18T11:00:00.000Z"
  }
}

Sitzungsstatus-Werte

StatusBeschreibung
openSitzung erstellt, wartet darauf, dass der Kunde bezahlt
completeZahlung bestätigt und Guthaben erhalten
expiredSitzung abgelaufen, bevor die Zahlung erfolgte
GET/checkout/sessions/:id/public
Sitzung abrufen (nur Widget)

Öffentlicher Endpunkt, der vom Checkout-Widget verwendet wird, um Sitzungsdetails zu laden. Gibt nur die Felder zurück, die zum Rendern der Zahlungsoberfläche benötigt werden (keine Metadaten). Sie müssen diesen Endpunkt nicht direkt aufrufen.

API Keys

i
Alle API Key-Endpunkte erfordern JWT-Authentifizierung (angemeldete Händlersitzung). API Keys selbst können nicht verwendet werden, um andere API Keys zu verwalten.
POST/api-keys
Auth RequiredNeuen API Key erstellen

Request Body

namestringRequired

Beschreibender Name für den Schlüssel (1-50 Zeichen)

Response
{
  "success": true,
  "message": "API key created successfully",
  "data": {
    "id": "key-uuid",
    "name": "Production Server",
    "key": "fivo_live_abc123...",
    "created_at": "2024-01-15T10:30:00.000Z"
  }
}
!

Speichern Sie Ihren Schlüssel

Der vollständige API Key wird nur einmal bei der Erstellung angezeigt. Speichern Sie ihn sicher. Bei Verlust müssen Sie einen neuen Schlüssel erstellen.
GET/api-keys
Auth RequiredAPI Keys auflisten

Gibt alle API Keys für den authentifizierten Händler zurück. Schlüssel sind aus Sicherheitsgründen maskiert (nur die letzten 4 Zeichen werden angezeigt).

Response
{
  "success": true,
  "data": [
    {
      "id": "key-uuid-1",
      "name": "Production Server",
      "last4": "••••",
      "created_at": "2024-01-15T10:30:00.000Z"
    },
    {
      "id": "key-uuid-2",
      "name": "Staging Server",
      "last4": "••••",
      "created_at": "2024-01-10T08:00:00.000Z"
    }
  ]
}
DELETE/api-keys/:id
Auth RequiredAPI Key widerrufen

Widerruft einen API Key dauerhaft. Alle Anfragen mit diesem Schlüssel schlagen sofort fehl.

Response
{
  "success": true,
  "message": "API key deleted successfully"
}

Rechnungen

Rechnungen werden automatisch generiert, wenn eine Auszahlung abgeschlossen wird. Jede Rechnung enthält eine Gebührenaufschlüsselung und wird als PDF gespeichert. Alle Endpoints erfordern JWT-Authentifizierung.

GET/invoices
Auth RequiredHändlerrechnungen auflisten

Gibt alle Rechnungen des authentifizierten Händlers zurück, sortiert nach Datum (neueste zuerst).

Abfrageparameter

yearnumberOptional

Nach Jahr filtern (z.B. 2026)

statusstringOptional

"issued" oder "rectified"

Example Request
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  "https://api.fivo.finance/invoices?year=2026"
Response
{
  "success": true,
  "data": [
    {
      "id": "invoice-uuid",
      "invoice_number": "FIV-2026-0001",
      "issued_at": "2026-02-25T14:30:00.000Z",
      "gross_amount": "1000.000000",
      "fivo_fee": "5.0000",
      "fivo_fee_eur": "4.6500",
      "tax_amount": "0.0000",
      "net_amount": "994.500000",
      "currency": "USDC",
      "status": "issued",
      "pdf_url": "invoices/2026/merchant-id/FIV-2026-0001.pdf",
      "blockchain": "BASE"
    }
  ]
}
GET/invoices/:id/pdf
Auth RequiredRechnung als PDF herunterladen

Gibt die Rechnungs-PDF-Datei direkt zuruck. Verwenden Sie mode=view fur die Inline-Anzeige oder mode=download zum Herunterladen.

Pfadparameter

idstringRequired

Rechnungs-UUID

i

Direkte PDF-Antwort

Dieser Endpoint gibt die PDF-Datei direkt mit Content-Type: application/pdf zuruck. Keine Weiterleitung oder temporare URL.

Webhook-Verwaltung (API Key)

Verwalten Sie Ihre Webhook-Endpoints programmatisch über API Key. Diese Endpoints spiegeln die Webhook-Konfiguration des Dashboards wider.

i
Alle Webhook-Verwaltungs-Endpoints erfordern API Key-Authentifizierung über den -Header.X-API-Key
GET/merchant-webhooks/api/list
Auth RequiredAlle Webhooks auflisten

Gibt alle konfigurierten Webhook-Endpoints für Ihr Händlerkonto zurück.

Example Request
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.fivo.finance/merchant-webhooks/api/list"
Response
{
  "success": true,
  "data": [
    {
      "id": "webhook-uuid",
      "url": "https://yoursite.com/webhooks/fivo",
      "events": ["payment.completed", "payment.failed"],
      "description": "Production webhook",
      "is_active": true,
      "failure_count": 0,
      "created_at": "2026-02-20T10:00:00.000Z"
    }
  ]
}
POST/merchant-webhooks/api/create
Auth RequiredWebhook erstellen

Request Body

urlstringRequired

HTTPS-Webhook-URL

eventsstring[]Required

Zu abonnierende Ereignisse (siehe verfügbare Ereignisse unten)

descriptionstringOptional

Beschreibung (max. 200 Zeichen)

Example Request
curl -X POST https://api.fivo.finance/merchant-webhooks/api/create \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yoursite.com/webhooks/fivo",
    "events": ["payment.completed", "payment.failed"],
    "description": "Production webhook"
  }'
GET/merchant-webhooks/api/:id
Auth RequiredWebhook-Details abrufen

Pfadparameter

idstringRequired

Webhook-UUID

PUT/merchant-webhooks/api/:id
Auth RequiredWebhook aktualisieren

Request Body

urlstringOptional

Neue Webhook-URL

eventsstring[]Optional

Neue Ereignisliste

descriptionstringOptional

Neue Beschreibung

is_activebooleanOptional

Webhook aktivieren/deaktivieren

DELETE/merchant-webhooks/api/:id
Auth RequiredWebhook löschen

Pfadparameter

idstringRequired

Webhook-UUID

POST/merchant-webhooks/api/:id/regenerate-secret
Auth RequiredWebhook-Secret neu generieren

Generiert ein neues HMAC-Secret für die Signaturverifizierung. Das alte Secret wird sofort ungültig.

POST/merchant-webhooks/api/:id/test
Auth RequiredTest-Webhook senden

Sendet ein Test-Ereignis an die Webhook-URL. Nützlich zur Überprüfung Ihres Endpoints.payment.completed

GET/merchant-webhooks/api/:id/logs
Auth RequiredWebhook-Zustellungsprotokolle abrufen

Abfrageparameter

limitnumberOptional

Anzahl der zurückzugebenden Protokolle (Standard: 20, max: 100)

GET/merchant-webhooks/api/events
Auth RequiredVerfügbare Ereignisse auflisten

Gibt alle Webhook-Ereignisse zurück, die Sie abonnieren können, mit Beschreibungen.

Guthaben (API Key)

GET/wallets/api/balance
Auth RequiredWallet-Guthaben abrufen

Gibt das USDC- und EURC-Guthaben Ihres primären Wallets zurück. Nützlich zur Überwachung verfügbarer Mittel vor dem Auslösen von Auszahlungen.

Example Request
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.fivo.finance/wallets/api/balance"
Response
{
  "success": true,
  "data": {
    "wallet_id": "wallet-uuid",
    "address": "0x1234567890abcdef...",
    "blockchain": "MATIC",
    "balances": [
      { "token": "USDC", "amount": "1250.50" },
      { "token": "EURC", "amount": "340.00" }
    ]
  }
}
i

Kein Cache

Dieser Endpoint gibt immer aktuelle Daten zurück. Die Antwort enthält -Header.Cache-Control: no-store

Rechnungen (API Key)

Greifen Sie programmatisch über API Key auf Ihre Rechnungen zu. Rechnungen werden automatisch generiert, wenn eine Auszahlung abgeschlossen wird.

GET/invoices/api/list
Auth RequiredRechnungen auflisten

Abfrageparameter

yearnumberOptional

Nach Jahr filtern (z.B. 2026)

statusstringOptional

"issued" oder "rectified"

Example Request
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.fivo.finance/invoices/api/list?year=2026"
GET/invoices/api/:id/pdf
Auth RequiredRechnung als PDF herunterladen

Pfadparameter

idstringRequired

Rechnungs-UUID

Example Request
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.fivo.finance/invoices/api/INVOICE_UUID/pdf?mode=download"
i

Direkte PDF-Antwort

Gibt die PDF-Datei direkt mit Content-Type: application/pdf zuruck.

Rückerstattungen (API Key)

Erstatten Sie abgeschlossene Zahlungen zurück. Rückerstattungen werden on-chain an die ursprüngliche Absenderadresse gesendet. Alle Endpoints erfordern API Key-Authentifizierung über den -Header.X-API-Key

POST/refunds/api/create
Auth RequiredRückerstattung erstellen

Erstellt eine Rückerstattung für eine abgeschlossene Zahlung. Standardmäßig wird der vollständige Zahlungsbetrag erstattet. Teilrückerstattungen werden durch Angabe eines unterstützt.amount

Request Body

paymentIdstringRequired

UUID der zu erstattenden Zahlung

amountstringOptional

Zu erstattender Betrag (standardmäßig der vollständige Zahlungsbetrag)

reasonstringRequired

"duplicate", "fraudulent", "requested_by_customer" oder "other"

notestringOptional

Interne Notiz zur Rückerstattung (max. 500 Zeichen)

Example Request
curl -X POST https://api.fivo.finance/refunds/api/create \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "paymentId": "payment-uuid-here",
    "amount": "49.99",
    "reason": "requested_by_customer",
    "note": "Customer requested refund"
  }'
Response (201)
{
  "success": true,
  "data": {
    "id": "refund-uuid",
    "payment_id": "payment-uuid-here",
    "amount": "49.990000",
    "currency": "USDC",
    "status": "pending",
    "destination_address": "0xCustomer...",
    "blockchain": "BASE",
    "reason": "requested_by_customer"
  }
}
i

Rückerstattungsfrist

Rückerstattungen können bis zu 180 Tage nach Abschluss der ursprünglichen Zahlung ausgestellt werden.
GET/refunds/api/list
Auth RequiredRückerstattungen auflisten

Gibt eine paginierte Liste der Rückerstattungen für den authentifizierten Händler zurück.

Abfrageparameter

statusstringOptional

Filtern: "pending", "processing", "completed", "failed", "cancelled"

currencystringOptional

Filter: "USDC" oder "EURC"

searchstringOptional

Suche in Zahlungs-ID, Zieladresse, Transaktions-Hash

limitnumberOptional

Ergebnisse pro Seite (Standard: 50, max: 200)

offsetnumberOptional

Paginierungs-Offset (Standard: 0)

Example Request
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.fivo.finance/refunds/api/list?status=completed&limit=10"
Response
{
  "success": true,
  "data": {
    "refunds": [
      {
        "id": "refund-uuid",
        "payment_id": "payment-uuid",
        "amount": "49.990000",
        "currency": "USDC",
        "status": "completed",
        "destination_address": "0xCustomer...",
        "blockchain": "BASE",
        "reason": "requested_by_customer",
        "tx_hash": "0xabc123...",
        "created_at": "2026-03-01T10:30:00.000Z"
      }
    ],
    "total": 1,
    "limit": 10,
    "offset": 0
  }
}
GET/refunds/api/:id
Auth RequiredRückerstattungsdetails abrufen

Gibt die vollständigen Details einer bestimmten Rückerstattung zurück, einschließlich der verknüpften Zahlungsdaten.

Pfadparameter

idstringRequired

Rückerstattungs-UUID

Example Request
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.fivo.finance/refunds/api/REFUND_UUID"
Response
{
  "success": true,
  "data": {
    "id": "refund-uuid",
    "payment_id": "payment-uuid",
    "amount": "49.990000",
    "currency": "USDC",
    "status": "completed",
    "destination_address": "0xCustomer...",
    "blockchain": "BASE",
    "reason": "requested_by_customer",
    "note": "Customer requested refund",
    "tx_hash": "0xabc123...",
    "failure_reason": null,
    "created_at": "2026-03-01T10:30:00.000Z",
    "completed_at": "2026-03-01T10:31:00.000Z",
    "payment": {
      "id": "payment-uuid",
      "amount": "49.990000",
      "currency": "USDC",
      "status": "completed",
      "tx_hash": "0xoriginal...",
      "from_address": "0xCustomer...",
      "created_at": "2026-02-28T10:30:00.000Z"
    }
  }
}
POST/refunds/api/:id/cancel
Auth RequiredAusstehende Rückerstattung stornieren

Storniert eine Rückerstattung, die sich noch im Status befindet. Rückerstattungen, die bereits verarbeitet werden oder abgeschlossen sind, können nicht storniert werden.pending

Pfadparameter

idstringRequired

Rückerstattungs-UUID

Example Request
curl -X POST https://api.fivo.finance/refunds/api/REFUND_UUID/cancel \
  -H "X-API-Key: YOUR_API_KEY"
Response
{
  "success": true
}

Webhooks

Webhooks benachrichtigen Ihren Server in Echtzeit, wenn Zahlungsereignisse auftreten. Konfigurieren Sie Webhooks in Ihrem oder über die .DashboardWebhook-Verwaltungs-API

Ereignisse

EreignisBeschreibung
payment.completedZahlung erfolgreich und Gelder vom Händler empfangen
payment.failedZahlung fehlgeschlagen
refund.createdEine Rückerstattung wurde für eine Zahlung erstellt
refund.completedRückerstattung on-chain abgeschlossen und an den Kunden gesendet
refund.failedRückerstattung fehlgeschlagen (prüfen Sie failure_reason)

Payload

Webhook Payload
{
  "event": "payment.completed",
  "timestamp": "2026-02-18T10:30:45.123Z",
  "data": {
    "payment_id": "abc123-uuid",
    "amount": "49.99",
    "currency": "USDC",
    "tx_hash": "0x1234567890abcdef...",
    "from_address": "0xCustomerWallet...",
    "to_address": "0xMerchantWallet...",
    "source_chain": "ETH",
    "destination_chain": null,
    "is_cross_chain": false,
    "status": "completed"
  }
}

Header

HeaderBeschreibung
X-Fivo-SignatureHMAC-SHA256-Signatur ()sha256=hex
X-Fivo-EventEreignistyp (z.B. )payment.completed
X-Fivo-TimestampUnix-Zeitstempel (Sekunden), wann der Webhook gesendet wurde
X-Fivo-Test oder , ob es sich um einen Test-Webhook handelttruefalse

Signaturverifizierung

Überprüfen Sie immer den -Header, um sicherzustellen, dass der Webhook von Fivo stammt.X-Fivo-Signature

Signature Verification (Node.js)
const crypto = require('crypto');

function verifyWebhookSignature(payload, signature, timestamp, secret) {
  const signaturePayload = timestamp + '.' + JSON.stringify(payload);
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(signaturePayload)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

// In your webhook handler:
app.post('/webhook', (req, res) => {
  const signature = req.headers['x-fivo-signature'];
  const timestamp = req.headers['x-fivo-timestamp'];

  if (!verifyWebhookSignature(req.body, signature, timestamp, WEBHOOK_SECRET)) {
    return res.status(401).send('Invalid signature');
  }

  // Process the event
  const { event, data } = req.body;
  console.log(event, data.payment_id, data.amount);
  res.status(200).send('OK');
});
!

Webhook-Zuverlässigkeit

Ihr Endpoint muss innerhalb von 5 Sekunden mit einem 2xx-Statuscode antworten. Nach 10 aufeinanderfolgenden Fehlern wird der Webhook automatisch deaktiviert. HTTPS ist in der Produktion erforderlich.

Antwortformat

Alle API-Antworten folgen einem einheitlichen Format:

Success Response
{
  "success": true,
  "data": { ... },
  "message": "Optional message"
}
Error Response
{
  "success": false,
  "error": "Error description",
  "details": [ ... ]
}

Brauchen Sie Hilfe?

Sehen Sie sich unseren Leitfaden zur Fehlerbehandlung an oder kontaktieren Sie den Support.