Hi everyone,
I’m configuring Odoo 18 (SaaS/SH) with the official Avalara Avatax Brazil integration (l10n_br_avatax) for NFSe.
I have a service invoice (NFSe) with the following situation:
-
Provider (my company):
- Fiscal Position: Automatic Tax Mapping (Avalara Brazil)
- Tax Regime: Lucro presumido (estimatedProfit)
- ICMS Taxpayer Type: Contribuinte do ICMS
- Main activity sector: Serviço
- PIS details: Tributável
- COFINS details: Tributável
- CSLL: Tributável
-
Customer (service taker):
- Fiscal Position: Automatic Tax Mapping (Avalara Brazil)
- Tax Regime: Lucro presumido (estimatedProfit)
- ICMS Taxpayer Type: Não contribuinte
- Main activity sector: Consumidor final
- PIS details: Não tributável → pisSubjectTo: "N"
- COFINS details: Não tributável → cofinsSubjectTo: "N"
- CSLL: not taxable → csllSubjectTo: "E"
-
Service:
- LC116: 02151
- CNAE: 6201-5/01 (6201501 in JSON)
- ISS rate (São Paulo): 5%
What the City Hall NFSe does
According to the official NFSe issued by Prefeitura de São Paulo, this operation should:
- show ISS 5% (R$ 583.75) only as an informational tax
- no IRRF, no PIS, no COFINS, no CSLL withholdings
- the amount to receive from the customer is R$ 11,675.00
What Odoo + Avalara are doing
In Odoo, after clicking “Calculate taxes” with Avatax:
- Invoice line price: R$ 11,675.00
- Subtotal (without taxes): R$ 11,091.25
- Taxes total (Odoo): R$ 408.63
- “Amount due” / “Valor devido”: R$ 11,499.88
In the journal items:
- Revenue (credit): 11,091.25
- ISS to collect (credit): 583.75
- IRRF withheld (debit): 175.12
- Cash / transit account (debit): 11,499.88
So effectively Odoo is considering IRRF 1.5% withheld and lowering the receivable from 11,675.00 → 11,499.88, which does not match the NFSe from São Paulo.
Even with the customer marked as not subject to PIS/COFINS/CSLL in Odoo, Avalara is:
- still calculating IRRF 1.5% as withheld;
- setting netValue to 11,499.88 (= 11,675 – 175.12);
- Odoo then uses this and posts IRRF to the “IRRF a recolher” account.
What I need
For this particular scenario (LC116 02151, SP ISS 5%, customer as final consumer and not subject to PIS/COFINS/CSLL):
- the customer should pay the full 11,675.00,
- only ISS 5% should be considered (as provider’s tax),
- no IRRF and no other federal withholdings should be applied.
My questions:
- Is there any configuration in Odoo (l10n_br_avatax) that controls when IRRF should be treated as “withheld” and affect netValue?
- Or is this purely controlled on the Avalara portal side (for the account / subscription / service code)?
- Has anyone already configured Avatax Brazil so that, for SP NFSe like this one, only ISS is calculated and no IRRF is withheld?
Any guidance from the Odoo community or Avalara users would be very helpful.
Thank you!