
List of Tax Object Codes in Coretax in Indonesia: BPA1, BPA2, BP21 & BP26 Guide
Navigating the Indonesian tax system as a foreign business owner often feels like learning a new language, especially with the 2026 implementation of the Coretax administration system.
For Directors of a PT PMA in Bali or Jakarta, the shift from legacy software to a fully integrated platform has introduced a critical layer of precision: the mandatory use of standardized Tax Object Codes in Coretax.
These alphanumeric strings, such as 21-100-01 or 27-100-99, serve as the technical foundation of your payroll reporting. They tell the tax office exactly who you are paying, why you are paying them, and whether the correct tax rate has been applied to the transaction.
For a PT PMA, this means every single disbursement—whether it is a CEO’s monthly salary, a local cleaner’s daily wage, or a foreign consultant’s project fee—must be meticulously mapped to the corresponding regulatory identifier within the Coretax environment.
The confusion for many payroll managers arises when they realize that the old generic codes no longer work or have been reclassified under the new PER-11/PJ/2025 regulation. A simple error, such as tagging a freelance graphic designer with a permanent employee code, can trigger a cascade of validation failures in the system.
As the Indonesian tax landscape becomes increasingly digitized, the margin for administrative error has narrowed, making it vital for stakeholders to understand the granular mechanics of this updated coding master list.
Table of Contents
- Regulatory Basis and Coretax Implications in Indonesia
- BPA1 & BPA2: Employee Object Codes Explained
- BP21: Monthly PPh 21 Slips and Object Codes in Bali
- BP26: PPh 26 Slips for Non-Resident Income
- Choosing the Right Code in Coretax
- Real Story: The Validation Failure in Seminyak
- Common Errors and Validation Rules in Indonesia
- Audit Risks for Incorrect Object Coding in Bali
- FAQs about Tax Object Codes
Regulatory Basis and Coretax Implications in Indonesia
The foundation for all withholding tax activities in the current fiscal year is Regulation PER-11/PJ/2025. This legal framework not only mandates the use of the Coretax system but also establishes Lampiran A as the definitive reference list for all Tax Object Codes in Coretax.
This annex is the only authoritative source for the identifiers required to populate your monthly and annual tax returns.
Unlike previous systems where you might have manually typed in a description, Coretax requires you to select from a pre-defined list that is hard-coded into the portal. This ensures standardization across millions of taxpayers but removes the flexibility previously enjoyed by users.
For a PT PMA, this shift requires a thorough review of existing payroll master data to ensure every recipient is categorized according to the current 2026 standard.
In the Coretax environment, the “One Bupot” rule prevails. This means a single withholding slip (Bukti Potong) can only contain one taxpayer, one tax object code, and one tax period. You cannot bundle a salary payment and a severance payment into a single line item on the same slip.
This structural rigidity is designed to prevent the masking of different income types and to ensure that the specific progressive or final tax rates associated with each unique code are applied without exception.
The BPA1 and BPA2 forms are the digital successors to the paper-based 1721-A1 and 1721-A2 forms. They serve as the annual consolidated statement of earnings and tax withheld for permanent employees.
BPA1 is specifically for private sector employees (Pegawai Tetap) and pensioners, which accounts for nearly all staff within a foreign-owned PT PMA.
For BPA1, the primary identifiers focus on regular employment income. The most common code is 21-100-01, which covers standard salary, allowances, and bonuses for permanent employees.
If your company employs pensioners who receive regular, periodic payouts, you would instead use 21-100-02. These codes are critical for the “annualization” process where Coretax reconciles 12 months of monthly withholding into a single year-end certificate.
Avoiding errors here is critical because severance pay often has a different tax calculation method compared to regular salary. For example, severance pay (Pesangon) paid in the third year onwards often utilizes code 21-100-25.
Mixing these up triggers immediate recalculation errors. If an employee receives a bonus alongside their final severance, the employer must carefully split these amounts into separate line items or slips to satisfy the system’s internal logic and validation rules.
While BPA1 is an annual summary, the BP21 form is your daily workhorse for monthly compliance. This form is generated for every tax withheld from various income recipients, ranging from casual workers to expert consultants.
The diversity of Tax Object Codes in Coretax for BP21 reflects the varied nature of the gig economy and professional services in Indonesia.
For non-permanent employees or casual workers (Pegawai Tidak Tetap), the codes become more granular based on payment methods.
Code 21-100-30 is typically used for daily or piece-rate wages that exceed IDR 2.5 million per day, a threshold that triggers specific withholding rates.
For PT PMA owners in Bali who often hire temporary event staff or seasonal hospitality workers, this distinction is a frequent source of manual entry errors.
If you are hiring freelancers or paying honorariums to non-employees (Tenaga Ahli), you will shift to the 21-200-xx series. For instance, payments for expert services like legal or accounting advice often fall under this category.
Final tax objects, such as lottery prizes or specific state-funded honoraria, are also categorized under the BP21 form using codes like 21-401-01. Each of these requires the user to differentiate between gross income and the Net Taxable Income (DPP) calculation.
For many PT PMA companies in Bali, paying foreign service providers is a routine operation. Whether it is a marketing consultant in Australia or a software developer in Singapore, these payments trigger PPh Article 26.
The BP26 form is the dedicated instrument for reporting this, specifically designed for non-resident taxpayers (Wajib Pajak Luar Negeri).
The most common code in this category is 27-100-99, which serves as a catch-all for compensation for services, work, activities, and periodic payments subject to PPh 26. When you select this code, the system defaults to a 20% withholding rate unless a treaty applies.
This code is used extensively by foreign-owned firms that pay management fees or royalties back to a parent company or foreign individual.
Inputting PPh 26 in Coretax requires more than just the object code. You must also input the reference number of the foreign taxpayer’s COD (Certificate of Domicile) found in the DJP system.
If you apply a 10% treaty rate but the linked COD reference is missing, the system will flag a “Tax Rate Mismatch.” This integration ensures that only eligible non-residents benefit from reduced tax rates through a professional visa agency in Bali.
Selecting the correct code is a logic-driven process within the Bagian B (Section B) of the e-Bupot interface. When you begin creating a new slip, the system asks for the recipient’s status and residency.
Your choice here filters the available Tax Object Codes in Coretax to prevent the user from selecting a resident code for a non-resident, or vice versa.
For BP21, you must also select the “Facility Type” (Jenis Fasilitas). Options include “Without Facility” (Tanpa Fasilitas), “Government Borne” (DTP), or “Tax Exemption Letter” (SKB). This selection must align with the object code to avoid system errors.
For example, if you choose a code for an expert service but attempt to apply a facility that only applies to permanent employees, the portal will prevent you from moving to the final submission screen.
The interface displays the “Name of Tax Object” alongside the code. Always read this description carefully.
For instance, the distinction between “services” (jasa) and “honorarium” can be subtle but results in different withholding calculations—either an effective rate (TER) or a progressive rate applied to 50% of the gross income.
PT PMA owners should verify the contractual nature of the payment before assigning a code, as reclassifying after the fact is technically cumbersome.
Amelia, a 42-year-old British national from Edinburgh, moved to Bali in mid-2023 to manage a creative collective. In the legacy tax system, a “Consultant Fee” was just a text field you could fill in manually.
But when Amelia tried to file her April return in the new portal, the Coretax validation engine slammed the brakes. Her monthly upload was rejected with a cryptic error regarding “incompatible tenure status.”
By treating her freelance creative team as permanent staff in the system, she had triggered a hard-coded mismatch. The system demanded BPJS payments for workers who didn’t legally qualify for them.
The error stemmed from her selecting 21-100-01—strictly for permanent employees—for project-based artists.
She had assumed that since she paid them every month, they qualified as employees, but the system’s logic required a different classification for those without a permanent employment contract.
Panicked by the deadline, she contacted a local specialist to reconcile the data. They navigated the “Correction” feature, re-categorizing the creative fees under the correct 21-200-xx series.
The validation errors vanished instantly. Amelia realized that in the rigid structure of Coretax, understanding the precise definitions behind the system’s architecture is the only way to keep a PT PMA operational without constant red tape.
One of the most frequent errors involves the misuse of the “Non-Employee” category. Users often confuse 21-200-xx (Services) with 21-100-xx (Salary). If a freelancer is paid a monthly retainer that looks like a salary, the system doesn’t know the difference—you must tell it.
The validation engine checks for a NIK or NPWP; if the recipient’s identity is already registered in the national database as a permanent employee elsewhere, the system may flag a conflict.
Using the wrong code leads to misapplication of the Tarif Efektif Rata-Rata (TER) versus the standard Article 17 calculation. Another validation trap is the “Single Object” rule. In the past, you might have grouped a speaker’s fee and their travel reimbursement together.
Coretax requires these to be evaluated against the “Taxable Base” (DPP). If the travel reimbursement is at-cost and non-taxable, it must be excluded from the gross income field to prevent overpayment.
Coretax validation rules often require these to be separated or consolidated differently depending on the specific object code’s definition. Mixing a final tax object with a non-final object on one slip is technically impossible.
Deciphering error logs requires familiarity with the specific system nomenclature. For a PT PMA, these errors often occur during the XML bulk upload phase, where a single typo in a code string can invalidate an entire payroll batch of 50+ employees.
The stakes for getting these codes wrong extend beyond rejected forms. Incorrect coding is a primary trigger for “Desk Audits” (SP2DK). If your corporate tax return claims a massive deduction for “Professional Fees” but your reports show zero activity under the 21-200-xx codes, the algorithm detects a discrepancy.
This automated cross-referencing is a core feature of Tax Object Codes in Coretax, allowing the DJP to perform real-time audits without ever stepping into your office.
The tax office will ask why you claimed expenses for services without withholding the corresponding tax. Furthermore, misclassification affects your employees’ personal compliance.
If you use a final tax code for a non-final income, your employee cannot use that tax credit to offset their annual liability. This leads to personal tax shortfalls for your staff, which can cause internal HR friction and reputational damage to the company.
Ultimately, consistent errors can lead to an official examination of your books. If the tax auditor decides to reclassify your “Freelancers” as “Employees” because you consistently used the wrong object codes, you could be liable for years of unpaid back-taxes and missed social security contributions.
Accuracy in selecting the correct codes is your first line of defense against these systemic fiscal risks, ensuring that your PT PMA’s financial health remains uncompromised by administrative negligence.
The authoritative list is found in Lampiran A of PER-11/PJ/2025. It is updated periodically, so always check for the latest version on the DJP website.
No, you cannot directly edit a submitted slip. You must use the "Cancel" or "Correct" function in the portal to void the incorrect slip and issue a new one with the correct Tax Object Codes in Coretax.
Typically 27-100-99 (PPh 26) if they are a non-resident without a permanent establishment. Remember to link their SKD/COD to apply any treaty benefits.
Check if your codes match the exact format required by the latest template. Common issues include extra spaces, incorrect dash placement, or using codes that are no longer active in the 2026 system.
Yes, severance pay often uses 21-100-25 or specific final tax codes depending on the timing. Using the salary code for severance will result in an incorrect tax calculation.
The system will likely display an "Invalid Object Code" error and prevent submission. Coretax does not support legacy codes that were retired under the PER-11/PJ/2025 transition.
Need help with Tax Object Codes in Coretax, Chat with our team on WhatsApp now!
Karina
A Journalistic Communication graduate from the University of Indonesia, she loves turning complex tax topics into clear, engaging stories for readers.