Verifactu — envío conforme, dos registros encadenados
Um envio que a AEAT aceitaria: dois registos de faturação corretamente encadeados. O primeiro declara-se o primeiro da cadeia e calcula a impressão com o campo anterior vazio; o segundo encadeia a impressão do primeiro. Ambas as impressões são reais (SHA-256 sobre a cadeia exata especificada pela AEAT), não inventadas.
IDVersion 1.0 — Válido
Um envio que a AEAT aceitaria: dois registos de faturação corretamente encadeados. O primeiro declara-se o primeiro da cadeia e calcula a impressão com o campo anterior vazio; o segundo encadeia a impressão do primeiro. Ambas as impressões são reais (SHA-256 sobre a cadeia exata especificada pela AEAT), não inventadas.
O que este ficheiro mostra
Um envio que a AEAT aceitaria: dois registos de faturação corretamente encadeados. O primeiro declara-se o primeiro da cadeia e calcula a impressão com o campo anterior vazio; o segundo encadeia a impressão do primeiro. Ambas as impressões são reais (SHA-256 sobre a cadeia exata especificada pela AEAT), não inventadas.
| Transações | 2 |
|---|---|
| Total | € 1.815,00 |
| Data no ficheiro | 2026-01-16 |
Todas as partes, IBAN e montantes abaixo são fictícios. Os IBAN são estruturalmente válidos — passam no mod-97 — mas não correspondem a nenhuma conta real.
Conteúdo do ficheiro
<?xml version="1.0" encoding="UTF-8"?>
<sfLR:RegFactuSistemaFacturacion xmlns:sfLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sf="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<sfLR:Cabecera>
<sf:ObligadoEmision>
<sf:NombreRazon>ValidateFin Demo SL</sf:NombreRazon>
<sf:NIF>B12345674</sf:NIF>
</sf:ObligadoEmision>
<sf:RemisionVoluntaria>
<sf:Incidencia>N</sf:Incidencia>
</sf:RemisionVoluntaria>
</sfLR:Cabecera>
<sfLR:RegistroFactura>
<sf:RegistroAlta>
<sf:IDVersion>1.0</sf:IDVersion>
<sf:IDFactura>
<sf:IDEmisorFactura>B12345674</sf:IDEmisorFactura>
<sf:NumSerieFactura>FA2026/0001</sf:NumSerieFactura>
<sf:FechaExpedicionFactura>15-01-2026</sf:FechaExpedicionFactura>
</sf:IDFactura>
<sf:NombreRazonEmisor>ValidateFin Demo SL</sf:NombreRazonEmisor>
<sf:TipoFactura>F1</sf:TipoFactura>
<sf:DescripcionOperacion>Prestacion de servicios</sf:DescripcionOperacion>
<sf:Destinatarios>
<sf:IDDestinatario>
<sf:NombreRazon>Cliente Ejemplo SA</sf:NombreRazon>
<sf:NIF>A58818501</sf:NIF>
</sf:IDDestinatario>
</sf:Destinatarios>
<sf:Desglose>
<sf:DetalleDesglose>
<sf:Impuesto>01</sf:Impuesto>
<sf:ClaveRegimen>01</sf:ClaveRegimen>
<sf:CalificacionOperacion>S1</sf:CalificacionOperacion>
<sf:TipoImpositivo>21</sf:TipoImpositivo>
<sf:BaseImponibleOimporteNoSujeto>1000.00</sf:BaseImponibleOimporteNoSujeto>
<sf:CuotaRepercutida>210.00</sf:CuotaRepercutida>
</sf:DetalleDesglose>
</sf:Desglose>
<sf:CuotaTotal>210.00</sf:CuotaTotal>
<sf:ImporteTotal>1210.00</sf:ImporteTotal>
<sf:Encadenamiento>
<sf:PrimerRegistro>S</sf:PrimerRegistro>
</sf:Encadenamiento>
<sf:SistemaInformatico>
<sf:NombreRazon>ValidateFin Demo SL</sf:NombreRazon>
<sf:NIF>B12345674</sf:NIF>
<sf:NombreSistemaInformatico>Demo SIF</sf:NombreSistemaInformatico>
<sf:IdSistemaInformatico>VF</sf:IdSistemaInformatico>
<sf:Version>1.0</sf:Version>
<sf:NumeroInstalacion>0001</sf:NumeroInstalacion>
<sf:TipoUsoPosibleSoloVerifactu>S</sf:TipoUsoPosibleSoloVerifactu>
<sf:TipoUsoPosibleMultiOT>N</sf:TipoUsoPosibleMultiOT>
<sf:IndicadorMultiplesOT>N</sf:IndicadorMultiplesOT>
</sf:SistemaInformatico>
<sf:FechaHoraHusoGenRegistro>2026-01-15T10:30:00+01:00</sf:FechaHoraHusoGenRegistro>
<sf:TipoHuella>01</sf:TipoHuella>
<sf:Huella>02D703E1080D488E6FE7EBF57F47A2836FAE84BAB8C7CFDB8BF65E8AC2F0BBDD</sf:Huella>
</sf:RegistroAlta>
</sfLR:RegistroFactura>
<sfLR:RegistroFactura>
<sf:RegistroAlta>
<sf:IDVersion>1.0</sf:IDVersion>
<sf:IDFactura>
<sf:IDEmisorFactura>B12345674</sf:IDEmisorFactura>
<sf:NumSerieFactura>FA2026/0002</sf:NumSerieFactura>
<sf:FechaExpedicionFactura>16-01-2026</sf:FechaExpedicionFactura>
</sf:IDFactura>
<sf:NombreRazonEmisor>ValidateFin Demo SL</sf:NombreRazonEmisor>
<sf:TipoFactura>F1</sf:TipoFactura>
<sf:DescripcionOperacion>Prestacion de servicios</sf:DescripcionOperacion>
<sf:Destinatarios>
<sf:IDDestinatario>
<sf:NombreRazon>Cliente Ejemplo SA</sf:NombreRazon>
<sf:NIF>A58818501</sf:NIF>
</sf:IDDestinatario>
</sf:Destinatarios>
<sf:Desglose>
<sf:DetalleDesglose>
<sf:Impuesto>01</sf:Impuesto>
<sf:ClaveRegimen>01</sf:ClaveRegimen>
<sf:CalificacionOperacion>S1</sf:CalificacionOperacion>
<sf:TipoImpositivo>21</sf:TipoImpositivo>
<sf:BaseImponibleOimporteNoSujeto>500.00</sf:BaseImponibleOimporteNoSujeto>
<sf:CuotaRepercutida>105.00</sf:CuotaRepercutida>
</sf:DetalleDesglose>
</sf:Desglose>
<sf:CuotaTotal>105.00</sf:CuotaTotal>
<sf:ImporteTotal>605.00</sf:ImporteTotal>
<sf:Encadenamiento>
<sf:RegistroAnterior>
<sf:IDEmisorFactura>B12345674</sf:IDEmisorFactura>
<sf:NumSerieFactura>FA2026/0001</sf:NumSerieFactura>
<sf:FechaExpedicionFactura>15-01-2026</sf:FechaExpedicionFactura>
<sf:Huella>02D703E1080D488E6FE7EBF57F47A2836FAE84BAB8C7CFDB8BF65E8AC2F0BBDD</sf:Huella>
</sf:RegistroAnterior>
</sf:Encadenamiento>
<sf:SistemaInformatico>
<sf:NombreRazon>ValidateFin Demo SL</sf:NombreRazon>
<sf:NIF>B12345674</sf:NIF>
<sf:NombreSistemaInformatico>Demo SIF</sf:NombreSistemaInformatico>
<sf:IdSistemaInformatico>VF</sf:IdSistemaInformatico>
<sf:Version>1.0</sf:Version>
<sf:NumeroInstalacion>0001</sf:NumeroInstalacion>
<sf:TipoUsoPosibleSoloVerifactu>S</sf:TipoUsoPosibleSoloVerifactu>
<sf:TipoUsoPosibleMultiOT>N</sf:TipoUsoPosibleMultiOT>
<sf:IndicadorMultiplesOT>N</sf:IndicadorMultiplesOT>
</sf:SistemaInformatico>
<sf:FechaHoraHusoGenRegistro>2026-01-16T09:15:00+01:00</sf:FechaHoraHusoGenRegistro>
<sf:TipoHuella>01</sf:TipoHuella>
<sf:Huella>643F4946BE686A4754AE0E09F5675019E344F6178079CEF5906734738B25C02D</sf:Huella>
</sf:RegistroAlta>
</sfLR:RegistroFactura>
</sfLR:RegFactuSistemaFacturacion>
Como sabemos que estes resultados se mantêm
Cada ficheiro desta biblioteca passa pelo próprio validador do site em cada build. O resultado esperado indicado acima é verificado por um teste automatizado: se um ficheiro deixasse de corresponder ao que esta página afirma, o build falharia. Duas fixtures herdadas foram reparadas assim antes da publicação: três IBAN falhavam o mod-97 e vários nomes usavam caracteres fora do conjunto SEPA básico.