e-Faktur Host-to-Host: Cara Kerja, Syarat & API

Diagram alur e-Faktur host-to-host: ERP mengirim data ke API PJAP, diteruskan ke Coretax DJP, nomor faktur kembali ke ERP

e-Faktur host-to-host adalah cara menerbitkan faktur pajak elektronik langsung dari ERP atau aplikasi bisnis ke Coretax DJP melalui API milik Penyedia Jasa Aplikasi Perpajakan (PJAP), tanpa input manual atau unggah file. Sistem mengirim data invoice, DJP mengalokasikan nomor faktur, lalu nomor dan status kembali otomatis ke sistem sumber.

Fakta Singkat

  • Definisi: penerbitan faktur pajak elektronik secara system-to-system dari ERP atau aplikasi bisnis ke Coretax DJP melalui API PJAP.
  • Dasar hukum: PMK 81 Tahun 2024 (Coretax), PER-5/PJ/2025 (layanan PJAP), dan PMK 131 Tahun 2024 (penghitungan PPN 12%).
  • Berlaku sejak: Coretax DJP berlaku 1 Januari 2025; PJAP wajib menyesuaikan layanannya paling lambat 31 Desember 2025.
  • Siapa terdampak: Pengusaha Kena Pajak (PKP) dengan faktur keluaran bervolume tinggi, multi-cabang atau multi-NITKU, serta vendor ERP dan SaaS.
  • Sistem terkait: Coretax DJP, ERP, Nomor Seri Faktur Pajak (NSFP), sertifikat elektronik, NITKU.
  • Terakhir diverifikasi: 15 Oktober 2026.

Apa itu e-Faktur host-to-host?

e-Faktur host-to-host adalah integrasi langsung antara sistem milik PKP dan sistem DJP untuk membuat, mengganti, membatalkan, dan meretur faktur pajak. Sistem kamu tidak membuka portal atau mengunggah file. Data dikirim lewat API PJAP, lalu nomor faktur dan status kembali ke sistem sumber dalam response yang sama.

Istilah "host" merujuk ke server. Host pertama adalah ERP, aplikasi kasir, atau platform billing kamu. Host kedua adalah layanan e-Faktur di Coretax DJP. PJAP berada di tengah sebagai penghubung resmi yang menyediakan API dan meneruskan permintaan ke DJP.

Model ini bukan hal baru. Dulu aplikasi host-to-host hanya untuk PKP skala besar yang ditetapkan lewat keputusan Dirjen Pajak, setelah permohonan tertulis dan uji UAT. Pada 2022, PER-03/PJ/2022 membukanya untuk PKP yang membuat e-Faktur melalui PJAP yang ditunjuk Dirjen Pajak (DDTCNews, 18 April 2022).

Di era Coretax DJP, yang berlaku sejak 1 Januari 2025, prinsipnya tetap: data dari sistem kamu masuk ke layanan e-Faktur Coretax melalui PJAP, tanpa perantara manusia di tengah.

Bagaimana cara kerja e-Faktur host-to-host di Coretax?

Alurnya terdiri dari empat lapis. Sistem sumber menyiapkan data invoice. API PJAP memvalidasi format dan meneruskan data penandatangan. Coretax DJP memeriksa data dan mengalokasikan nomor dari NSFP milik PKP. Terakhir, response membawa nomor faktur dan status kembali ke sistem sumber untuk disimpan sebagai audit trail.

TahapSistem kamu (ERP)API PJAPCoretax DJP
1. Persiapan dataAmbil invoice, NPWP/NITKU pembeli, DPP, PPNSediakan katalog referensi: kode transaksi, satuan, barang/jasaMenyediakan data master
2. PengirimanKirim request pembuatan fakturValidasi skema, teruskan beserta data penandatanganValidasi pembeli dan isi faktur
3. PenomoranKosongkan field nomorFakturMeneruskan permintaanAlokasikan nomor 17 digit dari NSFP
4. Tanda tanganAmbil passphrase dari secrets managerKirim otorisasi tanda tanganStatus APPROVED atau SIGNING_IN_PROGRESS
5. RekonsiliasiSimpan nomor faktur, status, dan ID korelasiSediakan check-statusStatus akhir dokumen

Satu prinsip penting: nomor faktur tidak dialokasikan oleh ERP. Menurut dokumentasi API e-Faktur, DJP mengambil nomor dari pool NSFP organisasi dan mengembalikannya di field data.result.nomorFaktur. Untuk pengganti, pembatalan, dan check-status, nomor itu dikirim kembali apa adanya.

Apa dasar hukum dan syarat e-Faktur host-to-host?

Dasar hukum utamanya PMK 81 Tahun 2024 tentang ketentuan perpajakan dalam rangka pelaksanaan Coretax, yang ditetapkan 14 Oktober 2024 dan berlaku 1 Januari 2025 (DJP, SP-40). Untuk penyedianya, PER-5/PJ/2025 mengatur layanan PJAP dan menempatkan e-Faktur host-to-host sebagai layanan penunjang yang memerlukan persetujuan DJP.

PER-5/PJ/2025 menggantikan PER-11/PJ/2019 sebagaimana diubah PER-10/PJ/2020. Aturan ini menetapkan lima layanan wajib PJAP (Ortax, 19 September 2025):

  • Validasi status wajib pajak (VSWP).
  • Aplikasi pembuatan dan penyaluran bukti potong/pungut elektronik.
  • Modul e-Faktur.
  • Aplikasi pembuatan kode billing.
  • Penyaluran SPT dalam bentuk dokumen elektronik.

Penerbitan NPWP karyawan dan e-Faktur host-to-host tidak lagi menjadi layanan utama. Keduanya menjadi layanan penunjang, sepanjang fiturnya sudah disetujui DJP. PJAP wajib menyesuaikan sistemnya paling lambat 31 Desember 2025. Prosedur persetujuan dan parameter teknisnya tidak dirinci dalam sumber publik yang kami periksa (Pending DJP regulation clarification), jadi minta calon PJAP menunjukkan izin layanannya.

Di sisi PKP, dokumentasi API e-Faktur menyebut beberapa prasyarat teknis:

  • Status PKP aktif dengan pool NSFP yang tersedia di DJP.
  • Sertifikat elektronik yang diunggah sekali saat onboarding organisasi.
  • Penandatangan (NIK) yang terdaftar sebagai penandatangan berwenang organisasi di DJP.
  • Kredensial API dan header npwp yang sudah terdaftar untuk organisasi kamu.

Apa beda host-to-host dengan impor XML dan aplikasi PJAP?

Bedanya ada di titik masuk data. Impor XML dan aplikasi PJAP tetap memindahkan file dari sistem kamu ke portal atau aplikasi lain. Host-to-host mengirim data per transaksi langsung dari ERP, sehingga nomor faktur dan status tersimpan otomatis di invoice tanpa salin-tempel.

Perbandingan lengkap ketiga pendekatan, termasuk kapan impor XML masih cukup, ada di integrasi faktur Coretax: manual, aplikasi PJAP, atau API. Struktur file impornya kami bahas di format XML faktur pajak Coretax.

Endpoint apa saja yang dipakai untuk e-Faktur host-to-host?

Modul e-Faktur di Sipajak API v1.8 berisi 24 endpoint dalam lima kelompok: referensi DJP, Pajak Keluaran, Dokumen Keluaran, Pajak Masukan, dan Dokumen Masukan. Ada juga utilitas scan dan check-status. Untuk faktur penjualan, endpoint intinya create-faktur-pk, ditambah endpoint pengganti dan pembatalan.

KelompokContoh endpointFungsi
Referensi DJPGET /v1/ref/transaction-codeKode transaksi DJP (TD.003xx); juga satuan, barang/jasa, dan negara
Pajak KeluaranPOST /v2/efaktur/create-faktur-pkMenerbitkan faktur penjualan baru
Pengganti dan batalPOST /v2/efaktur/create-faktur-pk-amended dan /cancel-faktur-pkFaktur pengganti dan pembatalan faktur
Dokumen KeluaranPOST /v2/efaktur/create-document-pkDokumen yang dipersamakan dengan faktur pajak
Pajak MasukanPOST /v2/efaktur/create-faktur-pmPrepopulate atau klaim faktur masukan
UtilitasPOST /v2/efaktur/check-statusMenyegarkan status dokumen di DJP

Contoh request pembuatan faktur dari dokumentasi API e-Faktur, dengan nilai sintetis:

POST /v2/efaktur/create-faktur-pk HTTP/1.1
Host: gateway-integration.sipajak.com
Authorization: Basic <base64-encoded credentials>
npwp: 1234567890123000
Content-Type: application/json
{
  "fgUangMuka": false,
  "fgPelunasan": false,
  "nomorFaktur": null,
  "tanggalFaktur": "11052026",
  "detailTransaksi": "TD.00304",
  "idKeteranganTambahan": "",
  "keteranganTambahan": "",
  "masaPajak": "05",
  "tahunPajak": "2026",
  "referensi": "INV-2026-05-001",
  "npwpPenjual": "1234567890123000",
  "namaTokoPenjual": "1234567890123000000000",
  "npwpPembeli": "2345678901234000",
  "tkuPembeli": "2345678901234000000000",
  "kdNegaraPembeli": "IDN",
  "namaPembeli": "PT Pembeli Contoh",
  "alamatPembeli": "Jalan Contoh No. 1, Jakarta 12345",
  "emailPembeli": "buyer@example.com",
  "objekFaktur": [
    {
      "brgJasa": "SERVICES",
      "kdBrgJasa": "000000",
      "namaBrgJasa": "Jasa Analisa Laboratorium",
      "satuanBrgJasa": "UM.0030",
      "hargaSatuan": 4000000,
      "jmlBrgJasa": 1,
      "totalHarga": 4000000,
      "diskon": 0,
      "cekDppLain": true,
      "dpp": 4000000,
      "dppLain": 3666666.67,
      "tarifPpn": 0.12,
      "ppn": 440000,
      "tarifPpnbm": 0,
      "ppnbm": 0
    }
  ],
  "jumlahUangMuka": 0,
  "totalDpp": 4000000,
  "totalDppLain": 3666667,
  "totalPpn": 440000,
  "totalPpnbm": 0,
  "npwpNikPenandatangan": "1234567890123000",
  "tempatPenandatangan": "Jakarta",
  "passphrasePenandatangan": "<certificate passphrase>",
  "userId": "1234567890123000",
  "kanal": "08",
  "idKanal": "08"
}

Contoh response saat tanda tangan langsung selesai:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
  "status_code": 200,
  "message": "OK",
  "data": {
    "status": "1",
    "statusMessage": "Success",
    "result": {
      "approvalSign": "Done",
      "nomorFaktur": "04002600000000003",
      "idFaktur": "18bbca3a-a706-4d96-bbf0-0f3de97b6f78",
      "tanggalApproval": "2026-05-11",
      "statusFaktur": "APPROVED",
      "kodeApproval": ""
    },
    "uuid": "73896e3b-bb08-4e82-a234-4e6dac509b8b"
  }
}

Perhatikan format tanggal di request: tanggalFaktur memakai DDMMYYYY tanpa pemisah, sedangkan response bisa memakai format lain. Dokumentasi menyarankan parser tanggal yang longgar.

Bagaimana menghitung PPN di payload faktur?

Untuk penyerahan selain barang mewah, PPN dihitung 12% × 11/12 × harga jual, sehingga beban efektifnya 11% dari harga jual (Hukumonline, 6 Januari 2025, merujuk PMK 131 Tahun 2024). Di payload, hitungan ini diisi lewat field cekDppLain, dpp, dppLain, dan tarifPpn pada setiap objek faktur.

Ilustrasi hipotetis untuk satu baris jasa senilai Rp4.000.000:

KomponenNilaiField payload
Harga jual (DPP)Rp4.000.000dpp
DPP nilai lain (11/12 × harga jual)Rp3.666.666,67dppLain
Tarif PPN12%tarifPpn: 0.12
PPN terutang (12% × DPP nilai lain)Rp440.000ppn
Cek silang: 11% × harga jualRp440.000—

Dokumentasi menyebut Sipajak tidak memaksakan rasio 11/12 di sisi server. Karena itu, validasi rasio sebaiknya ada di ERP kamu sebelum request dikirim, termasuk pembulatan di total seperti totalDppLain.

Bagaimana membaca status dan error dari DJP?

Pada modul e-Faktur, kegagalan bisnis dari DJP tidak muncul sebagai HTTP error. Response tetap HTTP 200, tetapi data.status bernilai "0" dan penyebabnya ada di data.statusMessage. Logika ERP harus membaca status di dalam data, lalu membaca status faktur seperti APPROVED atau SAVED_INVALID.

Status fakturArtiTindakan di ERP
APPROVEDTanda tangan selesai, faktur berlakuSimpan nomor faktur, tandai invoice selesai
SIGNING_IN_PROGRESSTanda tangan berjalan asinkron di DJPCek ulang lewat check-status
SAVED_INVALIDTanda tangan gagal atau ditolak validasi DJPPerbaiki data, lalu kirim ulang
AMENDEDSudah diganti faktur penggantiTautkan ke nomor faktur pengganti
CANCELEDFaktur dibatalkanTandai invoice dan sesuaikan laporan

Contoh pesan error DJP yang tercantum di dokumentasi:

  • npwpPembeli tidak ditemukan: NPWP pembeli tidak ada di data induk DJP. Konfirmasi ke pembeli atau cek dulu lewat API VSWP.
  • tkuPembeli tidak valid: format TKU salah. Formatnya NPWP pembeli ditambah 6 digit (biasanya nol), total 22 karakter.
  • ... tidak memiliki hak untuk membuat Faktur/Dokumen: NIK penandatangan belum terdaftar sebagai penandatangan berwenang organisasi di DJP.

Satu jebakan lagi: check-status selalu mengembalikan HTTP 201 dengan data null. Status sebenarnya dibaca ulang dari detail dokumen. Dokumentasi juga menyarankan tidak melakukan polling di latar belakang, karena setiap panggilan langsung menuju DJP. Daftar pesan lain ada di kode error Coretax dan konvensi API.

Bagaimana mengamankan sertifikat dan passphrase?

Sertifikat elektronik diunggah sekali saat onboarding organisasi. Setiap request yang membuat atau mengubah dokumen membawa data penandatangan dan passphrase. Passphrase dikirim sebagai field teks di atas TLS, jadi perlakukan seperti kata sandi: jangan dicatat di log, jangan ditampilkan di pesan error, dan simpan di secrets manager.

  • Simpan passphrase di secrets manager, bukan di file konfigurasi biasa.
  • Masking field passphrasePenandatangan di semua log aplikasi dan API gateway.
  • Pisahkan kredensial API untuk staging dan production.
  • Bedakan NPWP organisasi (npwpPenjual) dan NIK penandatangan (npwpNikPenandatangan) di master data.

Apa saja tahapan implementasinya?

Implementasi e-Faktur host-to-host bergerak dari pemetaan data ke uji coba, lalu ke production. Lama tiap tahap bergantung pada kondisi ERP dan jumlah NITKU, jadi tetapkan target per tahap, bukan satu tanggal besar. Urutan berikut membantu tim IT dan finance membagi pekerjaan.

  1. Hitung volume faktur keluaran per bulan, jumlah cabang atau NITKU, dan kode transaksi yang dipakai.
  2. Minta bukti izin layanan e-Faktur host-to-host dari calon PJAP, lalu cocokkan dengan profilnya di situs DJP.
  3. Petakan field invoice ERP ke field faktur: ID dan TKU pembeli, kode transaksi, objek faktur, DPP, DPP nilai lain, dan PPN.
  4. Daftarkan sertifikat elektronik dan penandatangan berwenang, lalu simpan passphrase di secrets manager.
  5. Uji di environment staging: faktur normal, pengganti, pembatalan, dan skenario soft error.
  6. Bangun rekonsiliasi untuk invoice tanpa nomor faktur, status SIGNING_IN_PROGRESS, dan SAVED_INVALID.
  7. Pindah ke production dan pantau faktur gagal di setiap masa pajak.

Bagaimana Sipajak menjalankan integrasinya?

Sipajak adalah Penyedia Jasa Aplikasi Perpajakan (PJAP) resmi yang terdaftar dan diawasi DJP, menyediakan API pajak end-to-end, platform, dan solusi white-label. Integrasi e-Faktur dimulai dari pemetaan field invoice ERP ke field faktur Coretax, lalu diuji di environment staging sebelum production. Layanan ini berjalan di bawah izin e-Faktur Host-to-Host, salah satu dari 9 izin layanan PJAP kami.

Untuk tim IT & finance

  • Tetapkan pemilik data master pembeli (NPWP, NITKU, alamat) dan jadwal validasinya.
  • Simpan nomor faktur, status, dan uuid korelasi DJP di setiap invoice ERP.
  • Validasi rasio DPP nilai lain 11/12 di ERP sebelum request dikirim.
  • Buat antrean ulang untuk faktur SAVED_INVALID dan laporan harian invoice tanpa nomor faktur.
  • Cocokkan faktur keluaran di ERP dengan data Coretax sebelum SPT Masa PPN dilaporkan.

FAQ

Apa bedanya e-Faktur host-to-host dengan e-Faktur di portal Coretax?

Di portal, tim finance mengisi atau mengimpor faktur secara manual. Pada host-to-host, ERP mengirim data per transaksi melalui API PJAP, lalu menerima nomor faktur dan status secara otomatis tanpa membuka portal Coretax.

Apakah semua PJAP boleh melayani e-Faktur host-to-host?

Tidak otomatis. PER-5/PJ/2025 menempatkan e-Faktur host-to-host sebagai layanan penunjang yang hanya bisa diberikan setelah fiturnya disetujui DJP. Minta calon PJAP menunjukkan izin layanannya sebelum integrasi dimulai.

Siapa yang menentukan nomor faktur pada host-to-host?

DJP. Sistem kamu mengosongkan field nomorFaktur saat membuat faktur. DJP mengambil nomor dari NSFP milik PKP dan mengembalikan nomor 17 digit di response.

Kenapa request berhasil HTTP 200 tetapi faktur tidak terbit?

Pada modul e-Faktur, kegagalan dari DJP dikirim sebagai HTTP 200 dengan data.status "0". Baca data.statusMessage untuk penyebabnya, misalnya NPWP pembeli tidak ditemukan atau format TKU pembeli salah.

Apakah perusahaan kecil perlu host-to-host?

Belum tentu. Bila faktur keluaran sedikit dan jarang, input manual atau impor XML di Coretax sering sudah cukup. Host-to-host lebih bernilai saat faktur dibuat dari ERP dalam jumlah besar atau dari banyak cabang.

Siap menghubungkan ERP kamu ke Coretax tanpa unggah file? Pelajari dokumentasi API e-Faktur, lalu klik Minta Akses API. Untuk paket, lihat harga mulai Rp1.000 per dokumen pajak. Gambaran semua modul ada di API pajak Indonesia dan panduan API Coretax.

Sumber & Dasar Hukum

Diperbarui: 15 Oktober 2026 · Ditulis oleh Tim Pajak Sipajak

Artikel ini bersifat edukasi, bukan nasihat pajak. Untuk kasus spesifik, konsultasikan dengan konsultan pajak terdaftar.