Digital Transformation

Idempotency

Idempotency adalah sifat operasi sistem yang menghasilkan efek sama meski dijalankan berkali-kali, kunci agar API marketing dan payment tidak menggandakan data saat retry.

Vito Atmo
Vito Atmo·26 April 2026·0 kali dibaca·2 min baca

TL;DR: Idempotency adalah sifat operasi yang aman diulang tanpa mengubah hasil akhir setelah eksekusi pertama. Dalam praktik marketing dan e-commerce Indonesia, idempotency mencegah pembayaran ganda, lead duplikat di CRM, dan event tracking yang membengkak saat jaringan pengguna tidak stabil.

Apa itu Idempotency?

Idempotency adalah jaminan bahwa satu operasi yang sama, jika diminta dua kali atau lebih, hanya berdampak satu kali pada sistem. Analoginya seperti tombol lift: dipencet sekali atau lima kali, lift tetap datang sekali. Dalam dunia API dan webhook, idempotency biasanya diwujudkan lewat Idempotency-Key, sebuah token unik yang diikat ke transaksi.

Cara Kerja

Klien mengirim request beserta header Idempotency-Key: <uuid>. Server menyimpan key dan respons aslinya. Jika request dengan key sama datang lagi, server mengembalikan respons cache, bukan memproses ulang. Standar ini diadopsi Stripe, Midtrans, dan Xendit di Asia Tenggara.

SkenarioTanpa IdempotencyDengan Idempotency
Klik tombol "Bayar" 2x2 transaksi terbuat1 transaksi terbuat
Webhook retry karena 5xxLead duplikat di CRMLead muncul sekali
Event tracking double-fireKonversi terhitung 2xKonversi terhitung 1x

Kenapa Penting?

Untuk marketer Indonesia, idempotency menjaga akurasi data. Kampanye iklan dengan tracking bermasalah bisa salah baca ROAS sampai 30 persen kalau event sering double-fire. Untuk e-commerce, idempotency menyelamatkan pengalaman pelanggan saat sinyal seluler putus di tengah checkout. Standar Idempotency-Key direkomendasikan oleh IETF draft RFC dan jadi best practice modern.

Pertanyaan Umum

Apakah semua API HTTP otomatis idempotent?

Tidak. Method GET, PUT, dan DELETE secara desain idempotent. POST umumnya tidak, jadi POST butuh Idempotency-Key eksplisit untuk aman diulang.

Berapa lama key disimpan server?

Umumnya 24 jam sampai 7 hari. Stripe menyimpan 24 jam. Midtrans menyimpan order ID sebagai natural key tanpa expiry untuk transaksi spesifik.

Bagikan