Skip to main content

Register suppliers

Supplier registration guide ›

Issue invoices

Issuing guide ›
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, NF-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, NF-e, and NFC-e support: Issue invoices for service, B2B product, and consumer transactions.
Make sure to check out our Supplier registration guide for onboarding suppliers, and the Issuing invoices guide for issuing documents and setting up your workflows.

FAQ

Invoicing questions
Invopop supports NF-e, NFS-e and NFC-e documents. Transport documents (MDF-e and CT-e) are not currently supported.
For further details on how GOBL prepares data for conversion, see:
Yes. A foreign customer that does not have a Brazilian CNPJ or CPF can be identified by providing a country-qualified identity (e.g. a passport number) on the customer party. The identity.country must be an ISO country code other than BR.When a foreign customer is used:
  • the tax_id block can be omitted,
  • the customer address country is required and must not be BR (it is auto-filled from the identity country if missing),
  • the state field and the br-ibge-municipality extension are not required, as they only apply to Brazilian parties.
Example customer block for a foreign buyer:
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.
After a successful issuance, SEFAZ returns two identifiers that Invopop stores as envelope stamps on the silo entry under data.head.stamps:
  • sefaz-key — the 44-digit NF-e access key (chave de acesso) that uniquely identifies the document.
  • sefaz-auth — the authorization protocol number (número do protocolo) confirming SEFAZ acceptance.
Use them to reconcile your records, build the DANFE QR code, or query SEFAZ directly.
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

Tax Extensions

br-nfe-presence allowed values:

Notes

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

Supplier

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

Brazilian customers must provide a Brazilian tax_id. Foreign customers can issue an NF-e by providing a country-qualified identity (e.g. a passport number) instead of a tax_id.

Line items

Required tax categories per line: ICMS, PIS, COFINS. IPI is optional.Optional item identities: 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

Supplier

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 →