Get started
Sandbox vs Live
The same API in two separate environments. They differ in addresses, credentials, simulation, the payment page, and money.
Sandbox and live use the same API: endpoints, request bodies, responses, webhook events, signatures, error codes, and rate limits. They are separate systems: merchant, project, API key, webhook endpoint, and secret all differ.
| Sandbox | Live | |
|---|---|---|
| Payment API (base URL) | https://sandbox-api.algoritmakitadigital.id |
https://api.algoritmakitadigital.id |
| Merchant Dashboard | https://sandbox-merchant.algoritmakitadigital.id | https://merchant.algoritmakitadigital.id |
| Account | self sign-up, automatic | applied for from the dashboard, reviewed by the AKD team (onboarding flow) |
merchant_id, project_id, API key |
sandbox only | live only; a sandbox key does not work in live, and vice versa |
| Webhook endpoint and signing secret | sandbox only | live only; the live secret differs from the sandbox one |
| Money | test (Xendit Test mode), no real money | real money |
Payment simulation (POST /v1/payments/{id}/simulate) |
available | not available |
AKD payment page (payment_url, POST /v1/hosted/payments) |
available | none; show the QRIS or VA number in your app |
| Webhook signature scheme | legacy, both, or v2 |
use v2 |
| Label in Merchant Dashboard → Pengembang | SANDBOX |
LIVE |
What to change when moving to live#
- Base URL:
https://sandbox-api.algoritmakitadigital.id→https://api.algoritmakitadigital.id. - Live API key and
project_id. - Signing secret of the live webhook endpoint (
whsec_…). - Checkout display: render
checkout.qr_stringorcheckout.account_number; do not depend onpayment_url. - Remove simulation calls from production code.
Full details on environments and payment methods: Environments and API addresses (in Bahasa Indonesia).