Zum Inhalt springen

Alle Endpunkte

Basis-URL https://hub.stablezact.com. Stellen Sie jedem Pfad /api/v1 voran. Siehe Versionierung.

Die meisten davon erfordern Authentifizierung. Einige nicht, weil eine Checkout-Seite im Browser des Kunden sie erreichen muss: /payments/public/{paymentId}, /payments/contract/{chainId}, /deposits/chains, /payments/cross-chain/sources, /currency/rates und /payments/health.

Methode Pfad Zweck
POST /payments/create eine Zahlung erstellen
GET /payments/{paymentId} eine Zahlung abrufen, einschließlich des Auszahlungsfortschritts
GET /payments/{paymentId}/status hat der Kunde bezahlt
GET /payments/status/{paymentId} dasselbe, alternativer Pfad
GET /payments/public/{paymentId} eingeschränkte Details, sicher für eine Checkout-Seite
POST /payments/process eine On-Chain-Transaktion zur Verifizierung übermitteln
POST /payments/fail eine Zahlung als fehlgeschlagen, storniert oder abgelaufen markieren
POST /payments/verify-qr eine per QR-Code gestartete Zahlung verifizieren
GET /payments/contract/{chainId} Contract-Adresse und ABI für eine Chain
GET /payments/merchant/list Ihre Zahlungen, paginiert (API-Schlüssel und Secret)
GET /payments/merchant/stats Summen für Ihr Konto (API-Schlüssel und Secret)
GET /payments/health Zustand des Dienstes

Das Erstellen von Zahlungen ist idempotent. Der Server entscheidet anhand des ersten der folgenden Merkmale, das er findet, ob eine Anfrage eine Wiederholung ist:

  1. ein Idempotency-Key-Request-Header, der zu bevorzugende Mechanismus
  2. eine orderId im Body
  3. ein Fingerprint des gesamten Request-Bodys

Eine identische Wiederholung wird also auch dann erkannt, wenn Sie keines von beiden senden, aber sich darauf zu verlassen, ist fragil: Ändern Sie ein Feld, wird daraus eine neue Zahlung. Senden Sie bei allem, was Sie möglicherweise wiederholen, einen Idempotency-Key.

Idempotency-Key: order-1234-attempt-1

Keys gelten pro Konto und pro Endpunkt, und der versionierte und der unversionierte Pfad teilen sich einen Key. Eine Wiederholung gegen /api/payments/create nach /api/v1/payments/create erzeugt also keine zweite Zahlung.

Bei einer Zahlung über eine Einzahlungsadresse erhält der Kunde eine eindeutige Adresse, an die er sendet, und das Geld wird an Ihre Auszahlungs-Wallet weitergeleitet.

Methode Pfad Zweck
POST /deposits/create eine Zahlung über eine Einzahlungsadresse erstellen
GET /deposits/status/{paymentId} Status der Einzahlung
GET /deposits/balance/{paymentId} was bisher angekommen ist
GET /deposits/chains Chains, die Einzahlungsadressen unterstützen
POST /deposits/refund-request/{paymentId} eine Adresse für eine Rückerstattung angeben

Für Kunden, die von einer anderen Chain als der in Rechnung gestellten zahlen.

Methode Pfad Zweck
POST /payments/cross-chain/create eine chainübergreifende Zahlung erstellen
GET /payments/cross-chain/sources Chains, von denen ein Kunde zahlen kann
GET /payments/cross-chain/status/{paymentId} Fortschritt der Bridge
Methode Pfad Zweck
GET /networks alle unterstützten Netzwerke
GET /networks/payable Netzwerke, die derzeit Zahlungen annehmen können
GET /networks/stablecoins unterstützte Token
GET /networks/payable/stablecoins Token auf zahlungsfähigen Netzwerken
GET /currency/rates für die Umrechnung verwendete Wechselkurse
Methode Pfad Zweck
GET /api/health ist der Dienst erreichbar, nicht versioniert
GET /api/versions unterstützte Versionen, nicht versioniert

Diese beiden sind die Ausnahme von der /api/v1-Regel. Zu prüfen, ob der Dienst erreichbar ist, und zu fragen, welche Versionen es gibt, darf nicht voraussetzen, dass man bereits eine Version kennt. /api/v1/health gibt absichtlich 404 zurück.