Basis-URL
https://api.fivo.financeAuthentifizierung
Geschützte Endpunkte erfordern eine Authentifizierung über API Key oder JWT-Token.
# 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.
Umgang mit POST-Antworten
200201Zahlungen
/payments/create-publicErstellt einen Zahlungsdatensatz nach einer erfolgreichen Blockchain-Transaktion. Dieser Endpunkt wird automatisch vom Fivo-Widget aufgerufen.
Request Body
merchantIdstringRequiredMerchant ID mit Präfix (fivo_live_UUID)
txHashstringRequiredBlockchain-Transaktions-Hash (0x...)
amountnumberRequiredZahlungsbetrag (0,01 - 1.000.000)
expectedAmountnumberOptionalErwarteter Betrag für On-Chain-Validierung. Erforderlich für Same-Chain-Zahlungen, optional für kettenübergreifende.
tokenstringRequired"USDC" oder "EURC"
chainIdnumberRequiredQuell-Blockchain Chain ID
fromAddressstringRequiredAbsender-Wallet-Adresse
toAddressstringRequiredHändler-Wallet-Adresse
isCrossChainbooleanOptionalOb es sich um eine kettenübergreifende CCTP-Zahlung handelt
bridgeKitobjectOptionalBridge Kit-Payload für kettenübergreifende Zahlungen: { burnTxHash: string, mintTxHash?: string }. Erforderlich für den kettenübergreifenden Bridge Kit-Ablauf.
feeQuoteobjectOptionalSigniertes Gebührenangebot für legacy CCTP kettenübergreifend (veraltet). Verwenden Sie stattdessen bridgeKit.
destinationChainIdnumberOptionalZiel-Chain (bei kettenübergreifend)
sessionIdstringOptionalCheckout-Sitzungs-ID, um diese Zahlung zu verknüpfen (bei Verwendung von Checkout Sessions)
customerEmailstringRequiredE-Mail-Adresse des Kunden für Belegzustellung. Max. 255 Zeichen.
referencestringOptionalIhre interne Referenz (Bestellnummer, Rechnungsnummer). Max. 255 Zeichen.
descriptionstringOptionalZahlungsbeschreibung. Max. 500 Zeichen.
metadataobjectOptionalBenutzerdefinierte Schlüssel-Wert-Paare für Ihre interne Verwendung. Max. 10KB.
| Name | Type | Required | Description |
|---|---|---|---|
merchantId | string | Required | Merchant ID mit Präfix (fivo_live_UUID) |
txHash | string | Required | Blockchain-Transaktions-Hash (0x...) |
amount | number | Required | Zahlungsbetrag (0,01 - 1.000.000) |
expectedAmount | number | Optional | Erwarteter Betrag für On-Chain-Validierung. Erforderlich für Same-Chain-Zahlungen, optional für kettenübergreifende. |
token | string | Required | "USDC" oder "EURC" |
chainId | number | Required | Quell-Blockchain Chain ID |
fromAddress | string | Required | Absender-Wallet-Adresse |
toAddress | string | Required | Händler-Wallet-Adresse |
isCrossChain | boolean | Optional | Ob es sich um eine kettenübergreifende CCTP-Zahlung handelt |
bridgeKit | object | Optional | Bridge Kit-Payload für kettenübergreifende Zahlungen: { burnTxHash: string, mintTxHash?: string }. Erforderlich für den kettenübergreifenden Bridge Kit-Ablauf. |
feeQuote | object | Optional | Signiertes Gebührenangebot für legacy CCTP kettenübergreifend (veraltet). Verwenden Sie stattdessen bridgeKit. |
destinationChainId | number | Optional | Ziel-Chain (bei kettenübergreifend) |
sessionId | string | Optional | Checkout-Sitzungs-ID, um diese Zahlung zu verknüpfen (bei Verwendung von Checkout Sessions) |
customerEmail | string | Required | E-Mail-Adresse des Kunden für Belegzustellung. Max. 255 Zeichen. |
reference | string | Optional | Ihre interne Referenz (Bestellnummer, Rechnungsnummer). Max. 255 Zeichen. |
description | string | Optional | Zahlungsbeschreibung. Max. 500 Zeichen. |
metadata | object | Optional | Benutzerdefinierte Schlüssel-Wert-Paare für Ihre interne Verwendung. Max. 10KB. |
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' }
})
});{
"success": true,
"data": {
"paymentId": "payment-uuid-here",
"status": "completed",
"isCrossChain": false
}
}Minimale Antwort
GET /payments/:id/payments/:id/statusGibt den aktuellen Status einer Zahlung zurück. Nützlich für das Abfragen des Zahlungsabschlusses.
Pfadparameter
idstringRequiredZahlungs-UUID
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Zahlungs-UUID |
{
"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"
}
}Minimaler öffentlicher Endpunkt
GET /payments/:idcctp_attestation_statusnullZahlungsstatus-Werte
| Status | Beschreibung |
|---|---|
completed | Zahlung erfolgreich und Guthaben erhalten |
pending | Zahlung erstellt, wartet auf Verarbeitung |
pending_attestation | Kettenübergreifend: Warten auf CCTP-Attestierung von Circle |
ready_to_mint | Kettenübergreifend: Attestierung erhalten, Prägung auf Ziel-Chain |
minted_pending_transfer | Kettenübergreifend: geprägt, Übertragung an Händler-Wallet |
failed | Zahlung fehlgeschlagen (prüfen Sie failure_reason) |
/paymentsGibt eine paginierte Liste der Zahlungen für den authentifizierten Händler zurück.
Abfrageparameter
statusstringOptionalFilter: "pending", "completed", "failed"
currencystringOptionalFilter: "USDC" oder "EURC"
startDatestringOptionalFilter: ISO-Datumszeichenfolge
endDatestringOptionalFilter: ISO-Datumszeichenfolge
searchstringOptionalSuche in tx_hash, from_address, customer_email, reference (min. 3 Zeichen)
limitnumberOptionalErgebnisse pro Seite (Standard: 50)
offsetnumberOptionalPaginierungs-Offset (Standard: 0)
sortBystringOptionalSortierfeld (z.B. "created_at", "amount")
sortDirectionstringOptional"asc" oder "desc"
sincestringOptionalISO-Datetime: nur Zahlungen zurückgeben, die nach diesem Datum erstellt wurden. Nützlich für Echtzeit-Abfragen.
| Name | Type | Required | Description |
|---|---|---|---|
status | string | Optional | Filter: "pending", "completed", "failed" |
currency | string | Optional | Filter: "USDC" oder "EURC" |
startDate | string | Optional | Filter: ISO-Datumszeichenfolge |
endDate | string | Optional | Filter: ISO-Datumszeichenfolge |
search | string | Optional | Suche in tx_hash, from_address, customer_email, reference (min. 3 Zeichen) |
limit | number | Optional | Ergebnisse pro Seite (Standard: 50) |
offset | number | Optional | Paginierungs-Offset (Standard: 0) |
sortBy | string | Optional | Sortierfeld (z.B. "created_at", "amount") |
sortDirection | string | Optional | "asc" oder "desc" |
since | string | Optional | ISO-Datetime: nur Zahlungen zurückgeben, die nach diesem Datum erstellt wurden. Nützlich für Echtzeit-Abfragen. |
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
"https://api.fivo.finance/payments?status=completed&limit=10&sortBy=created_at&sortDirection=desc"/payments/:idGibt vollständige Details einer bestimmten Zahlung zurück, einschließlich aller CCTP-Felder.
/payments/api/listGibt 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
statusstringOptionalFilter: "pending", "completed", "failed"
currencystringOptionalFilter: "USDC" oder "EURC"
startDatestringOptionalFilter: ISO-Datumszeichenfolge
endDatestringOptionalFilter: ISO-Datumszeichenfolge
searchstringOptionalSuche in tx_hash, from_address, customer_email, reference (min. 3 Zeichen)
limitnumberOptionalErgebnisse pro Seite (Standard: 50, max: 200)
offsetnumberOptionalPaginierungs-Offset (Standard: 0)
sortBystringOptionalSortierfeld (z.B. "created_at", "amount")
sortDirectionstringOptional"asc" oder "desc"
sincestringOptionalISO-Datetime: nur Zahlungen zurückgeben, die nach diesem Datum erstellt wurden
| Name | Type | Required | Description |
|---|---|---|---|
status | string | Optional | Filter: "pending", "completed", "failed" |
currency | string | Optional | Filter: "USDC" oder "EURC" |
startDate | string | Optional | Filter: ISO-Datumszeichenfolge |
endDate | string | Optional | Filter: ISO-Datumszeichenfolge |
search | string | Optional | Suche in tx_hash, from_address, customer_email, reference (min. 3 Zeichen) |
limit | number | Optional | Ergebnisse pro Seite (Standard: 50, max: 200) |
offset | number | Optional | Paginierungs-Offset (Standard: 0) |
sortBy | string | Optional | Sortierfeld (z.B. "created_at", "amount") |
sortDirection | string | Optional | "asc" oder "desc" |
since | string | Optional | ISO-Datetime: nur Zahlungen zurückgeben, die nach diesem Datum erstellt wurden |
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.fivo.finance/payments/api/list?status=completed&limit=10"{
"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
}
}/payments/api/:idGibt vollständige Details einer bestimmten Zahlung zurück. Verwenden Sie dies, um eine Zahlung nach Erhalt einer Webhook-Benachrichtigung zu verifizieren.
Pfadparameter
idstringRequiredZahlungs-UUID
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Zahlungs-UUID |
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.fivo.finance/payments/api/abc123-payment-uuid"{
"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"
}
}Typischer Ablauf
payment.completedGET /payments/api/:id/payments/cctp-feeGibt 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
destinationChainstringRequiredName der Ziel-Blockchain (z.B. "ETH", "BASE", "ARB")
productPricestringRequiredProduktpreis in USD (z.B. "49.99")
| Name | Type | Required | Description |
|---|---|---|---|
destinationChain | string | Required | Name der Ziel-Blockchain (z.B. "ETH", "BASE", "ARB") |
productPrice | string | Required | Produktpreis in USD (z.B. "49.99") |
curl "https://api.fivo.finance/payments/cctp-fee?destinationChain=BASE&productPrice=49.99"{
"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..."
}
}Signiertes Angebot
POST /payments/create-publicfeeQuoteHändler
/merchants/:id/walletGibt die Wallet-Adresse und Blockchain des Händlers zurück. Wird vom Widget verwendet, um zu wissen, wohin Zahlungen gesendet werden sollen.
{
"success": true,
"data": {
"wallet": {
"id": "wallet-uuid",
"address": "0x1234567890abcdef...",
"blockchain": "MATIC",
"chainId": 137
}
}
}/merchants/:id/infoGibt öffentliche Händlerinformationen wie Name und akzeptierte Währungen zurück.
{
"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.
/public/checkout/sessionsErstellt eine neue Checkout-Sitzung und gibt eine URL zurück, um Ihren Kunden weiterzuleiten.
Request Body
amountstring | numberOptionalZahlungsbetrag (0,01 - 1.000.000). Weglassen für variablen Betrag.
currencystringOptional"USDC" oder "EURC". Standard: "USDC".
return_urlstringRequiredURL für Weiterleitung nach Zahlung. Muss in der Produktion HTTPS sein.
cancel_urlstringOptionalURL für Weiterleitung bei Abbruch. Muss in der Produktion HTTPS sein.
metadataobjectOptionalBis zu 5 Schlüssel-Wert-Paare für Ihre Referenz (z.B. order_id).
expires_innumberOptionalSitzungsdauer in Sekunden (60 - 86400). Standard: 1800 (30 Min.).
| Name | Type | Required | Description |
|---|---|---|---|
amount | string | number | Optional | Zahlungsbetrag (0,01 - 1.000.000). Weglassen für variablen Betrag. |
currency | string | Optional | "USDC" oder "EURC". Standard: "USDC". |
return_url | string | Required | URL für Weiterleitung nach Zahlung. Muss in der Produktion HTTPS sein. |
cancel_url | string | Optional | URL für Weiterleitung bei Abbruch. Muss in der Produktion HTTPS sein. |
metadata | object | Optional | Bis zu 5 Schlüssel-Wert-Paare für Ihre Referenz (z.B. order_id). |
expires_in | number | Optional | Sitzungsdauer in Sekunden (60 - 86400). Standard: 1800 (30 Min.). |
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" }
}'{
"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"
}
}/checkout/sessions/:idGibt 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.
{
"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
| Status | Beschreibung |
|---|---|
open | Sitzung erstellt, wartet darauf, dass der Kunde bezahlt |
complete | Zahlung bestätigt und Guthaben erhalten |
expired | Sitzung abgelaufen, bevor die Zahlung erfolgte |
/checkout/sessions/:id/publicÖ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
/api-keysRequest Body
namestringRequiredBeschreibender Name für den Schlüssel (1-50 Zeichen)
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Required | Beschreibender Name für den Schlüssel (1-50 Zeichen) |
{
"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
/api-keysGibt 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).
{
"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"
}
]
}/api-keys/:idWiderruft einen API Key dauerhaft. Alle Anfragen mit diesem Schlüssel schlagen sofort fehl.
{
"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.
/invoicesGibt alle Rechnungen des authentifizierten Händlers zurück, sortiert nach Datum (neueste zuerst).
Abfrageparameter
yearnumberOptionalNach Jahr filtern (z.B. 2026)
statusstringOptional"issued" oder "rectified"
| Name | Type | Required | Description |
|---|---|---|---|
year | number | Optional | Nach Jahr filtern (z.B. 2026) |
status | string | Optional | "issued" oder "rectified" |
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
"https://api.fivo.finance/invoices?year=2026"{
"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"
}
]
}/invoices/:id/pdfGibt die Rechnungs-PDF-Datei direkt zuruck. Verwenden Sie mode=view fur die Inline-Anzeige oder mode=download zum Herunterladen.
Pfadparameter
idstringRequiredRechnungs-UUID
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Rechnungs-UUID |
Direkte PDF-Antwort
Webhook-Verwaltung (API Key)
Verwalten Sie Ihre Webhook-Endpoints programmatisch über API Key. Diese Endpoints spiegeln die Webhook-Konfiguration des Dashboards wider.
X-API-Key/merchant-webhooks/api/listGibt alle konfigurierten Webhook-Endpoints für Ihr Händlerkonto zurück.
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.fivo.finance/merchant-webhooks/api/list"{
"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"
}
]
}/merchant-webhooks/api/createRequest Body
urlstringRequiredHTTPS-Webhook-URL
eventsstring[]RequiredZu abonnierende Ereignisse (siehe verfügbare Ereignisse unten)
descriptionstringOptionalBeschreibung (max. 200 Zeichen)
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Required | HTTPS-Webhook-URL |
events | string[] | Required | Zu abonnierende Ereignisse (siehe verfügbare Ereignisse unten) |
description | string | Optional | Beschreibung (max. 200 Zeichen) |
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"
}'/merchant-webhooks/api/:idPfadparameter
idstringRequiredWebhook-UUID
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Webhook-UUID |
/merchant-webhooks/api/:idRequest Body
urlstringOptionalNeue Webhook-URL
eventsstring[]OptionalNeue Ereignisliste
descriptionstringOptionalNeue Beschreibung
is_activebooleanOptionalWebhook aktivieren/deaktivieren
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Optional | Neue Webhook-URL |
events | string[] | Optional | Neue Ereignisliste |
description | string | Optional | Neue Beschreibung |
is_active | boolean | Optional | Webhook aktivieren/deaktivieren |
/merchant-webhooks/api/:idPfadparameter
idstringRequiredWebhook-UUID
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Webhook-UUID |
/merchant-webhooks/api/:id/regenerate-secretGeneriert ein neues HMAC-Secret für die Signaturverifizierung. Das alte Secret wird sofort ungültig.
/merchant-webhooks/api/:id/testSendet ein Test-Ereignis an die Webhook-URL. Nützlich zur Überprüfung Ihres Endpoints.payment.completed
/merchant-webhooks/api/:id/logsAbfrageparameter
limitnumberOptionalAnzahl der zurückzugebenden Protokolle (Standard: 20, max: 100)
| Name | Type | Required | Description |
|---|---|---|---|
limit | number | Optional | Anzahl der zurückzugebenden Protokolle (Standard: 20, max: 100) |
/merchant-webhooks/api/eventsGibt alle Webhook-Ereignisse zurück, die Sie abonnieren können, mit Beschreibungen.
Guthaben (API Key)
/wallets/api/balanceGibt das USDC- und EURC-Guthaben Ihres primären Wallets zurück. Nützlich zur Überwachung verfügbarer Mittel vor dem Auslösen von Auszahlungen.
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.fivo.finance/wallets/api/balance"{
"success": true,
"data": {
"wallet_id": "wallet-uuid",
"address": "0x1234567890abcdef...",
"blockchain": "MATIC",
"balances": [
{ "token": "USDC", "amount": "1250.50" },
{ "token": "EURC", "amount": "340.00" }
]
}
}Kein Cache
Cache-Control: no-storeRechnungen (API Key)
Greifen Sie programmatisch über API Key auf Ihre Rechnungen zu. Rechnungen werden automatisch generiert, wenn eine Auszahlung abgeschlossen wird.
/invoices/api/listAbfrageparameter
yearnumberOptionalNach Jahr filtern (z.B. 2026)
statusstringOptional"issued" oder "rectified"
| Name | Type | Required | Description |
|---|---|---|---|
year | number | Optional | Nach Jahr filtern (z.B. 2026) |
status | string | Optional | "issued" oder "rectified" |
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.fivo.finance/invoices/api/list?year=2026"/invoices/api/:id/pdfPfadparameter
idstringRequiredRechnungs-UUID
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Rechnungs-UUID |
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.fivo.finance/invoices/api/INVOICE_UUID/pdf?mode=download"Direkte PDF-Antwort
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
/refunds/api/createErstellt 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
paymentIdstringRequiredUUID der zu erstattenden Zahlung
amountstringOptionalZu erstattender Betrag (standardmäßig der vollständige Zahlungsbetrag)
reasonstringRequired"duplicate", "fraudulent", "requested_by_customer" oder "other"
notestringOptionalInterne Notiz zur Rückerstattung (max. 500 Zeichen)
| Name | Type | Required | Description |
|---|---|---|---|
paymentId | string | Required | UUID der zu erstattenden Zahlung |
amount | string | Optional | Zu erstattender Betrag (standardmäßig der vollständige Zahlungsbetrag) |
reason | string | Required | "duplicate", "fraudulent", "requested_by_customer" oder "other" |
note | string | Optional | Interne Notiz zur Rückerstattung (max. 500 Zeichen) |
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"
}'{
"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"
}
}Rückerstattungsfrist
/refunds/api/listGibt eine paginierte Liste der Rückerstattungen für den authentifizierten Händler zurück.
Abfrageparameter
statusstringOptionalFiltern: "pending", "processing", "completed", "failed", "cancelled"
currencystringOptionalFilter: "USDC" oder "EURC"
searchstringOptionalSuche in Zahlungs-ID, Zieladresse, Transaktions-Hash
limitnumberOptionalErgebnisse pro Seite (Standard: 50, max: 200)
offsetnumberOptionalPaginierungs-Offset (Standard: 0)
| Name | Type | Required | Description |
|---|---|---|---|
status | string | Optional | Filtern: "pending", "processing", "completed", "failed", "cancelled" |
currency | string | Optional | Filter: "USDC" oder "EURC" |
search | string | Optional | Suche in Zahlungs-ID, Zieladresse, Transaktions-Hash |
limit | number | Optional | Ergebnisse pro Seite (Standard: 50, max: 200) |
offset | number | Optional | Paginierungs-Offset (Standard: 0) |
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.fivo.finance/refunds/api/list?status=completed&limit=10"{
"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
}
}/refunds/api/:idGibt die vollständigen Details einer bestimmten Rückerstattung zurück, einschließlich der verknüpften Zahlungsdaten.
Pfadparameter
idstringRequiredRückerstattungs-UUID
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Rückerstattungs-UUID |
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.fivo.finance/refunds/api/REFUND_UUID"{
"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"
}
}
}/refunds/api/:id/cancelStorniert 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
idstringRequiredRückerstattungs-UUID
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Rückerstattungs-UUID |
curl -X POST https://api.fivo.finance/refunds/api/REFUND_UUID/cancel \
-H "X-API-Key: YOUR_API_KEY"{
"success": true
}Webhooks
Webhooks benachrichtigen Ihren Server in Echtzeit, wenn Zahlungsereignisse auftreten. Konfigurieren Sie Webhooks in Ihrem oder über die .DashboardWebhook-Verwaltungs-API
Ereignisse
| Ereignis | Beschreibung |
|---|---|
payment.completed | Zahlung erfolgreich und Gelder vom Händler empfangen |
payment.failed | Zahlung fehlgeschlagen |
refund.created | Eine Rückerstattung wurde für eine Zahlung erstellt |
refund.completed | Rückerstattung on-chain abgeschlossen und an den Kunden gesendet |
refund.failed | Rückerstattung fehlgeschlagen (prüfen Sie failure_reason) |
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
| Header | Beschreibung |
|---|---|
X-Fivo-Signature | HMAC-SHA256-Signatur ()sha256=hex |
X-Fivo-Event | Ereignistyp (z.B. )payment.completed |
X-Fivo-Timestamp | Unix-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
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
Antwortformat
Alle API-Antworten folgen einem einheitlichen Format:
{
"success": true,
"data": { ... },
"message": "Optional message"
}{
"success": false,
"error": "Error description",
"details": [ ... ]
}Brauchen Sie Hilfe?
Sehen Sie sich unseren Leitfaden zur Fehlerbehandlung an oder kontaktieren Sie den Support.