[BR] Services Invoice for Rental (NFSe Locação)

What is an NFSe for rental?

Under the Reforma Tributária (LC 214/2025), an NFSe for renting, leasing or assigning real estate (locação, cessão onerosa ou arrendamento de bens imóveis) must identify the property. It is a regular Services Invoice (NFSe) plus property data, which Brinta adds automatically when the item's operation indicator is a real-estate code.

FieldValue
invoice_typedebit
document_typeservices invoice
e_invoicetrue
currencyBRL

When to issue an NFSe for rental

SituationIssue?
Monthly rent of a commercial or residential property✅ Yes
Lease (arrendamento) or paid assignment (cessão onerosa) of real estate✅ Yes
Service performed physically on a property (e.g. maintenance)✅ Yes, with operation indicator 020201
Real estate administration or brokerage✅ Yes, with operation indicator 020301
Any other service❌ No, use a regular Services Invoice (NFSe)

Field by Field

Everything on the Services Invoice (NFSe) page applies. This page covers only what changes for rental.

items[]

categories[].list = "operation indicator br"

This is the field that turns on the rental logic. Use one of the real-estate codes:

ValueOperationSupplying location
020101Operação com bem imóvel, bem imaterial, inclusive direito, relacionada a bem imóvelLocalidade do imóvel
020201Serviço prestado fisicamente sobre bem imóvelLocalidade do imóvel
020301Serviço de administração e intermediação de bem imóvelLocalidade do imóvel

Always send it as a 6-digit string, including the leading zero: "020101", never "20101" or a number.

Identifying the property

Only one property identifier is sent to the NFSe. Brinta picks the first one available, in this order:

PriorityHow to send itFormat
1{ "code": "<CIB>", "list": "imovel codigo cib" } in items[0].categories[]Cadastro Imobiliário Brasileiro (CIB) code, up to 8 characters
2{ "code": "<inscrição>", "list": "inscricao imobiliaria" } in items[0].categories[]Municipal property registration (inscrição imobiliária), up to 30 characters
3buyer.company.physical_addressProperty address: address_line_1 (street with the number at the end), neighborhood, postal_code

Send the CIB or the inscrição imobiliária whenever you have it. They identify the property more precisely than an address.

categories[].list = "cClassTrib" and cst.ibs_cbs

Use the rental classification that applies. Common combinations:

cst.ibs_cbscClassTribDescription
20020002770% reduction: locação, cessão onerosa e arrendamento de bens imóveis (art. 261, LC 214/2025)
210210003Redutor social: residential rental (art. 260, LC 214/2025)
221221001Fixed proportional rate on gross revenue (art. 487, LC 214/2025)

See the full list on CST and cClassTrib codes.

categories[].list = "nbs code"

9 digits without dots, for example:

ValueNBSDescription
1100111001.1001.11.00Administração e locação de imóveis residenciais
1100112901.1001.12.90Administração e locação de outros imóveis não residenciais

buyer

company.physical_address

Only used when neither the CIB nor the inscrição imobiliária is sent. It must be the property's address, not the tenant's billing address (company.address).


Full Example Payload

{
  "supplier_company_id": "{{company_id}}",
  "invoice_type": "debit",
  "document_type": "services invoice",
  "invoice_date": "2026-10-01",
  "invoice_due_date": "2026-10-10",
  "currency": "BRL",
  "e_invoice": true,
  "invoice_external_id": "ALUGUEL-2026-10-0042",
  "additional_info": "Aluguel referente a outubro/2026",
  "buyer": {
    "company": {
      "name": "LOJA EXEMPLO LTDA",
      "legal_name": "LOJA EXEMPLO LTDA",
      "type": "business",
      "email": "[email protected]",
      "tax_registrations": [
        { "number": "11222333000181", "type": "CNPJ", "level": "country", "location": "BR" }
      ],
      "address": {
        // Tenant's billing address (tomador)
        "country": "BR",
        "address_line_1": "Avenida Paulista 1000",
        "neighborhood": "Bela Vista",
        "city": "São Paulo",
        "state": "BR-SP",
        "postal_code": "01310100"
      },
      "physical_address": {
        // Property address, only used if no CIB or inscrição imobiliária is sent
        "country": "BR",
        "address_line_1": "Rua Augusta 1500",
        "neighborhood": "Consolação",
        "city": "São Paulo",
        "state": "BR-SP",
        "postal_code": "01304001"
      }
    }
  },
  "items": [
    {
      "item_external_id": "IMOVEL-0042",
      "name": "Aluguel de imóvel comercial",
      "description": "Rua Augusta 1500, loja 2",
      "amount": 8000,
      "categories": [
        { "code": "020101", "list": "operation indicator br" },
        // Real-estate operation, 6 digits with the leading zero
        { "code": "200027", "list": "cClassTrib" },
        { "code": "110011290", "list": "nbs code" },
        { "code": "12345678", "list": "imovel codigo cib" }
        // Property identifier (CIB). Or use "inscricao imobiliaria"
      ],
      "cst": {
        "ibs_cbs": "200"
      }
    }
  ]
}

Common Mistakes

MistakeWhat happensFix
Operation indicator sent as "20101" or as a numberNo property data is added and the NFSe is rejectedSend "020101" as a string
No CIB, no inscrição imobiliária and no physical_address.address_line_1The authority rejects the NFSe for missing property dataSend at least one identifier
Tenant's billing address sent in physical_addressThe wrong property is identified on the NFSeUse the property's own address, or better, its CIB
Several properties in one NFSeOnly the first item's property is reportedIssue one NFSe per property
Rental issued with the default cClassTrib 000001Full IBS/CBS rate instead of the rental reductionSend the rental cClassTrib and CST that apply
⚠️

The tax treatment of rentals (ISS, IBS/CBS reductions, IRRF withholding) depends on the property and the parties. Confirm the codes with your tax advisor.


Did this page help you?