Sandbox and simulate
Sandbox and simulate
While the store is in test mode, exercise every webhook path without waiting on the chain.
Dashboard Simulator
On each invoice's detail page, the Simulator card can trigger any event (with optional amount override for under/overpaid). Each click:
- Updates the invoice status in our DB
- Fires the matching webhook with
livemode: false - Pushes the new status over SSE/WebSocket to open checkout pages
API: POST /v1/invoices/:id/simulate
Test-mode invoices only. Auth: API key or vendor session.
POSTcURL
curl -X POST https://api.satlane.com/v1/invoices/22872e14-4216-4c78-8fe1-088ea649f3c2/simulate \
-H "Authorization: Bearer sl_test_XXX" \
-H "Content-Type: application/json" \
-d '{
"event": "paid",
"amount_sats": "150234"
}'
| Field | Type | Required | Notes |
|---|---|---|---|
event | string | yes | One of: seen, paid, underpaid, overpaid, expired, late_paid, reverted, cancelled |
amount_sats | string | optional | Override simulated payment amount. Defaults: full amount for paid/seen, ~60% for underpaid, ~150% for overpaid. Ignored for expired / cancelled / reverted. |
Response: { "invoice": { … } } with the updated public invoice.
Simulations never bump unbilledFeeSats. Legacy alias: POST /v1/invoices/:id/simulate_paid (same as event: "paid").
Once your handler returns 200 for the events you care about, flip the store to live, register your mainnet xpub, and go to production.