
Pernah nggak sih, kita kebingungan sendiri saat cek mutasi pembayaran dari bank, payment gateway, atau virtual account secara manual setiap hari? Kalau iya, webhook Moota ini bisa jadi solusi tepat untuk mempercepat dan memudahkan semua update transaksi Anda. Dengan webhook Moota, setiap kali ada transaksi baru, sistem bisa otomatis menerima data tanpa perlu refresh atau menunggu laporan mutasi bank. Layanan ini membantu tim finance, toko online, hingga startup digital agar bisa langsung mengupdate status pembayaran di aplikasi tanpa harus melakukan input data manual. Namun, di balik kemudahan ini, ada juga beberapa best practice yang wajib dilakukan agar sistem tetap andal, aman, dan tidak ada error saat menerima banyak transaksi sekaligus.

Jadi, sebelum menjalankan webhook ke proses bisnis Anda, yuk, kita pahami dulu kenapa penggunaan async pada webhook Moota itu penting, dan bagaimana langkah-langkah mengimplementasinya tanpa ribet!
Webhook Moota adalah solusi cerdas untuk mengotomasi update transaksi bisnis. Setiap ada transaksi baru di bank, virtual account, atau payment gateway, Moota langsung memberikan notifikasi ke sistem Anda secara real time.
Tapi, banyak yang belum tahu: proses webhook sebaiknya dijalankan secara asynchronous (async), bukan langsung di-handle ke proses bisnis utama. Ini penting agar sistem tetap stabil dan transaksi Anda benar-benar aman.

https://domainanda.com/webhook/moota).Nah, pertanyaannya: kenapa datanya nggak langsung diproses saja pas webhook diterima? Ada beberapa alasan kuat mengapa async jadi pilihan terbaik:
Webhook dari Moota harus direspons secepat mungkin, idealnya kurang dari 5 detik. Jika proses bisnis (misal: update order, generate invoice, kirim email) dilakukan langsung dalam endpoint webhook, sistem Anda bisa mengalami timeout. Akibatnya, Moota akan menganggap request gagal dan bisa mengirim ulang data yang sama (duplikat).
Kalau proses bisnis yang langsung, ada resiko:
Dengan async, data diterima lalu diproses di background oleh worker terpisah sehingga error bisa diisolasi tanpa ganggu data lain.
Async bikin sistem Anda lebih scalable. Kalau transaksi harian mulai ratusan sampai ribuan, worker bisa dengan mudah dibuat paralel atau diatur antrian, tanpa membuat endpoint webhook jadi bottleneck.
Dengan menyimpan data webhook ke database/queue lebih dulu, Anda bisa melakukan pengecekan:
Perhatikan baik-baik, hanya izinkan request dari Moota dengan whitelist IP:
103.236.201.178
Langkah ini bisa Anda lakukan pada pengaturan firewall/VPS/server agar webhook hanya diterima dari alamat IP resmi Moota.
Di dashboard webhook, peringatannya sangat jelas:
Pastikan whitelist IP 103.236.201.178 untuk transaksi aman dengan Moota, dan tidak menerima dari yang lain, Terima kasih!
Cukup mudah, masuk ke integrasi > webhook pada dashboard Moota, lalu klik “Tambah Webhook”.
Pilih akun bank, VA, atau payment gateway yang ingin Anda hubungkan.
Masukkan URL endpoint webhook, serta secret token untuk keamanan signature.

Di bagian ini, Anda bisa menentukan akun, tipe transaksi, kode unik, hingga memasukkan secret token khusus untuk validasi signature webhook.
Setiap kali terjadi transaksi baru, Moota akan mengirimkan data ke endpoint webhook yang Anda daftarkan dengan metode POST.
Contoh payload JSON yang dikirim:
json
[{"account_number": "12312412312","date": "2019-11-10 14:33:01","description":"TRSF E-BANKING ...", "amount": 50000,...}]
Header request juga mengandung signature dan data identitas dari Moota yang wajib diverifikasi.
Pada setiap request webhook, Moota mengirim header “Signature” yang dapat divalidasi menggunakan secret token milik Anda.
Cara validasinya:
php
$signature = hash_hmac('sha256', $payload_json, $secret); // Cocokan hasil signature ini dengan value 'Signature' di header
Jangan pernah lewatkan tahap ini – signature memastikan data benar-benar dari Moota, bukan pihak lain.
Best practice-nya adalah:
Contoh sederhana di PHP Laravel:
php
public function handle(Request $request) { // Simpan payload WebhookQueue::create([ 'payload' => json_encode($request->all()), 'signature' => $request->header('Signature') ]); // Langsung balas OK ke Moota return response()->json(['status' => 'received'], 200); } // Worker: proses data dari queue public function processQueue() { foreach(WebhookQueue::pending() as $webhook) { // Validasi, update order, dsb } }
Moota menyediakan fitur Sandbox yang memungkinkan Anda mencoba webhook tanpa mengganggu sistem produksi. Coba dari menu “Virtual Account Sandbox” pada dashboard.
Dengan menerapkan teknik asynchronous pada webhook Moota, kita bisa memastikan semua transaksi berjalan tanpa hambatan, sistem anti-jebol saat traffik naik, dan yang terpenting: bisnis Anda jauh lebih aman dari error dan duplikasi data.
Jika ingin tutorial step-by-step sekaligus penjelasan teknis yang lebih rinci, Anda bisa cek langsung halaman panduan lengkap di website Moota.
Atau, butuh inspirasi best practice lain? Jangan ragu baca juga artikel tips otomatisasi transaksi di Moota.co.
Yuk, optimalkan integrasi bisnis Anda bersama Moota! Kita pastikan bisnis semakin otomatis, anti-ribet, dan siap scale ke level berikutnya.
Artikel ini membahas: webhook Moota, cara penggunaan webhook Moota, best practice async webhook, tips mengamankan webhook Moota.
