Skip to main content

Documentation Index

Fetch the complete documentation index at: https://invopop-mintlify-changelog-week-1778411791.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

https://assets.invopop.com/apps/notas-fiscais-eletronicas-brazil/icon.svg

Documentos Fiscais Eletrônicos Brazil

View implementation guide ›
DeveloperInvopop
CategoryGovernment
ScopeB2B, B2C
CountryBrazil
Brazil has a variety of electronic tax documents that must be issued in different cases for various tax purposes. These include service invoices (NFS-e), product invoices (NF-e), and consumer invoices (NFC-e). Each document type is subject to variations from state to state and municipality to municipality, with each jurisdiction applying its own rules, formats, and APIs for issuing fiscal documents.Invopop’s Documentos Fiscais Eletrônicos app provides a unified way to issue fiscal documents across all Brazilian states and over 2000 municipalities using GOBL. You can find the full list of supported municipalities here.Invopop has partnered with PlugNotas to issue electronic fiscal documents in Brazil. The integration handles the complexity of different state and municipal requirements, allowing you to issue documents through a single unified interface.Key Features
  • 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.
Make sure to check out our Documentos Fiscais Eletrônicos Guide for instructions on how to issue invoices, register suppliers, and set up your workflows.

FAQ

Invoicing questions
Invopop supports NF-e, NFS-e and NFC-e documents. Transport documents (MDF-e and CF-e) are not currently supported.
For further details on how GOBL prepares data for conversion, see:
Build a GOBL invoice with the 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.
NF-e (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

FieldRequiredNotes
$schemaautohttps://gobl.org/draft-0/bill/invoice
$addons["br-nfe-v4"]
$tagsUse ["simplified"] for NFC-e (model 65)
uuidAuto-generated if absent
typeDefaults to standard
seriesPattern: ^(?:0|[1-9]{1}[0-9]{0,2})$
codeRequired to sign the document.
issue_dateISO date, e.g. "2024-11-15"
currencyMust be "BRL"
taxSee Tax Extensions
notesAt least one note with key: "reason" required
linesAt least one line item
chargesDocument-level charges
discountsDocument-level discounts
supplierSee Supplier
customer✅ model 55
⬜ model 65
See Customer
payment✅ if not fully paidSee Payment
ordering
delivery

Tax Extensions

ExtensionRequiredValues
tax.ext.br-nfe-model"55" (NF-e, B2B) or "65" (NFC-e, B2C)
tax.ext.br-nfe-presenceSee 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:
CodeDescriptionNF-e (55)NFC-e (65)
0N/A
1In-person
2Internet
3Tele-service
4Home delivery
5Off-site
9Others
"tax": {
  "ext": {
    "br-nfe-model": "55",
    "br-nfe-presence": "1"
  }
}

Notes

At least one note with key: "reason" is required. It maps to the NF-e natOp field (nature of the operation).

Supplier

FieldRequiredNotes
name
tax_id.country"BR"
tax_id.codeCNPJ (14 digits) or CPF (11 digits), Mod11 validated
identities[].key: "br-nfe-state-reg"State Registration (Inscrição Estadual)
addressesAt least one
ext.br-ibge-municipality7-digit IBGE municipality code

Customer (Model 55 — required, Model 65 — optional)

FieldRequiredNotes
tax_id.country"BR"
tax_id.codeCNPJ or CPF
addresses
ext.br-ibge-municipalityRequired when addresses are present

Line items

Required tax categories per line: ICMS, PIS, COFINS. IPI is optional.Optional item extensions: item.ext.br-nfe-cfop, item.identities[].key: "ncm" | "gtin" | "gtin+taxable".

Payment

Required when the invoice is not fully paid. Must include payment.instructions.key. Payment-means mapping is auto-set unless key: "other".
Build a GOBL invoice with the 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.
Billing platforms like Chargebee and Stripe are not aware of ISS particularities and tend to wrongly treat ISS as a typical tax included in the price. This causes invalid-prices-include errors during import because that pricing model is not compatible with how ISS works for NFS-e.The correct setup is:
  1. Do not configure ISS as a tax in your billing platform (Chargebee, Stripe, etc.).
  2. Prices in your billing platform should already be the final public prices with ISS embedded.
  3. Add a Modify Silo Entry step to your import workflow that injects the ISS tax with the desired percentage into the GOBL invoice.
This workflow approach ensures ISS is properly added to the GOBL invoice as an informative tax category before submission to the Brazilian tax authority, while avoiding the pricing conflicts that occur when billing platforms try to handle ISS as a standard tax.
NFS-e (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

FieldRequiredNotes
$addons["br-nfse-v1"]
seriesAny non-empty string
codeRequired to sign the document
issue_dateISO date
currencyMust be "BRL"
linesAt least one line item
chargesNot supported by NFS-e
discountsNot supported by NFS-e
supplierSee Supplier

Supplier

FieldRequiredNotes
name
tax_id.country"BR"
tax_id.codeCNPJ or CPF
identities[].key: "br-nfse-municipal-reg"Municipal Registration
addresses
ext.br-ibge-municipality7-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-regimeSpecial 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).
Registering supplier questions
Upload the supplier’s A1 digital certificate (PFX or P12) plus password through the registration workflow. Invopop validates it against the relevant SEFAZ or municipal endpoint and activates the supplier for issuing.
A1 certificates (X.509 + private key, exported as PKCS#12) and their passwords are stored encrypted. Invopop uses them to sign documents and authenticate to the relevant SEFAZ or municipal endpoint on the supplier’s behalf.
Upload the A1 certificate plus its password through the Register Supplier workflow, providing the supplier’s CNPJ and Inscrição Estadual. Invopop validates the certificate against SEFAZ and activates the supplier for the corresponding UF.
An ICP-Brasil A1 certificate issued to the supplier’s CNPJ (or CPF for individuals). Format: PKCS#12 (.pfx/.p12) containing the X.509 cert and matching private key. Validity is typically 1 year.
Upload the supplier’s A1 certificate plus the Inscrição Municipal for the relevant city. The federal DPS (2026) consolidates registration; until then, separate enrollment per municipality may be required for high-volume issuance.
Most municipalities accept the same ICP-Brasil A1 certificate used for NF-e. A few require A3 (smartcard/USB token) — Invopop currently supports A1 only.
More answers in our Brazil FAQ section

Participate in our community

Ask and answer questions about Documentos Fiscais Eletrônicos Brazil App →