Retensi Proyek: Kapan Penghasilan Diakui dan kapan pajak dipotong?

IDTAX.OR.ID KNOWLEDGE SYSTEM

Retensi Proyek: Kapan Penghasilan Diakui dan kapan pajak dipotong?

FormatPost
Diperbarui16 September 2026
Waktu baca8 menit
KonteksPanduan praktis

Kontrak konstruksi selesai 100 persen.

BAST 1 ditandatangani.

Owner membayar 95 persen.

Lima persen ditahan sebagai retensi selama masa pemeliharaan.

Enam bulan kemudian, setelah defect selesai, retensi dibayar.

Secara komersial, kontraktor merasa seluruh proyek sudah selesai sejak BAST 1.

Secara pajak, ada dua timing yang perlu dipisahkan.

PPN.

Dan PPh Final jasa konstruksi.

DJP dalam materi resmi aspek perpajakan usaha jasa konstruksi yang diterbitkan Juli 2026 menjelaskan perbedaan ini dengan cukup terang.

Pembahasan yang masih berada dalam jalur isu yang sama dapat dilanjutkan ke Joint Operation Proyek Konstruksi: Siapa yang Memiliki Kewajiban Pajak?.

Saat BAST 1, jasa konstruksi sudah selesai dan diserahkan kepada owner. Karena penyerahan JKP terjadi lebih dahulu daripada pembayaran retensi, Faktur Pajak diterbitkan atas keseluruhan jasa konstruksi.

Namun PPh Final jasa konstruksi pada pembayaran termin mengikuti saat diterimanya pembayaran.

Retensi yang belum dibayar tidak otomatis dipotong PPh Final pada saat BAST 1 hanya karena PPN sudah terutang.

Ini contoh penting bahwa satu transaksi dapat mempunyai timing PPN dan PPh yang berbeda.

Apa sebenarnya retensi?

DJP mendefinisikan retensi dalam konteks konstruksi sebagai bagian pembayaran kontrak yang ditahan pemberi kerja sebagai jaminan pemeliharaan dan dibayarkan setelah pekerjaan selesai sesuai kontrak.

Untuk memperluas konteks pada bagian ini, lihat Biaya Pengurusan Izin Proyek: Beban, aset, atau bagian dari harga perolehan?.

Untuk penyelenggaraan jasa konstruksi yang menggunakan keuangan negara, jaminan pemeliharaan sebesar 5 persen dikenal dalam praktik regulasi pengadaan.

Untuk konstruksi secara umum, jaminan tidak selalu berbentuk retensi dan nilainya mengikuti perjanjian.

Jadi jangan menganggap semua proyek pasti 5 persen.

Kontrak komersial bisa 2,5 persen.

5 persen.

10 persen.

Atau menggunakan bank guarantee tanpa cash retention.

Tax team harus membaca contract.

PPh Final dipotong saat pembayaran

Pada jasa konstruksi, mekanisme pelunasan PPh Final dilakukan melalui pemotongan oleh pengguna jasa saat pembayaran jika pengguna jasa merupakan pemotong.

Jika pengguna jasa bukan pemotong, penyedia jasa menyetor sendiri sesuai ketentuan.

DJP materi 2026 secara eksplisit menulis PPh Final atas jasa konstruksi terutang saat diterimanya pembayaran.

Artinya:

owner membayar 95 persen pada BAST 1.

PPh Final dipotong dari 95 persen yang dibayar sesuai tarif penyedia.

Retensi 5 persen belum dibayar.

PPh Final atas bagian retensi mengikuti ketika retensi dibayarkan.

Jangan kontraktor meminta bukti potong 100 persen saat baru menerima 95 persen jika struktur pembayaran memang demikian.

Bukti potong harus mengikuti payment.

PPN berbeda

Pada BAST 1, pekerjaan selesai dan jasa diserahkan.

DJP menyatakan penyerahan JKP terjadi lebih dahulu daripada pembayaran lunas.

Karena itu, Faktur Pajak atas keseluruhan jasa konstruksi diterbitkan pada saat penyerahan tersebut sesuai kondisi.

Ini membuat kontraktor dapat mempunyai situasi:

PPN keluaran atas 100 persen nilai jasa sudah muncul.

Cash baru diterima 95 persen.

Retensi 5 persen baru cair enam bulan kemudian.

Ada cash flow gap.

Jangan CFO kaget.

Model proyek harus memasukkan.

PPN bukan ditunda hanya karena customer menahan retensi jika tax point penyerahan sudah terjadi.

PPh Final atas retensi baru mengikuti payment.

Accounting revenue punya pertanyaan ketiga

Kapan revenue diakui?

Itu mengikuti standar akuntansi dan substansi kontrak, bukan otomatis payment schedule.

Dalam kontrak konstruksi, revenue bisa diakui berdasarkan progress atau metode lain sesuai standar yang diterapkan dan fakta.

BAST 1 dapat menjadi milestone penting.

Retensi bisa tetap menjadi receivable.

Artinya pada bulan BAST:

commercial revenue mungkin 100 persen atau sesuai measurement.

PPN bisa 100 persen berdasarkan penyerahan.

PPh Final baru 95 persen karena payment 95 persen.

Tiga angka berbeda.

Jangan menganggap mismatch berarti salah.

Buat bridge.

Itulah cara yang sehat.

Retensi bukan revenue baru

Ketika retensi Rp500 juta dibayar enam bulan kemudian, jangan accounting mengakui revenue baru Rp500 juta jika revenue tersebut sudah diakui sebelumnya berdasarkan treatment komersial.

Dari sisi PPh Final, justru pada saat cash retensi diterima muncul pemotongan PPh atas payment tersebut sesuai ketentuan.

Ini sebab tax subledger tidak boleh hanya mengikuti revenue GL.

Tax team perlu retention schedule.

Contract.

Gross value.

BAST 1.

Revenue recognized.

PPN invoiced.

Cash 95%.

PPh Final 95%.

Retention receivable.

Retention payment.

PPh Final retention.

Dengan schedule ini, semua jelas.

Retensi dibayar setelah BAST 2

Banyak kontrak menggunakan BAST 2 sebagai dokumen setelah masa pemeliharaan selesai.

DJP materi konstruksi juga menggambarkan alur:

pekerjaan selesai,

BAST 1,

retensi ditahan,

masa pemeliharaan,

BAST 2,

retensi dibayar.

Jangan gunakan BAST 2 sebagai tax point PPN atas seluruh jasa jika BAST 1 sudah menunjukkan penyerahan jasa selesai.

BAST 2 lebih berkaitan dengan penyelesaian kewajiban pemeliharaan dan pelepasan jaminan.

PPN timing sudah bisa muncul di BAST 1.

PPh retention muncul saat cash payment.

Tax team perlu memahami fungsi dokumen.

Nama BAST saja tidak cukup.

Lihat apa yang diserahterimakan.

Retensi bisa diganti bank guarantee

Owner tidak menahan 5 persen cash.

Kontraktor menerima 100 persen pembayaran.

Sebagai gantinya, kontraktor menyerahkan jaminan pemeliharaan bank.

Dalam struktur ini, tidak ada retensi cash.

PPh Final atas pembayaran 100 persen mengikuti cash yang diterima sesuai ketentuan.

Jangan memaksa menyisakan PPh 5 persen hanya karena proyek lain memakai retensi.

Tax follows payment arrangement.

Guarantee fee ke bank menjadi cost terpisah.

Jangan mencampur.

Ini contoh kenapa contract abstraction penting.

Satu proyek 5 persen retention.

Proyek lain 100 persen payment plus guarantee.

Tax schedule berbeda.

Retention release sebagian juga perlu diikuti

Owner menahan Rp1 miliar.

Setelah tiga bulan, melepaskan Rp600 juta.

Sisa Rp400 juta ditahan karena defect.

PPh Final muncul atas pembayaran Rp600 juta sesuai tarif yang berlaku bagi penyedia.

Sisa mengikuti payment berikutnya.

Jangan menunggu seluruh retensi cair.

Setiap payment merupakan tax event.

Buat retention ledger per invoice.

Opening retention.

Release.

Tax withheld.

Closing retention.

Defect reason.

Expected release date.

Ini juga membantu collections.

Tax dan project control bisa memakai file sama.

Subkontraktor juga punya retensi sendiri

Main contractor menerima 95 persen dari owner.

Tetapi menahan 10 persen dari subkontraktor.

Jangan menghubungkan kedua retensi secara otomatis.

Masing-masing kontrak punya payment event.

Main contractor sebagai pengguna jasa memotong PPh Final subkontraktor ketika membayar sesuai ketentuan.

Owner memotong main contractor ketika membayar.

Jadi tax schedule project harus multi-layer.

Retention owner.

Retention subcontractor A.

Retention subcontractor B.

Jika semua digabung, bukti potong sulit direkonsiliasi.

Satu project punya banyak receivable dan payable.

Pajak mengikuti masing-masing.

PPN subkontraktor juga punya gap serupa

Subkontraktor selesai dan BAST dengan main contractor ditandatangani.

Main contractor menahan retensi.

Jika penyerahan JKP sudah terjadi, PPN subkontraktor dapat terutang atas keseluruhan jasa meskipun retensi belum dibayar sesuai prinsip yang dijelaskan DJP.

Subkontraktor menanggung cash flow PPN.

PPh Final atas retensi baru dipotong ketika main contractor membayar.

Jangan semua kontraktor menyalahkan owner.

Ini karakter timing pajak.

Pricing dan working capital harus mempertimbangkan.

Project finance sebaiknya menghitung:

VAT cash gap,

retention cash gap,

PPh Final timing,

dan cost of capital.

Retention adalah working capital issue sekaligus tax timing issue.

Penghasilan final dan deduction cost jangan dicampur

Kontraktor utama menerima revenue yang dikenai PPh Final jasa konstruksi.

Ia juga membayar subcontractor.

PPh Final bersifat final atas gross revenue sesuai mekanisme tarifnya.

Biaya subcontractor tidak mengurangi basis PPh Final kontraktor utama seperti sistem laba neto.

Karena itu, retensi cost ke subcontractor dan retensi revenue dari owner mempunyai konsekuensi cash yang berbeda.

Jangan CFO berpikir pembayaran subcontractor nanti akan mengurangi PPh Final main contractor.

Tidak.

PPh Final dihitung atas payment revenue yang menjadi objek sesuai tarif.

Margin accounting tetap dipengaruhi cost.

Tax final tidak.

Ini membuat project margin after tax harus dimodelkan dengan benar.

Apa yang terjadi jika retensi tidak pernah dibayar?

Owner menolak karena defect besar.

Kontraktor akhirnya setuju potong retensi.

Secara accounting, receivable mungkin diturunkan atau dihapus.

Dari sisi PPh Final, jika payment tidak pernah diterima, jangan otomatis ada withholding atas cash yang tidak dibayar.

Tetapi tax team tetap perlu melihat apakah ada set off, kompensasi, atau settlement yang secara substansi merupakan pembayaran atau pelunasan.

Misalnya owner menggunakan retensi untuk membayar biaya perbaikan yang seharusnya ditanggung kontraktor.

Jangan langsung menyimpulkan nilainya hilang.

Settlement agreement perlu dibaca.

Tax follows economic settlement.

Bukan label “forfeited”.

Retensi harus direkonsiliasi dengan bukti potong setelah dibayar

Salah satu masalah umum adalah accounting sudah menerima cash retensi tetapi tax team tidak tahu.

Owner transfer Rp500 juta.

Treasury mencatat against receivable.

Bukti potong PPh Final baru diterima kemudian.

Kalau tidak ada follow up, ledger menunjukkan tax receivable yang menggantung.

Buat retention release checklist.

Saat cash masuk:

match ke project,

match ke retention invoice,

cek PPh Final yang dipotong,

minta atau tarik bukti potong,

update retention ledger,

dan tutup receivable.

Kalau cash diterima net tetapi bukti potong belum tersedia, jangan langsung menganggap selisih sebagai bank charge atau deduction lain.

Cari tax proof.

Retention payment sering terjadi berbulan-bulan setelah project team pindah ke proyek baru.

Itulah alasan tax workflow harus diotomatisasi.

Jangan bergantung pada project manager lama untuk mengingat.

Buat retention tax schedule

Kolom minimum:

project,
owner,
contract value,
PPh Final rate,
BAST 1,
PPN full invoice,
payment before retention,
PPh withheld,
retention amount,
BAST 2,
release date,
retention payment,
PPh retention,
outstanding,
dan dispute status.

Untuk subcontractor, buat schedule terpisah.

Jangan net.

Dengan schedule ini, tax team dapat menjelaskan mengapa PPN output lebih besar dari cash collection dan mengapa PPh Final belum mencapai nilai penuh kontrak.

Ini justru expected pada retention structure.

Kapan penghasilan diakui dan kapan pajak dipotong?

Jangan mencari satu tanggal yang menjawab semuanya.

Pengakuan revenue mengikuti standar akuntansi dan kontrak.

PPN mengikuti saat terutang yang dapat muncul pada penyerahan lebih dahulu daripada pembayaran.

PPh Final jasa konstruksi dipotong saat pembayaran.

Retensi dibayar kemudian, sehingga PPh Final atas bagian retensi mengikuti payment release.

Satu kontrak mempunyai beberapa clock.

Accounting clock.

PPN clock.

PPh clock.

Cash clock.

Retensi adalah contoh terbaik kenapa tax team harus mampu membaca semuanya tanpa memaksa jam-jam tersebut menunjukkan waktu yang sama.

Leave a Comment

Your email address will not be published. Required fields are marked *