Skip to main content
POST
Simulate payment
Instantly completes a test payment and delivers the full webhook sequence to your test endpoint, exactly like a live payment would (is_test: true on every event). This is the backbone of sandbox testing.

Requirements

  1. The payment must be a test payment (created with a tri_test_... key) — live payments return 403.
  2. Your merchant account must have an active test webhook endpoint that acknowledges the delivery. Without one, the simulation is refused with 400 so a silent integration can’t masquerade as live:
400 — no test webhook
Webhook management lives in your dashboard (Developers → Webhooks). Create a test endpoint pointing at your server (use a tunnel like ngrok for localhost), then come back and simulate.

The happy path

1

Create a test payment

POST /payments with your tri_test_... key → open the returned checkout_url.
2

Generate the deposit wallet

On the checkout page (or via Generate deposit wallet) — the customer picks the chain.
3

Simulate

Click Simulate Payment on the hosted checkout, or call this endpoint. The session flips to completed, a synthetic TEST_... transaction hash is recorded, and your webhook receives payment.confirmed → payment.completed.
4

Verify your handler

Confirm your signature check passes and your order updates. Only then switch to live keys (see Testing).
Calling it on an already-completed payment is safe: 200 { "message": "Payment already completed", "status": "completed" }.

Authorizations

x-api-key
string
header
required

Path Parameters

id
string<uuid>
required

Response

Simulated successfully (or already completed)