01
API key adalah credential server
- Simpan di secret manager atau environment variable
- Jangan commit ke Git
- Jangan kirim ke analytics
- Jangan tampilkan di console browser
- Gunakan API key berbeda untuk sandbox dan production
- Rotasi API key ketika akses tim berubah
02
Perhatikan credential pada URL
Kontrak saat ini menempatkan API key pada path
URL dapat muncul di proxy log, access log, browser history, dan telemetry. Pastikan request hanya dibuat secara server-to-server dan terapkan redaksi path pada seluruh log.
03
Webhook tidak boleh langsung memenuhi order
- 01Terima payload
Parse payload dengan batas ukuran dan Content-Type yang sesuai.
- 02Kirim response 2xx
Berikan response dengan cepat tanpa menunggu pekerjaan berat.
- 03Verifikasi
Baca data transaksi terbaru melalui API.
- 04Penuhi order satu kali
Gunakan trx_id untuk mencegah pekerjaan ganda.
04
Kesiapan production
| Kontrol | Minimum |
|---|---|
| Transport | HTTPS tanpa downgrade |
| Secret | Tidak tersedia di source atau client |
| Log | Credential telah disamarkan |
| Pemenuhan order | Idempotent |
| Monitoring | Alert untuk webhook dan status yang tidak sinkron |
| Recovery | Rekonsiliasi transaksi terjadwal |