Sandbox Environment
LodinPay's sandbox is a fully isolated copy of the production gateway. You can exercise the full integration — payment link generation, hosted page, SCA, webhook, return — without moving real money or affecting your KYB profile.
Sandbox endpoint
https://api-preprod.lodinpay.com/merchant-service/extensions/pay/rtp
Production endpoint
Your production endpoint is provided during go-live onboarding. Do not point a live integration at the sandbox: production cards / IBANs will be rejected, and any successful test won't make it to real bank rails.
Sandbox credentials
- Sign in to the Lodin Console.
- Go to Settings → API keys → Sandbox.
- Copy your sandbox Client ID and Client Secret.
- Enter them in your plugin configuration or your API client.
Sandbox credentials are separate from production credentials. You can rotate sandbox keys freely without operational risk.
Walking the full flow
- Create a test order on your store (any amount ≥
0.01 €). - Select "Pay with Bank" at checkout.
- Get redirected to the Lodin sandbox hosted page (URL contains
pay-preprod.lodinpay.com). - Choose Test Bank (always available in sandbox) and complete SCA with the dummy credentials shown on-page.
- Land back on your return page after the simulated transfer.
- Verify on your server side: the webhook landed, the signature verified, the order moved to
PAID.
What to verify before going live
- Payment link is generated (HTTP 200 with
urlin the body). - Customer is redirected to the hosted payment page.
- Webhook arrives at your endpoint, signed and verifiable.
- Order state transitions
PENDING_PAYMENT → PAID. -
webhook.amountmatchesorder.amount(reconciliation passes). - Duplicate webhooks are no-ops (idempotency holds — replay the same event from the Console to confirm).
- Failed payments set the order to
PAYMENT_ERRORand restore the cart. - Return URL tampering is rejected (manually edit a parameter and confirm the return page errors out, but the order state stays correct).
- Webhook handler responds
200within 10 s, even under realistic load. - Logging is gated behind a debug flag — production won't dump
client_secretor full request bodies.
See also
- Test Credentials — credential locations and scripted test scenarios.
- Getting Started — full integration walk-through.
- Webhook Specification — what your handler must guarantee.