Dokumen ini adalah kontrak endpoint untuk server agar kompatibel dengan aplikasi POS saat ini.
include atau exclude.ppn_percent dari server jika tersedia dan valid.include 11% (non-fatal).| Item | Nilai |
|---|---|
| Config key POS | ep_ppn_settings |
| Method | GET |
| Contoh path | /eusvc/NonRest/get_ppn_settings |
| Auth | Authorization: Bearer <access_token> |
| Query opsional | machine_id, cabang_id |
Authorization: Bearer <access_token> Accept: application/json
?machine_id=118933446257318&cabang_id=47
Server wajib mengembalikan struktur berikut agar parsing POS konsisten:
{
"status": 1,
"reason": "ok",
"message": "PPN setting loaded.",
"data": {
"ppn_mode": "include",
"ppn_percent": 11,
"policy_version": "2026-03-09T00:00:00Z",
"effective_from": "2026-03-09 00:00:00",
"scope": "global"
},
"trace_id": "eusvc-ppn-20260309-0001"
}
status harus 1.data.ppn_mode harus include atau exclude.data.ppn_percent harus integer 0..100.{
"status": 0,
"reason": "unauthorized",
"message": "Access token tidak valid atau tidak tersedia.",
"data": null,
"trace_id": "eusvc-ppn-20260309-0002",
"error": "jwt_expired"
}
Kode reason yang direkomendasikan:
unauthorizedforbiddeninvalid_payloadsetting_not_foundinternal_error
Jika endpoint belum dikonfigurasi, timeout, 404, payload invalid, atau server mengembalikan
status=0, POS tidak menghentikan proses sinkronisasi.
POS akan menerapkan fallback default lokal:
ppn_mode=include dan ppn_percent=11.
status/reason/message/data/trace_id.status=0 dengan reason jelas, bukan HTML/error mentah.{
"status": 1,
"reason": "ok",
"data": {
"ppn_mode": "include",
"ppn_percent": 11
},
"trace_id": "..."
}
{
"status": 1,
"reason": "ok",
"data": {
"ppn_mode": "exclude",
"ppn_percent": 11
},
"trace_id": "eusvc-ppn-20260309-0015"
}