invoice.status
Consistência entre código de estado e data da fatura
InvoiceStatus tem de ser um de N/S/A/R/F e InvoiceStatusDate tem de ser >= InvoiceDate.
O que se verifica
Cada bloco <Invoice><DocumentStatus> tem de cumprir duas regras de consistência:
InvoiceStatusé um dos códigos definidos pela AT:N,S,A,R,F.InvoiceStatusDateé maior ou igual aoInvoiceDateda própria fatura.
Os códigos de estado
| Código | Significado |
|---|---|
N | Normal — a fatura está ativa e em vigor. |
S | Autofaturação. |
A | Anulada. |
R | Resumido — documento que agrega um período. |
F | Faturada — estado intermédio. |
Porque é que a consistência de data importa
Um evento de estado não pode ser anterior ao documento a que se refere. A AT rejeita uma fatura marcada como A a 2025-12-30 se a fatura tiver sido emitida a 2026-01-15 — a linha temporal é impossível. A mesma lógica de um reembolso anterior à venda.
Exemplos
| InvoiceDate | InvoiceStatus | InvoiceStatusDate | Veredicto |
|---|---|---|---|
| 2026-01-15 | N | 2026-01-15T10:00:00 | ✓ |
| 2026-01-15 | A | 2026-01-20T09:00:00 | ✓ anulação posterior à emissão |
| 2026-01-15 | A | 2025-12-30T09:00:00 | ✗ estado antes da fatura |
| 2026-01-15 | X | 2026-01-15 | ✗ código de estado desconhecido |
Como corrigir
Ambos são problemas de integridade de dados do ERP, não corrigíveis diretamente no SAF-T. Investigue o documento no sistema de contabilidade e confirme: foi anulado retroativamente? O timestamp do evento de estado foi sobrescrito? Volte a exportar quando os dados de origem estiverem consistentes.