Suka Duka Integrasi API: Pengalaman dari Lapangan
Cerita teknis dan non-teknis tentang integrasi API — dari payment gateway, WhatsApp API, hingga OAuth. Pelajaran berharga buat developer yang baru mulai.
- API
- integrasi
- pengalaman
- backend
- Midtrans
- WhatsApp API
- OAuth
Integrasi API adalah salah satu pekerjaan yang paling sering kami lakukan di Dot Code Indonesia. Dari payment gateway, WhatsApp API, Google Maps, sampai integrasi dengan sistem ERP klien. Tiap proyek punya cerita sendiri — ada yang mulus, ada juga yang bikin begadang.
Suka: Integrasi Payment Gateway (Midtrans)
Proyek pertama kami integrasi Midtrans untuk toko online. Dokumentasi rapi, ada dashboard testing (sandbox), dan SDK untuk Next.js sudah siap pakai.
Yang bikin seneng:
- Testing sandbox — Bisa simulasi transaksi tanpa uang asli
- Webhook handler — Midtrans otomatis notify backend kita pas transaksi sukses/gagal
- Banyak pilihan payment — QRIS, virtual account, credit card tinggal enable
Kode notifikasi webhook-nya sederhana:
export async function POST(req: Request) {
const notification = await req.json()
const orderId = notification.order_id
const status = notification.transaction_status
if (status === "settlement") {
await prisma.order.update({
where: { id: orderId },
data: { status: "paid" },
})
}
return Response.json({ ok: true })
}
Duka: Integrasi WhatsApp API (Twilio)
Nah, ini yang bikin pelajaran berharga. Kami perlu fitur notifikasi WhatsApp otomatis untuk konfirmasi pesanan. Awalnya pakai Twilio.
Masalah yang dihadapi:
- Nomor harus terverifikasi dulu — Gak bisa langsung kirim ke sembarang nomor di sandbox
- Template message wajib — Twilio gak bisa kirim WhatsApp tanpa template yang disetujui Meta
- Proses approval lama — Template review bisa 1-2 hari kerja
- Cost per message — Cukup mahal untuk notifikasi dalam jumlah besar
Solusi: Akhirnya migrasi ke WhatsApp Gateway lokal yang support direct send tanpa template, cocok untuk notifikasi transaksi.
Suka: Integrasi OAuth Google Login
Fitur login dengan Google selalu diminta klien. Implementasinya pakai NextAuth.js — tinggal tambah provider Google dan masukin client ID/secret dari Google Cloud Console.
import NextAuth from "next-auth"
import Google from "next-auth/providers/google"
export const { handlers, auth } = NextAuth({
providers: [Google({ clientId: "...", clientSecret: "..." })],
})
Yang bikin seneng: pengguna tinggal klik satu tombol — gak perlu bikin akun baru. Conversion rate login naik drastis.
Duka: REST API Tanpa Dokumentasi
Ini momok terbesar. Beberapa kali kami integrasi dengan API pihak ketiga yang dokumentasinya:
- Tidak update (method udah deprecated tapi masih tertulis)
- Contoh response beda sama aslinya
- Error code gak dijelasin
Pelajaran: Selalu minta akses sandbox/demo dulu sebelum tanda tangan kontrak. Kalau dokumentasi berantakan dari awal, API-nya biasanya juga bermasalah.
Tips dari Pengalaman
- Always use sandbox first — Jangan pernah integrasi langsung ke production
- Handle error gracefully — API bisa down kapan aja. Pastikan app tetap jalan dan user dikasih pesan yang jelas
- Log everything — Simpan log request/response API buat debugging
- Baca rate limit — Jangan sampai kena block karena request berlebihan
- Siapkan fallback — Misal payment gateway utama down, ada backup gateway lain
Kesimpulan
Integrasi API itu seperti teka-teki — kadang frustrating, tapi selalu ada kepuasan tersendiri pas akhirnya nyambung. Kuncinya: sabar, baca dokumentasi bener-bener, dan jangan sungkan kontak support.
"API integration is 10% coding and 90% reading documentation."