IAMs API v1 Public Spec

Panduan Integrasi IAMs API v1

Dokumen ini menjelaskan cara Anda mengirim data transaksi ke HIRS melalui IAMs API v1, termasuk skema payload, validasi, dan mekanisme keamanan.

Base: /api/iams/v1 HMAC + Timestamp + Nonce Mode: Batch Array
Quick Start
1
Generate Session Key
POST /generate-key
2
Sync Data
POST /sync
Mulai cepat โ†’
โšก

Ringkas

Saudara harus meminta session key sebelum mengirim data transaksi. Setiap request wajib memuat signature HMAC serta proteksi replay melalui timestamp + nonce.

Nonce dibuat oleh Anda untuk setiap request (unik dan tidak boleh dipakai ulang). Rekomendasi format: UUID v4.

Header (Tanpa X-)

Generate Session Key

Master-Key Timestamp Nonce

Sync Data

Session-Key Timestamp Nonce Signature

Nonce adalah nilai acak unik yang Anda buat untuk setiap request. Jangan pernah menggunakan nonce yang sama dua kali. Format yang disarankan: UUID v4.

๐Ÿ”‘

1) Generate Session Key

POST
Endpoint
/api/iams/v1/generate-key

Request Body:

{
  "vendor_id": "IMS"
}

Response Sukses:

{
  "ok": true,
  "session_key": "<string>",
  "expires_at": "2026-02-25T10:00:00Z"
}
๐Ÿ”„

2) Sync Data Transaksi

POST
Endpoint
/api/iams/v1/sync

Formula Signature:

HMAC_SHA256( raw_body + "." + Timestamp + "." + Nonce , session_key )

Request Body:

{
  "items": [
    {
      "no_spk": "25PDG01124",
      "tgl_spk": "2026-01-08T11:17:41Z",
      "kacab": "TJEN IMANUEL",
      "spv": "DENI USMAN EFENDI",
      "nik_spv": "1271211604790006",
      "jabatan_spv": "SPV II",
      "sales": "MEGA FITRIA",
      "nik_sales": "1371025306850011",
      "jabatan_sales": "SM",
      "type": "A351RA-GMEFJ 1.2 G M/T",
      "nama_debitur": "MIZEL PUTRA KAMTA QQ SRI LENA HARTATI",
      "nama_pembeli": "SRI LENA HARTATI",
      "nama_di_stnk": "SRI LENA HARTATI",
      "no_rangka": "MHKAB1BC6TJ077634",
      "no_mesin": "WA-A228957",
      "jenis_pembelian": "CASH/KREDIT/CAD",
      "leasing": "PT MAYBANK INDONESIA FINANCE",
      "wilayah": "PADANG",
      "nilai_asuransi": 8102220,
      "tr_asuransi": 2025555,
      "tr_n_asuransi": 5647506,
      "disc_unit": 10000000,
      "referensi": "1000000",
      "titipan": false,
      "model": "AGYA",
      "discount_stock_unit": 10000000,
      "status_batal": "TIDAK BATAL",
      "tgl_pelunasan_leasing": "2026-02-13"
    }
  ]
}

Response Sukses:

{
  "ok": true,
  "processed": 1
}
๐Ÿ“…

Format Tanggal

ISO 8601

2026-01-08T11:17:41Z

Legacy

2026-01-08 11:17:41

๐Ÿงฉ

Aturan Upsert

no_spk bersifat unik. Jika no_spk yang sama dikirim kembali, data akan di-update sesuai payload terbaru.

๐Ÿงช

Contoh cURL

Generate Key:

curl -X POST "https://<host>/api/iams/v1/generate-key" \
  -H "Content-Type: application/json" \
  -H "Master-Key: <master_key>" \
  -H "Timestamp: 1708762800" \
  -H "Nonce: 6b31b4d3-5c2d-4f7a-9a2b-9d1b3b0a1f58" \
  -d '{"vendor_id":"IMS"}'

Sync:

curl -X POST "https://<host>/api/iams/v1/sync" \
  -H "Content-Type: application/json" \
  -H "Session-Key: <session_key>" \
  -H "Timestamp: 1708762800" \
  -H "Nonce: 9ad0f0c2-2d74-4f3f-9b9a-bc5c74c3f96f" \
  -H "Signature: <signature>" \
  -d '<raw_json_body>'
โšก Template Postman (Rekomendasi)

Buka koleksi siap pakai di Postman untuk uji cepat.

Buka di Postman โ†’
โš ๏ธ

Error Teknis

Gunakan daftar ini untuk memetakan error ke penyebab yang umum.

401 Auth / Signature
Master key-nya salah ya.
Session key belum diisi.
Session key sudah tidak valid.
Signature belum diisi.
Signature-nya gak cocok.
Timestamp tidak berada dalam rentang waktu yang diizinkan.
Timestamp belum diisi.
Format timestamp gak valid.
Nonce belum diisi.
409 Replay
Nonce sudah pernah dipakai.
403 Akses
IP kamu belum diizinkan.
404 Referensi
Data pihak pengirim tidak ketemu.
422 Validasi
Format tgl_spk belum bener.
Format tgl_pelunasan_leasing belum bener.