> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base39.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Balanço Patrimonial

> Schema do template balance_sheet

## Schema

O template `balance_sheet` extrai dados estruturados de balanços patrimoniais.
Suporta múltiplas empresas, múltiplos períodos por arquivo e demonstrações individuais/consolidadas.

```json theme={null}
{
  "companies": [
    {
      "company_name": "ACME LTDA",
      "company_document": "12.345.678/0001-90",
      "statement_type": "individual",
      "periods": [
        {
          "reference_date": "2024-12-31",
          "assets": {
            "description": "ATIVO",
            "value": 1000000,
            "code": "1",
            "children": [
              {
                "description": "ATIVO CIRCULANTE",
                "value": 600000,
                "code": "1.1",
                "children": [
                  {
                    "description": "Caixa",
                    "value": 50000,
                    "code": "1.1.1.01"
                  },
                  {
                    "description": "Bancos",
                    "value": 550000,
                    "code": "1.1.1.02"
                  }
                ]
              },
              {
                "description": "ATIVO NÃO CIRCULANTE",
                "value": 400000,
                "code": "1.2",
                "children": [
                  {
                    "description": "Veículos",
                    "value": 500000,
                    "code": "1.2.3.04"
                  },
                  {
                    "description": "(-) Depreciação",
                    "value": -100000,
                    "code": "1.2.3.06"
                  }
                ]
              }
            ]
          },
          "liabilities": {
            "description": "PASSIVO",
            "value": 600000,
            "code": "2.1",
            "children": [
              {
                "description": "Fornecedores",
                "value": 400000,
                "code": "2.1.2.01"
              },
              {
                "description": "Empréstimos",
                "value": 200000,
                "code": "2.1.3.01"
              }
            ]
          },
          "equity": {
            "description": "PATRIMÔNIO LÍQUIDO",
            "value": 400000,
            "code": "2.3",
            "children": [
              {
                "description": "Capital Social",
                "value": 300000,
                "code": "2.3.1.01"
              },
              {
                "description": "Lucros Acumulados",
                "value": 100000,
                "code": "2.3.3.01"
              }
            ]
          }
        }
      ]
    }
  ]
}
```

**Observações:**

* Valores são sempre expressos em unidades (R\$). Se o documento original estiver em milhares, os valores são convertidos.
* Para balanços com demonstração individual e consolidada, cada uma é representada como entrada separada em `companies[]` com `statement_type` diferente.

## Campos

### CompanyBalanceSheet

| Campo              | Tipo      | Descrição                          |
| ------------------ | --------- | ---------------------------------- |
| `company_name`     | string    | Nome da empresa                    |
| `company_document` | string?   | CNPJ formatado                     |
| `statement_type`   | string?   | `"individual"` ou `"consolidated"` |
| `periods`          | Period\[] | Lista de períodos                  |

### Period

| Campo            | Tipo        | Descrição                                  |
| ---------------- | ----------- | ------------------------------------------ |
| `reference_date` | string      | Data de referência do balanço (YYYY-MM-DD) |
| `assets`         | AccountNode | Árvore do Ativo                            |
| `liabilities`    | AccountNode | Árvore do Passivo                          |
| `equity`         | AccountNode | Árvore do PL                               |

### AccountNode

| Campo         | Tipo            | Descrição                              |
| ------------- | --------------- | -------------------------------------- |
| `description` | string          | Descrição da conta                     |
| `value`       | number          | Valor em R\$ (negativo para redutoras) |
| `code`        | string?         | Código contábil                        |
| `note`        | string?         | Nota explicativa                       |
| `children`    | AccountNode\[]? | Subcontas                              |

## Códigos contábeis

Os códigos seguem as normas brasileiras de contabilidade emitidas pelo CFC (Conselho Federal de Contabilidade):

* **ITG 1000** - Interpretação Técnica Geral para microempresas e empresas de pequeno porte
* **NBC TG 1001/1002** - Normas Brasileiras de Contabilidade para microentidades e pequenas empresas
* **NBC TG 1000** - Contabilidade para Pequenas e Médias Empresas (equivalente ao IFRS for SMEs)
* **CPC/IFRS** - Pronunciamentos do Comitê de Pronunciamentos Contábeis, convergentes com as normas internacionais IFRS (International Financial Reporting Standards)

### Microempresas e EPPs (ITG 1000)

Empresas com receita bruta anual ≤ R\$ 78 milhões (NBC TG 1001/1002 e ITG 1000)

#### Ativo Circulante (1.1.x)

| Código     | Descrição                                     |
| ---------- | --------------------------------------------- |
| `1.1.1.01` | Caixa                                         |
| `1.1.1.02` | Bancos Conta Movimento                        |
| `1.1.1.03` | Aplicações Financeiras                        |
| `1.1.1.04` | Títulos e Valores Mobiliários                 |
| `1.1.1.05` | Instrumentos Financeiros Derivativos          |
| `1.1.2.01` | Clientes                                      |
| `1.1.2.02` | (-) PECLD                                     |
| `1.1.2.03` | Adiantamento a Fornecedores                   |
| `1.1.2.04` | Tributos a Recuperar                          |
| `1.1.2.05` | Partes Relacionadas - No País                 |
| `1.1.2.06` | Partes Relacionadas - No Exterior             |
| `1.1.2.07` | AFAC (Adiantamento p/ Futuro Aumento Capital) |
| `1.1.2.08` | Adiantamentos de Clientes (quando ativo)      |
| `1.1.3.01` | Mercadorias para Revenda                      |
| `1.1.3.02` | Produtos Acabados                             |
| `1.1.3.03` | Insumos/Matéria-Prima                         |
| `1.1.4.01` | Despesas Antecipadas                          |

#### Ativo Não Circulante (1.2.x)

| Código     | Descrição                        |
| ---------- | -------------------------------- |
| `1.2.1.01` | Realizável a Longo Prazo         |
| `1.2.1.02` | Títulos e Valores Mobiliários LP |
| `1.2.1.03` | AFAC - Longo Prazo               |
| `1.2.1.04` | Partes Relacionadas LP           |
| `1.2.2.01` | Participações Societárias        |
| `1.2.3.01` | Terrenos                         |
| `1.2.3.02` | Edificações                      |
| `1.2.3.03` | Máquinas e Equipamentos          |
| `1.2.3.04` | Veículos                         |
| `1.2.3.05` | Móveis e Utensílios              |
| `1.2.3.06` | (-) Depreciação Acumulada        |
| `1.2.4.01` | Softwares                        |
| `1.2.4.02` | (-) Amortização Acumulada        |

#### Passivo Circulante (2.1.x)

| Código     | Descrição                            |
| ---------- | ------------------------------------ |
| `2.1.1.01` | Salários a Pagar                     |
| `2.1.1.02` | INSS a Recolher                      |
| `2.1.1.03` | FGTS a Recolher                      |
| `2.1.1.04` | Provisão de Férias                   |
| `2.1.1.05` | Provisão de 13º Salário              |
| `2.1.2.01` | Fornecedores                         |
| `2.1.2.02` | Aluguéis a Pagar                     |
| `2.1.3.01` | Empréstimos Bancários                |
| `2.1.3.02` | Financiamentos                       |
| `2.1.4.01` | IRPJ a Recolher                      |
| `2.1.4.02` | CSLL a Recolher                      |
| `2.1.4.03` | PIS a Recolher                       |
| `2.1.4.04` | COFINS a Recolher                    |
| `2.1.4.05` | ICMS a Recolher                      |
| `2.1.4.06` | ISS a Recolher                       |
| `2.1.4.07` | Simples Nacional                     |
| `2.1.5.01` | Dividendos a Pagar                   |
| `2.1.5.02` | Instrumentos Financeiros Derivativos |
| `2.1.5.03` | Partes Relacionadas - Circulante     |
| `2.1.5.04` | Adiantamentos de Clientes            |

#### Passivo Não Circulante (2.2.x)

| Código     | Descrição              |
| ---------- | ---------------------- |
| `2.2.1.01` | Empréstimos LP         |
| `2.2.1.02` | Financiamentos LP      |
| `2.2.2.01` | Tributos Parcelados    |
| `2.2.2.02` | Partes Relacionadas LP |

#### Patrimônio Líquido (2.3.x)

| Código     | Descrição                                     |
| ---------- | --------------------------------------------- |
| `2.3.1.01` | Capital Social Subscrito                      |
| `2.3.1.02` | (-) Capital a Integralizar                    |
| `2.3.1.03` | AFAC (Adiantamento p/ Futuro Aumento Capital) |
| `2.3.2.01` | Reservas de Capital                           |
| `2.3.2.02` | Reservas de Lucros                            |
| `2.3.2.03` | Ajustes de Avaliação Patrimonial              |
| `2.3.3.01` | Lucros Acumulados                             |
| `2.3.3.02` | (-) Prejuízos Acumulados                      |
| `2.3.3.03` | Resultado do Exercício                        |

### Médias Empresas (NBC TG 1000)

Empresas com receita bruta anual > R$ 78 milhões e ≤ R$ 300 milhões

Utiliza a mesma estrutura das micro/pequenas empresas, com contas adicionais:

#### Contas Adicionais - Ativo

| Código     | Descrição                                               |
| ---------- | ------------------------------------------------------- |
| `1.2.2.02` | Ágio por Expectativa de Rentabilidade Futura (Goodwill) |
| `1.2.3.07` | Propriedades para Investimento                          |
| `1.2.3.08` | (-) Depreciação Prop. Investimento                      |

#### Contas Adicionais - Patrimônio Líquido

| Código     | Descrição     |
| ---------- | ------------- |
| `2.3.2.04` | Reserva Legal |

### Grandes Empresas/Capital Aberto (CPC/IFRS)

Empresas com receita bruta > R\$ 300 milhões ou S.A. de capital aberto

Utiliza a estrutura completa CPC/IFRS com contas adicionais:

#### Contas Adicionais - Ativo

| Código     | Descrição                         |
| ---------- | --------------------------------- |
| `1.2.2.03` | Investimentos em Controladas      |
| `1.2.2.04` | Investimentos em Coligadas        |
| `1.2.2.05` | Investimentos em Joint Ventures   |
| `1.2.3.09` | Ativos de Direito de Uso (CPC 06) |
| `1.2.3.10` | (-) Depreciação Direito de Uso    |
| `1.2.4.03` | Marcas                            |
| `1.2.4.04` | Patentes e Segredos Industriais   |

#### Contas Adicionais - Passivo

| Código     | Descrição                         |
| ---------- | --------------------------------- |
| `2.1.5.05` | Arrendamentos a Pagar CP (CPC 06) |
| `2.2.3.01` | Arrendamentos a Pagar LP (CPC 06) |
| `2.2.4.01` | Provisões para Contingências      |
| `2.2.4.02` | Tributos Diferidos                |

#### Contas Adicionais - Patrimônio Líquido

| Código     | Descrição                     |
| ---------- | ----------------------------- |
| `2.3.2.05` | Outros Resultados Abrangentes |
| `2.3.2.06` | Ações em Tesouraria           |

## Exemplo de Uso

```javascript theme={null}
const balanceSheet = await response.json();

// Percorrer árvore
function walk(node, depth = 0) {
  const note = node.note ? ` (Nota ${node.note})` : "";
  console.log("  ".repeat(depth) + node.description + ": " + node.value + note);
  (node.children || []).forEach((c) => walk(c, depth + 1));
}

// Listar contas
balanceSheet.companies.forEach((company) => {
  const type = company.statement_type || "individual";
  console.log(`${company.company_name} (${type})`);
  company.periods.forEach((period) => {
    console.log(`  Data: ${period.reference_date}`);
    walk(period.assets, 2);
  });
});

// Buscar por código
function findByCode(node, code) {
  if (node.code === code) return node;
  for (const child of node.children || []) {
    const found = findByCode(child, code);
    if (found) return found;
  }
  return null;
}

const caixa = findByCode(
  balanceSheet.companies[0].periods[0].assets,
  "1.1.1.01"
);
```
