Skip to main content
Sandbox simulates the Lightning Network. You create invoices, receive payments, and send payments with the same API calls you use in production, and you get the same balance changes and webhooks. No real bitcoin moves. Sandbox invoices are real, signed testnet BOLT11 invoices: they start with lntb, decode in any Lightning library, and work in QR codes. Nothing pays a sandbox invoice on its own, so you trigger the payment in one of three ways: When an invoice is paid, your sandbox balance is credited and you receive the usual payment webhook, usually within a few seconds.

Create an invoice that settles itself

Full schema: Create invoice.
Request
Response (201)
status is pending on creation and moves to paid once the invoice settles. Check it with Get invoice.

Simulate a payment

No request body. The invoice must belong to your business, be unpaid, and not be expired.
Response (200)
Simulating a payment on an invoice that’s already paid returns 422 PRECONDITION_FAILED: “This invoice has already been paid.”

Send a payment

Pay any lntb invoice with Send payment:

Good to know

  • Sandbox can only pay testnet (lntb) invoices. Paying a mainnet lnbc invoice returns an error.
  • The normal balance check applies: paying more than your sandbox balance returns an insufficient-balance error.
  • Each invoice can be paid once.
  • Expired invoices can’t be paid or simulated.
  • Invoices created through a Lightning address can’t use auto_settle. Settle them with a simulated payment or a payment from another sandbox account.