Dokumentasi API
Integrasikan payment gateway IegCode ke aplikasi Anda. Buat pembayaran, terima webhook, dan kelola status secara otomatis.
Pendahuluan
API Payment IegCode memungkinkan Anda membuat pembayaran dan menerima status pembayaran secara otomatis. Anda cukup berinteraksi dengan satu API yang konsisten dari IegCode.
- Buat invoice pembayaran lewat API.
- Dapatkan URL checkout, lalu arahkan pelanggan ke halaman tersebut.
- Pelanggan membayar di halaman pembayaran.
- IegCode mengirim webhook ke callback URL Anda saat status berubah.
https://api.iegcode.com/api.
Quickstart
Lima langkah untuk mulai menerima pembayaran:
- Daftar merchant di halaman register. Anda langsung mendapatkan API Key dan Webhook Token (mode TEST).
- Set callback URL di dashboard merchant untuk menerima webhook.
- Buat pembayaran dengan memanggil
POST /api/v1/invoices. - Arahkan pelanggan ke
invoice_urlyang dikembalikan API. - Terima webhook ke callback URL Anda saat pembayaran berhasil.
Autentikasi
Kirim API Key Anda pada header Authorization dengan skema Bearer
di setiap request. Mode (TEST/LIVE) otomatis mengikuti key yang dipakai:
- Sandbox API Key (
pk_iegcode_sandbox_...) untuk pengujian. Transaksi berjalan di mode TEST. - Live API Key (
pk_iegcode_live_...) untuk transaksi uang sungguhan. Mode LIVE hanya aktif setelah bisnis Anda disetujui.
Authorization: Bearer pk_iegcode_sandbox_XXXXXXXXXXXXXXXXXXXXXXXXXXXX
Buat Pembayaran
Membuat invoice pembayaran baru dan mengembalikan URL checkout.
POST /api/v1/invoices
Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
external_id | string | opsional | Reference ID unik milik Anda. Jika kosong akan dibuat otomatis. |
customer_name | string | ya | Nama pelanggan. |
customer_email | ya | Email pelanggan. | |
customer_phone | string | ya | Nomor telepon pelanggan. |
description | string | ya | Deskripsi pembayaran. |
amount | number | ya | Nominal pembayaran dalam IDR, minimal 1.000. |
currency | string | opsional | Mata uang, default IDR. |
payment_method | string | opsional | Kode channel pembayaran (cth: BCA_VA, QRIS, OVO). Jika diisi, pembayaran langsung dibuat untuk metode tersebut (melewati popup modal). |
callback_url | url | opsional | URL webhook khusus invoice ini. Mengabaikan callback URL akun. |
Contoh Request (cURL)
# POST /api/v1/invoices curl -X POST https://api.iegcode.com/api/v1/invoices \ -H "Authorization: Bearer pk_iegcode_sandbox_XXXX" \ -H "Content-Type: application/json" \ -d '{ "customer_name": "Budi Santoso", "customer_email": "budi@example.com", "customer_phone": "081234567890", "description": "Pembayaran Paket Premium", "amount": 100000 }'
Contoh Response (201 Created)
# HTTP 201 { "id": "64f1c2b3e4a5f6c7d8e9f0a1", "external_id": "INV-20260801-ABCDE", "status": "PENDING", "amount": 100000, "currency": "IDR", "mode": "TEST", "payment_method": null, "paid_at": null, "invoice_url": "https://payment.iegcode.com/payment/status/INV-20260801-ABCDE", "created_at": "2026-08-01T10:00:00+07:00" }
Arahkan pelanggan ke invoice_url. Pelanggan akan melihat halaman checkout dengan modal berlogo bisnis Anda untuk memilih metode pembayaran yang mereka inginkan.
Cek Status Invoice
Mendapatkan detail invoice berdasarkan reference ID Anda atau ID transaksi IegCode.
GET /api/v1/invoices/{external_id}
Contoh Request (cURL)
# GET /api/v1/invoices/INV-20260801-ABCDE curl https://api.iegcode.com/api/v1/invoices/INV-20260801-ABCDE \ -H "Authorization: Bearer pk_iegcode_sandbox_XXXX"
Contoh Response (200 OK)
# HTTP 200 { "id": "64f1c2b3e4a5f6c7d8e9f0a1", "external_id": "INV-20260801-ABCDE", "status": "PAID", "amount": 100000, "currency": "IDR", "mode": "TEST", "payment_method": "EWALLET", "paid_at": "2026-08-01T10:05:00+07:00", "invoice_url": "https://payment.iegcode.com/payment/status/INV-20260801-ABCDE", "created_at": "2026-08-01T10:00:00+07:00" }
Status Pembayaran
Setiap invoice memiliki salah satu status berikut:
| Status | Deskripsi |
|---|---|
| PENDING | Pembayaran dibuat, menunggu pelanggan membayar. |
| PAID | Pembayaran berhasil. |
| FAILED | Pembayaran gagal. |
| EXPIRED | Waktu pembayaran habis. |
| CANCELED | Pembayaran dibatalkan. |
Status PAID bersifat final dan tidak akan berubah meskipun ada webhook datang belakangan.
Pengenalan Webhook
Saat status pembayaran berubah, IegCode mengirimkan notifikasi ke
callback_url yang Anda daftarkan.
Anda tidak perlu mengecek status secara terus-menerus (polling).
| Field | Deskripsi |
|---|---|
id | ID event webhook. |
external_id | Reference ID invoice milik Anda. |
status | Status terbaru pembayaran. |
amount | Nominal pembayaran. |
currency | Mata uang pembayaran. |
payment_method | Metode pembayaran yang digunakan pelanggan. |
paid_at | Waktu pembayaran berhasil (jika sudah dibayar). |
Contoh Payload Webhook
# POST <callback_url> { "id": "evt_8f2d91a5", "external_id": "INV-20260801-ABCDE", "status": "PAID", "amount": 100000, "currency": "IDR", "payment_method": "EWALLET", "paid_at": "2026-08-01T10:05:00+07:00" }
GET /api/v1/invoices/{external_id}.
Verifikasi Webhook
Untuk memastikan webhook benar-benar berasal dari IegCode, bandingkan header
x-callback-token pada request dengan Webhook Token Anda.
x-callback-token: <Webhook Token Anda>
Contoh verifikasi di PHP:
// $expectedToken = 'Webhook Token Anda' // $receivedToken = $_SERVER['HTTP_X_CALLBACK_TOKEN'] ?? '' if (!hash_equals($expectedToken, $receivedToken)) { return 'Invalid signature'; // tolak } return 'OK'; // HTTP 200, webhook valid
Testing dengan Postman
Kami menyediakan koleksi API Postman untuk memudahkan Anda mencoba endpoint Payment IegCode tanpa harus menulis kode dari awal.
Download Postman Collection- Unduh file JSON di atas.
- Buka aplikasi Postman, klik Import, lalu pilih file JSON tersebut.
- Buka tab Variables di dalam koleksi.
- Ganti value
API_KEYdengan Sandbox API Key dari dashboard Anda. - Jalankan request "Buat Pembayaran" dan klik link
invoice_urlyang didapatkan untuk mencoba UI pembayaran di mode Sandbox (dilengkapi dengan tombol simulasi sukses).
Kode Error
| HTTP | Deskripsi |
|---|---|
401 | API Key tidak valid atau tidak dikirim. |
403 | Mode LIVE digunakan tetapi bisnis belum terverifikasi. Selesaikan verifikasi di dashboard merchant. |
404 | Invoice tidak ditemukan. |
422 | Validasi gagal (misalnya nominal di bawah 1.000), atau gagal membuat pembayaran di penyedia — transaksi ditandai FAILED. |
500 | Terjadi kesalahan server. |
Mode Sandbox & Production
Setiap merchant memiliki mode: TEST atau LIVE .
- TEST — transaksi berjalan di sandbox. Tidak ada uang sungguhan. Ini mode default saat mendaftar dan dapat langsung digunakan.
- LIVE — transaksi berjalan di production dan melibatkan uang sungguhan. Mode ini hanya aktif setelah bisnis Anda disetujui melalui proses verifikasi di dashboard merchant.
Anda dapat mengganti mode kapan saja dari dashboard merchant. Ganti mode hanya memengaruhi pembayaran yang dibuat setelahnya — transaksi lama tetap di mode sebelumnya.
Setiap response invoice menyertakan field mode sehingga Anda dapat
membedakan transaksi sandbox dan live.