Pembayaran kripto untuk e-commerce
Cara toko online menambahkan kripto sebagai metode pembayaran: posisinya di checkout, status pesanan, pembayaran sebagian, pengembalian dana, akuntansi dolar, dan yang sudah siap.

Bagi toko online, kripto adalah metode pembayaran tambahan di samping kartu, bukan penggantinya. Ia menjangkau pelanggan yang kartunya tidak berfungsi di toko Anda, menghilangkan chargeback kartu, dan memungkinkan Anda menerima stablecoin dolar. Panduan ini membahas di mana kripto cocok ditempatkan di checkout, cara memetakan status pembayaran ke status pesanan, cara menangani kasus yang merepotkan, dan apa yang sudah siap, serta yang belum, di Qvard saat ini.
Apa yang diberikan kripto kepada toko, dan apa yang tidak
Bersikaplah spesifik tentang harapan Anda, karena kripto bukan tombol ajaib pertumbuhan.
- Pelanggan yang tidak terjangkau jalur kartu Anda. Pembeli yang kartu banknya ditolak di toko asing, atau yang berada di negara yang tidak dilayani prosesor Anda, tetap bisa membayar dengan stablecoin dolar.
- Tanpa chargeback kartu. Pengirim tidak bisa membatalkan transfer kripto, sehingga pembayaran kartu yang disengketakan bukan risiko untuk pesanan ini. Pengembalian dana menjadi transfer yang Anda putuskan untuk dikirim.
- Penjualan lintas negara tanpa hambatan dari kartu. Halaman pembayaran yang sama berfungsi untuk pelanggan di mana pun.
- Porsi pesanan yang kecil. Perlakukan sebagai opsi tambahan di halaman pembayaran. Di kebanyakan toko ia tidak akan menggantikan kartu, dan tidak boleh dibiarkan merumitkan alur kartu.
Jika Anda menjual barang digital, baca pembayaran kripto untuk toko barang digital; aturan pengiriman di sana berlaku untuk produk instan apa pun.
Di mana tempatnya di checkout
Tambahkan «Bayar dengan kripto» sebagai satu metode pembayaran lagi, di samping yang ada, bukan sebagai toko terpisah. Penempatan yang rapi:
- Pelanggan mengisi keranjang dan alamat seperti biasa lalu memilih «Bayar dengan kripto».
- Server Anda membuat pesanan dalam status menunggu dan pembayaran untuknya.
- Anda mengarahkan pelanggan ke halaman pembayaran yang dihosting, tempat pelanggan memilih aset dan jaringan lalu membayar dari dompetnya.
- Saat pembayaran selesai, server Anda menerima webhook dan melanjutkan proses pesanan.
Tampilkan harga dalam mata uang toko Anda dan tagih dalam dolar AS: pembayaran dibuat dalam dolar dan pelanggan membayar setaranya dalam aset yang dipilih, dengan kurs yang dikunci selama satu jam. Jika toko Anda tidak menetapkan harga dalam dolar, konversikan total pesanan sebelum membuat pembayaran.
Buat pembayaran dan gunakan nomor pesanan Anda
Buat pembayaran dari backend Anda dengan satu POST ke https://api.qvard.com/api/v1/payment. Permintaan menyertakan kunci Anda di header Authorization: Bearer dan JSON berisi nomor pesanan sebagai id, jumlah sebagai price dalam dolar AS, dan opsional paymentSystemId untuk membuka halaman dengan aset dan jaringan yang sudah terpilih. Responsnya 201 dengan redirectUrl.
Gunakan nomor pesanan Anda sendiri sebagai id: nomor ini kembali di webhook, jadi itulah kunci yang menghubungkan pembayaran dengan pesanan. Jika permintaan diulang dengan id yang sama untuk metode pembayaran yang sama, Anda mendapat pembayaran yang sudah ada, sehingga klik ganda atau permintaan yang diulang tidak membuat dua pembayaran. Panduan lengkap dengan kode ada di cara menerima pembayaran kripto di situs web.
Petakan status pembayaran ke status pesanan
Sebuah pembayaran punya empat status, dan pesanan Anda perlu aturan yang jelas untuk masing-masing:
wait: pembayaran dibuat dan pelanggan belum membayar. Pesanan menunggu pembayaran.partial: yang tiba kurang dari jumlah penuh. Tahan pesanan, beri tahu berapa yang kurang dan biarkan pelanggan mengirim sisanya, atau batalkan dan kembalikan dana.completed: jumlah penuh sudah diterima. Ini status yang memicu webhook, dan satu-satunya yang boleh dipakai untuk mengirim barang.rejected: pembayaran ditolak. Tawarkan cara bayar lain.
Contoh menunjukkan pemetaan sebagai tabel kecil. Dua aturan menjaganya tetap aman: jangan pernah memundurkan pesanan yang sudah dibayar ke status sebelumnya dan jangan pernah memproses pesanan pada status selain completed. Handler webhook juga harus idempoten dan membalas persis HTTP 200; lihat cara mengamankan webhook pembayaran kripto.
// Qvard payment status -> your order state. Only "completed" releases goods.
const ORDER_STATE = {
wait: 'pending_payment', // created, the customer has not paid yet
partial: 'on_hold', // less than required arrived: ask for the rest or refund
completed: 'paid', // full amount arrived: start fulfilment
rejected: 'payment_failed' // rejected: offer another way to pay
};
function nextState(current, qvardStatus) {
const target = ORDER_STATE[qvardStatus];
if (!target) return current; // unknown status: change nothing
if (current === 'paid') return current; // never move a paid order backwards
return target;
}Pembayaran sebagian, pesanan kedaluwarsa, dan pengembalian dana
Inilah kasus yang paling banyak menyita waktu toko:
- Pelanggan yang membayar kurang. Biaya penarikan bursa sering dipotong dari jumlah, sehingga pembayaran tiba kurang. Putuskan apakah Anda meminta selisihnya atau mengembalikan dana, dan tampilkan di halaman pesanan.
- Pelanggan yang membayar terlambat. Kurs dikunci selama satu jam. Pembayaran yang tiba lama setelah pesanan ditinggalkan, tangani sebagai kasus layanan pelanggan, jangan diotomatisasi.
- Stok. Jika Anda menahan stok untuk pesanan yang belum dibayar, lepaskan saat pesanan kedaluwarsa.
- Pengembalian dana. Anda juga tidak bisa menarik kembali pembayaran kripto; pengembalian dana adalah transfer yang Anda kirim ke dompet pelanggan. Tulis aturannya di ketentuan dan minta alamat pengembalian dari pelanggan, bukan dari pembayaran.
- Kembali ke situs. URL kembali setelah pembayaran belum tersedia, jadi pelanggan kembali sendiri ke situs Anda. Beri mereka halaman pesanan yang menampilkan status sebenarnya, bukan halaman terima kasih yang menganggap pembayaran pasti berhasil.
Harga, biaya, dan akuntansi
Jaga agar sisi uang tetap sederhana.
- Harga dalam dolar, penagihan dalam dolar. Catat nilai pesanan dalam dolar saat pesanan dibuat dan simpan
idpembayaran di sampingnya untuk rekonsiliasi. - Berapa biayanya. Tidak ada biaya langganan. Komisi ditetapkan secara individual untuk proyek Anda dan menurut halaman harga dimulai dari 1% serta bisa turun hingga 0,1%.
- Menarik dana. Dana berada di saldo Qvard Anda dan Anda menariknya ke dompet sendiri; penarikan hanya dikenai biaya jaringan. Penarikan ke rekening bank dalam mata uang fiat tidak tersedia, jadi jika butuh uang tunai, rencanakan jalan keluar lewat layanan yang sudah Anda pakai.
- Pajak dan pembukuan. Perlakuan atas penerimaan kripto bergantung pada negara Anda; konsultasikan dengan akuntan sebelum peluncuran.
Apa yang siap hari ini
Qvard bekerja lewat API: toko Anda membuat pembayaran dan menerima webhook. Belum ada plugin siap pakai untuk platform toko, tautan pembayaran dan sandbox terpisah masih dalam pengembangan, dan pelanggan kembali sendiri ke situs Anda. Jika platform Anda WordPress, lihat pembayaran kripto di WordPress untuk kode yang berfungsi. Untuk aset dan jaringan yang diterima, lihat koin yang didukung; untuk format permintaan, dokumentasi pengembang; dan untuk melihat apa yang akan dilihat pelanggan Anda, buka faktur demo.
FAQ
Apakah kripto akan menggantikan kartu di toko saya?
Tidak. Kripto paling cocok sebagai opsi tambahan bagi pelanggan yang kartunya tidak berfungsi di toko Anda atau yang lebih suka stablecoin. Biarkan alur kartu seperti adanya.
Kapan saya harus menandai pesanan sebagai dibayar?
Hanya saat Qvard mengirim webhook untuk status completed. Pelanggan yang kembali ke situs Anda bukan bukti pembayaran, dan status partial berarti yang tiba kurang dari yang diminta.
Bagaimana pengembalian dana bekerja dengan kripto?
Pengirim tidak bisa membatalkan pembayaran kripto, jadi pengembalian dana adalah transfer yang Anda kirim ke dompet pelanggan. Tetapkan aturannya di ketentuan dan minta alamat pengembalian dari pelanggan.
Apakah ada plugin untuk platform toko saya?
Belum. Saat ini integrasi dilakukan lewat API: satu permintaan untuk membuat pembayaran dan satu webhook untuk menerima hasilnya.

