Selama 3 hari saya mencari kesalahan pada berkas yang kami hasilkan. Pada hari ke-4 ternyata yang salah bukan berkasnya, melainkan nomor yang kami karang sendiri untuk pengujian. Kantor pajak tidak menolak XML kami; yang ditolak adalah lawan transaksi yang tidak pernah ada.
Sedikit latar. Ketika melaporkan bukti potong ke Coretax di Indonesia, ada kolom untuk nomor pajak lawan transaksi. Kolom itu tidak selesai hanya dengan nomor yang bentuknya benar. Pihak penerima memeriksa apakah nomor itu ada di basis data pendaftaran. Yang bisa diperiksa layar kami hanyalah jumlah digit dan letak tanda pemisahnya; apakah nomor itu ada pemiliknya, tidak bisa kami jawab dari sini.
Yang ingin kami bangun adalah pengujian otomatis pada malam hari. Setiap malam pada jam tertentu, mesin membuat data, menghasilkan seluruh bukti potong, lalu menjalankannya sampai tahap pengiriman, sehingga paginya kami tinggal membaca hasilnya. Dengan itu, hari saat kami merusak sesuatu adalah hari kami mengetahuinya. Nomor yang kami hasilkan benar dari sisi bentuk: 16 digit, pemisah di tempat yang tepat, dan digit pemeriksa yang dihitung lalu ditambahkan.
Pada 18 Agustus, 12 dari 41 kasus uji berhenti di titik yang sama. Pesan yang kembali pendek, dan terbaca seolah isi kiriman kami yang tidak sah. Tidak disebutkan bagian mana yang salah. Saya mencurigai berkas kami sendiri: urutannya, namespace-nya, cara kami menulis tanggal. Selama 3 hari saya hanya melihat sisi XML.
Pada hari ke-4 saya menyandingkan 12 yang berhenti dengan 29 yang lolos. Yang lolos memakai nomor yang diambil langsung dari dokumen yang pernah ditangani V. Yang berhenti memakai nomor yang kami karang saat itu juga. Bedanya bukan pada cara kami menulis berkas, melainkan pada apakah nomor itu benar-benar ada. Kantor pajak memang mencocokkan: apakah nomor ini terdaftar, dan apakah masih berlaku.
Saya menceritakan hal ini kepada V. Dia akuntan di Jakarta dan sudah menguji KAZENA Books lebih dari 20 kali dengan data nyata dari kantornya sendiri. Jawabannya pendek. Faktur yang nyata selalu punya lawan transaksi yang nyata. Hal yang dalam pekerjaan sehari-hari terlalu jelas untuk diucapkan itulah yang kami lupakan, dan kami melupakannya hanya di dalam pengujian.
Hal yang sama berlaku untuk nomor seri faktur pajak. Nomor seri yang dibubuhkan PKP pada fakturnya bukan nomor yang ia tentukan sendiri, melainkan jatah yang diberikan kantor pajak. Nomor yang dikarang di meja kerja entah sudah menjadi jatah orang lain, entah bukan jatah siapa pun, dan dalam kedua hal itu ia bukan milik kita. Jadi ketika nomor yang tampak meyakinkan tidak lolos, sistem justru sedang bekerja. Kalau ia lolos, itulah yang repot.
Bentuk kesalahan kami jelas. Kami menjadikan pengujian yang lolos sebagai tujuan. Begitu Anda berusaha meloloskan sesuatu yang memang tidak boleh lolos, tangan selalu bergerak ke arah melemahkan pemeriksaan. Saya bahkan sempat sekali mencari apakah ada pengaturan untuk melewati pencocokan itu. Bahwa saya mencarinya saja sudah salah arah. Yang harus kami minta dari pengujian bukan agar ia lolos, melainkan agar ia berhenti dengan benar ketika memang harus berhenti.
Ini yang kami ubah. Pemeriksaan kami pisah menjadi 2 lapis. Lapis pertama adalah yang bisa kami jawab sendiri: jumlah digit, pemisah, digit pemeriksa, kolom wajib, dan kecocokan jumlah rincian dengan totalnya. Semua itu diperiksa di sini, sebelum apa pun dikirim. Lapis kedua adalah yang jawabannya hanya dipegang kantor pajak: apakah pemilik nomor itu ada, apakah masih berlaku, dan apakah nomor seri itu memang jatah kami. Itu tidak bisa diketahui sebelum dikirim. Kami berhenti berpura-pura mengetahuinya.
Kata-kata di layar juga kami perbaiki. Dulu hanya tertulis bahwa pengiriman gagal. Sekarang tertulis nomor yang mana, dan siapa yang menolak. Kalau layar berkata nomor lawan transaksi tidak ditemukan pada basis data pendaftaran, langkah pengguna berikutnya berubah. Memeriksa ulang isian sendiri dan meminta lawan transaksi memastikan nomornya adalah 2 tindakan yang sama sekali berbeda.
Cara kami menjalankan pengujian juga berubah. Yang berjalan tiap malam hanya lapis pertama. Jalur yang mengirim ke kantor pajak dijalankan dengan sengaja, di komputer orang yang memang memegang nomor sungguhan. Sebelum rilis, rekan kami E menelusurinya di perangkatnya sendiri. Dia tinggal di sebuah kota kecil agak jauh dari Jakarta, dan ia memeriksanya dengan jaringan serta ponsel yang benar-benar dipakai di sana. Kami menarik garis jelas antara bagian yang bisa dijalankan mesin tiap malam dan bagian yang hanya bisa dikerjakan orang.
Data ujinya sendiri kami ganti. Di catatan kerja kami masih tersimpan nomor yang disalin dari dokumen nyata. Saya kira memakainya untuk pengujian tidak apa-apa, padahal itu nomor milik orang lain. Sekarang semuanya diganti dengan nomor yang sekali lihat jelas bukan milik siapa pun, dan tidak ada nomor nyata di dalam pengujian kami. Lapis pertama tetap berjalan baik dengan itu. Lapis kedua memang tidak pernah berarti kalau bukan dengan yang asli.
Perlu saya sampaikan terus terang. Saya bukan konsultan pajak. Jumlah digit, formulir, dan cara pencocokan semuanya berubah, dan nomor mana yang dibutuhkan sebuah dokumen berbeda-beda menurut isi transaksinya. Yang tertulis di sini adalah catatan tentang bagaimana kami memperbaiki cara kami menguji. Mohon pastikan keputusan sebenarnya kepada profesional.
Ada satu permintaan. Kalau Anda pernah menemui layar KAZENA yang hanya menyebut bahwa sesuatu gagal dikirim, dan Anda tidak tahu harus berbuat apa selanjutnya, tolong beri tahu saya. Berhenti bisa jadi memang perilaku yang benar. Tetapi apakah alasan berhentinya ada di pihak kami atau di pihak lawan transaksi pada dokumen itu, seharusnya kami yang menuliskannya. Kalau tidak tertulis, itu kelalaian kami.
Ceritakan pendapat Anda
Kesan setelah memakai aplikasi KAZENA, hal yang perlu diperbaiki, fitur yang Anda harapkan — kalau Anda pemilik usaha kecil-menengah atau pekerja lepas di Indonesia atau Filipina, suara Anda-lah yang paling ingin kami dengar. Pesan dalam bahasa Indonesia atau Inggris akan dijawab oleh rekan kami yang benar-benar memahami pasar lokal. KAZENA Books sudah dipastikan hadir di Filipina dan Indonesia — dan jika perusahaan Anda ingin menghadirkannya di negara-negara lain sebagai mitra kerja sama, atau tertarik membeli sistemnya, kami dengan senang hati menunggu kabar Anda. Kami juga menerima pengembangan sistem baru. Tim kami kecil, jadi tidak selalu bisa langsung mulai — tetapi yang kami bangun membawa kualitas buatan Jepang dan tetap dekat dengan cara bisnis berjalan di sini, satu proyek demi satu.
Hubungi saya