// dokumentation
Entwicklerdokumentation
Integrieren Sie NextCryptoPay in wenigen Minuten. Hier ist der Aufbau einer typischen Integration.
Entwickeln Sie mit einem KI-Agenten?
Wenn Sie Claude Code, Codex, Cursor oder einen anderen KI-Agenten für Ihr Projekt nutzen, laden Sie docs-agent.md herunter und geben Sie es Ihrem Agenten — es enthält alles Nötige, um NextCryptoPay automatisch zu integrieren.
1. API-Schlüssel erstellen
Generieren Sie einen Schlüssel unter Dashboard → API-Schlüssel. Bewahren Sie das Geheimnis auf Ihrem Server auf, niemals im Browser.
2. Rechnung erstellen
Senden Sie Betrag, Währung und Chain per POST an den Invoices-Endpunkt und leiten Sie den Kunden dann zur zurückgegebenen Checkout-URL weiter.
3. Webhooks empfangen
Wir senden einen signierten Webhook, wenn eine Rechnung bezahlt, in Bestätigung oder abgelaufen ist. Verifizieren Sie die Signatur mit Ihrem Webhook-Geheimnis.
Authentifizierung
Authentifizieren Sie jede Anfrage mit Ihrem geheimen Schlüssel im Authorization-Header. Erstellen Sie Schlüssel pro Shop unter Dashboard → API-Schlüssel (der vollständige Schlüssel wird einmalig angezeigt).
Rechnung erstellen
Senden Sie Bestellbetrag, Chain und Asset. Sie erhalten eine payAddress und eine gehostete checkoutUrl zurück — leiten Sie Ihren Kunden dorthin weiter.
Anfrage
curl -X POST https://nextcryptopay.com/api/v1/invoices \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"orderId": "ORDER-1001",
"amount": 99.50,
"currency": "USD",
"chain": "tron",
"asset": "USDT",
"webhookUrl": "https://yourstore.com/webhooks/cryptopay"
}'Antwort
{
"id": "inv_abc123",
"orderId": "ORDER-1001",
"payAddress": "TJ9xH4n2k8sQw7Lm3vR5pZ1aB6cD8eF2g",
"cryptoAmount": "99.50",
"asset": "USDT",
"chain": "tron",
"status": "PENDING",
"expiresAt": "2026-06-17T10:00:00.000Z",
"checkoutUrl": "https://nextcryptopay.com/pay/inv_abc123"
}Zahlungsstatus verfolgen
Fragen Sie die Rechnung ab oder abonnieren Sie Live-Updates über Server-Sent Events. Status: PENDING → CONFIRMING → PAID (oder EXPIRED / PARTIALLY_PAID).
# Poll the invoice
curl https://nextcryptopay.com/api/v1/invoices/inv_abc123
# Or subscribe to live updates (Server-Sent Events)
GET https://nextcryptopay.com/api/v1/invoices/inv_abc123/streamWebhooks verifizieren
Bei jeder Statusänderung senden wir ein signiertes Ereignis per POST an Ihre Webhook-URL. Verifizieren Sie den x-cryptopay-signature-Header (HMAC-SHA256 des Roh-Bodys mit dem Webhook-Geheimnis Ihres Shops), bevor Sie ihm vertrauen. Antworten Sie innerhalb von 5 Sek. mit 2xx — andernfalls wiederholen wir mit Backoff.
import crypto from "node:crypto";
app.post("/webhooks/cryptopay", (req, res) => {
const signature = req.headers["x-cryptopay-signature"];
const timestamp = req.headers["x-cryptopay-timestamp"];
// Reject stale deliveries (replay protection): within 5 minutes
if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) {
return res.status(401).end();
}
// Signature is HMAC of "timestamp.rawBody"
const expected = crypto
.createHmac("sha256", process.env.CRYPTOPAY_WEBHOOK_SECRET)
.update(timestamp + "." + req.rawBody) // raw JSON body
.digest("hex");
if (
signature.length !== expected.length ||
!crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))
) {
return res.status(401).end();
}
// Dedupe by delivery id (same event may be retried)
const deliveryId = req.headers["x-cryptopay-delivery"];
if (alreadyProcessed(deliveryId)) return res.status(200).end();
const { event, invoice } = req.body;
if (event === "invoice.paid") fulfillOrder(invoice.orderId);
res.status(200).end(); // reply 2xx within 15s, else we retry (6 attempts, backoff)
});Unterstützte Chains
Tron (USDT/USDC · TRC20), Ethereum (USDT/USDC · ERC20), BSC (USDT · BEP20), Bitcoin (BTC). Die Gebühr beträgt 0,1 % pro erfolgreicher Zahlung, abgebucht von Ihrem im Voraus eingezahlten USDT-Guthaben (oder durch Ihr Plankontingent abgedeckt).