SaaS dan penagihan

Penagihan crypto untuk SaaS B2B

Cara agar pelanggan B2B bisa membayar invoice SaaS dengan crypto: kapan membuat pembayaran, rekonsiliasi, kurang bayar, perpanjangan, dan pengembalian dana.

Sebagian pelanggan B2B ingin membayar invoice Anda dengan crypto: tim internasional, perusahaan yang terkendala perbankan, perusahaan crypto-native. Melayani mereka tidak sulit, tetapi invoice berperilaku berbeda dari checkout toko, dan beberapa keputusan desain menentukan apakah tim keuangan Anda menyukainya atau membencinya. Panduan ini membahas keputusan-keputusan itu.

Mengapa perusahaan SaaS menawarkan penagihan crypto

Crypto jarang menjadi cara utama perusahaan SaaS menerima pembayaran, dan tidak perlu begitu. Ia berguna sebagai opsi tambahan ketika:

  • pelanggan berada di negara yang kartu atau transfer banknya lambat, mahal, atau tidak andal;
  • pembeli adalah perusahaan crypto-native yang sudah membayar pemasok dengan stablecoin;
  • Anda ingin pembayaran yang tidak bergantung pada jam bank dan tidak dapat di-chargeback.

Pertahankan kartu dan transfer bank untuk yang lain. Crypto hanyalah satu baris lagi dalam daftar «cara membayar» di invoice Anda.

Apa bedanya invoice dengan checkout

Checkout toko membuat pembayaran pada saat pembelian. Invoice diterbitkan dulu dan dibayar berhari-hari atau berminggu-minggu kemudian, sering oleh tim keuangan yang mengikuti proses internal. Itu mengubah beberapa hal:

  • Jumlah dipatok dalam dolar, bukan koin. Anda menagih dalam dolar; pembayar mengirim setaranya dalam aset yang ia pakai.
  • Kurs tidak bisa ditahan berminggu-minggu. Di Qvard kurs dikunci selama satu jam sejak pembayaran dibuat. Kurs yang ditetapkan saat invoice terbit sudah lama kedaluwarsa ketika dibayar.
  • Ada referensi. Tim keuangan memerlukan nomor invoice pada setiap pembayaran untuk rekonsiliasi.
  • Pembayar mengikuti alur persetujuan. Mereka bisa membayar bertahap atau terlambat, sehingga Anda perlu aturan yang jelas untuk pembayaran parsial.

Buat pembayaran saat pelanggan siap membayar

Keputusan desain kuncinya: jangan membuat pembayaran crypto saat menerbitkan invoice. Buatlah saat pelanggan memilih untuk membayar.

Letakkan tombol «Bayar dengan crypto» di halaman invoice. Saat pelanggan mengekliknya, backend Anda membuat pembayaran dengan nomor invoice sebagai id dan jumlah terutang dalam dolar, lalu mengarahkan pelanggan ke halaman pembayaran. Kurs kemudian dikunci selama satu jam berikutnya, yaitu tepat rentang waktu yang dibutuhkan pelanggan untuk mengirim transfer.

Memakai nomor invoice sebagai id memberi dua keuntungan. Jika pelanggan mengeklik dua kali atau permintaan Anda diulang, Qvard mengembalikan pembayaran yang sudah ada untuk id dan metode pembayaran yang sama, bukan membuat duplikat. Dan webhook yang melaporkan hasilnya membawa id yang sama, sehingga Anda menemukan invoice tanpa tabel pencocokan.

Node.jspay-invoice.js
// Runs when the customer clicks "Pay with crypto" on invoice INV-2026-0142,
// not when the invoice is issued: the exchange rate is fixed for one hour.
async function payInvoiceWithCrypto(invoice) {
  const res = await fetch('https://api.qvard.com/api/v1/payment', {
    method: 'POST',
    headers: { Authorization: 'Bearer ' + process.env.QVARD_API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({
      id: invoice.number,        // "INV-2026-0142": clicking twice returns the same payment
      price: invoice.amountUsd   // amount due, in US dollars
    })
  });
  if (!res.ok) throw new Error('Qvard ' + res.status);
  return (await res.json()).redirectUrl;   // open this payment page for the customer
}

Rekonsiliasi dengan webhook

Saat pembayaran selesai, Qvard mengirim webhook ke server Anda dengan id (nomor invoice Anda) dan status. Handler Anda menandai invoice sebagai dibayar dan mencatat transaksi. Tiga kebiasaan menjaganya andal:

  • Verifikasi tanda tangan di header X-Qvard-Signature yang menyertai webhook (HMAC-SHA256 dengan kunci rahasia Anda) dan tolak yang tidak cocok.
  • Balas dengan tepat HTTP 200; jika tidak, notifikasi dicoba ulang, hingga lima kali dalam kira-kira enam menit.
  • Buat handler idempoten, agar peristiwa yang berulang tidak mencatat pembayaran dua kali.

Webhook melaporkan pembayaran, bukan invoice, jadi simpan id pembayaran, tanggal, dan status di samping invoice. Dengan begitu akuntan Anda punya satu baris per pembayaran untuk dicocokkan dengan mutasi yang mereka harapkan. Handler lengkapnya ada di cara menerima pembayaran crypto di website.

Kurang bayar dan biaya exchange

Tiket dukungan paling umum dalam penagihan crypto adalah kurang bayar. Pembayar mengirim sedikit kurang dari yang diperlukan, dan invoice tidak lunas. Penyebab umum:

  • pelanggan membayar dari akun exchange, dan exchange memotong biaya penarikannya dari jumlah yang dikirim;
  • pelanggan membulatkan jumlahnya;
  • pelanggan mengirim transfer dalam dua bagian.

Kurang bayar muncul dengan status partial. Tentukan kebijakan Anda di muka dan tulis di invoice: invoice tetap terbuka sampai selisihnya tiba, atau Anda menerima pembayaran dalam toleransi kecil. Buat halaman invoice menampilkan apa yang sudah diterima dan berapa yang masih terutang, agar pelanggan dapat melunasi kekurangannya tanpa menghubungi tim dukungan.

Tip yang bisa Anda cetak di invoice: jika membayar dari exchange, tambahkan biaya penarikan ke jumlahnya.

Perpanjangan dan langganan

Dengan kartu, langganan menagih pelanggan secara otomatis. Pembayaran crypto berbeda: pelanggan mengirim transfer sendiri setiap kali, sehingga perpanjangan tidak bisa «ditarik» dari wallet-nya.

Pola praktisnya adalah menerbitkan invoice perpanjangan seperti biasa dan mengirim tautan pembayaran kepada pelanggan, dengan tombol yang sama dan pembuatan pembayaran yang sama seperti invoice pertama. Qvard membuat satu pembayaran untuk setiap permintaan yang Anda kirim; penagihan berulang ditangani sistem billing Anda sendiri, yang membuat pembayaran baru untuk setiap periode. Ingatkan pelanggan sebelum jatuh tempo dan, jika Anda menawarkan diskon paket tahunan yang dibayar dengan crypto, tampilkan di invoice.

Pengembalian dana dan nota kredit

Transfer crypto yang sudah dikonfirmasi bersifat final, jadi pengembalian dana adalah transfer baru dari Anda ke pelanggan. Sepakati alamat dengan pelanggan secara tertulis, karena transfer ke alamat yang salah tidak dapat dipulihkan. API Qvard menyertakan panggilan payout untuk mengirim dana dari saldo Anda ke sebuah alamat, dengan id Anda sendiri agar percobaan ulang tidak mengirim uang dua kali; Anda juga bisa menarik secara manual dari dasbor.

Catat pengembalian terhadap invoice asli dan terbitkan nota kredit seperti biasa, agar pembukuan Anda menceritakan kisah yang sama dengan blockchain.

Daftar periksa akuntansi

Tanyakan kepada akuntan Anda tentang hal-hal yang bergantung pada negara Anda, dan siapkan data yang akan dibutuhkan:

  • nomor invoice, id pembayaran, tanggal, jumlah dalam dolar, serta aset dan jaringan yang dipakai;
  • bagaimana Anda mencatat penerimaan dan konversi ke fiat;
  • bagaimana biaya jaringan yang dibayar pelanggan diperlakukan;
  • bagaimana dan kapan Anda menarik ke wallet Anda.

Ini informasi umum, bukan nasihat pajak atau hukum.

Di mana posisi Qvard

Qvard adalah payment gateway crypto custodial: Anda membuat pembayaran lewat API, pelanggan membayar di halaman pembayaran yang di-host dengan USDT atau USDC di jaringan utama (atau dengan BTC atau LTC), dan status final sampai ke server Anda lewat webhook. Dana dikreditkan ke saldo merchant Anda dan Anda menariknya ke wallet. Khusus untuk tim SaaS, lihat pembayaran crypto untuk SaaS; untuk dasarnya, apa itu payment gateway crypto.

FAQ

Bisakah saya menerbitkan invoice dalam crypto, bukan dolar?

Anda menerbitkan invoice dalam dolar AS dan pembayar mengirim setaranya dalam aset yang ia pilih. Ini menjaga harga Anda stabil dan pembukuan dalam satu mata uang.

Berapa lama kurs berlaku?

Di Qvard kurs dikunci selama satu jam sejak pembayaran dibuat. Buat pembayaran saat pelanggan siap membayar, bukan saat Anda menerbitkan invoice.

Apa yang terjadi jika pelanggan membayar kurang dari invoice?

Pembayaran muncul dengan status partial. Anda bisa menjaga invoice tetap terbuka sampai selisihnya tiba atau menerimanya dalam toleransi yang Anda tentukan; cantumkan aturannya di invoice.

Bisakah saya menagih langganan secara otomatis?

Tidak. Pembayaran crypto dikirim oleh pelanggan, sehingga tidak bisa ditagih otomatis dari wallet. Sistem billing Anda menerbitkan setiap perpanjangan dan mengirim tautan pembayaran kepada pelanggan.

Artikel terkait

Artikel terkait