[BR] Goods Invoice (NFe)
What is an NFe?
An NFe (Nota Fiscal Eletrônica, model 55) is the electronic invoice for goods in Brazil. It is authorized by the SEFAZ of the supplier's state and covers ICMS, IPI, PIS, COFINS and, with the Reforma Tributária, IBS and CBS. Brinta signs and transmits it automatically.
| Field | Value |
|---|---|
invoice_type | debit |
document_type | goods invoice |
e_invoice | true |
currency | BRL |
When to issue an NFe
| Situation | Issue? |
|---|---|
| Sale of goods to a business (CNPJ) | ✅ Yes |
| Sale of goods to an individual (CPF) | ✅ Yes |
| Interstate sale | ✅ Yes, with a 6xxx CFOP |
| Sale of services | ❌ No, use Services Invoice (NFSe) |
Field by Field
Root Level
supplier_company_id
supplier_company_idUUID of the issuing company in Brinta. The emitente (CNPJ, IE, tax regime and address) is pulled from this record.
Your company's tax regime mattersThe ICMS group (CST, CFOP, rate and base) from your payload is sent only when the supplier company's CNPJ regime in Brinta is Lucro Real or Lucro Presumido. Check that the regime is set correctly on your company.
invoice_date
invoice_dateIssuance date (data de emissão) in YYYY-MM-DD.
invoice_entry_date
invoice_entry_dateDate and time the goods leave or enter (data de saída/entrada), e.g. "2026-10-01 07:40:00.000".
buyer
buyerThe buyer is the destinatário of the NFe.
company.type
company.type| Value | Tax registration read | Name field |
|---|---|---|
business | CNPJ | legal_name → razão social |
person | CPF | legal_name → full name |
tax_registrations[]
tax_registrations[]type | Required | Description |
|---|---|---|
CNPJ / CPF | Yes | According to company.type. |
IE | When the buyer is registered with ICMS | Inscrição Estadual, level: "state". |
SUFRAMA | Optional | SUFRAMA registration for Zona Franca de Manaus buyers. |
company.address
company.address| Field | Description |
|---|---|
address_line_1 | Street with the number at the end ("Rua das Indústrias 272"). With no trailing digits, SN is sent. |
address_line_2 | Complemento. |
neighborhood | Bairro. Required by SEFAZ. |
city | Municipality name. |
state | ISO format (BR-PR). |
postal_code | CEP. |
phone and email are optional and sent when present.
items[]
items[]Each item becomes a product line on the NFe.
| Field | Description |
|---|---|
name + description | Product description (max 120 characters combined). |
item_external_id | Product code (código do produto). |
quantity | Commercial quantity. Defaults to 1. |
unit_amount | Unit price. |
amount | Line total. |
discount | Line discount. |
additional_info | Additional product information (informações adicionais do produto). |
freight_amount, insurance_amount, other_amount | Optional freight, insurance and other expenses. |
freight_indicator | Freight mode (modalidade do frete), e.g. 0. |
categories[]
categories[]list | Required | Description |
|---|---|---|
ncm | Yes | 8-digit NCM of the product. |
CFOP | Yes | 4-digit CFOP. 5xxx within the same state, 6xxx interstate. |
unit | Yes | Commercial unit (UN, KG, CX...). |
origin BR | Yes | Origin of the goods (0 national, 1 direct import, 2 imported bought domestically...). |
Natureza operacao | Yes | Nature of the operation printed on the DANFE. Taken from the first item that has it. |
Cod Enquadramento IPI | When IPI applies | IPI framework code. 999 when there is no specific framework. |
cClassTrib | Recommended | IBS/CBS tax classification. Default 000001. |
cClassTrib Regular | Optional | Regular IBS/CBS classification. |
cest | When subject to ICMS-ST | CEST code. |
gtin | Optional | Product barcode. |
taxable quantity, taxable unit | Optional | Taxable quantity and unit, when different from the commercial ones. |
cst
cst| Field | Description |
|---|---|
icms | CST (or CSOSN) for ICMS. |
ipi | CST for IPI. |
pis_cofins | CST for PIS and COFINS. |
ibs_cbs | CST for IBS/CBS. Default 000 when IBS/CBS data is present. |
ibs_cbs_regular | Optional regular CST for IBS/CBS. |
taxes[]
taxes[]taxes[].name
taxes[].name| Value | Description |
|---|---|
ICMS | Rate and optional taxable_amount (base). |
ICMS-ST | Send taxable_amount for the ST base. |
FCP | Fundo de Combate à Pobreza rate. |
IPI | Rate and optional base. |
PIS, COFINS | Rates. |
IBS, CBS | IBS/CBS special cases, see below. |
Rates are decimals: 0.04 = 4%.
IBS/CBS special cases
Use withholding_type on IBS / CBS taxes:
withholding_type | Meaning |
|---|---|
deferred | Deferral (diferimento). For IBS, set level to state or municipality. |
presumed credit | Presumed credit. Add the presumed credit category with the classification. |
transfered credit | Credit transfer. |
Full Example Payload
{
"supplier_company_id": "{{company_id}}",
"invoice_type": "debit",
"document_type": "goods invoice",
"invoice_date": "2026-10-01",
"invoice_due_date": "2026-10-31",
"invoice_entry_date": "2026-10-01 07:40:00.000",
"currency": "BRL",
"e_invoice": true,
"invoice_external_id": "NFE-100003",
"buyer": {
"company": {
"name": "Client TEST",
"legal_name": "Client TEST LTDA",
"type": "business",
"email": "[email protected]",
"tax_registrations": [
{ "type": "CNPJ", "number": "78743157000110", "level": "country", "location": "BR" },
{ "type": "IE", "number": "8222049106", "level": "state", "location": "BR-PR" }
// IE for buyers registered with ICMS
],
"address": {
"country": "BR",
"address_line_1": "Rua das Indústrias 272",
// Street number at the end
"neighborhood": "Jardim Universitário",
// Required by SEFAZ
"city": "Umuarama",
"state": "BR-PR",
"postal_code": "87508210"
}
}
},
"items": [
{
"item_external_id": "000000029702720532",
"name": "Palito de madeira",
"quantity": 100,
"unit_amount": 340.40,
"amount": 34040,
"freight_indicator": 0,
"categories": [
{ "code": "44219900", "list": "ncm" },
{ "code": "6101", "list": "CFOP" },
// 6xxx: interstate sale
{ "code": "UN", "list": "unit" },
{ "code": "1", "list": "origin BR" },
{ "code": "Venda de mercadoria", "list": "Natureza operacao" },
{ "code": "999", "list": "Cod Enquadramento IPI" },
{ "code": "000001", "list": "cClassTrib" }
],
"cst": {
"icms": "00",
"ipi": "51",
"pis_cofins": "01",
"ibs_cbs": "000"
},
"taxes": [
{ "name": "ICMS", "rate": 0.04, "rate_type": "percentage" },
{ "name": "PIS", "rate": 0.0165, "rate_type": "percentage" },
{ "name": "COFINS", "rate": 0.076, "rate_type": "percentage" }
]
}
]
}Common Mistakes
| Mistake | What happens | Fix |
|---|---|---|
CFOP doesn't match the destination (5xxx interstate, 6xxx same state) | SEFAZ rejects the NFe | Use 5xxx within the state and 6xxx for other states |
Missing neighborhood | SEFAZ rejects the recipient address | Always send address.neighborhood |
| Supplier regime not set to Lucro Real / Lucro Presumido when it should be | The ICMS group from your payload is not sent | Fix the regime on your company in Brinta |
Buyer with ICMS registration sent without IE | Wrong recipient IE indicator | Add the IE tax registration |
Rate sent as a percentage (4) | Tax is calculated as 400% | Send decimals: 0.04 |
Street number not at the end of address_line_1 | The number is sent as SN | End address_line_1 with the number |
Updated about 12 hours ago
