[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.

FieldValue
invoice_typedebit
document_typegoods invoice
e_invoicetrue
currencyBRL

When to issue an NFe

SituationIssue?
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

UUID of the issuing company in Brinta. The emitente (CNPJ, IE, tax regime and address) is pulled from this record.

⚠️

Your company's tax regime matters

The 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

Issuance date (data de emissão) in YYYY-MM-DD.

invoice_entry_date

Date and time the goods leave or enter (data de saída/entrada), e.g. "2026-10-01 07:40:00.000".


buyer

The buyer is the destinatário of the NFe.

company.type

ValueTax registration readName field
businessCNPJlegal_name → razão social
personCPFlegal_name → full name

tax_registrations[]

typeRequiredDescription
CNPJ / CPFYesAccording to company.type.
IEWhen the buyer is registered with ICMSInscrição Estadual, level: "state".
SUFRAMAOptionalSUFRAMA registration for Zona Franca de Manaus buyers.

company.address

FieldDescription
address_line_1Street with the number at the end ("Rua das Indústrias 272"). With no trailing digits, SN is sent.
address_line_2Complemento.
neighborhoodBairro. Required by SEFAZ.
cityMunicipality name.
stateISO format (BR-PR).
postal_codeCEP.

phone and email are optional and sent when present.


items[]

Each item becomes a product line on the NFe.

FieldDescription
name + descriptionProduct description (max 120 characters combined).
item_external_idProduct code (código do produto).
quantityCommercial quantity. Defaults to 1.
unit_amountUnit price.
amountLine total.
discountLine discount.
additional_infoAdditional product information (informações adicionais do produto).
freight_amount, insurance_amount, other_amountOptional freight, insurance and other expenses.
freight_indicatorFreight mode (modalidade do frete), e.g. 0.

categories[]

listRequiredDescription
ncmYes8-digit NCM of the product.
CFOPYes4-digit CFOP. 5xxx within the same state, 6xxx interstate.
unitYesCommercial unit (UN, KG, CX...).
origin BRYesOrigin of the goods (0 national, 1 direct import, 2 imported bought domestically...).
Natureza operacaoYesNature of the operation printed on the DANFE. Taken from the first item that has it.
Cod Enquadramento IPIWhen IPI appliesIPI framework code. 999 when there is no specific framework.
cClassTribRecommendedIBS/CBS tax classification. Default 000001.
cClassTrib RegularOptionalRegular IBS/CBS classification.
cestWhen subject to ICMS-STCEST code.
gtinOptionalProduct barcode.
taxable quantity, taxable unitOptionalTaxable quantity and unit, when different from the commercial ones.

cst

FieldDescription
icmsCST (or CSOSN) for ICMS.
ipiCST for IPI.
pis_cofinsCST for PIS and COFINS.
ibs_cbsCST for IBS/CBS. Default 000 when IBS/CBS data is present.
ibs_cbs_regularOptional regular CST for IBS/CBS.

taxes[]

taxes[].name

ValueDescription
ICMSRate and optional taxable_amount (base).
ICMS-STSend taxable_amount for the ST base.
FCPFundo de Combate à Pobreza rate.
IPIRate and optional base.
PIS, COFINSRates.
IBS, CBSIBS/CBS special cases, see below.

Rates are decimals: 0.04 = 4%.

IBS/CBS special cases

Use withholding_type on IBS / CBS taxes:

withholding_typeMeaning
deferredDeferral (diferimento). For IBS, set level to state or municipality.
presumed creditPresumed credit. Add the presumed credit category with the classification.
transfered creditCredit 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

MistakeWhat happensFix
CFOP doesn't match the destination (5xxx interstate, 6xxx same state)SEFAZ rejects the NFeUse 5xxx within the state and 6xxx for other states
Missing neighborhoodSEFAZ rejects the recipient addressAlways send address.neighborhood
Supplier regime not set to Lucro Real / Lucro Presumido when it should beThe ICMS group from your payload is not sentFix the regime on your company in Brinta
Buyer with ICMS registration sent without IEWrong recipient IE indicatorAdd 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_1The number is sent as SNEnd address_line_1 with the number

Did this page help you?