Brazil's Tax Reform on 1 January 2027: What In-House ERPs Must Change for CBS and IBS

On 1 January 2027 Brazil stops charging PIS and Cofins and starts charging the CBS, the new federal contribution on goods and services. At the same moment the IBS, the tax that will eventually replace ICMS and ISS, moves to a test rate of 0.05% for the state and 0.05% for the municipality. IPI drops to zero except for products made under the Manaus Free Trade Zone incentives, and the new Imposto Seletivo starts.
Every company in the regular regime that issues an NF-e or an NFS-e is affected. If you run a standard, current release of TOTVS, Senior, SAP or Omie, your vendor ships the change and your work is configuration and testing. This article is for everyone else: companies whose tax calculation lives in an in-house ERP, a heavily customised one, or a billing system that builds the XML itself.
Three months is not long. It is enough if the work starts now.
What the Law Says, Year by Year
The constitutional basis is Constitutional Amendment 132/2023. It added article 126 to the Constitution's transitional provisions (ADCT), which says that from 2027 the CBS and the Imposto Seletivo are charged, and that PIS and Cofins, including the contributions on imports, are abolished. Complementary Law 214/2025 supplies the numbers.
- 2026, the test year. CBS at 0.9% and IBS at 0.1% (arts. 346 and 343). Whatever is paid is offset against PIS and Cofins, and a company that meets its ancillary obligations is excused from paying it at all (art. 348). Simples Nacional companies are outside these rates.
- 2027 and 2028. CBS at its standard rate less 0.1 percentage point (art. 347). IBS at 0.05% state plus 0.05% municipal (art. 344). PIS and Cofins gone.
- 2029 to 2032. ICMS and ISS rates fall to nine tenths of their level, then eight, seven and six tenths, while the IBS rises to replace them.
- 2033. ICMS and ISS are abolished.
The 2027 CBS rate is not a number you can hardcode yet. Article 349 has the Senate fix the reference rate by 31 October of the preceding year, on calculations the Federal Court of Accounts (TCU) delivers by 15 September. If the Senate has not acted by 22 December, the TCU's figure applies until it does. Treat the rate as configuration with an effective date, and expect to load it in November.
The rules are also still moving. Complementary Law 227/2026 has already amended LC 214 in several places, including the split payment articles and the treatment of 2026 filing errors. Design for the next amendment, not just this one.
What 2026 Actually Was
For most companies 2026 was a data year rather than a tax year. The money largely netted out against PIS and Cofins. The fields did not.
The NF-e technical note for the reform, NT 2025.002-RTC, made the IBS and CBS group mandatory on every item of an NF-e issued from 3 August 2026 by a regular-regime company (validation rule UB12-10). Simples Nacional and MEI issuers follow from 4 January 2027. On the services side, municipalities have had to let taxpayers issue the national standard NFS-e, or share their own notes in its layout, since 1 January 2026 (LC 214, art. 62).
So if your system has been issuing notes since August, the fields exist. What may not exist is real logic behind them. If your 2026 implementation wrote 0.9% and 0.1% as constants because the money netted out, that was harmless in 2026. It stops being harmless on 1 January. Rule UB18-10 requires the state IBS rate to be 0.05% on notes issued in 2027, and rule UB56-20 requires the CBS rate to equal the rate in force. A note carrying last year's rates is rejected by the SEFAZ, and an unauthorised note means no invoice.
What Has to Change in the Software
The tax engine
PIS and Cofins stop for taxable events from 2027, but the code does not get deleted. December 2026 still has to be closed, and returns and complements referring to 2026 notes keep arriving. ICMS and ISS stay fully alive until 2029 and partly alive until 2032. For six years the engine calculates two systems side by side on the same invoice line.
What that means in practice:
- Rates looked up by tax, by sphere (federal, state, municipal) and by date. Never constants.
- IBS calculated as two components with their own rates. The IBS rate on an operation is the sum of the rates of the state and municipality of destination (LC 214, art. 15), so the engine needs a place-of-supply rule, not just the customer's address. In 2027 the rates are the same everywhere, which hides bugs here. From 2029 they diverge.
- Reductions (group gRed), deferral (gDif) and the other special treatments in the layout driven by item classification, not by branches in code.
Item classification
Every NF-e item now carries a three-digit CST for IBS and CBS and a six-digit cClassTrib. Each cClassTrib corresponds to a specific provision of LC 214. The table is published on the NF-e portal and the technical note warns that it may change. For services, the national NFS-e adds an operation indicator, cIndOp, built on the place-of-supply rules in article 11 of LC 214, and publishes a correlation table between the municipal service list item, the NBS code, cClassTrib and cIndOp.
This is a master-data job before it is a code job. Someone with tax knowledge has to classify every product and service you sell. The system has to store that classification, version it, and let it be changed without a deploy. If your item master has an NCM column and little else, this is where most of the effort goes.
Credits and the purchase side
In-house projects tend to focus on the sales invoice and forget purchasing. Under LC 214, purchasing is where the money is.
A regular-regime company takes IBS and CBS credits on its purchases only for amounts shown on a valid electronic fiscal document, and the two are kept apart: an IBS credit cannot pay a CBS debt, or the reverse (art. 47). Until split payment is running, the law waives the requirement that the supplier's tax was actually paid, but makes the credit depend on the supplier's note showing the correct amounts (art. 48).
So the inbound XML pipeline has to read the IBS and CBS groups from every supplier NF-e and NFS-e, store CST, cClassTrib and the amounts per item, check them, and post them to separate IBS and CBS credit accounts. Simples Nacional suppliers must send the group from 4 January 2027, so expect a second wave of new data in the first week.
Layouts, adjustments and returns
NT 2025.002 changes more than the tax group:
- New purposes of issue: finNFe 5 for a credit note and 6 for a debit note, each with its own type code.
- A return (finNFe 4) must reference the original note at item level in the DFeReferenciado group, and the old refNFe tag is no longer accepted for returns. That rule, VC02-14, reaches production on 3 November 2026.
- The response status code cStat widens to four digits for rejections specific to the new taxes. A parser that expects three digits will misread them.
- A new DANFE model for the reform was published as NT 2026.010 on 1 October 2026.
- The NF-e and NFS-e schemas have both been updated for the alphanumeric CNPJ, and the NFS-e note turns every CNPJ field from numeric to character. If your database stores CNPJ as a number, that is a second job touching the same code.
The NFS-e has its own series of technical notes for the reform. The latest, NT 009 version 1.01, adds adjustment notes, payment linkage and moves the CST and cClassTrib fields.
The NF-e note itself is listed on the NF-e portal in fifteen versions, from 28 March 2025 to version 1.52 on 1 October 2026. Track the version number, not the title.
Reporting and the assisted assessment
LC 214 changes what a tax return is. The IBS Management Committee (CGIBS) and the Receita Federal may present an apuração assistida, an assessment pre-calculated from your electronic documents and payment data (art. 46). If you do not respond by the deadline, the balance is presumed correct. And the information on each note is declaratory: it counts as a confession of the IBS and CBS shown (art. 60).
Your NF-e data is, in effect, your return. You need a reconciliation that compares the assisted assessment against your own ledger every period and flags the differences while there is still time to correct them.
What Comes Later: Split Payment
Split payment is the part that reaches outside the ERP. Under LC 214, arts. 31 to 33, the payment provider separates the IBS and CBS at settlement and sends them to the tax authorities, after checking against the CGIBS and Receita systems how much is still owed.
That only works if every payment is linked to its fiscal document. NT 2026.006, published on 25 August 2026, adds a group to the NF-e (YC, gPgtoVinc) for payments started before the note is issued, such as a boleto or a dynamic Pix QR code, and an event (110300) for linking a payment after issue. The fields reach production on 3 November 2026 and are not required in 2026. The note calls them preparatory: split payment is expected from 2027, with schedules still to be announced.
If your billing system generates boletos or Pix charges itself, plan for this now. Invoicing will need the transaction identifier, the payment method code and the receiving CNPJ at the moment the note is built.
A Three-Month Plan
Counted back from 1 January 2027.
October: inventory and rates
- List every place a tax is calculated, stored or printed: quoting, order entry, invoicing, the NF-e emitter, the NFS-e integration, inbound XML, the ledger, and the reports finance actually uses. Custom fiscal routines on top of a packaged ERP belong on this list.
- Move every rate into configuration keyed by date. Load the 2027 IBS rates now and the CBS rate when the Senate publishes it.
- Start classification: CST and cClassTrib for every item and service, owned by your tax team.
- Confirm you are building against NT 2025.002 version 1.52 and the current NFS-e annexes.
November: build and test
- Item-level referencing on returns has to work in production by 3 November.
- Inbound: parse and store IBS and CBS per item from supplier documents, with separate credit accounts.
- Test 2027 scenarios with the date injected, not read from the system clock, so they run today. Include a 2026 note returned in January.
- Handle four-digit cStat codes, and add the payment-link fields if you issue boletos or Pix.
December: freeze and cut over
- Freeze changes by mid December. Decide how notes issued around midnight on 31 December are handled: the validation rules check rates against the issue date, the law against the date of the taxable event, and the two are not always the same moment.
- Write a first-week watch list: rejection codes, credit postings, and the CBS and IBS totals per day.
- Keep someone on call for the first business days of January. The first rejections will tell you more than any test.
Where to Get Help
We change in-house ERP and billing code: the tax engine, the NF-e and NFS-e integration, the inbound document pipeline and the tests around them. That work sits under our ERP modernisation and e-invoicing integration services, and our legacy system maintenance service covers systems old enough that nobody remembers how the tax logic got there.
We are engineers, not tax advisers. Item classification and regime questions belong with your tax team, and we build to their answer. If you have three months and a system that needs the work, write to office@c9group.dev.