REFERENSI API · PRODUKSI DAN SANDBOX
Buat penawaran prabayar
POST /quotes
Scope: quotes:write. Transaksi produksi mengikuti status layanan dan batas akun.
Parameter
| Nama | Lokasi | Wajib | Ketentuan |
|---|---|---|---|
Idempotency-Key | header | Ya | Pertahankan UUID yang sama untuk retry payload yang sama. |
JSON body
| Field | Tipe | Wajib | Ketentuan |
|---|---|---|---|
product_code | string | Ya | Ikuti nilai dari katalog atau respons backend. |
client_reference | string | Ya | ID pembelian di aplikasi Anda; jangan gunakan nomor HP atau ID pelanggan. |
destination | Destination | Ya | Ikuti nilai dari katalog atau respons backend. |
scenario | string | Tidak | Hanya sandbox. |
Contoh request
curl
# Simpan API key di environment server. Pertahankan reference dan UUID untuk retry usaha yang sama.
curl --fail-with-body 'https://api.turbopulsa.com/sandbox/v1/quotes' \
-H "Authorization: Bearer $TURBOPULSA_API_KEY" \
-H 'Accept: application/json' \
-H "Idempotency-Key: $TURBOPULSA_REQUEST_UUID" \
-H 'Content-Type: application/json' \
--request POST --data '{
"product_code": "KODE_DARI_KATALOG",
"client_reference": "ORDER-CONTOH-1001",
"destination": {
"phone": "081200000000"
}
}'Ganti placeholder dengan ID/kode dari respons API. Gunakan UUID yang sama untuk retry usaha yang sama. Nilai tujuan tidak masuk URL, log, atau analytics.
Struktur respons
Ilustrasi · kontrak lengkap tersedia di OpenAPI
{
"data": {
"id": "20000000-0000-4000-8000-000000000001",
"client_reference": "ORDER-CONTOH-1001",
"product_code": "KODE_DARI_KATALOG",
"name": "Pulsa simulasi 5.000",
"destination": "********0000",
"price": 5050,
"charged": 0,
"currency": "IDR",
"transaction_kind": "prepaid",
"channel": "api",
"environment": "sandbox",
"status": "awaiting_confirmation",
"created_at": "2030-01-01T00:00:00Z",
"expires_at": "2030-01-01T00:05:00Z",
"confirmation_token": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"version": 1,
"bill": null
},
"meta": {
"environment": "sandbox",
"request_id": "10000000-0000-4000-8000-000000000001"
}
}