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.

  1. Buat invoice pembayaran lewat API.
  2. Dapatkan URL checkout, lalu arahkan pelanggan ke halaman tersebut.
  3. Pelanggan membayar di halaman pembayaran.
  4. IegCode mengirim webhook ke callback URL Anda saat status berubah.
Base URL: semua endpoint di dokumentasi ini menggunakan https://api.iegcode.com/api.

Quickstart

Lima langkah untuk mulai menerima pembayaran:

  1. Daftar merchant di halaman register. Anda langsung mendapatkan API Key dan Webhook Token (mode TEST).
  2. Set callback URL di dashboard merchant untuk menerima webhook.
  3. Buat pembayaran dengan memanggil POST /api/v1/invoices.
  4. Arahkan pelanggan ke invoice_url yang dikembalikan API.
  5. 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
Penting: jangan pernah membagikan Live API Key Anda. Simpan di server Anda, bukan di kode frontend/browser.

Buat Pembayaran

Membuat invoice pembayaran baru dan mengembalikan URL checkout.

POST /api/v1/invoices

Parameter
ParameterTipeWajibDeskripsi
external_idstringopsionalReference ID unik milik Anda. Jika kosong akan dibuat otomatis.
customer_namestringyaNama pelanggan.
customer_emailemailyaEmail pelanggan.
customer_phonestringyaNomor telepon pelanggan.
descriptionstringyaDeskripsi pembayaran.
amountnumberyaNominal pembayaran dalam IDR, minimal 1.000.
currencystringopsionalMata uang, default IDR.
payment_methodstringopsionalKode channel pembayaran (cth: BCA_VA, QRIS, OVO). Jika diisi, pembayaran langsung dibuat untuk metode tersebut (melewati popup modal).
callback_urlurlopsionalURL 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:

StatusDeskripsi
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).

FieldDeskripsi
idID event webhook.
external_idReference ID invoice milik Anda.
statusStatus terbaru pembayaran.
amountNominal pembayaran.
currencyMata uang pembayaran.
payment_methodMetode pembayaran yang digunakan pelanggan.
paid_atWaktu 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"
}
Beri tahu IegCode bahwa webhook Anda sudah diproses dengan mengembalikan HTTP 200. Jika Anda mengembalikan kode selain 200, webhook dianggap gagal dan dikirim ulang.
Opsional: webhook tidak wajib. Jika tidak memasang callback URL, Anda cukup mengecek status secara berkala lewat 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
Webhook Token Anda berbeda untuk mode TEST dan LIVE. Gunakan token sesuai mode pembayaran. Anda dapat melihatnya di dashboard merchant.

Testing dengan Postman

Kami menyediakan koleksi API Postman untuk memudahkan Anda mencoba endpoint Payment IegCode tanpa harus menulis kode dari awal.

Download Postman Collection
  1. Unduh file JSON di atas.
  2. Buka aplikasi Postman, klik Import, lalu pilih file JSON tersebut.
  3. Buka tab Variables di dalam koleksi.
  4. Ganti value API_KEY dengan Sandbox API Key dari dashboard Anda.
  5. Jalankan request "Buat Pembayaran" dan klik link invoice_url yang didapatkan untuk mencoba UI pembayaran di mode Sandbox (dilengkapi dengan tombol simulasi sukses).

Kode Error

HTTPDeskripsi
401API Key tidak valid atau tidak dikirim.
403Mode LIVE digunakan tetapi bisnis belum terverifikasi. Selesaikan verifikasi di dashboard merchant.
404Invoice tidak ditemukan.
422Validasi gagal (misalnya nominal di bawah 1.000), atau gagal membuat pembayaran di penyedia — transaksi ditandai FAILED.
500Terjadi 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.

Sebelum beralih ke LIVE, pastikan callback URL Anda sudah benar (jika memakai webhook), webhook sudah teruji di mode TEST, dan proses verifikasi bisnis telah disetujui.