Widget-Integration
Der schnellste Weg, Zahlungen zu akzeptieren. Kein Backend erforderlich.
Schnellstart
Fügen Sie zwei Zeilen zu Ihrem HTML hinzu. Das Widget übernimmt Wallet-Verbindung, Chain-Auswahl, Transaktionssignierung und kettenübergreifendes Bridging automatisch.
<script async src="https://checkout.fivo.finance/v1/fivo.js"></script>
<fivo-button
merchant-id="YOUR_MERCHANT_ID"
amount="29.99"
currency="USDC">
</fivo-button>Merchant ID
fivo_live_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxZahlungsmodi
Fester Betrag
Für Produkte, Rechnungen, Abonnements. Setzen Sie das -Attribut und der Kunde kann nur den exakten Preis bezahlen.amount
Variabler Betrag
Für Spenden, Trinkgelder, Zahle-was-du-willst. Lassen Sie das -Attribut weg und der Kunde gibt ein, wie viel er zahlen möchte.amount
Fester Betrag
Legen Sie den Preis fest und das System überprüft den genauen Betrag auf der Blockchain. Beträge müssen zwischen 0,01 und 1.000.000 liegen.
<script async src="https://checkout.fivo.finance/v1/fivo.js"></script>
<!-- Product: $49.99 USDC -->
<fivo-button
merchant-id="YOUR_MERCHANT_ID"
amount="49.99"
currency="USDC">
</fivo-button>Anwendungsfälle
- E-Commerce-Produktkauf
- SaaS-Abonnementzahlungen
- Dienstleistungsrechnungen
- Veranstaltungstickets
Variabler Betrag
Lassen Sie das -Attribut weg. Das Widget zeigt ein Eingabefeld an, in dem der Kunde den gewünschten Betrag eingibt.amount
<script async src="https://checkout.fivo.finance/v1/fivo.js"></script>
<!-- Donation: customer chooses amount -->
<fivo-button
merchant-id="YOUR_MERCHANT_ID"
currency="USDC">
</fivo-button>Betragsgrenzen
Anwendungsfälle
- Spenden und Fundraising
- Trinkgelder für Content-Ersteller
- Zahle-was-du-willst-Preise
- Crowdfunding-Beiträge
Attribute
Das -Element akzeptiert die folgenden Attribute:<fivo-button>
fivo-button Attributes
merchant-idstringRequiredIhre Merchant ID (Format: fivo_live_UUID)
amountstringOptionalFester Zahlungsbetrag (0,01 - 1.000.000). Weglassen für variablen Modus.
currencystringOptional"USDC" oder "EURC". Standard ist "USDC".
wallet-idstringOptionalSpezifische Wallet-UUID für Händler mit mehreren Wallets. Weglassen, um Ihr Standard-Wallet zu verwenden.
data-amount-fromstringOptionalCSS-Selektor des Elements, das den Warenkorb-Gesamtbetrag enthält. Der Betrag wird beim Klicken gelesen.
data-referencestringOptionalIhre interne Referenz (Bestellnummer, Rechnungsnummer usw.). Max. 255 Zeichen.
data-descriptionstringOptionalZahlungsbeschreibung, die im Dashboard angezeigt wird. Max. 500 Zeichen.
data-metadatastringOptionalJSON-String mit benutzerdefinierten Schlüssel-Wert-Paaren. Max. 10 KB.
| Name | Type | Required | Description |
|---|---|---|---|
merchant-id | string | Required | Ihre Merchant ID (Format: fivo_live_UUID) |
amount | string | Optional | Fester Zahlungsbetrag (0,01 - 1.000.000). Weglassen für variablen Modus. |
currency | string | Optional | "USDC" oder "EURC". Standard ist "USDC". |
wallet-id | string | Optional | Spezifische Wallet-UUID für Händler mit mehreren Wallets. Weglassen, um Ihr Standard-Wallet zu verwenden. |
data-amount-from | string | Optional | CSS-Selektor des Elements, das den Warenkorb-Gesamtbetrag enthält. Der Betrag wird beim Klicken gelesen. |
data-reference | string | Optional | Ihre interne Referenz (Bestellnummer, Rechnungsnummer usw.). Max. 255 Zeichen. |
data-description | string | Optional | Zahlungsbeschreibung, die im Dashboard angezeigt wird. Max. 500 Zeichen. |
data-metadata | string | Optional | JSON-String mit benutzerdefinierten Schlüssel-Wert-Paaren. Max. 10 KB. |
Dynamische Attribute
el.setAttribute('amount', '59.99')Events
Die Schaltfläche löst benutzerdefinierte DOM-Events aus, die Sie abfangen können. Alle Event-Daten sind in verfügbar.e.detail
fivo:payment-successData: txHash, amount, token, chainId
Zahlung auf der Blockchain bestätigt
fivo:payment-errorData: error
Zahlung fehlgeschlagen oder abgelehnt
fivo:payment-trackingData: paymentId, status, step
Fortschrittsaktualisierung bei kettenübergreifender Übertragung
| Event | Daten | Wann |
|---|---|---|
fivo:payment-success | txHash, amount, token, chainId | Zahlung auf der Blockchain bestätigt |
fivo:payment-error | error | Zahlung fehlgeschlagen oder abgelehnt |
fivo:payment-tracking | paymentId, status, step | Fortschrittsaktualisierung bei kettenübergreifender Übertragung |
<fivo-button
id="pay-btn"
merchant-id="YOUR_MERCHANT_ID"
amount="25.00"
currency="USDC">
</fivo-button>
<script>
const btn = document.getElementById('pay-btn');
btn.addEventListener('fivo:payment-success', (e) => {
console.log('TX hash:', e.detail.txHash);
console.log('Amount:', e.detail.amount, e.detail.token);
console.log('Chain ID:', e.detail.chainId);
window.location.href = '/thank-you?tx=' + e.detail.txHash;
});
btn.addEventListener('fivo:payment-error', (e) => {
console.error('Payment failed:', e.detail.error);
});
btn.addEventListener('fivo:payment-tracking', (e) => {
// Only fires for cross-chain (CCTP) payments
console.log('Step:', e.detail.step, 'Status:', e.detail.status);
});
</script>Dynamischer Warenkorb
Fügen Sie diese Schaltfläche in Ihren Warenkorb ein. Sie liest automatisch den Gesamtbetrag von Ihrer Seite, wenn der Kunde klickt. Wenn der Betrag nicht erkannt wird, ändern Sie so, dass es zur ID Ihres Warenkorb-Gesamtbetrags-Elements passt.#cartTotal
<script async src="https://checkout.fivo.finance/v1/fivo.js"></script>
<!-- Replace #cartTotal with YOUR cart total element's ID -->
<fivo-button
merchant-id="YOUR_MERCHANT_ID"
data-amount-from="#cartTotal"
currency="USDC">
</fivo-button>Gesamtbetrag wird nicht erkannt?
id="something"#somethingdata-amount-fromErweitert: manuelle Steuerung
Wenn Sie volle programmatische Kontrolle benötigen (z.B. der Gesamtbetrag ist nicht auf der Seite sichtbar), können Sie das Amount-Attribut direkt mit JavaScript aktualisieren:
<fivo-button
id="checkout-btn"
merchant-id="YOUR_MERCHANT_ID"
currency="USDC">
</fivo-button>
<script>
// Update when cart changes
function updateCheckout(total) {
document.getElementById('checkout-btn')
.setAttribute('amount', total.toFixed(2));
}
// Redirect after payment
document.getElementById('checkout-btn')
.addEventListener('fivo:payment-success', (e) => {
window.location.href = '/thank-you?tx=' + e.detail.txHash;
});
</script>E-Commerce mit Auftragsverwaltung?
Mehrere Produkte
Laden Sie das Skript einmal, dann fügen Sie so viele Schaltflächen hinzu, wie Sie benötigen. Jede funktioniert unabhängig.
<script async src="https://checkout.fivo.finance/v1/fivo.js"></script>
<!-- Product A -->
<fivo-button merchant-id="YOUR_MERCHANT_ID" amount="19.99" currency="USDC"></fivo-button>
<!-- Product B -->
<fivo-button merchant-id="YOUR_MERCHANT_ID" amount="49.99" currency="USDC"></fivo-button>
<!-- Donation (variable) -->
<fivo-button merchant-id="YOUR_MERCHANT_ID" currency="EURC"></fivo-button>Direkter Checkout-Link
Sie können auch direkt auf die Zahlungsseite verlinken, ohne das Widget einzubetten. Nützlich für E-Mail-Rechnungen, Social-Media-Links oder QR-Codes.
https://checkout.fivo.finance?merchant=YOUR_MERCHANT_ID&amount=49.99¤cy=USDCURL-Parameter
merchantstringRequiredIhre Merchant ID
amountstringOptionalFester Betrag. Weglassen für variablen Modus.
currencystringOptional"USDC" oder "EURC". Standard ist "USDC".
walletIdstringOptionalSpezifische Wallet-UUID für Händler mit mehreren Wallets.
referencestringOptionalIhre interne Referenz (Bestellnummer usw.).
descriptionstringOptionalZahlungsbeschreibung.
metadatastringOptionalURL-kodierter JSON-String mit benutzerdefinierten Daten.
| Name | Type | Required | Description |
|---|---|---|---|
merchant | string | Required | Ihre Merchant ID |
amount | string | Optional | Fester Betrag. Weglassen für variablen Modus. |
currency | string | Optional | "USDC" oder "EURC". Standard ist "USDC". |
walletId | string | Optional | Spezifische Wallet-UUID für Händler mit mehreren Wallets. |
reference | string | Optional | Ihre interne Referenz (Bestellnummer usw.). |
description | string | Optional | Zahlungsbeschreibung. |
metadata | string | Optional | URL-kodierter JSON-String mit benutzerdefinierten Daten. |
<a href="https://checkout.fivo.finance?merchant=YOUR_MERCHANT_ID&amount=150.00¤cy=USDC">
Pay Invoice #1234, $150.00 USDC
</a>Checkout Sessions (Weiterleitungsmodus)
Für serverseitige Integrationen können Sie eine Checkout Session über die API erstellen und Ihren Kunden auf eine von Fivo gehostete Zahlungsseite weiterleiten. Nach der Zahlung wird der Kunde zurück auf Ihre Seite geleitet. Dies ist vergleichbar mit Stripe Checkout.
Serverseitige Integration
So funktioniert es
Ihr Server erstellt eine Sitzung
Rufen Sie POST /checkout/sessions mit dem Betrag, der Währung und einer Rückgabe-URL auf.
Kunde wird weitergeleitet
Verwenden Sie die zurückgegebene URL, um Ihren Kunden auf die Fivo-Zahlungsseite weiterzuleiten.
Kunde bezahlt
Der Kunde verbindet sein Wallet und schließt die Zahlung auf der gehosteten Seite ab.
Kunde kehrt zu Ihrer Seite zurück
Nach der Zahlung wird der Kunde mit der Sitzungs-ID zu Ihrer return_url weitergeleitet.
Zahlung auf Ihrem Server verifizieren
Rufen Sie GET /checkout/sessions/:id auf, um den Zahlungsstatus zu bestätigen, bevor Sie die Bestellung ausführen.
1. Sitzung erstellen (serverseitig)
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({
amount: '49.99',
currency: 'USDC',
return_url: 'https://yoursite.com/success',
cancel_url: 'https://yoursite.com/cancel',
metadata: { order_id: 'order_123' },
expires_in: 1800, // 30 minutes (default)
}),
});
const { data } = await response.json();
// data.id → "cs_live_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
// data.url → "https://checkout.fivo.finance?session=cs_live_..."
// data.expires_at → "2026-02-18T11:00:00.000Z"
// After payment, the customer is redirected to:
// https://yoursite.com/success?session_id=cs_live_...2. Kunde weiterleiten
// Express.js example
app.post('/create-checkout', async (req, res) => {
const session = await createCheckoutSession(req.body);
res.redirect(303, session.url);
});3. Zahlung bei Rückkehr verifizieren
// When the customer lands on your return_url
app.get('/success', async (req, res) => {
const sessionId = req.query.session_id;
const response = await fetch(
`https://api.fivo.finance/checkout/sessions/${sessionId}`,
{ headers: { 'X-API-Key': process.env.FIVO_API_KEY } }
);
const { data } = await response.json();
if (data.status === 'complete' && data.payment) {
// Payment confirmed: fulfill the order
console.log('Payment ID:', data.payment.id);
console.log('TX Hash:', data.payment.tx_hash);
console.log('Amount:', data.payment.amount, data.currency);
} else {
// Payment not yet confirmed: show a waiting state
console.log('Session status:', data.status);
}
});POST /checkout/sessions: Parameter
amountstring | numberOptionalZahlungsbetrag (0,01 - 1.000.000). Weglassen für variablen Betrag.
currencystringOptional"USDC" oder "EURC". Standard ist "USDC".
return_urlstringRequiredURL zur Weiterleitung des Kunden nach der Zahlung. Muss in der Produktion HTTPS sein.
cancel_urlstringOptionalURL zur Weiterleitung, wenn der Kunde abbricht. Muss in der Produktion HTTPS sein.
metadataobjectOptionalBis zu 5 Schlüssel-Wert-Paare für Ihre interne Referenz (z.B. Bestellnummer).
expires_innumberOptionalSitzungsdauer in Sekunden (60 - 86.400). Standard ist 1.800 (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 ist "USDC". |
return_url | string | Required | URL zur Weiterleitung des Kunden nach der Zahlung. Muss in der Produktion HTTPS sein. |
cancel_url | string | Optional | URL zur Weiterleitung, wenn der Kunde abbricht. Muss in der Produktion HTTPS sein. |
metadata | object | Optional | Bis zu 5 Schlüssel-Wert-Paare für Ihre interne Referenz (z.B. Bestellnummer). |
expires_in | number | Optional | Sitzungsdauer in Sekunden (60 - 86.400). Standard ist 1.800 (30 Min.). |
Unterstützte Währungen & Chains
| Währung | Code | Chains |
|---|---|---|
| USD Coin | USDC | Alle 9 Chains |
| Euro Coin | EURC | Ethereum, Avalanche, Base |
| Blockchain | Token |
|---|---|
| Ethereum | USDC, EURC |
| Polygon | USDC |
| Avalanche | USDC, EURC |
| Arbitrum | USDC |
| Base | USDC, EURC |
| Optimism | USDC |
| Linea | USDC |
| Unichain | USDC |
| Sonic | USDC |
Kunden können von jeder Chain aus bezahlen. Wenn ihre Chain von der Chain Ihres Wallets abweicht, werden USDC-Zahlungen automatisch über Circle CCTP gebridged (in der Regel 1-2 Minuten). EURC ist nur auf der gleichen Chain möglich und unterstützt keine kettenübergreifenden Transfers.
So funktioniert es
Kunde klickt die Schaltfläche
Ein Zahlungs-Overlay öffnet sich über Ihrer Seite. Ihre Seite bleibt darunter geladen.
Kunde verbindet Wallet
Unterstützt MetaMask, Coinbase Wallet, WalletConnect und andere beliebte Wallets.
Kunde wählt Chain und bezahlt
Das Widget scannt unterstützte Chains nach USDC- (9 Chains) oder EURC-Guthaben (3 Chains) und zeigt verfügbare Optionen an.
Sie erhalten die Mittel
Zahlungen auf der gleichen Chain sind sofort. Kettenübergreifende USDC-Zahlungen kommen in 1-2 Minuten über CCTP an. EURC ist nur auf der gleichen Chain möglich.
Kunden-E-Mail & Belege
Jede Zahlung erfordert, dass der Kunde seine E-Mail-Adresse eingibt, bevor er bezahlt. Das Widget übernimmt dies automatisch. Ein Pflichtfeld für die E-Mail wird vor dem Wallet-Verbindungsschritt angezeigt.
Für Kunden
Nach der Zahlung erhält der Kunde eine Beleg-E-Mail mit seiner Zahlungs-ID, dem Betrag, dem Händlernamen und dem Blockchain-Transaktionslink.
Für Händler
Sie können Kunden-E-Mails auf Ihrer Transaktionsseite einsehen und Rückerstattungen nach E-Mail anstatt nach Zahlungs-ID suchen.
Auftragsverfolgung
Verwenden Sie optionale Attribute, um Zahlungen mit Ihren internen Systemen zu verknüpfen. Diese werden an Webhooks weitergegeben und sind in Ihrem Dashboard sichtbar.
<fivo-button
merchant-id="YOUR_MERCHANT_ID"
amount="49.99"
currency="USDC"
data-reference="ORD-2024-001"
data-description="Pro Plan - Monthly"
data-metadata='{"product_id": "plan_pro", "customer_name": "John"}'>
</fivo-button>Order Tracking Attributes
data-referencestringOptionalIhre Bestell-/Rechnungs-ID. Sichtbar im Dashboard und in Webhooks. Max. 255 Zeichen.
data-descriptionstringOptionalZahlungsbeschreibung. Sichtbar im Dashboard. Max. 500 Zeichen.
data-metadatastringOptionalJSON-String mit benutzerdefinierten Daten. In Webhooks enthalten. Max. 10 KB.
| Name | Type | Required | Description |
|---|---|---|---|
data-reference | string | Optional | Ihre Bestell-/Rechnungs-ID. Sichtbar im Dashboard und in Webhooks. Max. 255 Zeichen. |
data-description | string | Optional | Zahlungsbeschreibung. Sichtbar im Dashboard. Max. 500 Zeichen. |
data-metadata | string | Optional | JSON-String mit benutzerdefinierten Daten. In Webhooks enthalten. Max. 10 KB. |
Diese sind optional
Gut zu wissen
Leichtgewichtig
~7 KB Skript, lädt asynchron. Verlangsamt Ihre Seite nicht.
Isolierte Styles
Verwendet Shadow DOM. Ihr CSS beeinflusst es nicht.
Betrugsschutz
Feste Beträge werden auf der Blockchain verifiziert.
9 Blockchains
USDC auf allen 9 Chains mit automatischem Bridging über CCTP. EURC auf 3 Chains (nur gleiche Chain).
Mehr Kontrolle gewünscht?
Verwenden Sie für serverseitige Weiterleitungsabläufe oder sehen Sie sich den API-Integrationsleitfaden für Webhooks und programmatische Zahlungsabfragen an.Checkout Sessions