Ask AwraIQ about features, pricing, onboarding, login, integrations, security, demos, mobile apps, automation, reports, or support.
Brazil · Latin America
Most tax arguments are about what a number should be. Brazil's is about how many numbers there are. A line on a Brazilian invoice today can bear ICMS, IPI, PIS and COFINS together — ISS in place of ICMS on services — each with its own base, its own jurisdiction and its own return. Through the reform transition CBS and IBS sit on top of all of them, so the count goes up before it comes down, and it stays up for years. Our invoice line has a single tax rate column. That is not a rate we have got wrong; it is a shape, and this page is about what a shape can and cannot hold.
A count, not a rate table
Not a rate table. A count of the separate taxes a single Brazilian invoice line can bear at the same time, each with its own base, its own administering government and its own return — followed by the number of tax figures our line can carry.
ICMS
The state
Rates are set per state and interstate movements follow their own rules, so the figure depends on where the goods went as well as where they came from.
IPI
The federal government
Charged on industrialised products against its own base, so it is neither a share of ICMS nor derived from it.
PIS
The federal government
A contribution with its own base and its own credit rules, computed separately from everything above.
COFINS
The federal government
The same again, on a different footing, and reported separately.
ISS
The municipality
Services instead of ICMS — a different tax, a different government, and roughly five and a half thousand municipalities setting their own rates.
CBS + IBS
Federal, and states with municipalities
Added by the reform on top of all of the above for the length of the transition, so during those years both systems are calculated, reported and remitted at once.
Six rows, and the last is two taxes rather than one. Our invoice line carries one tax figure and has room for no more, and an item's tax treatment resolves to either the organization's default rate or zero — there is no third answer, so a line cannot carry a second positive rate even if somebody wanted it to. That is a hard structural limit rather than a configuration gap, and it is the first thing a Brazilian evaluation should establish about any system.
What this does not mean is that Brazilian totals come out wrong in our system. It means the composition is not held: an invoice can carry the tax you are charging as one figure, and cannot break that figure into the taxes it is made of, cannot attribute each part to the government that levies it, and cannot report on them separately. If your accountant does that composition outside the system today, nothing here changes for you. If you need the system to do it, this is a data-model change and we would quote it as one rather than describe it as a setting.
And a second finding, of a different kind
Interstate ICMS is not a property of the seller. It depends on where the goods came from and where they went, which makes it a fact about a pair of places rather than about a business.
Our per-organization tax rate can be given a jurisdiction — a country, a region and a city. Three columns of geography, and all three describe **one** place: yours. There is nowhere to record that a rate applies because of where the customer is, and nothing about the counterparty's location enters the calculation at any point.
For most of the world that is the correct shape, which is why it has never been a problem. Brazil is the market where it stops being correct, because the reform is moving taxation from origin to destination — so the direction of travel is toward the customer's address mattering more, not less.
Worth stating precisely, because the near-miss reads better than the truth: the geography columns exist and they are real. What is missing is a second endpoint. A rate that describes a route rather than a place has nowhere to live.
What this costs you in practice
One tax figure on a line is enough to charge correctly and not enough to say what it is made of. When a figure has to be attributed to four governments, a single number is the wrong unit — and no amount of rate configuration turns one column into four.
The transition does not swap one set of taxes for another on a date. Both are calculated, reported and remitted together across the transition years, so the requirement is to hold more at the same time rather than to change what is held.
Interstate ICMS depends on origin and destination together. A system whose rate is a property of your own address has nowhere to put that, and the reform points further in that direction rather than away from it.
ISS is set locally, so a services business selling across Brazil is not looking up one rate. Any system claiming to hold that is holding a dataset, and the question worth asking is who maintains it and how often — not whether the field exists.
Running the operation, not filing for it
Everything above is about a document. Most of what an operations system does here has nothing to do with one, and it is worth separating the two before an evaluation confuses them.
Inventory
Stock held by state, for reasons that are being legislated away
Brazilian distribution has long been positioned partly for tax reasons rather than logistics ones, and the destination-based reform removes that incentive over the transition. Stock by location with movement history is what lets you see what your network would look like if it were arranged for distance instead — which is a question worth having numbers for before it becomes urgent.
Procurement
Receiving matched against the order, at the door
What arrived, against what was ordered, with tolerances and the discrepancy recorded where it happened rather than reconstructed later from an inbox. This is market-neutral and we say so — it is here because it is what most operations actually run on, in any country.
Reports
A figure as it stood on a date, not as it stands now
Through a seven-year overlap the useful question is repeatedly "what did this look like in that period", and a report that can only show today is no help in answering it. Reports run against a period rather than a snapshot, so a prior year is reproducible rather than remembered.
HR
People records that hold what expires
Certifications, entitlements and documents held against the person with their dates, so what lapses is visible before it lapses. No Brazilian payroll engine exists here and the honesty ledger below says so plainly rather than leaving you to find out.
Four items rather than six. Three of the four are true of every market we serve and are listed because they are what buyers actually ask about after the tax conversation ends, not because they are Brazilian.
Scope, in three parts rather than two
Three columns, because "no" means two entirely different things and one list hides which is which. The middle column is work that has not been done and has a price. The right-hand column is work we would decline from a paying customer — and it is the one worth demanding from every other vendor you talk to, because a page without it has not told you where its edges are.
Running in the product today
Not built yet — and commissionable
What we would decline, and would rather say now
The first two rows of the middle column are one piece of work: give a line several tax figures and attribute each to its levying authority, and the reporting follows from the shape rather than needing to be built on top of it. The second location is separable and smaller. All of it is commissionable now with a written specification, a timeline and a price — Kenya's eTIMS transmission and our payroll engine are the evidence that we build this way rather than describe it. No date on a public page.
The honest summary is that we are a stronger operations system than tax system in this market, and Brazil is the market where that gap is widest. If the composition of the tax figure is what you need a system to hold, the right conclusion may be a Brazilian fiscal system alongside something for the operation — and if so, we would rather help you scope that than sell you one product doing both badly.
How this starts
Not which taxes are supported — how many separate figures one line can carry at once, and whether each can name the government it is owed to. This is a question about shape and it has a number for an answer. Ours is one.
Then ask what in the system knew the customer was elsewhere. If the rate came only from your own configured jurisdiction, the counterparty's address never entered the calculation, and interstate is where that begins to matter.
Through a seven-year overlap this is the question you will ask most often, and it is the cheapest thing to test. A system that can only report on now will make every transition-year question an exercise in reconstruction.
Read before you shortlist
A Brazilian invoice line can carry four or five taxes at once, owed to three levels of government. Ours has one column for tax — which is a counting problem rather than a rate problem, and the reform makes the count go up before it comes down.
Addition is lossy. Store 4 + 3 + 2 as 9 and you can still charge, reconcile and audit the 9 — but every report that needs the 4 is already impossible, and nobody finds out until they need one.
Six questions with structural answers — a number, a yes, a name — including the one almost nobody asks: who maintains the municipal rate dataset, and on what schedule?
A free-text field with validation is not a smaller version of a coded one. Where a jurisdiction wants a value from a published list, the field either holds it or your document is not the document.
Everywhere else, voiding a document is something you do. Here it is something you ask for — and your customer can say no, or say nothing, which is worse.
Your customer master holds what you need to know about a customer. It has nowhere to hold what your customer asserts about themselves — and some documents will not clear without it.
What a Brazilian controller asks in the first ten minutes
No, and the answer is structural rather than partial. We do not issue NF-e and we transmit nothing to SEFAZ — that half is a boundary rather than a backlog, because Brazilian clearance is a specialist integration carrying its own certification and liability, and a system that half-implements it looks finished while not being. Separately, our invoice line holds one tax figure where a Brazilian line needs several. That half is on the roadmap and commissionable now — a written specification, a timeline and a price, with Kenya's eTIMS transmission as the evidence that we build this kind of thing rather than talk about it.
Not necessarily, and it is worth being precise because "wrong" is the wrong word. You can charge a correct total in our system by configuring the rate you actually charge. What you cannot do is hold that total as its parts — which tax, at what rate, owed to which government. If your accounting practice composes that outside the system today, nothing changes for you. If you need the system to hold the composition, it cannot, and that is a data-model limit rather than a setting you have not found.
No, and we will not tell you we will be by a date. The transition's defining property is not that new taxes arrive, it is that both systems run at the same time for years, so the requirement it creates is to hold more figures on one line simultaneously — which is precisely the finding on this page. Building that is the same work whether it is called CBS or something else, which is why it is on the list as a shape change rather than as a Brazil feature. On the roadmap and commissionable now, with a specification and a price; we will not name a date on a public page while the transition's own schedule is still being implemented.
That is a question for your tax adviser and we are deliberately not answering it here. Published accounts of the test year disagree with each other — some describe symbolic rates with no collection obligation, others describe pilot-phase collection — and a page that printed one of those as fact would be doing the thing this corpus exists not to do. What we can tell you is what does not depend on the answer: whichever it is, both systems have to be calculated and reported alongside each other for the length of the transition, and that is the requirement our line cannot meet.
No, and this one is a boundary rather than a backlog. Roughly five and a half thousand municipalities set their own ISS, and any vendor holding that is holding a dataset with a maintenance schedule attached. If your filings depended on our copy being current, you would have moved a real compliance risk onto our release cycle where you cannot see it. Hold the rates you actually charge, keep the source and the date you checked, and let the system record rather than assert.
Yes, and this is the part of the product that is genuinely strong rather than the part being apologised for. Separate organizations with their own base currencies, their own rates and their own calendars run side by side, with reporting scoped to one or consolidated across several. The caveat is deliberate: amounts in different currencies are shown as themselves rather than converted and summed, because a single total across currencies is a number somebody will act on and no exchange rate makes it true.
Not today. Two halves, and they have different answers. A boundary rather than a backlog: we will not fold a translation into a standard implementation, because a half-translated operational system is worse than an English one — it teaches people to distrust the screens they can read, and that is how a rollout fails quietly rather than early. On the roadmap and commissionable now: as a project of its own with a specification and a price, scoped to the screens your people actually work in. Our Portugal guide argues the neighbouring point about certified software, and the two are worth reading together if language and locality are both on your list.
The operation rather than the document, and we would rather say that than dress it up. Stock by location with real movement history, receiving matched against orders at the door, reports that run against a period so a transition year can be reproduced instead of reconstructed, and supplier records that survive staff turnover. In a market where most systems are sold on fiscal compliance, buying the operations layer separately from the fiscal one is a legitimate architecture — and if that is where you land, we would rather help you scope it than compete for a job we would do badly.
Ask any system how many tax figures a single invoice line can carry, and how each is attributed. It is a two-minute question with a structural answer, and it will separate the shortlist faster than a demonstration will. If our answer disqualifies us for the fiscal half, that is a fair conclusion and better reached now.