AKD Pay Docs
Bahasa IndonesiaID Dashboard
LIVE This documentation applies to both sandbox and live.

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#

  1. Base URL: https://sandbox-api.algoritmakitadigital.id → https://api.algoritmakitadigital.id.
  2. Live API key and project_id.
  3. Signing secret of the live webhook endpoint (whsec_…).
  4. Checkout display: render checkout.qr_string or checkout.account_number; do not depend on payment_url.
  5. Remove simulation calls from production code.

Full details on environments and payment methods: Environments and API addresses (in Bahasa Indonesia).