Skip to Content

Sandbox Environment

The sandbox environment provides a safe space to develop and test your Open Banking integration without affecting real user data or transactions.

Key Features

  • No real user data — All accounts and transactions are simulated
  • Full API coverage — All production endpoints are available in sandbox
  • Simulated consent — Test the user authorization flow without the Lunar app
  • Stateful payment flows — Initiated payments persist in memory so you can test the full lifecycle (create, retrieve, poll, delete)

Base URLs

FunctionalityBase URL
AISP/PISPhttps://sandbox.openbanking.prod.lunar.app
Registrationhttps://tpp.openbanking-sandbox.prod.lunar.tech

Getting Started

  1. Obtain an eIDAS certificate — Get a QWAC certificate from a Qualified Trust Service Provider 
  2. Register your TPP — Use your certificate to register as a TPP
  3. Authenticate — Obtain access tokens using your client credentials
  4. Make API calls — Start testing with the Account Information and Payment Initiation APIs

Sandbox Data

Accounts and Transactions

Each authenticated user receives a fixed set of sandbox accounts (DKK and SEK) with deterministic IDs, balances, and synthetic transaction history. The accounts are generated per user and remain consistent across requests.

Payment State

The sandbox maintains in-memory state for initiated payments. This means you can test the full payment lifecycle:

  1. Initiate a payment (POST) — the payment is stored and a paymentId is returned
  2. Retrieve the payment (GET) — returns the payment details with status
  3. Poll the payment status (GET /polling/{paymentId}/status) — returns APPROVED with the redirectUrl you provided
  4. Delete/cancel the payment (DELETE) — removes the payment from state

After deletion:

  • Standing orders: The order no longer appears in the list. Polling resets to AWAITING_APPROVAL with an empty redirectUrl.
  • SE Bank Giro / SE Plus Giro: GET returns 404. Polling resets to AWAITING_APPROVAL with an empty redirectUrl.

All payment state is held in memory and expires after 24 hours. Restarting the service resets all payment state to empty.

Polling Endpoint

The sandbox provides a polling endpoint to check payment approval status:

GET /polling/{paymentId}/status
FieldTypeDescription
statusstringAPPROVED (after initiation) or AWAITING_APPROVAL
redirectUrlstringThe redirect URL provided during initiation

Differences from Production

AspectSandboxProduction
User consentSimulated consent flowReal Lunar app consent
DataDeterministic test accountsReal user data
Payment stateIn-memory, auto-approved, 24h TTLPersistent, requires user consent
AISP/PISP URLsandbox.openbanking.prod.lunar.appopenbanking.prod.lunar.app
Registration URLtpp.openbanking-sandbox.prod.lunar.techtpp.openbanking.prod.lunar.tech

Next Steps

Last updated on