- Description
- Actions
- Workflows
- Documents
Documentos Fiscais Eletrônicos Brazil
- Workflow Automation: This app provides automated workflows for issuing NFS-e and NFC-e documents through the Brazilian tax authorities.
- Multi-Jurisdiction Support: Unified interface for issuing documents across all Brazilian states and over 2000 municipalities, each with their own rules and formats.
- Supplier Registration: Secure supplier onboarding process with certificate-based authentication for issuing documents on behalf of suppliers.
- Legally Compliant Documents: Documents are generated with all mandatory fields and tax calculations as required by Brazilian fiscal legislation.
- PlugNotas Integration: Direct integration with PlugNotas, an authorized technology provider for Brazilian electronic fiscal documents.
- NFS-e and NFC-e Support: Issue B2B and B2C invoices for service and consumer transactions.
FAQ
Invoicing questionsWhat type of Documentos Fiscais does Invopop support?
What type of Documentos Fiscais does Invopop support?
Where can I find the mapping of GOBL fields to DF-e documents?
Where can I find the mapping of GOBL fields to DF-e documents?
What's the workflow for issuing NF-e invoices?
What's the workflow for issuing NF-e invoices?
br-nfe-v4 addon, send it through the Issue NF-e workflow. Invopop signs with the supplier’s A1 cert, transmits to the issuer’s state SEFAZ, receives the protocolo de autorização, and exposes the authorized XML and DANFE PDF.How do I retrieve the NF-e access key and authorization protocol?
How do I retrieve the NF-e access key and authorization protocol?
What are the required and optional fields for NF-e invoices in Brazil?
What are the required and optional fields for NF-e invoices in Brazil?
br-nfe-v4) covers electronic invoices for the circulation of goods in Brazil. It maps to two fiscal models:- Model 55 — NF-e: B2B or business-to-government transactions
- Model 65 — NFC-e: B2C consumer transactions (simplified)
Notation
- ✅ Required — validation will fail if missing
- ⬜ Optional — can be omitted
- 🔧 Auto-normalized — set automatically if not provided
Invoice Header
| Field | Required | Notes |
|---|---|---|
$schema | auto | https://gobl.org/draft-0/bill/invoice |
$addons | ✅ | ["br-nfe-v4"] |
$tags | ⬜ | Use ["simplified"] for NFC-e (model 65) |
uuid | ⬜ | Auto-generated if absent |
type | ⬜ | Defaults to standard |
series | ✅ | Pattern: ^(?:0|[1-9]{1}[0-9]{0,2})$ |
code | ⬜ | Required to sign the document. |
issue_date | ✅ | ISO date, e.g. "2024-11-15" |
currency | ✅ | Must be "BRL" |
tax | ✅ | See Tax Extensions |
notes | ✅ | At least one note with key: "reason" required |
lines | ✅ | At least one line item |
charges | ⬜ | Document-level charges |
discounts | ⬜ | Document-level discounts |
supplier | ✅ | See Supplier |
customer | ✅ model 55 ⬜ model 65 | See Customer |
payment | ✅ if not fully paid | See Payment |
ordering | ⬜ | |
delivery | ⬜ |
Tax Extensions
| Extension | Required | Values |
|---|---|---|
tax.ext.br-nfe-model | ✅ | "55" (NF-e, B2B) or "65" (NFC-e, B2C) |
tax.ext.br-nfe-presence | ✅ | See table below. Restricted by model. |
tax.ext.br-nfe-regime | ⬜ | "1"=Simples Nacional, "2"=Simples Nacional Excess, "3"=Normal |
tax.ext.br-nfe-fiscal-incentive | ⬜ | "1"=Has incentive, "2"=No incentive |
br-nfe-presence allowed values:| Code | Description | NF-e (55) | NFC-e (65) |
|---|---|---|---|
0 | N/A | ✅ | ❌ |
1 | In-person | ✅ | ✅ |
2 | Internet | ✅ | ❌ |
3 | Tele-service | ✅ | ❌ |
4 | Home delivery | ❌ | ✅ |
5 | Off-site | ✅ | ❌ |
9 | Others | ✅ | ❌ |
Notes
At least one note withkey: "reason" is required. It maps to the NF-e natOp field (nature of the operation).Supplier
| Field | Required | Notes |
|---|---|---|
name | ✅ | |
tax_id.country | ✅ | "BR" |
tax_id.code | ✅ | CNPJ (14 digits) or CPF (11 digits), Mod11 validated |
identities[].key: "br-nfe-state-reg" | ✅ | State Registration (Inscrição Estadual) |
addresses | ✅ | At least one |
ext.br-ibge-municipality | ✅ | 7-digit IBGE municipality code |
Customer (Model 55 — required, Model 65 — optional)
| Field | Required | Notes |
|---|---|---|
tax_id.country | ✅ | "BR" |
tax_id.code | ✅ | CNPJ or CPF |
addresses | ✅ | |
ext.br-ibge-municipality | ✅ | Required when addresses are present |
Line items
Required tax categories per line:ICMS, PIS, COFINS. IPI is optional.| Extension | Required | Notes |
|---|---|---|
line.ext.br-nfe-cfop | ✅ model 55 ⬜ model 65 | CFOP (Código Fiscal de Operações e Prestações) code identifying the fiscal nature of the operation, e.g. "5102" for in-state resale. Required on every line of an NF-e (model 55). |
item.identities[].key: "ncm" | "gtin" | "gtin+taxable".Payment
Required when the invoice is not fully paid. Must includepayment.instructions.key. Payment-means mapping is auto-set unless key: "other".What's the workflow for issuing NFS-e invoices?
What's the workflow for issuing NFS-e invoices?
br-nfse-v1 addon and send it through the Issue NFS-e workflow. Until the federal NFS-e (DPS) takes over in 2026, Invopop routes per-municipality — the workflow handles the underlying API differences transparently.How do I configure Chargebee or Stripe imports for Brazilian invoices with ISS?
How do I configure Chargebee or Stripe imports for Brazilian invoices with ISS?
invalid-prices-include errors during import because that pricing model is not compatible with how ISS works for NFS-e.The correct setup is:- Do not configure ISS as a tax in your billing platform (Chargebee, Stripe, etc.).
- Prices in your billing platform should already be the final public prices with ISS embedded.
- Add a Modify Silo Entry step to your import workflow that injects the ISS tax with the desired percentage into the GOBL invoice.
What are the required and optional fields for NFS-e invoices in Brazil?
What are the required and optional fields for NFS-e invoices in Brazil?
br-nfse-v1) covers electronic service invoices (Notas Fiscais de Serviços Eletrônicas) in Brazil. Service invoices are regulated at the municipal level, so several fields carry municipality-specific codes. The addon implements the ABRASF national standard (v2.04).Invoice Header
| Field | Required | Notes |
|---|---|---|
$addons | ✅ | ["br-nfse-v1"] |
series | ✅ | Any non-empty string |
code | ⬜ | Required to sign the document |
issue_date | ✅ | ISO date |
currency | ✅ | Must be "BRL" |
lines | ✅ | At least one line item |
charges | ❌ | Not supported by NFS-e |
discounts | ❌ | Not supported by NFS-e |
supplier | ✅ | See Supplier |
Supplier
| Field | Required | Notes |
|---|---|---|
name | ✅ | |
tax_id.country | ✅ | "BR" |
tax_id.code | ✅ | CNPJ or CPF |
identities[].key: "br-nfse-municipal-reg" | ✅ | Municipal Registration |
addresses | ✅ | |
ext.br-ibge-municipality | ✅ | 7-digit IBGE municipality code |
ext.br-nfse-simples | ✅ | "1" opt-in, "2" opt-out |
ext.br-nfse-fiscal-incentive | ✅ | "1" has incentive, "2" does not (default) |
ext.br-nfse-special-regime | ⬜ | Special regime values |
Customer
Optional. When provided,ext.br-ibge-municipality is required if addresses are present.Line items
Required item extension:item.ext.br-nfse-service (municipality service code).Optional item extensions: item.ext.br-nfse-cnae, plus the all-or-none trio item.ext.br-nfse-{operation,tax-status,tax-class}.Required tax category per line: ISS. ISS extension taxes[ISS].ext.br-nfse-iss-liability defaults to "1" (Liable).How do I onboard a new supplier in Brazil?
How do I onboard a new supplier in Brazil?
How are supplier credentials stored in Invopop for Brazil?
How are supplier credentials stored in Invopop for Brazil?
How do I register a supplier with NF-e?
How do I register a supplier with NF-e?
What certificates does NF-e require to authenticate a supplier?
What certificates does NF-e require to authenticate a supplier?
How do I register a supplier with NFS-e?
How do I register a supplier with NFS-e?
What certificates does NFS-e require to authenticate a supplier?
What certificates does NFS-e require to authenticate a supplier?
🇧🇷 Invopop resources for Brazil
🇧🇷 Invopop resources for Brazil