SatLane
Documentation

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:

  1. Updates the invoice status in our DB
  2. Fires the matching webhook with livemode: false
  3. 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"
  }'
FieldTypeRequiredNotes
eventstringyesOne of: seen, paid, underpaid, overpaid, expired, late_paid, reverted, cancelled
amount_satsstringoptionalOverride 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.