Panduan ini membahas cara Anda mengirim data transaksi ke sistem kami lewat IAMs API v1. Fokusnya: skema payload, validasi teknis, dan mekanisme keamanan agar request tetap aman dan konsisten.
Anda perlu meminta session key sebelum mengirim data transaksi. Setiap request wajib memuat signature HMAC dan proteksi replay via timestamp + nonce.
Nonce dibuat oleh Anda untuk setiap request (unik dan tidak boleh dipakai ulang). Rekomendasi format: UUID v4.
Untuk bisa mengakses IAMs API v1, Anda wajib memiliki:
Jika belum memiliki keduanya, silakan minta dulu ke tim kami. Tanpa kredensial ini, request akan ditolak.
Gunakan base berikut untuk akses publik:
Catatan:
/v1/generate-key dan /v1/sync.Generate Session Key
Sync Data
Nonce adalah nilai acak unik yang Anda buat untuk setiap request. Jangan pernah menggunakan nonce yang sama dua kali. Format yang disarankan: UUID v4.
/v1/generate-key
Request Body:
{
"vendor_id": "iams"
}
Response Sukses:
{
"status": true,
"message": "Session key dibuat.",
"data": {
"session_key": "<string>",
"expires_at": "2026-02-25T10:00:00Z"
}
}
/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",
"tgl_transaksi": "2026-01-08T13:05:00Z",
"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,
"proporsional": 1250000,
"status_batal": "TIDAK BATAL",
"tgl_pelunasan_leasing": "2026-02-13",
"status_closing": false
}
]
}
Field proporsional wajib dikirim sebagai angka / numeric (nominal).
null atau string "null" (case-insensitive).
Keduanya dianggap kosong oleh sistem.
tgl_transaksi wajib diisi (tidak boleh null atau kosong).
{
"items": [
{
"no_spk": "25PDG01124",
"tgl_pelunasan_leasing": null,
"referensi": "null",
"status_closing": "null"
}
]
}
Response Sukses:
{
"status": true,
"message": "Sync berhasil.",
"data": {
"processed": 1
}
}
ISO 8601
2026-01-08T11:17:41Z
Legacy
2026-01-08 11:17:41
no_spk bersifat unik. Jika no_spk yang sama dikirim kembali, data akan di-update sesuai payload terbaru.
Generate Key:
curl -X POST "https://api.toyotaintercom.com/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":"iams"}'
Sync:
curl -X POST "https://api.toyotaintercom.com/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>'
Buka koleksi siap pakai di Postman untuk uji cepat.
Buka di Postman โPola error mengikuti praktik umum API di Indonesia: HTTP status resmi + code internal + message ringkas.
HTTP status tetap resmi (4xx/5xx). Di body ada code internal + message yang jelas. Opsional tambah details untuk info teknis.
{
"status": false,
"code": "TIMESTAMP_OUT_OF_WINDOW",
"message": "Timestamp di luar rentang waktu yang diizinkan.",
"details": {
"max_skew_seconds": 300
}
}