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_vgOw

See 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.

See Environments → Going live.

Prefer a guided walkthrough? Request a demo.

Next Steps