Blog · Terbit · Diperbarui
Menagih klien sebagai freelance: dari invoice PDF ke tautan bayar
Masalah menagih sebagai freelance bukan pada sopan atau tidaknya kalimat penagihan. Masalahnya struktural: sebuah invoice PDF tidak punya status. Setelah terkirim, file itu tidak tahu apakah sudah dibayar, dan satu-satunya cara mengetahuinya adalah bertanya ke klien, lalu menunggu tangkapan layar, lalu mencocokkannya sendiri dengan mutasi rekening. Setiap tagihan berubah menjadi percakapan. Artikel ini tentang memindahkan status itu ke tempat yang bisa menjawab sendiri.
Yang berubah ketika tagihan punya tautan bayar
Tautan bayar adalah invoice yang tahu kondisinya sendiri. Nominalnya sudah terkunci, jadi tidak ada transfer kurang seratus ribu karena salah baca. Statusnya sama persis di dashboard maupun di API: pending selama belum dibayar, succeeded begitu pembayaran terkonfirmasi, dan expired bila masa berlakunya habis. Pada penagihan freelance ketiganya yang akan terlihat sehari-hari; dua nilai sisanya, canceled dan failed, ada di referensi ambil permintaan. Tidak ada status yang bergantung pada penilaian manusia terhadap sebuah gambar.
Klien perusahaan yang tetap meminta invoice bernomor bisa dikirimi PDF-nya bersama tautan bayar. Kalau yang dibutuhkan justru platform invoice lengkap dengan e-Meterai dan pengingat jatuh tempo, bedanya dibahas di perbandingan Kasera Pay dan Paper.id.
Efek praktisnya pada pekerjaan freelance ada tiga. Pertama, pertanyaan “sudah ditransfer belum” hilang karena jawabannya bisa dilihat tanpa bertanya. Kedua, bukti transfer palsu berhenti menjadi risiko, dan bentuk-bentuknya dibahas terpisah di artikel bukti transfer palsu. Ketiga, pekerjaan bisa dimulai berdasarkan konfirmasi, bukan berdasarkan janji.
Pecah menjadi termin, satu tautan per termin
Praktik yang sudah umum di pekerjaan lepas, yaitu uang muka di depan dan pelunasan saat serah terima, kebetulan juga bentuk yang paling cocok untuk tautan bayar. Buat satu tautan per termin, bukan satu tautan untuk keseluruhan proyek. Alasannya bukan administratif belaka: setiap termin menjadi peristiwa yang bisa ditunggu dan ditindak sendiri, sehingga pengerjaan tahap berikutnya punya penanda mulai yang jelas.
Untuk proyek Rp 8.000.000 dengan skema 50 persen di depan, artinya dua tautan senilai Rp 4.000.000. Beri masing-masing penanda sendiri pada external_id, misalnya nomor invoice ditambah nomor termin, supaya rekap di akhir bulan tidak perlu menebak tautan mana milik proyek mana. Penanda itu label untuk pencarian dan penyaringan, bukan pengaman terhadap tagihan ganda. Yang mencegah satu tagihan terkirim dua kali hanyalah header Idempotency-Key, dan alasannya diuraikan di artikel Idempotency-Key.
Ada batas yang memaksa pemecahan ini, dan lebih baik diketahui sebelum invoice pertama dikirim: satu pembayaran dibatasi maksimum Rp 10.000.000, dengan minimum Rp 1.000 untuk QRIS dan Rp 10.000 untuk Virtual Account. Nominal di luar rentang itu ditolak saat pembuatan dengan kode amount_too_large atau amount_too_small, dan angka yang berlaku ada di dokumentasi batas. Proyek Rp 25.000.000 tidak bisa menjadi satu tautan, dan memang sebaiknya tidak. Paket foto dan video pernikahan sering melewati batas yang sama; susunan terminnya dibahas di artikel penagihan jasa fotografi dan videografi. Penerjemah dan juru bahasa punya pola yang mirip dengan satu perbedaan, yaitu harganya baru pasti setelah dokumen dilihat; susunannya ada di artikel penagihan jasa penerjemah dan juru bahasa. Komisi ilustrasi bernominal kecil dengan antrean slot memakai bentuk lain lagi, yaitu daftar harga sebagai halaman pembayaran; susunannya ada di artikel menerima pembayaran komisi ilustrasi.
Memilih channel: persen melawan nominal tetap
Untuk tagihan besar, pilihan channel berpengaruh nyata pada penghasilan bersih, dan alasannya ada pada bentuk tarifnya, bukan besarnya. QRIS ditagih sebagai persentase, yaitu 0,7 persen, ditambah Rp 250 per transaksi berhasil. Karena komponen utamanya persen, biayanya tumbuh mengikuti nominal: pada termin Rp 4.000.000, QRIS menghabiskan Rp 28.250.
Virtual Account ditagih dengan bentuk yang berbeda, yaitu nominal tetap per transaksi tanpa komponen persen sama sekali. Biayanya tidak berubah apakah tagihannya Rp 500.000 atau Rp 9.000.000. Konsekuensinya sederhana dan jarang disadari: ada titik nominal di mana Virtual Account menjadi lebih murah daripada QRIS, dan di atas titik itu selisihnya terus melebar. Titik impasnya adalah nominal ketika 0,7 persen darinya sama dengan selisih antara tarif tetap Virtual Account dan Rp 250. Tarif yang berlaku untuk sebuah akun dikembalikan oleh GET /v1/payment_methods dalam bentuk percent_bps dan flat, jadi hitungannya bisa dilakukan dengan angka yang benar-benar berlaku, bukan angka yang disalin dari artikel.
Untuk pekerjaan lepas yang nilainya jutaan, kesimpulannya biasanya searah: tawarkan Virtual Account untuk termin besar, dan biarkan QRIS untuk tagihan kecil seperti biaya revisi tambahan atau pembelian aset. Tujuh bank Virtual Account yang aktif tercantum di dokumentasi metode pembayaran. Satu hal teknis yang perlu diingat: Virtual Account membutuhkan customer.name karena nama itu yang muncul di aplikasi bank pembayar. Lewat halaman checkout, nama itu ditanyakan kepada pembayar di halaman pembayarannya; lewat Direct API, nama dikirim bersama permintaannya. Perbedaan antara Virtual Account dan transfer biasa, terutama soal kenapa yang satu bisa dicocokkan otomatis, dibahas di artikel Virtual Account.
Pertanyaan berikutnya biasanya siapa yang menanggung biaya itu. Keduanya sah: biaya bisa dipotong dari yang diterima, atau ditambahkan ke nominal yang dilihat pembayar. Untuk pekerjaan lepas, memasukkan biaya ke dalam harga penawaran sejak awal lebih rapi daripada menambahkannya di akhir, karena angka di invoice menjadi sama dengan angka di kontrak. Cara menghitung nominal penawaran agar hasil bersihnya persis sesuai target, yang ternyata pembagian dan bukan penjumlahan, ada di artikel menetapkan harga setelah biaya transaksi.
Masa berlaku harus mengikuti tempo pembayaran
Ini kesalahan yang paling sering terjadi saat memindahkan invoice ke tautan bayar. Masa berlaku bawaan dirancang untuk penjualan yang dibayar saat itu juga, sedangkan invoice pekerjaan lepas biasanya bertempo, misalnya dibayar dalam 14 hari setelah diterima bagian keuangan. Tautan yang kedaluwarsa sebelum tempo pembayaran habis akan memaksa pengiriman ulang, dan setiap pengiriman ulang mengembalikan percakapan yang tadi ingin dihilangkan.
Sebaliknya, masa berlaku yang terlalu panjang juga bukan pilihan gratis, karena tagihan lama yang masih hidup menumpuk sebagai kewajiban yang bisa dibayar kapan saja. Cara memilih angkanya per situasi, termasuk apa yang terjadi saat masa berlaku habis, ada di artikel masa berlaku tagihan. Untuk invoice bertempo, menyamakan masa berlaku dengan tempo pembayaran biasanya tidak mungkin: plafon masa berlaku bawaan sebuah akun adalah 24 jam, jauh lebih pendek daripada tempo 14 atau 30 hari. Aturan praktis yang tersisa adalah memisahkan keduanya, yaitu invoice dikirim lebih dulu dan menunggu tempo, lalu tautan bayarnya diterbitkan pada tanggal pembayaran yang dijadwalkan. Urutan lengkapnya untuk klien berbentuk perusahaan ada di artikel menagih pelanggan korporat.
Selesaikan verifikasi sebelum invoice pertama, bukan sesudah
Ada dua tingkat verifikasi dan fungsinya berbeda. Dengan email, nomor ponsel, dan profil usaha terverifikasi, pembayaran sudah bisa diterima. Untuk mencairkan dana ke rekening bank diperlukan verifikasi penuh: nama sesuai KTP, NIK, foto KTP, selfie, dan rekening bank atas nama sendiri. Badan usaha tidak disyaratkan, dan urutan lengkapnya dibahas di panduan payment gateway tanpa PT.
Urutannya penting justru karena kedua tingkat itu terpisah. Menerima pembayaran lebih dulu lalu mengurus verifikasi belakangan berarti dana klien sudah masuk sementara jalan keluarnya belum dibuka, dan itu terjadi tepat ketika uangnya paling dibutuhkan. Selesaikan keduanya sebelum invoice pertama dikirim.
Satu kebiasaan lagi yang menghemat: pencairan dikenakan biaya per pencairan, sebesar Rp 3.000 menurut syarat dan ketentuan. Mencairkan setiap kali satu termin masuk berarti membayar biaya itu berulang kali untuk uang yang sama. Menjadwalkan pencairan mingguan, atau menunggu beberapa termin terkumpul, memangkasnya menjadi satu.
Yang tetap tidak diselesaikan oleh tautan bayar
Tautan bayar menghilangkan keraguan tentang apakah pembayaran sudah masuk. Tautan bayar tidak membuat klien membayar. Kesepakatan lingkup pekerjaan, jumlah revisi yang termasuk, tempo pembayaran, dan konsekuensi keterlambatan tetap urusan kontrak, dan tetap harus disepakati tertulis sebelum pekerjaan dimulai. Yang berubah hanyalah ini: ketika kesepakatan itu dilanggar, pelanggarannya terlihat sebagai status pending yang tidak kunjung berubah, bukan sebagai perasaan tidak enak yang sulit ditindak.
Sebagian pekerjaan freelance tidak berakhir pada serah terima. Perpanjangan domain dan hosting atau retainer maintenance adalah tagihan berulang dengan aturan waktunya sendiri, dan susunannya ada di tulisan tentang menagih perpanjangan domain, hosting, dan maintenance website.
Untuk yang mengirim invoice dari aplikasi sendiri, alur teknisnya pendek: buat permintaan pembayaran lewat endpoint create dengan header Idempotency-Key, kirim tautannya bersama invoice, lalu tandai invoice lunas saat webhook payment.paid bertanda tangan Kasera-Signature-V1 diterima. Rinciannya ada di dokumentasi webhook.
Panduan per jenis usaha
- Laundry
- Katering
- Bengkel motor dan mobil
- Klinik gigi dan praktik dokter
- Fotografi dan videografi
- Bimbel dan les privat
- Gym dan studio kebugaran
- Sewa lapangan olahraga
- Homestay dan villa
- Rental alat
- Toko bahan bangunan
- Jasa renovasi rumah
- Jasa pindahan rumah
- Percetakan dan digital printing
- Pet shop dan penitipan hewan
- Open trip
- Depot air minum isi ulang
- Toko bunga dan papan bunga
- Sekolah sepak bola dan klub olahraga anak
- Servis HP dan laptop
- Kursus mengemudi
- Sanggar tari dan kursus musik
- Aqiqah dan hewan kurban
- Antar-jemput sekolah
- SPP sekolah swasta, madrasah, dan pesantren
- Kue rumahan
- Jualan sayur online
- Kantin dan food court
- Cuci mobil dan motor
- Jualan frozen food
- Jualan thrift dan preloved
- Cleaning service dan bersih-bersih rumah
- Jasa penerjemah dan juru bahasa
- Toko optik dan kacamata
- Toko oleh-oleh dan jajanan khas
- Toko top up game dan voucher
- Tempat wisata dan agrowisata
- Rental PS dan warnet
- Photobox dan photobooth
- Jasa cuci sepatu
- Toko buku dan alat tulis
- Daycare dan penitipan anak
- TPA, TPQ, dan rumah tahfiz
- Kolam pemancingan
- Coworking space dan ruang rapat
- Studio tato
- Parkir dan penitipan motor
- Komisi ilustrasi dan desain pesanan
- Toko ikan hias dan aquascape
- Tanaman hias dan bibit
- Pesanan hampers dan parsel
- Warung dan kasbon
- Kedai kopi dan kafe
- Penjahit dan konveksi
- Kos dan kontrakan
- Jastip
- Jasa website dan hosting
- Jasa panggilan di tempat