VeriFactu — Faturamento eletrônico
Pool-Control gera registros de faturamento compatíveis com VeriFactu: impressão digital SHA-256 encadeada, XML SOAP e código QR no PDF.
O que é implementado
| Função | Estado |
|---|---|
| Impressão digital e encadeamento na emissão da fatura | Disponível |
| XML VeriFactu (rascunho SOAP) | Disponível |
| QR de validação em PDF | Disponível |
| Download XML dos detalhes da fatura | Disponível |
| Rectificações (crédito R1) com referência à factura original | Disponível |
| Imutabilidade: não editar faturas emitidas | Disponível |
| Empresa certificada (.pfx) | Configurações → Empresa → Certificado VeriFactu |
| Envio para AEAT pré-produção | Certificado de locatário + ALLOW_AEAT_SEND=confirm no servidor |
| Assinatura XAdES | Pendente (produção aprovada) |
| Produção real da AEAT | Bloqueado (ALLOW_PROD + XAdES) |
Fluxo normal
- Crie ou gere um rascunho de fatura.
- Revise os dados e pressione Emitir — número, impressão digital e XML são atribuídos.
- A fatura não pode ser editada (somente retificada com crédito).
- Baixe PDF (com QR) ou XML.
- Opcional: Enviar AEAT (PRE) do detalhe (somente se o servidor possuir certificado do emissor obrigado).
Requisitos para remessa AEAT
- Carregar o certificado .pfx/.p12 do emissor obrigado em Configurações da Empresa (o NIF do certificado deve corresponder ao NIF da empresa).
- Nome da empresa = nome no censo AEAT (deve corresponder ao certificado).
- NIF do produtor de software configurado em SuperAdmin → VeriFactu (diferente do NIF do locatário).
- Ambiente padrão de pré-produção (
verifactuProduction = false). - No desenvolvimento local você pode usar
VERIFACTU_CERT_PATH(não na produção do Render). - Ao fazer o upload do certificado em Configurações: você é informado sobre a criptografia AES-256-GCM, finalidade do AEAT e possibilidade de exclusão; detalhes em política de privacidad e Configurações da Empresa.
Matriz de teste automático| Suíte | O que é válido |
|-------|------------| | verifactu-hash.test.ts | Pegada F1/F2/R1 | | verifactu-xml.test.ts | Destinatário XML, encadeamento | | verifactu-aeat-response.test.ts | Analisador correto/incorreto | | verifactu-compliance.test.ts | Regras legais da API (imutabilidade, compras sem VF) | | teste pnpm:verifactu-xsd | Amostras XML (estrutura/XSD se xmllint) | | RUN_AEAT_INTEGRATION=1 | PRÉ-Envio Real (opcional, sem CI) |
Contas de teste internas
| Conta | Subdomínio | Uso |
|---|---|---|
| Demonstração pública | AquaDemo | Testadores — dados fictícios (demonstração CIF) |
| Laboratório VF | vf-lab | VeriFactu testa com dados reais de desenvolvedores — não a demonstração pública |
Acesso ao laboratório (seed): admin@vf-lab.test / password123
Comando para recriar dados de laboratório dinâmicos:
cd packages/server && pnpm seed:vf-lab -- --resetCompras e VeriFactu
As faturas do fornecedor, recibos, pagamentos ao fornecedor e cancelamentos/créditos de compras no ERP não são enviados à AEAT como registro VeriFactu.
| Documento | VeriFactu do Pool-Control? | Razão |
|---|---|---|
| venda fatura (cliente) | Sim — hash, XML, QR, PRÉ envio | Você é o emissor obrigatório |
| Crédito/retificação venda (R1) | Sim | Retificar uma fatura emitida por você |
| fornecedor fatura (compra) | Não | Está registrado pelo seu provedor; você só lança o recibo |
| Pagamento ou cancelamento de compra | Não | Não é um registro do seu faturamento emitido |
Caso o seu fornecedor seja obrigado ao VeriFactu, ele envia o XML para o Tesouro; Pool-Control não substitui essa remessa.
Registro legal vs auditoria interna
| Camada | O que mantém | Onde ver |
|---|---|---|
| Registro VeriFactu (emissor obrigatório) | Impressão digital SHA-256, encadeamento, SOAP XML, status AEAT | Fatura emitida: campos técnicos + download XML |
| Auditoria de negócios | Quem emitiu, tentativas de edição bloqueadas, envios AEAT PRE | Configurações → Auditoria (SETTINGS_VIEW_LOGS) |
Ações de auditoria relevantes: INVOICE_ISSUED, VERIFACTU_EDIT_BLOCKED, VERIFACTU_AEAT_SEND.
Diário de bordo exportável (CSV/XML em massa para inspeção) está pendente; Hoje o registro técnico está em cada nota fiscal emitida.
Ambiente PRÉ até registro oficial no censo
Até que a empresa seja registrada e o censo AEAT corresponda ao certificado e ao nome da empresa:
- Use apenas pré-produção (
verifactuProduction = false, hostprewww1). - Envios somente com
ALLOW_AEAT_SEND=confirme supervisão. - Validar no locatário
vf-lab(não na demonstração pública do AquaDemo). - Não ative a produção AEAT ou
ALLOW_PRODno Render.Quando o registro oficial estiver pronto: certificado de inquilino em Configurações, Corrigir PRÉ teste do aplicativo e, em seguida, aprovação (XAdES) antes da produção.
Retificar ≠ excluir
As faturas emitidas não podem ser excluídas. Para corrigir: utilize Retificar → crédito (R1) e, se for o caso, nova fatura.
##Mais informações