Verifikasi NIK. Terbitkan e-Faktur. Terima QRIS. Satu API, dari Jakarta.
Kait menyambungkan aplikasimu ke Dukcapil, Coretax DJP, dan jaringan QRIS lewat satu API yang rapi. Satu kunci, satu format error, satu webhook untuk semuanya.
npm i @kait/nodecomposer require kait/kait-phpgo get github.com/kait-id/kait-gopip install kaitKunci sandbox gratis selamanya, tanpa kartu kredit.
gbr. 01 · kait.mark
56 × 3644 × 24 sel
gerakkan kursor untuk memutar tautangulir untuk memutar tautan
poster · dirender server
{ "objek": "validasi_npwp", "npwp": "0012345678091000", "valid": true, "nama": "PT LAPAK GROSIR NUSANTARA", "jenis": "badan", "pkp": true, "kpp": "KPP Madya Jakarta Selatan I", "nitku": "0012345678091000000000", "diperiksa_pada": "2026-10-11T07:32:08Z" }
e-Faktur batch: 500 faktur dalam satu panggilan
Marketplace dan ERP kini bisa mengirim sampai 500 faktur sekaligus. Kait memecahnya sesuai batas Coretax, mengirimnya paralel, dan melaporkan hasil tiap faktur lewat satu webhook.
- Endpoint baru POST /v1/faktur/batch
- Webhook faktur.batch_selesai berisi ringkasan per faktur
- SDK Node dan Go 3.8.0 sudah mendukung; PHP menyusul minggu depan
- for (const pesanan of pesananHariIni) {- await kait.faktur.terbitkan(pesanan)- }+ await kait.faktur.terbitkanBatch(pesananHariIni)
Dipakai 2.300 tim engineering, dari marketplace sampai klinik
- Lapak Grosir
- Kopiloka
- Slipku
- Armada Kirim
- Klinik Medira
- Sewaruang
- Neraca Kita
- Dana Panen
Endpoint
Empat pintu, satu kunci.
Setiap endpoint memakai kunci, format error, dan webhook yang sama. Pelajari satu, kamu sudah paham semuanya.
{ "objek": "verifikasi_nik", "id": "nik_01JA7RC0QF", "nik": "3171••••••••0001", "status": "terverifikasi", "cocok": { "nama": 0.98, "tanggal_lahir": true, "tempat_lahir": true }, "sumber": "dukcapil" }
Cocokkan NIK, nama, dan tanggal lahir dengan data Dukcapil. Hasilnya skor kecocokan per kolom, bukan sekadar ya atau tidak.
{ "objek": "validasi_npwp", "npwp": "0012345678091000", "valid": true, "pkp": true, "kpp": "KPP Madya Jakarta Selatan I", "nitku": "0012345678091000000000" }
Status PKP, KPP terdaftar, dan NITKU dari NPWP 16 digit. Format lama 15 digit dikonversi otomatis.
{ "objek": "faktur", "id": "fkt_01JA7R2C9W", "status": "antre", "kode_transaksi": "04", "dpp": 11000000, "ppn": 1320000, "npwp_pembeli": "0012345678091000", "webhook": "faktur.disetujui" }
Kirim data transaksi. Kait menyusun faktur sesuai Coretax, menandatanganinya dengan sertifikat elektronikmu, lalu mengabari lewat webhook begitu disetujui.
{ "objek": "qris", "id": "qr_01JA7RB4KX", "nominal": 86500, "status": "menunggu", "kedaluwarsa_pada": "2026-10-11T07:47:08Z", "qr_string": "00020101021226650016ID.CO.KAIT..." }
QRIS dengan nominal tetap untuk setiap pesanan, berlaku 15 menit, dengan notifikasi lunas dalam hitungan detik.
Latensi
Diukur dari Jakarta, bukan dari brosur.
Kami memanggil validasi NPWP 10.000 kali dari Jakarta, lalu membandingkannya dengan API sejenis yang dilayani dari Singapura.
kait bench npwp --dari jakarta --n 10000
Kait, jkt-1API via Singapura
Uji 4 sampai 6 Oktober 2026 dari kantor kami di Kuningan, koneksi fiber 100 Mbps.
99,98%
uptime jkt-1 selama 90 hari terakhir
SLA paket Pro 99,95%
11 menit
median dari daftar sampai panggilan pertama berhasil
2.140 developer baru, Agustus sampai September 2026
4,2 jt
panggilan API per hari
puncaknya 9,8 jt saat promo 9.9
SDK
Pasang di bahasa yang timmu pakai.
SDK resmi dengan tipe lengkap, retry otomatis, dan verifikasi tanda tangan webhook. Semuanya open source.
npm i @kait/nodeimport Kait from "@kait/node"; const kait = new Kait(process.env.KAIT_KEY); const npwp = await kait.npwp.validasi({ npwp: "0012345678091000", }); console.log(npwp.pkp); // true
composer require kait/kait-php$kait = new Kait\Client(getenv('KAIT_KEY')); $faktur = $kait->faktur->terbitkan([ 'npwp_pembeli' => '0012345678091000', 'barang' => [ ['nama' => 'Kopi Gayo 1 kg', 'harga' => 185000, 'jumlah' => 12], ], ]); echo $faktur->status; // antre
go get github.com/kait-id/kait-goclient := kait.New(os.Getenv("KAIT_KEY")) qr, err := client.QRIS.Buat(ctx, &kait.QRISParams{ Nominal: 86500, Kedaluwarsa: 15 * time.Minute, }) if err != nil { return err } fmt.Println(qr.Status) // menunggu
pip install kaitimport os, kait client = kait.Client(os.environ["KAIT_KEY"]) hasil = client.nik.verifikasi( nik="3171010101900001", nama="Siti Rahmawati", ) print(hasil.status) # terverifikasi
Sandbox yang jujur, termasuk soal gagal.
Kunci kait_test_ tidak pernah menyentuh Dukcapil, DJP, atau uang sungguhan. Nomor ajaib di bawah memicu setiap hasil, jadi jalur gagal teruji sebelum pelanggan menemukannya.
Nomor ajaib
| Masukan | Hasil |
|---|---|
3171010101900001 | terverifikasiNIK cocok di semua kolom |
3171010101900002 | nama_tidak_cocokskor nama 0,41 |
3171010101900003 | tidak_ditemukanNIK tidak terdaftar |
0000000000000001 | npwp_nonaktifNPWP sudah dicabut |
Rp10.001 | qris_kedaluwarsaQRIS kedaluwarsa dalam 5 detik |
Rp99.999 | coretax_sibukfaktur antre, disetujui 2 menit kemudian |
$ kait listen --teruskan localhost:3000/webhook siap, meneruskan ke localhost:3000/webhook 07:32:41 faktur.disetujui fkt_01JA7R2C9W 200 18 ms 07:32:58 qris.lunas qr_01JA7RB4KX 200 11 ms 07:33:02 nik.terverifikasi nik_01JA7RC0QF 500 34 ms 07:33:03 ulang 1 dari 8 nik_01JA7RC0QF 200 15 ms
Dari engineer yang memakainya setiap hari
Kami menghapus 2.400 baris kode integrasi pajak dan menggantinya dengan satu panggilan. Faktur sekarang terbit sebelum kurir berangkat.
Sandbox-nya jujur. Setiap error yang muncul di produksi ternyata sudah pernah kami uji dengan nomor ajaibnya.
Verifikasi NIK di bawah 200 ms itu bukan angka marketing. Kami mengukurnya sendiri di 12.000 pendaftaran kurir per hari.
Panggilan pertamamu, sebelum kopimu dingin.
Daftar, salin kunci sandbox, jalankan satu perintah. Median developer kami menerima respons pertama dalam 11 menit.