VeriFactu Fase 3: Envio à AEAT
O que é a Fase 3
A Fase 3 de VeriFactu é o envio automático dos registros de faturamento à Agência Tributária (AEAT) por meio de mensagens SOAP/XML. Complementa as fases anteriores (hash SHA-256 e QR) com a transmissão efetiva de cada registro e cancelamento de fatura ao sistema SII da AEAT.
Com esta fase ativa, o Frihet gera o XML conforme a Ordem HAC/1177/2024, assina-o com seu certificado digital e o envia diretamente aos servidores da AEAT. Tudo acontece em segundo plano, sem intervenção manual.
Certificado digital
Para enviar registros à AEAT, você precisa de um certificado digital válido. O Frihet aceita certificados nos formatos .pfx ou .p12.
Onde obter um certificado
| Emissor | Tipo | Custo |
|---|---|---|
| FNMT (Fabrica Nacional de Moneda y Timbre) | Pessoa física ou jurídica | Gratuito |
| CamCert (Camaras de Comercio) | Empresa | Variável |
| ACCV (Comunitat Valenciana) | Regional | Gratuito |
Carregar o certificado
- Vá para Configurações > Conformidade
- Na seção Certificado Digital, clique em Carregar certificado
- Selecione seu arquivo
.pfxou.p12 - Digite a senha do certificado
A senha do seu certificado é criptografada com AES-256-GCM antes de ser armazenada. Em nenhum momento é armazenada em texto simples.
Sandbox vs Produção
O toggle Modo sandbox em Configurações > Conformidade permite enviar registros para o ambiente de testes da AEAT antes de ativar o envio real.
- Sandbox: os registros são enviados para o endpoint de testes. A AEAT os valida, mas não os registra oficialmente. Útil para verificar se o certificado e os dados estão corretos.
- Produção: os registros são enviados para o endpoint oficial. As faturas ficam registradas no sistema SII da AEAT.
Ative o modo sandbox durante os primeiros dias para confirmar que seu certificado funciona corretamente e que os dados são gerados sem erros.
Envio automático
Ativação
- Vá para Configurações > Conformidade
- Ative o toggle Enviar automaticamente à AEAT
Com este toggle ativo, cada fatura emitida ou cancelada é enviada automaticamente:
Fluxo de registro (fatura emitida)
- O hash SHA-256 da fatura (cadeia imutável) é calculado
- O XML de registro é gerado conforme a especificação AEAT
- O XML é assinado com seu certificado digital
- É enviado via SOAP para o endpoint da AEAT
- A resposta (CSV atribuído ou erro) é armazenada
Fluxo de cancelamento (fatura cancelada)
- O hash de cancelamento é calculado com os 5 campos necessários
- O XML de cancelamento é gerado
- É assinado e enviado para o endpoint da AEAT
- A resposta e o status de cancelamento são armazenados
Ambos os fluxos são fire-and-forget: o usuário pode continuar trabalhando enquanto o envio é processado em segundo plano.
Envio manual
Se o envio automático não estiver ativo, ou se precisar reenviar uma fatura específica:
- Abra a fatura em questão
- Clique no menu de ações (três pontos)
- Selecione Enviar à AEAT
- Um diálogo de confirmação é exibido com a prévia do hash
- Confirme para iniciar o envio
O envio manual segue o mesmo fluxo técnico que o automático.
Status de envio
Cada fatura exibe um badge com seu status de envio à AEAT:
| Status | Badge | Descrição |
|---|---|---|
| Pendente | Contorno (sem cor) | Hash calculado, envio não iniciado |
| Enviado | Cinza | Mensagem SOAP enviada, aguardando resposta da AEAT |
| Aceito | Verde | A AEAT aceitou o registro e atribuiu um código CSV |
| Rejeitado | Vermelho | A AEAT rejeitou o registro. Ver detalhe do erro |
| Erro | Vermelho | Erro técnico no envio (rede, certificado, timeout) |
Consultar o status
O status de envio é visível em:
- A visualização de detalhes de cada fatura (badge junto ao número)
- A lista geral de faturas (coluna de status)
- O livro registro ampliado (colunas adicionais)
Tentativas automáticas
Quando um envio falha por erro técnico (timeout, erro de rede, serviço AEAT não disponível), o Frihet tenta novamente automaticamente:
- Frequência: a cada 15 minutos
- Máximo de tentativas: 3
- Após 3 falhas: o status permanece como Erro e requer intervenção manual
Para tentar novamente manualmente uma fatura com status Erro:
- Abra a fatura
- No badge de status vermelho, clique em Tentar novamente
- Uma nova tentativa de envio é executada.
Indicadores em PDF
As faturas aceitas pela AEAT incluem informações adicionais no PDF gerado:
- Badge "Registrada na AEAT" no cabeçalho do documento
- Código CSV atribuído pela AEAT, junto ao QR de verificação
Esses indicadores só aparecem quando o status de envio é Aceito.
Livro registro ampliado
Com a Fase 3 ativa, o livro registro de faturas emitidas inclui 3 colunas adicionais:
| Coluna | Descrição |
|---|---|
| Status Envio AEAT | Status do envio do registro de entrada (Pendente, Enviado, Aceito, Rejeitado, Erro) |
| CSV AEAT | Código seguro de verificação atribuído pela AEAT ao aceitar o registro |
| Status Cancelamento AEAT | Status do envio do registro de cancelamento (se aplicável) |
Essas colunas são adicionadas ao final do CSV exportado, após as 12 colunas padrão.
Solução de problemas
"Certificado não configurado"
Um certificado digital não foi carregado. Vá para Configurações > Conformidade e carregue seu arquivo .pfx ou .p12.
"NIF não configurado"
O perfil fiscal não possui NIF. Vá para Configurações > Perfil Fiscal e complete seu identificador fiscal.
Erro SOAP / Erro de conexão
Possíveis causas:
- Certificado expirado: verifique a data de validade do seu certificado. Os certificados FNMT têm validade de 4 anos.
- Senha incorreta: carregue o certificado novamente com a senha correta.
- Serviço AEAT não disponível: a AEAT tem janelas de manutenção. O sistema tentará novamente automaticamente.
- Dados fiscais incompletos: verifique se seu NIF, endereço fiscal e dados da empresa estão completos.
Um certificado expirado bloqueia todos os envios. Renove seu certificado na FNMT ou CamCert antes da data de vencimento.
Fatura rejeitada pela AEAT
A AEAT pode rejeitar um registro por:
- NIF do emissor não coincide com o certificado
- Formato de data incorreto
- Tipo de fatura inválido para a operação
Verifique a mensagem de erro nos detalhes da fatura. Corrija os dados e use Tentar novamente para enviar novamente.
Calendário legal
A obrigação de envio à AEAT tem prazos escalonados conforme o RDL 15/2025:
| Tipo de contribuinte | Data limite |
|---|---|
| Sociedades (Ltda., S.A.) | 1 de janeiro de 2027 |
| Autônomos (pessoa física) | 1 de julho de 2027 |
O Frihet já suporta o envio à AEAT. Recomenda-se ativar o modo sandbox com antecedência para validar a configuração antes que a obrigação entre em vigor.
Relação com outras fases
- Fase 1 (Hash SHA-256): é calculado automaticamente em cada fatura. É a base do registro. Ver VeriFactu.
- Fase 2 (QR AEAT): o código QR no PDF linka para a sede eletrônica da AEAT para verificação.
- Fase 3 (Envio AEAT): esta página. Transmissão efetiva do registro à AEAT via SOAP/XML.
Anterior: VeriFactu | Próximo: Imutabilidade e registro