This page has not been translated to English yet. Showing the Indonesian version.
Midtrans
Panduan lengkap menghubungkan Midtrans Payment Gateway dengan Alusio: registrasi merchant, Payment Notification URL, Server Key/Client Key, dan memilih metode pembayaran di checkout.
Midtrans adalah payment gateway lokal Indonesia (anak perusahaan GoTo) yang menyediakan satu integrasi untuk semua metode pembayaran populer: Virtual Account semua bank, GoPay, ShopeePay, QRIS, kartu kredit, sampai gerai retail (Indomaret, Alfamart). Alusio terintegrasi via Snap — halaman pembayaran hosted yang otomatis adaptif di mobile maupun desktop.
Midtrans bisa diaktifkan bersamaan dengan gateway lain (Xendit, Duitku, Stripe, PayPal). Customer akan melihat semua opsi yang aktif di halaman checkout.
Prasyarat
- Akun merchant Midtrans — daftar di dashboard.midtrans.com.
- Akses ke Dashboard Midtrans (Sandbox untuk testing, Production untuk live).
- Toko Alusio sudah aktif. Custom domain tidak diperlukan — Midtrans bekerja di
[slug].alusio.commaupun custom domain.
Langkah 1 — Daftar & Verifikasi Akun Midtrans
- Buka dashboard.midtrans.com dan klik Daftar.
- Lengkapi profil bisnis: nama merchant, NPWP/KTP, rekening pencairan (settlement), dan dokumen pendukung yang diminta.
- Tunggu proses verifikasi tim Midtrans (umumnya 1–5 hari kerja untuk akun Production).
- Selagi menunggu, Anda bisa langsung memakai environment Sandbox tanpa verifikasi untuk testing penuh.
Langkah 2 — Salin Server Key & Client Key
- Login ke Dashboard Midtrans. Di pojok kiri-atas, pastikan environment yang dipilih sesuai: Sandbox untuk testing, Production untuk live.
- Buka menu Settings → Access Keys.
- Catat dua nilai berikut:
- Server Key — diawali
SB-Mid-server-(Sandbox) atauMid-server-(Production). Bersifat rahasia. - Client Key — diawali
SB-Mid-client-(Sandbox) atauMid-client-(Production). Dipakai di sisi browser.
- Server Key — diawali
Catatan: Key Sandbox dan Production berbeda. Pastikan Anda menyalin dari environment yang sesuai dengan Mode Produksi yang akan diaktifkan di Alusio.
Langkah 3 — Atur Payment Notification URL
Payment Notification URL adalah endpoint yang dipanggil Midtrans saat status transaksi berubah (capture, settlement, expire, cancel). Tanpa URL ini, order Alusio Anda tidak akan otomatis berubah ke status Paid.
- Masih di Dashboard Midtrans, buka Settings → Configuration.
- Cari kolom Payment Notification URL dan isi dengan (ganti
alus.iodengan domain instance Alusio Anda):https://alus.io/api/webhooks/midtrans - Kolom Finish / Unfinish / Error Redirect URL boleh dikosongkan — Alusio sudah mengelola redirect dari sisi checkout.
- Klik Save.
- Ulangi langkah ini untuk environment Production setelah akun terverifikasi.
Langkah 4 — Pasang Kredensial di Alusio
- Buka dashboard Alusio, masuk ke Settings → Payments.
- Pilih tab Midtrans.
- Isi form:
- Server Key — dari Langkah 2.
- Client Key — dari Langkah 2.
- Mode Produksi — biarkan off jika masih Sandbox; aktifkan saat siap menerima pembayaran sungguhan.
- Klik Simpan Pengaturan Midtrans.
Langkah 5 — Pilih Metode Pembayaran yang Ditawarkan
Di bawah form kredensial ada seksi Metode yang Ditawarkan di Checkout. Centang metode yang ingin ditampilkan di Snap. Pilihan tersedia:
- Virtual Account — BCA, BNI, BRI, Mandiri (Bill Payment), Permata, CIMB, Other Banks.
- eWallet — GoPay, ShopeePay, QRIS.
- Kartu Kredit — Visa, Mastercard, JCB, Amex (tergantung paket merchant).
- Retail / Cstore — Indomaret, Alfamart (bayar tunai di kasir).
- Paylater & Cicilan — Akulaku, Kredivo, BCA Klikpay, dan cicilan 0% bank tertentu.
- Direct Debit — BCA Klikpay, CIMB Clicks, Mandiri eCash, dll.
Jika tidak ada yang dicentang, Snap akan otomatis menampilkan semua metode yang aktif di akun merchant Anda.
Langkah 6 — Uji Transaksi Sandbox
- Pastikan Mode Produksi di Alusio masih off dan kredensial yang dipasang adalah Sandbox.
- Buka site Anda, tambahkan produk ke cart, lalu lanjut ke checkout.
- Pilih salah satu metode Midtrans di Snap — misal BCA Virtual Account.
- Di halaman Snap Sandbox, gunakan kredensial test resmi Midtrans (mis. kartu kredit
4811 1111 1111 1114, OTP112233) atau klik tombol simulasi yang disediakan untuk VA. - Kembali ke Alusio dan buka Orders — status order harus berubah menjadi Paid dalam beberapa detik (lewat webhook).
Langkah 7 — Naik ke Mode Produksi
- Pastikan akun Midtrans sudah terverifikasi dan aktif di environment Production.
- Salin Server Key dan Client Key Production dari Dashboard.
- Pastikan Payment Notification URL Production sudah diisi sama persis seperti Langkah 3.
- Di Alusio, ganti Server Key & Client Key dengan kredensial Production, lalu aktifkan toggle Mode Produksi.
- Simpan, lalu lakukan satu transaksi kecil (mis. produk Rp10.000) sebagai verifikasi end-to-end.
Troubleshooting
Gejala | Penyebab & Solusi |
|---|---|
Order tetap Pending meski sudah dibayar | Payment Notification URL salah atau belum diisi. Pastikan persis |
Error "401 Unauthorized" saat membuka Snap | Server Key tidak cocok dengan environment. Key Sandbox tidak bisa dipakai saat Mode Produksi aktif (dan sebaliknya). |
Snap kosong / metode pembayaran tidak muncul | Metode tersebut belum diaktifkan di Dashboard Midtrans (Settings → Snap Preferences) atau belum di-enable oleh tim Midtrans. Hubungi support@midtrans.com. |
Customer sudah bayar tapi tidak diredirect kembali | Normal untuk metode VA & retail — Snap menampilkan instruksi, customer bayar di luar halaman web. Status akan otomatis update via webhook saat dana masuk. |
Pembayaran kartu kredit ditolak terus di Production | 3DS / Fraud Detection di Midtrans memblokir transaksi. Cek menu Transactions di Dashboard untuk melihat alasan (mis. deny by FDS) dan atur threshold di Settings → Fraud Detection. |
Catatan Keamanan
- Server Key bersifat rahasia — jangan tampilkan di screenshot publik, repo Git, atau halaman frontend.
- Jika Server Key bocor, lakukan regenerate di Dashboard Midtrans dan update di Alusio sesegera mungkin.
- Webhook Midtrans diverifikasi via signature SHA-512 berbasis Server Key — Alusio otomatis menolak notifikasi palsu, jadi tidak ada konfigurasi tambahan yang perlu Anda lakukan di sisi keamanan webhook.