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
| Campo | Significado |
|---|---|
transaction_date | A 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_at | A 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-15ecreated_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ção | transaction_date | created_at |
|---|---|---|
| Fatura de venda ao Cliente A | 2026-03-31 | 2026-04-02 |
| Fatura de venda ao Cliente B | 2026-04-01 | 2026-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.