Cara Terima COD di Website Sendiri Tanpa Marketplace
COD di toko online sendiri, dari kurir yang melayaninya sampai cara menghitung biaya COD yang benar. Termasuk kesalahan hitung yang membuat biaya COD selalu jatuh ke tarif minimum.

COD itu metode pembayaran paling dipercaya pembeli Indonesia, dan paling berisiko buat penjual. Dua hal itu benar sekaligus, dan itulah kenapa memutuskannya tidak sesederhana menyalakan sebuah tombol.
Hampir semua panduan COD yang beredar membahas cara mengaktifkannya di Shopee. Tulisan ini tentang menerima COD di websitemu sendiri, di mana tidak ada marketplace yang menalangi apa pun.
Yang Berubah Saat COD Keluar dari Marketplace
Di marketplace, COD terasa aman karena platformnya berdiri di tengah. Mereka yang menanggung sengketa, mereka yang menahan dana, mereka yang menalangi kalau pembeli menolak paket.
Di websitemu sendiri, posisi itu kosong. Yang tersisa cuma kamu, kurir, dan pembeli.
Praktisnya berarti empat hal berpindah ke pundakmu: memverifikasi pembeli, menanggung ongkir kalau paket ditolak, menunggu dana cair, dan menagih selisih kalau ada yang tidak beres.
Itu bukan alasan untuk tidak memakai COD. Itu daftar yang harus kamu siapkan jawabannya sebelum menyalakannya.
Kurir Mana yang Melayani COD di Luar Marketplace
Tidak semua kurir menyediakannya, dan yang menyediakan pun biasanya membatasinya ke layanan tertentu saja, bukan semua jenis kiriman.
Alih-alih menyalin daftar yang cepat basi, saya sarankan cara yang tetap benar tahun depan: buka halaman syarat dan ketentuan resmi kurir yang kamu pakai, lalu cari empat hal ini.
- Layanan mana saja yang bisa COD. Sering hanya satu atau dua dari sekian layanan mereka.
- Batas nilai barang, minimum dan maksimum.
- Besar fee layanan COD, dan apakah dihitung dari nilai barang saja atau termasuk ongkir.
- Aturan retur kalau pengiriman gagal, termasuk berapa kali percobaan sebelum paket dikembalikan.
Yang keempat paling sering dilewati, dan justru itu yang menentukan berapa kerugianmu saat paket ditolak.
Kalau kamu memakai agregator pengiriman, daftarnya bisa berbeda lagi dari daftar resmi kurirnya, karena agregator hanya meneruskan sebagian layanan. Cek di kedua tempat.
Paket Ditolak, Siapa yang Menanggung
Ini pertanyaan yang paling jarang dijawab lugas, jadi saya jawab lugas: kamu.
Pembeli yang menolak paket COD tidak membayar apa pun. Barangnya kembali ke kamu, dan ongkir dua arah keluar dari kantongmu. Sebagian kurir menggratiskan ongkir retur untuk layanan COD tertentu, sebagian tidak.
Karena itu angka yang perlu kamu pantau bukan jumlah order COD, melainkan rasio paket kembali. Kalau dari 100 kiriman COD ada 8 yang kembali, hitung ongkir dua arah dari kedelapan itu, lalu bandingkan dengan margin dari 92 sisanya.
Kalau hasilnya negatif, masalahnya bukan COD. Masalahnya verifikasi.
Memverifikasi Pembeli Tanpa Mempersulit
Tujuannya bukan menyaring orang jahat. Kebanyakan paket ditolak bukan karena penipuan, tapi karena pembeli berubah pikiran, salah alamat, atau lupa pernah memesan.
Tiga langkah yang murah dan berpengaruh besar:
- Konfirmasi lewat pesan sebelum kirim. Satu pesan berisi rincian pesanan dan pertanyaan "dikirim hari ini ya?". Yang tidak membalas dalam sehari, tunda.
- Minta nomor yang bisa dihubungi kurir. Bukan sekadar kolom telepon, tapi tanyakan apakah nomor itu aktif di jam pengiriman.
- Batasi nilai order COD. Order besar sebaiknya transfer atau bayar sebagian di muka. Kerugian dari satu paket mahal yang ditolak setara puluhan paket kecil.
Langkah pertama saja biasanya sudah memangkas paket kembali secara berarti, dan ongkosnya cuma waktu.
Cara Biaya COD Dihitung, dan Kenapa Sering Salah
Bagian ini teknis, dan saya tulis karena tiga kesalahan di bawah ini saya temukan sendiri waktu membangun integrasi COD, bukan dari dokumentasi.
Biaya COD bukan cuma persen dari harga barang
Yang saya kira awalnya: fee COD sekian persen dikali harga barang. Ternyata dasarnya lebih lebar dari itu.
Yang saya ukur langsung ke endpoint tarif: dasar perhitungannya mencakup nilai barang, ongkir setelah diskon, dan premi asuransi. Hasilnya lalu dikenai pajak, jadi ada pengali tambahan di ujung. Dan yang akhirnya ditagihkan ke pembeli adalah harga barang ditambah ongkir ditambah biaya COD ditambah premi.
Kalau kamu menghitungnya sendiri dengan rumus yang lebih sederhana, angkamu akan meleset ke bawah, dan selisihnya kamu yang tanggung.
Sarannya: jangan hitung sendiri. Kalau penyedia pengirimanmu mengembalikan angka biaya COD final di respons tarifnya, pakai angka itu apa adanya.
Pecahan atau persen, ini yang menjatuhkan hitungan saya
Ada nilai pengaturan fee COD yang datang dari API dalam bentuk pecahan. Angka 0,03 berarti tiga persen.
Saya meneruskannya ke fungsi yang memperlakukannya sebagai persen, jadi ia dibagi seratus sekali lagi. Hasilnya menjadi sangat kecil, lalu dibulatkan ke bilangan bulat terdekat, dan berubah jadi nol.
Efeknya tidak berupa error. Biaya COD cuma selalu jatuh ke tarif minimum, di setiap order, berapa pun nilainya. Terlihat wajar sampai ada yang membandingkan dengan tagihan kurir.
Kalau kamu atau developer-mu menghitung biaya COD sendiri, periksa satu hal ini lebih dulu: nilai yang kamu terima itu 0,03 atau 3. Salah tafsir di situ tidak akan pernah memunculkan pesan kesalahan.
Asuransi yang diminta adalah premi, bukan nilai barang
Kolom asuransi di API pengiriman sering diisi orang dengan nilai barang, karena namanya terdengar begitu.
Yang diminta sebenarnya premi, yaitu biaya asuransinya. Salah isi di sini membuat angka yang dikirim jauh lebih besar dari seharusnya, dan biaya COD ikut membengkak karena premi masuk ke dasar perhitungannya.
Dana COD Tidak Masuk, Padahal Paket Sudah Sampai
Satu jebakan yang tidak ada di dokumentasi mana pun, dan memakan waktu paling lama untuk saya temukan.
Sistem pengiriman memberi tahu websitemu bahwa paket sudah diterima dan dana COD sudah ditagih lewat sebuah alamat callback. Alamat itu harus didaftarkan sekali ke akun pengirimanmu.
Masalahnya, pendaftaran otomatis di sistem kami hanya berjalan kalau alamat aplikasinya memakai HTTPS. Akun yang pengaturannya kebetulan disimpan dari lingkungan pengembangan lokal tidak pernah punya callback terdaftar.
Akibatnya paket terkirim normal, dana COD ditagih normal oleh kurir, tapi status order di website tidak pernah berubah. Tidak ada error, tidak ada notifikasi. Order cuma menggantung selamanya di status menunggu.
Cara mengeceknya: kirim satu paket COD sungguhan bernilai kecil ke alamat yang bisa kamu kendalikan. Setelah diterima, lihat apakah status ordernya berubah sendiri di dashboard. Kalau tidak, callback-nya belum terdaftar, dan itu perlu diperbaiki sebelum kamu melayani COD sungguhan.
Kapan COD Sebaiknya Dimatikan
Bukan pertanyaan retoris. Ada kategori yang memang sebaiknya tidak COD, dan mengetahuinya lebih awal menghemat banyak kerugian.
- Barang pesanan khusus. Custom, ukiran nama, ukuran khusus. Kalau ditolak, kamu tidak bisa menjualnya lagi ke siapa pun.
- Pre-order dan barang yang belum ada. Uangnya baru datang di akhir, sementara kamu sudah keluar modal produksi di awal. Di sistem kami, keranjang berisi produk pre-order memang menolak COD, dan itu keputusan sadar.
- Barang bernilai tinggi. Tentukan ambangnya sendiri, lalu matikan COD di atas angka itu.
- Tujuan yang rasio penolakannya tinggi. Kalau datamu menunjukkan satu daerah jauh lebih sering menolak, batasi COD ke daerah itu tanpa harus mematikannya di tempat lain.
Mematikan COD sebagian bukan setengah hati. Itu justru cara mempertahankannya tetap menguntungkan di tempat yang memang cocok.
Checklist Sebelum Melayani COD
- Kurirmu benar-benar melayani COD di luar marketplace, dan di layanan yang kamu pakai.
- Kamu tahu aturan retur kurirmu, termasuk siapa yang menanggung ongkir baliknya.
- Biaya COD diambil dari angka yang dikembalikan penyedia, bukan dihitung sendiri.
- Kolom asuransi diisi premi, bukan nilai barang.
- Callback status pengiriman sudah terdaftar dan terbukti bekerja lewat satu kiriman uji.
- Ada batas nilai order maksimum untuk COD.
- COD dimatikan untuk pre-order dan barang pesanan khusus.
- Ada alur konfirmasi ke pembeli sebelum paket dikirim.
Nomor lima yang paling sering terlewat, dan gejalanya paling membingungkan karena semuanya terlihat normal kecuali status order.
Mulai dari Mana
Jangan menyalakan COD untuk seluruh katalog di hari pertama.
Pilih tiga produk yang paling laku, nilainya menengah, dan tidak custom. Nyalakan COD hanya untuk ketiganya, selama sebulan. Catat berapa yang kembali.
Angka itu yang menentukan apakah COD layak diperluas, bukan perasaan bahwa pembeli lebih suka COD. Mereka memang lebih suka. Pertanyaannya apakah kamu sanggup menanggungnya.
Kalau ongkir di websitemu masih manual, beresin itu dulu, karena biaya COD dihitung dari ongkir juga. Caranya ada di panduan setting ongkir otomatis. Dan untuk pembeli yang lebih nyaman bayar di muka, opsi pembayaran non-tunai dibahas di tutorial setup Midtrans.

