Get Started
Sandbox-first quickstart for the Amboss Payments API. Create an environment, mint a key, receive a test payment, and listen for webhooks in minutes.
Sandbox-first onboarding for the Amboss Payments API. You'll create a sandbox environment, mint an API key, receive a test payment, and listen for the corresponding webhook — all before touching a live node.
Every step below can also be done from the dashboard at rails.amboss.tech/pay. Use the UI to bootstrap; use the API for everything you want to automate.
Prefer TypeScript? The SDK quickstart walks the same flow with a typed client instead of raw GraphQL.
Create an account
Sign up at rails.amboss.tech. The first account on a team is the master account — the only role that can create environments and mint API keys.
Create a sandbox environment
Click "Create Sandbox Environment" on the dashboard, or call the API. Sandbox auto-provisions wallets for every available asset and supports deterministic test transitions via metadata flags.
See Environments for the API mutation and the amb_sandbox_behavior test hook.
Create a wallet (if needed)
Sandbox auto-creates wallets for every asset; in live you create them on demand. One wallet = one asset = one balance.
See Wallets for the create mutation, asset discovery, and amount precision rules.
Mint a service API key
Generate a key scoped to your sandbox environment with PAYMENTS: WRITE, WALLETS: WRITE, and WEBHOOKS: WRITE permissions. The plaintext_key is returned once — save it immediately.
All subsequent API calls use the x-api-key header:
x-api-key: amb_test_PvDaoBz6TXhuMKxk0VkckiPUTX9BTSDyCT2Pqc_vgOwSee API Keys for permissions and rotation.
Receive a test payment
Call create_receive with metadata.amb_sandbox_behavior = "complete". The invoice auto-settles after a short delay and fires payment.completed:
await client.request(CREATE_RECEIVE, {
input: {
wallet_id: walletId,
amount: "100000",
metadata: JSON.stringify({ amb_sandbox_behavior: "complete" }),
},
});See Receive Payments for the full input reference.
Listen for the webhook
Register an endpoint with payment.completed in event_filters. In sandbox you can point it at a temporary URL via webhook.site to inspect the payload, or use the dashboard's "Generate test URL" button.
Dedupe on the envelope id — webhooks deliver at-least-once.
See Webhooks for the payload shape, signature verification, and retry behaviour.
Try sending
Call create_send with a BOLT11 invoice (request: { bolt11 }) or a Lightning Address (address: { lightning_address, amount }). In sandbox, set metadata.amb_sandbox_behavior to drive the terminal state.
See Send Payments for both paths and network constraints.
Go live
When the sandbox flow works end-to-end, click "Go Live" in the dashboard. KYB is collected via Stripe; afterwards you can create a LIVE environment, mint amb_live_… keys, and create wallets that route real Lightning traffic.
Prefer a guided walkthrough? Request a demo.
Next Steps
Payments
GraphQL API for sending, receiving, and settling payments in USDT, USDC, and BTC over Lightning. Sub-second settlement, near-zero fees, 24/7, no chargebacks.
Environments
Environments scope wallets, API keys, and webhook endpoints in the Amboss Payments API. Use sandbox first, then promote to production.