Que data cada relatório usa (transaction_date vs created_at)

Explicação de qual data cada relatório e listagem no contable.io usa, e por que a data contábil nunca coincide com a data de criação do registro.

Atualizado: 5 de abril de 2026

Toda transação contábil no contable.io tem duas datas distintas, e entender quando cada uma é usada evita confusões ao conciliar relatórios.

As duas datas

CampoSignificado
transaction_dateA data contábil do fato econômico. É o que o usuário captura na fatura, recibo ou comprovante. Determina em qual período fiscal a transação cai.
created_atA data do sistema em que o registro foi gravado no banco. Automática, imutável, serve para auditoria.

Exemplo: uma fatura de compra datada 2026-03-15 registrada no sistema em 2026-04-02 tem transaction_date = 2026-03-15 e created_at = 2026-04-02.

Por que importa

Se um relatório usa a data errada, pode:

  • Excluir transações que pertencem ao período (registradas tarde).
  • Incluir transações de períodos anteriores (registradas hoje com data contábil antiga).
  • Mostrar saldos diferentes dependendo de quando você executa o relatório sobre os mesmos dados.

Regra do projeto (vigente desde 2026-03-29)

TODOS os relatórios e listagens financeiras usam transaction_date, NUNCA created_at.

Isso inclui:

  • Balancete de verificação.
  • Demonstrativos financeiros (Balanço, DRE).
  • Razão e diário.
  • Auxiliares.
  • Contas a receber por idade.
  • Listagem de faturas, recibos, comprovantes.
  • Relatórios de impostos.

created_at só é usado em:

  • Auditoria (quem registrou o que quando).
  • Logs de atividade (timeline de mudanças).
  • Relatórios operacionais (produtividade da equipe).

Exemplo concreto

Açãotransaction_datecreated_at
Fatura de venda ao Cliente A2026-03-312026-04-02
Fatura de venda ao Cliente B2026-04-012026-04-01

Ao gerar o DRE de março 2026:

  • Correto (transaction_date): inclui Cliente A, exclui Cliente B.
  • Incorreto (created_at): exclui Cliente A (criada em abril), inclui Cliente B.

Por que isso foi uma mudança

Antes de 2026-03-29 algumas listagens usavam created_at por simplicidade técnica. Isso causava problemas ao fechar o mês. A padronização força TODOS os queries a filtrar por transaction_date, garantindo que o fechamento de um período não muda retroativamente, mesmo se você chega tarde para registrar transações.

Implicações para o usuário

  • Capture sempre a data real da transação ao criar faturas e comprovantes — essa é a que conta para seus relatórios e declarações DIAN.
  • Se você registra transações de meses anteriores, certifique-se de não ter fechado o período (períodos fechados não aceitam novos lançamentos).
  • A data de criação fica como histórico de auditoria, não como dado fiscal.