# Integrasi API BPJS untuk Developer Indonesia: Panduan Praktis

> Integrasi BPJS Ketenagakerjaan dan BPJS Kesehatan dari sistem HR, ERP, dan klinik: jalur akses, autentikasi, proses persetujuan, dan jebakan yang tak terdokumentasi.

URL: https://www.matthewswong.com/id/blog/bpjs-api-integration/

- Author: Matthews Wong (https://www.matthewswong.com/id/about/)
- Published: 2025-06-10
- Updated: 2026-10-13
- Category: Web Dev

> **Key takeaway:** Integrasi BPJS bukan satu API publik. Sebagian besar perusahaan melapor dan membayar ke BPJS Ketenagakerjaan lewat portal SIPP Online dan EPS, API bridging yang live membutuhkan perjanjian PKS formal, dan akses VClaim serta PCare BPJS Kesehatan terbuka bagi fasilitas kesehatan mitra yang mengajukan lewat kantor cabang. Panduan ini membahas jalur akses dan autentikasi, dan sengaja tidak mencantumkan tarif iuran atau batas upah.

> **Penafian**

> Ini adalah informasi teknis umum untuk developer, bukan nasihat hukum, pajak, penggajian, atau ketenagakerjaan. Program BPJS, tarif iuran, batas upah, dan prosedur akses ditetapkan oleh peraturan pemerintah dan oleh BPJS, dan semuanya bisa berubah, jadi artikel ini tidak mencantumkannya. Ambil setiap angka dari BPJS atau dari peraturannya langsung, dan pastikan persyaratannya ke kantor cabang BPJS atau penasihat yang berkompeten sebelum mengandalkannya. Ditinjau pada 13 Oktober 2026.

Jika kamu membangun sistem HR, ERP, atau klinik untuk organisasi di Indonesia, integrasi BPJS cepat atau lambat akan muncul. BPJS Ketenagakerjaan (jaminan sosial ketenagakerjaan) dan BPJS Kesehatan (jaminan kesehatan nasional) menjalankan program wajib bagi pekerja formal, sehingga sistem yang menyimpan data karyawan atau pasien di Indonesia sering perlu bertukar data dengan keduanya. Saya menyusun panduan ini saat meriset integrasi BPJS untuk calon proyek ERP sebuah firma hukum menengah di Indonesia. Proyek itu belum dibangun, jadi anggap ini tulisan riset, bukan laporan lapangan. Meski begitu, jarak antara kanal resmi BPJS dan kenyataan yang dihadapi developer ternyata cukup lebar untuk dibagikan.

## Ikhtisar BPJS: Yang Perlu Diketahui Developer

Ada dua badan BPJS yang terpisah. BPJS Ketenagakerjaan (sebelumnya Jamsostek) menjalankan jaminan kecelakaan kerja (JKK), jaminan kematian (JKM), jaminan hari tua (JHT), jaminan pensiun (JP), dan jaminan kehilangan pekerjaan (JKP, dibentuk lewat PP 37/2021). BPJS Kesehatan menjalankan jaminan kesehatan nasional (JKN). Keduanya punya sistem, kredensial, dan persyaratan integrasi yang terpisah. Untuk sistem HR dan ERP, sisi yang relevan adalah kanal pelaporan dan pembayaran BPJS Ketenagakerjaan. Untuk sistem layanan kesehatan (klinik, rumah sakit), layanan PCare dan VClaim BPJS Kesehatan adalah antarmuka yang relevan.

### Arsitektur API BPJS Ketenagakerjaan

BPJS Ketenagakerjaan tidak menjalankan portal developer publik yang self-service. Subdomain api-dev.bpjsketenagakerjaan.go.id yang dulu dirujuk artikel ini kini dialihfungsikan menjadi sistem presensi internal, pengingat bahwa subdomain BPJS bisa ditata ulang tanpa pemberitahuan, jadi selalu verifikasi URL BPJS sebelum membangun integrasi di atasnya. Dalam praktiknya, sebagian besar sistem HR dan payroll berhubungan dengan BPJS Ketenagakerjaan lewat dua portal web resmi, bukan API mentah: SIPP Online (sipp.bpjsketenagakerjaan.go.id), tempat pemberi kerja terdaftar mengelola data pekerja dan laporan iuran, serta EPS (eps.bpjsketenagakerjaan.go.id) untuk pembayaran iuran host-to-host lewat bank mitra. API bridging live dengan kredensial yang diterbitkan memang ada, tetapi bukan pendaftaran self-service: aksesnya dinegosiasikan kasus per kasus dengan tim kemitraan IT BPJS, dan kebanyakan tim tidak pernah membutuhkannya karena SIPP dan EPS sudah mencakup pelaporan dan pembayaran.

### API PCare dan VClaim BPJS Kesehatan

BPJS Kesehatan menyediakan beberapa layanan bridging: VClaim untuk pengecekan eligibilitas dan klaim (dipakai rumah sakit), PCare untuk layanan primer (puskesmas, klinik pratama), Antrean untuk manajemen antrean di faskes mitra BPJS, dan Apotek untuk farmasi. Permintaan diautentikasi dengan consumer ID, timestamp Unix, dan tanda tangan HMAC-SHA256 yang dihitung dengan secret key faskes, dikirim bersama header user key. Akses produksi membutuhkan kemitraan formal dengan BPJS Kesehatan; layanan produksi tidak bisa diakses tanpa kredensial yang diterbitkan untuk faskes mitra. Berbeda dengan BPJS Ketenagakerjaan, BPJS Kesehatan punya ekosistem open-source yang aktif: ssecd/jkn membungkus VClaim, PCare, Antrean, Apotek, dan i-Care untuk Node.js, Deno, dan Bun, sedangkan aamdsam/bridging-bpjs menyediakan versi Laravel/PHP untuk VClaim dan PCare. Keduanya layak dievaluasi sebelum menulis klien dari nol.

### Mengajukan Akses Bridging BPJS Kesehatan (VClaim / PCare)

Berbeda dengan BPJS Ketenagakerjaan, BPJS Kesehatan mendokumentasikan proses bridging untuk fasilitas kesehatan. Pedoman bridging VClaim 2.0 miliknya menjabarkan tahapan untuk rumah sakit: faskes mengirim Surat Permohonan Bridging Sistem ke Kantor Cabang BPJS Kesehatan beserta Pakta Integritas yang ditandatangani; BPJS menerbitkan kredensial tester, yaitu Consumer ID, Secret Key, dan User Key, untuk pengembangan; faskes membangun sistem dengan kredensial itu dan menjalani user acceptance test, yang hanya lolos jika seluruh ceklis UAT terpenuhi; baru setelah itu BPJS menerbitkan kredensial produksi, dengan Pakta Integritas kedua. Pedoman itu ditujukan untuk rumah sakit, jadi klinik dan puskesmas yang mengintegrasikan PCare sebaiknya menanyakan prosedur terkini ke kantor cabangnya sebelum menyusun jadwal.

> Timestamp adalah sumber kegagalan bridging BPJS yang umum. Tanda tangan mencakup timestamp permintaan, sehingga jika jam servermu menyimpang, permintaan mulai gagal dengan gejala yang mirip masalah kredensial. Jalankan sinkronisasi waktu NTP di server integrasi, kirim timestamp dalam detik, bukan milidetik, dan catat timestamp yang kamu kirim beserta kode respons saat men-debug kegagalan autentikasi.

## Angka Iuran Milik Peraturan, Bukan Kode Kamu

Sistem yang melapor ke BPJS Ketenagakerjaan membutuhkan besaran iuran, tetapi panduan ini sengaja tidak mencantumkan tarif atau batas upah. Semuanya ditetapkan oleh peraturan pemerintah dan oleh BPJS, berbeda per program dan, untuk jaminan kecelakaan kerja, per kelas risiko, dan sebagian batas disesuaikan secara berkala, sehingga angka yang disalin dari blog, termasuk blog ini, bisa sudah usang saat kamu membacanya. Perlakukan sebagai konfigurasi bertanggal: simpan setiap nilai beserta dasar hukum dan tanggal berlakunya, ambil dari BPJS atau peraturannya langsung, dan uji hasil sistemmu terhadap angka BPJS sendiri sebelum go-live. Satu hal struktural yang tidak berubah bersama angkanya: JKP tidak punya potongan terpisah dari pekerja, karena berdasarkan PP 6/2025 program ini didanai dari iuran Pemerintah Pusat dan rekomposisi iuran JKK.

### Tangga Integrasi Realistis untuk BPJS Ketenagakerjaan

Daripada satu pola integrasi, anggap akses BPJS Ketenagakerjaan sebagai tangga, dan pilih anak tangga terendah yang memenuhi kebutuhanmu, karena setiap anak tangga ke atas membutuhkan waktu persetujuan lebih lama. Anak tangga 1: siapkan data pekerja dan mutasi bulan itu di sistem HR dan ekspor file yang kompatibel dengan SIPP untuk diunggah manual, tanpa perlu persetujuan. Anak tangga 2: bekerja langsung di SIPP Online dan kelola mutasi pekerja serta laporan iuran lewat portal, bukan menangani file secara manual; ini self-service bagi pemberi kerja terdaftar. Anak tangga 3: hubungkan EPS ke bank mitra untuk pembayaran iuran host-to-host, menghilangkan langkah transfer bank manual. Anak tangga 4: gunakan agregator PPOB seperti IAK API untuk inquiry atau pembayaran BPJS Ketenagakerjaan sesuai kebutuhan tanpa hubungan langsung dengan BPJS; ini layanan pihak ketiga berbayar, tetapi live. Anak tangga 5: negosiasikan PKS formal untuk API bridging live, dengan pengecekan real-time dan kendali programatik penuh, yang hanya masuk akal pada skala signifikan, karena persetujuannya butuh berminggu-minggu hingga berbulan-bulan. Sebagian besar produk HR untuk pasar Indonesia tidak pernah melewati anak tangga 3.

Siapkan data pekerja bulan itu

Di akhir bulan, kumpulkan karyawan baru, karyawan keluar, dan mutasi pekerja lainnya dari sistem HR, dengan besaran iuran diambil dari konfigurasi bertanggal, bukan nilai yang di-hardcode.

Buat file sesuai format SIPP

Ekspor data pekerja dan mutasi bulan itu ke format file yang diterima SIPP Online.

Unggah lewat SIPP Online

Kirim file tersebut melalui sipp.bpjsketenagakerjaan.go.id, portal self-service untuk pemberi kerja yang tidak memerlukan PKS atau akses API live.

Bayar lewat EPS atau bank mitra

Selesaikan tagihan iuran melalui Electronic Payment System BPJS atau kanal pembayaran bank yang disetujui.

Simpan bukti pengiriman

Simpan tanda terima konfirmasi dari SIPP di sistem ERP atau HR sebagai jejak audit.

## Kode Praktis: Autentikasi Bridging Berbasis Tanda Tangan di Node.js

BPJS Ketenagakerjaan tidak memublikasikan skema autentikasi API bridging-nya; spesifikasinya diberikan bersama kredensial di bawah PKS. Sebaliknya, layanan bridging BPJS Kesehatan sudah banyak dicakup klien open-source, dan contoh di bawah mengikuti ssecd/jkn: tanda tangan HMAC-SHA256 atas consumer ID dan timestamp Unix dalam detik yang digabung dengan tanda ampersand, dikunci dengan secret key lalu di-encode base64, dikirim lewat header X-cons-id, X-timestamp, dan X-signature bersama user_key. Katalog web service resmi BPJS Kesehatan mendokumentasikan skema yang sama. Jebakan penting: staging kadang mengembalikan kode error yang berbeda dari produksi, jadi uji dengan kredensial persis yang akan kamu pakai. Jika kamu mencapai anak tangga 5 di sisi Ketenagakerjaan, ikuti spesifikasi yang diberikan BPJS, bukan contoh ini.

> **Persyaratan PKS BPJS**

> Jika kamu benar-benar membutuhkan anak tangga 5, yaitu API bridging live, siapkan diri untuk proses persetujuan sungguhan, bukan formulir pendaftaran. BPJS Ketenagakerjaan akan mengharapkan entitas hukum formal (PT atau CV, bukan individu atau kontrak freelance) sebagai pihak penandatangan; kasus penggunaan terdokumentasi yang membenarkan akses real-time, karena pelaporan batch lewat SIPP sudah mencakup sebagian besar kebutuhan; kontak teknis yang bisa melewati review keamanan dan integrasi BPJS; dan kesabaran, karena siklus dari permohonan pertama hingga PKS ditandatangani dan kredensial produksi umumnya butuh berminggu-minggu hingga berbulan-bulan, dan BPJS yang mengendalikan jadwalnya. Jika kamu membangun untuk klien, entitas hukum klien, bukan studio developmentmu, hampir selalu menjadi pihak yang harus menandatangani, jadi pastikan hal ini sebelum menjanjikan tanggal serah terima. Ada baiknya bertanya ke tim kemitraan BPJS apakah kasus penggunaanmu memang membutuhkan API live, karena SIPP Online, EPS, atau agregator PPOB sering sudah memenuhi kebutuhan bisnis sebenarnya dengan upaya persetujuan yang jauh lebih kecil.

## Layanan Integrasi BPJS Pihak Ketiga

Untuk proyek yang integrasi BPJS langsungnya terlalu rumit atau timeline PKS-nya terlalu lama, ada layanan pihak ketiga di Indonesia. IAK API (api.iak.id) menawarkan inquiry BPJS Ketenagakerjaan sebagai produk pascabayar melalui API agregator PPOB (payment point online bank), dengan kode produk terpisah untuk peserta penerima upah (BPJSTKPU) dan peserta bukan penerima upah atau informal (BPJSTKBPU). Permintaan ditandatangani dengan hash MD5 dari username, API key, dan reference ID, bukan skema milik BPJS sendiri, sehingga jauh lebih mudah diintegrasikan, yang menjelaskan mengapa agregator PPOB populer di kalangan platform HR SaaS. Trade-off-nya: ini layanan pihak ketiga berbayar, dan kamu bergantung pada uptime serta akurasi data pihak ketiga.

## Membangun Integrasi BPJS yang Mudah Dirawat

Aturan BPJS dan spesifikasi API berubah, dan endpoint pernah berpindah. Bangun integrasimu dengan mempertimbangkan perubahan: simpan setiap parameter iuran di tabel database atau file konfigurasi beserta tanggal berlakunya, bukan konstanta yang di-hardcode; tulis klien API yang sadar versi agar bisa diperbarui tanpa menulis ulang logika bisnis; catat setiap permintaan dan respons API untuk debugging; dan tulis automated test yang memeriksa hasil sistemmu terhadap contoh yang sudah dikonfirmasi dengan BPJS. Ketika aturan berubah, biasanya lewat Peraturan Pemerintah, kamu seharusnya bisa memperbarui sistem di satu tempat dengan yakin.

Program jaminan hari tua BPJS Ketenagakerjaan: manfaat sekaligus yang dibayarkan dari akumulasi iuran pemberi kerja dan pekerja saat pekerja pensiun, mengundurkan diri, atau mencapai usia tertentu.

Manfaat pensiun bulanan di bawah BPJS Ketenagakerjaan, didanai dari iuran yang dibatasi pada batas upah yang ditetapkan pemerintah dan disesuaikan secara berkala.

Jaminan kehilangan pekerjaan yang dibentuk lewat PP 37/2021 dan, berdasarkan PP 6/2025, didanai dari iuran Pemerintah Pusat dan rekomposisi iuran JKK, bukan potongan gaji, dengan manfaat uang tunai, informasi pasar kerja, dan pelatihan kerja bagi pekerja formal yang di-PHK.

Perjanjian kerja sama formal yang ditandatangani organisasi dengan BPJS sebelum bisa memakai API bridging real-time, bukan sekadar pelaporan lewat portal atau unggah file batch.

Portal web self-service BPJS Ketenagakerjaan tempat pemberi kerja terdaftar melaporkan data pekerja dan iuran bulanan tanpa kredensial API atau PKS.

Hash berkunci yang menggabungkan secret bersama dengan data permintaan untuk menghasilkan tanda tangan; layanan bridging BPJS Kesehatan memakainya untuk memastikan permintaan berasal dari faskes yang sah dan tidak diubah.

## Sumber & Bacaan Lanjutan

- SIPP Online: portal pelaporan pemberi kerja BPJS Ketenagakerjaan
- BPJS Ketenagakerjaan: penjelasan EPS (Electronic Payment System)
- Jaminan Kehilangan Pekerjaan (JKP): portal resmi program
- HFIS: sistem informasi fasilitas kesehatan BPJS Kesehatan
- ssecd/jkn: library bridging BPJS Kesehatan (JKN) untuk Node.js, Deno, dan Bun
- aamdsam/bridging-bpjs: bridging VClaim dan PCare BPJS Kesehatan untuk Laravel/PHP
- IAK API: dokumentasi inquiry pascabayar BPJS Ketenagakerjaan
- PP 6/2025 tentang program JKP (JDIH BPK)
- Katalog web service BPJS Kesehatan: membuat tanda tangan permintaan
- BPJS Kesehatan: tahapan dan pedoman pengembangan bridging VClaim 2.0 (PDF)

## Source links

- https://sipp.bpjsketenagakerjaan.go.id/
- https://www.bpjsketenagakerjaan.go.id/artikel/18917/artikel-bayar-iuran-bpjs-ketenagakerjaan-makin-mudah-dengan-eps-serta-kanal-pembayarannya.bpjs
- https://jkp.go.id/tentang
- https://hfis.bpjs-kesehatan.go.id/hfis/
- https://github.com/ssecd/jkn
- https://github.com/aamdsam/bridging-bpjs
- https://api.iak.id/api/postpaid/core/products/bpjs-ketenagakerjaan/pu/inquiry
- https://peraturan.bpk.go.id/Details/314623/pp-no-6-tahun-2025
- https://dvlp.bpjs-kesehatan.go.id:8888/trust-mark/tpl/katalogws/createsignature.html
- https://dvlp.bpjs-kesehatan.go.id:8888/trust-mark/doc/TAHAPAN_PELAKSANAAN_BRIDGING_VCLAIM_VERSI_2_FINAL.pdf

## FAQ

### Autentikasi apa yang dipakai API bridging BPJS?

Layanan bridging BPJS Kesehatan seperti VClaim dan PCare mengautentikasi setiap permintaan dengan consumer ID, timestamp Unix dalam detik, dan tanda tangan HMAC-SHA256 atas consumer ID dan timestamp yang dikunci dengan secret key, dikirim lewat header X-cons-id, X-timestamp, dan X-signature bersama header user_key. BPJS Ketenagakerjaan tidak memublikasikan skema bridging-nya; skemanya diberikan bersama kredensial di bawah PKS.

### Mengapa permintaan bridging BPJS saya gagal padahal kredensial terlihat benar?

Penyimpangan jam server adalah penyebab yang umum. Tanda tangan mencakup timestamp permintaan, sehingga jika jam server menyimpang, permintaan gagal dengan gejala yang mirip masalah kredensial. Jalankan sinkronisasi waktu NTP di server integrasi, kirim timestamp dalam detik, bukan milidetik, dan catat timestamp yang kamu kirim beserta setiap kode respons untuk mengisolasi masalah.

### Apakah saya perlu PKS sebelum bisa live dengan BPJS Ketenagakerjaan?

Hanya jika kamu membutuhkan API bridging live untuk akses real-time. Sebagian besar sistem HR tidak pernah sampai ke tingkat itu, karena SIPP Online mencakup pelaporan dan EPS mencakup pembayaran host-to-host. Jika memang perlu, BPJS akan meminta entitas hukum formal sebagai pihak penandatangan, kasus penggunaan yang terdokumentasi, kontak teknis yang lolos review keamanan, dan kesabaran: siklusnya umumnya butuh berminggu-minggu hingga berbulan-bulan.

### Dari mana sistem saya sebaiknya mengambil tarif iuran BPJS?

Dari BPJS dan peraturannya langsung, bukan dari tulisan blog. Tarif dan batas upah ditetapkan oleh peraturan pemerintah dan BPJS, berbeda per program dan kelas risiko, dan sebagian batas disesuaikan secara berkala, jadi panduan ini sengaja tidak mencantumkannya. Simpan setiap nilai sebagai konfigurasi bertanggal beserta dasar hukum dan tanggal berlakunya, dan uji hasil sistemmu terhadap angka BPJS sendiri sebelum go-live.

### Bagaimana jika integrasi BPJS langsung terlalu rumit atau timeline PKS terlalu lama?

Gunakan agregator PPOB. IAK API menawarkan inquiry BPJS Ketenagakerjaan sebagai produk pascabayar, dengan kode produk terpisah untuk peserta penerima upah (BPJSTKPU) dan peserta informal (BPJSTKBPU), tanpa kemitraan langsung dengan BPJS. Permintaan ditandatangani dengan hash MD5, bukan skema milik BPJS. Trade-off-nya: ini layanan pihak ketiga berbayar, dan kamu bergantung pada uptime serta akurasi datanya.

### Bagaimana cara mendapatkan akses BPJS Ketenagakerjaan untuk sistem HR baru?

Mulai dari anak tangga terbawah: siapkan data pekerja dan mutasi di sistem HR lalu ekspor file yang kompatibel dengan SIPP untuk diunggah manual, tanpa perlu persetujuan. Lalu bekerja langsung di SIPP Online (sipp.bpjsketenagakerjaan.go.id), dan tambahkan EPS untuk pembayaran host-to-host lewat bank mitra. Kejar API bridging live, yang membutuhkan PKS hasil negosiasi, hanya jika produkmu benar-benar membutuhkan akses real-time.

### Bagaimana fasilitas kesehatan mengajukan akses bridging VClaim atau PCare BPJS Kesehatan?

Faskes harus sudah menjadi mitra BPJS Kesehatan. Menurut pedoman bridging VClaim 2.0 BPJS Kesehatan, faskes mengirim surat permohonan bridging dan Pakta Integritas yang ditandatangani ke kantor cabang, menerima kredensial tester (Consumer ID, Secret Key, dan User Key), membangun sistem dengan kredensial itu, dan harus lolos seluruh ceklis UAT sebelum kredensial produksi diterbitkan. Pedoman itu untuk rumah sakit, jadi klinik yang memakai PCare sebaiknya memastikan prosedurnya ke kantor cabang.

---

- HTML version: https://www.matthewswong.com/id/blog/bpjs-api-integration/
- English: https://www.matthewswong.com/en/blog/bpjs-api-integration/
- Site index for agents: https://www.matthewswong.com/llms.txt
- Sitemap: https://www.matthewswong.com/sitemap.xml
- API description (OpenAPI): https://www.matthewswong.com/openapi.json
