DRW × AccurateDokumentasi API

DRW × Accurate — Dokumentasi

Connector & CRUD tester untuk Accurate Online API (akuntansi/ERP + POS Indonesia), berjalan di accurate.drwapp.com.

Ikhtisar

Accurate punya 2 jalur autentikasi. Tool ini memakai jalur API Token (signature) — server-to-server, tanpa browser/OAuth.

OAuth 2.0API Token (dipakai tool ini)
Kredensialclient_id + client_secretAPI Token aat. + signature secret
Browser/loginYa (consent)Tidak
Header dataBearer + X-SESSION-IDBearer + X-Api-Timestamp + X-Api-Signature

Arsitektur 2-host: account.accurate.id (akun/token) → host database (mis. odin.accurate.id) untuk data.

Autentikasi

Ke tool ini

Semua /api/* (kecuali /api/health) butuh App Access Key:

Authorization: Bearer <APP_ACCESS_KEY>
# atau header X-App-Key: <APP_ACCESS_KEY>

Tool → Accurate (signature)

timestamp = unix detik (time())
signature = HMAC_SHA256(timestamp, SIGNATURE_SECRET)   // output HEX

Authorization:    Bearer {API_TOKEN aat.NTA…}
X-Api-Timestamp:  {timestamp}
X-Api-Signature:  {signature}
X-Language-Profile: EN

Yang ditandatangani hanya nilai timestamp. Host database diresolusi dari api-token.do (di-cache 1 jam).

API Connector (di tool ini)

MethodPathAuthDeskripsi
GET/api/healthHealth check
GET/api/tokenApp KeyInfo database/lisensi/user (api-token.do) — tes koneksi
GET/api/catalogApp KeyKatalog resource (untuk UI/discovery)
ANY/api/accurate/{resource}/{action}App KeyProxy generik ke Accurate (CRUD semua resource)

OAuth 2.0 — akses atas-nama-user

Alternatif jalur API Token. Cocok bila tool harus bertindak sebagai user Accurate (consent di browser). Token disimpan server-side & auto-refresh.

MethodPathDeskripsi
GET·browser/oauth.php?action=login&key=APP_KEYMulai consent (redirect ke Accurate)
GET·callback/oauth.php?code=…&state=…Tukar code→token, auto open-db pertama
GET·browser/oauth.php?action=logout&key=APP_KEYPutuskan sesi OAuth
GET/api/oauth/statusStatus (connected, scope, db, exp)
GET/api/oauth/db-listDaftar database (db-list.do)
POST/api/oauth/open-db?id=Pilih database aktif (session+host)
ANY/api/oauth/accurate/{resource}/{action}Proxy CRUD via OAuth

Beda dgn API Token: OAuth pakai Authorization: Bearer {access_token} + X-SESSION-ID (dari open-db), tanpa signature. ACCURATE_OAUTH_SCOPE di config HARUS subset scope terdaftar aplikasi. Di UI: tab OAuth → Sambungkan, lalu CRUD Tester pilih Auth mode = OAuth.

Proxy Generik — CRUD semua API

Satu route menjangkau semua resource Accurate. Pemetaan:

TujuanTool→ Accurate
ListGET /api/accurate/item/list?sp.pageSize=10GET {host}/accurate/api/item/list.do
DetailGET /api/accurate/item/detail?id=98GET …/item/detail.do?id=98
Create/UpdatePOST /api/accurate/item/save + body JSONPOST …/item/save.do
DeletePOST /api/accurate/item/delete?id=98POST …/item/delete.do?id=98

GET → query diteruskan; POST → body JSON diteruskan (query juga diteruskan, mis. ?id=). Respons Accurate diteruskan apa adanya ({ s, d, sp }).

Keuangan / Akuntansi slug terverifikasi live

Resource keuangan (diuji list.dos:true pada DB Retail Sample):

Catatan penting: Accurate tidak mengekspos endpoint laporan keuangan (neraca / laba-rugi / buku besar / neraca saldo) sebagai list.do — API-nya berorientasi resource transaksional. Untuk saldo akun, pakai glaccount/detail; untuk laporan, agregasi sisi klien dari journal-voucher + glaccount. Slug yang TIDAK ada (mis. bank-payment, fund-transfer, trial-balance) membalas "URL API tidak tepat".

Katalog Resource

Ambil katalog lengkap (modul + resource + action + contoh payload):

GET /api/catalog
Authorization: Bearer <APP_ACCESS_KEY>

Modul: Master Data · Penjualan · Pembelian · Keuangan/Akuntansi · Persediaan.

Registrasi & Daftar Token

  1. Daftar trial: accurate.id/trial/aol
  2. Developer Console → Add Application → Client ID, Client Secret, App Key, Signature Secret
  3. Accurate Online → Pengaturan → Accurate Store → tab API Token → hubungkan app → API Token aat.NTA…
  4. Pasang aat. + signature secret ke backend/config.php
TokenPeran
Client ID / SecretOAuth (atas nama user)
App KeyIdentitas aplikasi (bukan bearer)
Signature SecretKunci HMAC tanda tangan
API Token aat.Bearer jalur API Token — yang dipakai tool ini

Contoh curl

# Tes koneksi
curl -H "Authorization: Bearer $APP_KEY" https://accurate.drwapp.com/api/token

# List item
curl -H "Authorization: Bearer $APP_KEY" \
  "https://accurate.drwapp.com/api/accurate/item/list?sp.pageSize=5&fields=id,no,name"

# List akun (keuangan)
curl -H "Authorization: Bearer $APP_KEY" \
  "https://accurate.drwapp.com/api/accurate/glaccount/list?sp.pageSize=10"

# Buat customer
curl -X POST -H "Authorization: Bearer $APP_KEY" -H "Content-Type: application/json" \
  -d '{"customerNo":"CUST-TEST","name":"Pelanggan Test"}' \
  https://accurate.drwapp.com/api/accurate/customer/save