Zum Inhalt springen

Erste Schritte

Auf dieser Seite

Testen

Status von Rechnungen und Auszahlungen mit eigenen Testschlüsseln, signierten Webhooks und Simulationsendpunkten prüfen, ohne echte Mittel zu bewegen.

Testen Sie Ihre Anbindung in der Sandbox von Anfang bis Ende. Dieselbe API-Oberfläche wie in der Produktion, simulierte Blockchain, signierte Webhooks, kein echtes Geld im Risiko.

Sandbox und Produktion

Merkmal Sandbox Produktion
Basis-URL api.paymos.io/v1 api.paymos.io/v1
API-Schlüssel IDs pk_test_ / rk_test_ mit Geheimnissen sk_test_ IDs pk_live_ / rk_live_ mit Geheimnissen sk_live_
Transaktionen Simuliert Echte Blockchain
Webhooks Werden normal gesendet Werden normal gesendet
Mittel Ohne echten Wert Echte Krypto-Werte

Zahlungen simulieren

Zahlungen in der Sandbox werden nicht automatisch nach Ablauf einer Frist bestätigt. Lösen Sie sie ausdrücklich aus:

POST/v1/sandbox/invoices/:invoice_id/simulate-payment

Körper: { "stage": "paid" }stage ist einer der Werte paid, overpaid, underpay oder cancel. Authentifizieren Sie den Aufruf wie jeden anderen signierten /v1-Aufruf; er wirkt ausschließlich auf Sandbox-Rechnungen, ein Produktionsschlüssel wird mit 403 not_sandbox abgewiesen. Er löst dieselben Lebenszyklus- und Webhook-Ereignisse aus wie eine echte On-Chain-Zahlung, sodass Ihr Prüfpfad zwischen Sandbox und Produktion identisch bleibt.

Auszahlungen simulieren

Auszahlungen in der Sandbox werden nicht auf einer echten Chain abgewickelt. Markieren Sie eine offene Sandbox-Auszahlung als abgeschlossen, um Ihren gesamten Auszahlungsablauf durchzuspielen:

POST/v1/sandbox/withdrawals/:withdrawal_id/simulate-completion

Kein Anfragekörper. Authentifizieren Sie den Aufruf wie jeden anderen /v1-Aufruf mit Ihrem Payout-Schlüssel; er wirkt ausschließlich auf Sandbox-Auszahlungen. Er setzt die Auszahlung auf completed und sendet denselben Webhook withdrawal.completed wie eine echte On-Chain-Auszahlung, sodass Ihr Abgleichspfad zwischen Sandbox und Produktion identisch bleibt.

Einzahlungen in Kanäle simulieren

Zahlungskanäle in der Sandbox leiten ihre Adressen lokal ab und beobachten keine Chain. Eine Einzahlung entsteht dort deshalb nur, wenn Sie sie ausdrücklich anlegen:

POST/v1/sandbox/payment-channels/:payment_channel_id/simulate-deposit

Körper: { "amount": "100", "currency": "USDT", "network": "TRC20", "stage": "confirmed" }stage ist confirming, reorged oder confirmed, ohne Angabe confirmed. Signieren Sie den Aufruf mit Ihrem Payment-Schlüssel der Sandbox; ein Produktionsschlüssel wird abgewiesen, bevor überhaupt etwas entsteht. Jeder Aufruf sendet zuerst payment_channel.deposit.confirming, und die angeforderte Stufe entscheidet, welches Ereignis danach noch folgt — Ihr Webhook-Pfad bleibt zwischen Sandbox und Produktion also identisch. Den vollständigen Vertrag beschreibt Einzahlung in einen Kanal simulieren.

Webhooks lokal testen

Machen Sie Ihren lokalen Server über einen Tunnel erreichbar:

ngrok http 3000

Tragen Sie die Webhook-URL unter Dashboard → Entwickler → Webhooks ein:

https://abc123.ngrok.io/api/paymos-webhook

Webhook-Playground

Die Dokumentation enthält ein nur in der Sandbox verfügbares Webhook-Playground, das ein vollständig signiertes Ereignis an Ihre registrierte URL zustellt — nützlich, um die Signaturprüfung zu testen, ohne eine Rechnung anzulegen.

  • 01Gehen Sie in der Sandbox-Umgebung zu Dashboard → Entwickler → Dokumentation
  • 02Öffnen Sie Webhooks → Testen und wählen Sie Playground
  • 03Wählen Sie einen Ereignistyp (invoice.paid, invoice.expired, withdrawal.completed und weitere) und senden Sie ihn
  • 04Prüfen Sie in Ihren Server-Logs das empfangene Ereignis und den Header X-Webhook-Signature

Checkliste vor dem Livegang

  • Die Prüfung der Webhook-Signatur funktioniert
  • Die Rechnungserstellung liefert korrekte Daten
  • Der Zahlungsablauf leitet richtig weiter
  • Die Fehlerbehandlung deckt Antworten außerhalb von 2xx ab (4xx Validierung, 409 Konflikte)
  • Die Idempotenz über external_order_id funktioniert
  • Schlüssel-IDs von pk_test_ / rk_test_ auf pk_live_ / rk_live_ umstellen und Geheimnisse von sk_test_ auf sk_live_