← Writing
Fintech & payments · 5 menit baca

Webhook & Idempotency Dijelaskan Sederhana (dan Kenapa Bisnis Anda Harus Peduli)

Ada dua kata teknis yang, kalau vendor Anda tidak menanganinya dengan benar, akan diam-diam merugikan bisnis Anda: webhook dan idempotency. Anda tak perlu jadi programmer untuk paham kenapa keduanya penting.

Kebanyakan pemilik bisnis tak pernah mendengar kata "webhook" atau "idempotency" — sampai sistem pembayaran mereka membuat kesalahan yang mahal karena keduanya diabaikan. Anda tak perlu memahami kodenya. Tapi memahami kenapa keduanya penting akan membuat Anda tahu pertanyaan yang benar untuk ditanyakan ke siapa pun yang membangun sistem Anda.

Webhook: bagaimana sistem tahu pembayaran benar-benar lunas

Bayangkan pelanggan membayar lewat payment gateway. Bagaimana sistem Anda tahu pembayaran itu berhasil? Ada dua cara, dan hanya satu yang aman.

  • Cara yang salah: menganggap lunas karena pelanggan kembali ke halaman "sukses". Masalahnya, halaman ini mudah dipalsukan — seseorang bisa membuka URL "sukses" tanpa pernah membayar.
  • Cara yang benar (webhook): payment gateway mengirim pesan langsung ke server Anda, dari server ke server, mengonfirmasi "transaksi ini benar-benar lunas". Ini tidak bisa dipalsukan pelanggan.
Kalau sistem Anda menandai order lunas hanya karena pelanggan sampai di halaman sukses, Anda sedang memberikan barang gratis kepada siapa pun yang tahu triknya. Webhook yang terverifikasi menutup celah itu.

Idempotency: kenapa pelanggan tidak terkena charge dua kali

Internet tidak sempurna. Pesan bisa terkirim dua kali, koneksi putus lalu dicoba ulang, pelanggan mengklik "bayar" dua kali karena halaman lambat. Tanpa perlindungan, ini berarti: pelanggan terpotong dua kali, atau satu order jadi dua, atau penjual dibayar dobel.

Idempotency adalah nama untuk perlindungan itu: memastikan bahwa permintaan yang sama, meski datang berkali-kali, hanya diproses sekali. Bayar sekali tetap sekali, walau sistem menerima sinyalnya lima kali.

Ini terdengar sepele sampai Anda memproses ribuan transaksi — di mana "sesekali dobel" menjadi banyak uang di tempat yang salah, dan banyak pelanggan yang marah.

Kenapa ini penting untuk Anda, bukan cuma programmer Anda

Dua hal ini adalah contoh sempurna dari perbedaan tak terlihat antara sistem yang terlihat sama di hari peluncuran, lalu satu bisa dipercaya dengan uang dan satu lagi tidak. Anda tak melihatnya di demo — Anda merasakannya enam bulan kemudian, sebagai charge dobel, order hilang, atau pembukuan yang tak masuk akal.

Pertanyaan yang bisa Anda ajukan ke vendor mana pun: "Bagaimana Anda memverifikasi pembayaran — webhook atau halaman sukses? Dan bagaimana Anda mencegah pembayaran dobel saat sistem mencoba ulang?" Jawaban mereka memberi tahu Anda banyak.

Ini adalah dua dari beberapa prinsip yang membuat uang selalu benar. Membangunnya dengan benar adalah keseharian kami di sistem yang memindahkan miliaran rupiah — dan justru detail-detail tak terlihat inilah yang menentukan apakah sebuah sistem pembayaran layak dipercaya.

Ingin sistem pembayaran yang benar dari dalam?

Detail-detail inilah yang membedakan sistem yang bisa dipercaya. Ceritakan kebutuhan Anda.

Lihat solusi pembayaran