Skip to main content

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.
{
  "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

CampoTipoDescrição
company_namestringNome da empresa
company_documentstring?CNPJ formatado
statement_typestring?"individual" ou "consolidated"
periodsPeriod[]Lista de períodos

Period

CampoTipoDescrição
reference_datestringData de referência do balanço (YYYY-MM-DD)
assetsAccountNodeÁrvore do Ativo
liabilitiesAccountNodeÁrvore do Passivo
equityAccountNodeÁrvore do PL

AccountNode

CampoTipoDescrição
descriptionstringDescrição da conta
valuenumberValor em R$ (negativo para redutoras)
codestring?Código contábil
notestring?Nota explicativa
childrenAccountNode[]?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ódigoDescrição
1.1.1.01Caixa
1.1.1.02Bancos Conta Movimento
1.1.1.03Aplicações Financeiras
1.1.1.04Títulos e Valores Mobiliários
1.1.1.05Instrumentos Financeiros Derivativos
1.1.2.01Clientes
1.1.2.02(-) PECLD
1.1.2.03Adiantamento a Fornecedores
1.1.2.04Tributos a Recuperar
1.1.2.05Partes Relacionadas - No País
1.1.2.06Partes Relacionadas - No Exterior
1.1.2.07AFAC (Adiantamento p/ Futuro Aumento Capital)
1.1.2.08Adiantamentos de Clientes (quando ativo)
1.1.3.01Mercadorias para Revenda
1.1.3.02Produtos Acabados
1.1.3.03Insumos/Matéria-Prima
1.1.4.01Despesas Antecipadas

Ativo Não Circulante (1.2.x)

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

Passivo Circulante (2.1.x)

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

Passivo Não Circulante (2.2.x)

CódigoDescrição
2.2.1.01Empréstimos LP
2.2.1.02Financiamentos LP
2.2.2.01Tributos Parcelados
2.2.2.02Partes Relacionadas LP

Patrimônio Líquido (2.3.x)

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

Médias Empresas (NBC TG 1000)

Empresas com receita bruta anual > R78milho~eseR 78 milhões e ≤ R 300 milhões Utiliza a mesma estrutura das micro/pequenas empresas, com contas adicionais:

Contas Adicionais - Ativo

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

Contas Adicionais - Patrimônio Líquido

CódigoDescrição
2.3.2.04Reserva 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ódigoDescrição
1.2.2.03Investimentos em Controladas
1.2.2.04Investimentos em Coligadas
1.2.2.05Investimentos em Joint Ventures
1.2.3.09Ativos de Direito de Uso (CPC 06)
1.2.3.10(-) Depreciação Direito de Uso
1.2.4.03Marcas
1.2.4.04Patentes e Segredos Industriais

Contas Adicionais - Passivo

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

Contas Adicionais - Patrimônio Líquido

CódigoDescrição
2.3.2.05Outros Resultados Abrangentes
2.3.2.06Ações em Tesouraria

Exemplo de Uso

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"
);