11 · Verifactu(AEAT)
Verifactu 是西班牙税务局(AEAT)根据 RD 1007/2023 为可验证开票系统(SIF)建立的制度。启用 Verifactu 后,Factuzam 开具的每张发票或小票都会:
- 打印税务二维码以及文字
VERI*FACTU - Factura verificable en la sede electrónica de la AEAT; - 在后台自动报送 AEAT,并通过 SHA-256 指纹与此前记录形成链, 以保证发票不能被篡改或删除。
本章介绍配置方式、自动工作流程,以及可以执行的税务操作 (作废、更正、补正等)。
Factuzam 支持三种税务模式:
| 模式 | 用途 |
|---|---|
| SIN | 过渡期或演示:不创建 SIF 记录,也不建立 AEAT 队列。 |
| VERIFACTU | 通过队列向 AEAT 发送记录。 |
| NO_VERIFACTU | 在本地记录链,并允许导出事件和开票 XML;必须使用证书签名。 |
Verifactu 是一个跨模块子系统:它会影响 销售发票以及 简化发票与 Caja POS。本章统一说明这些功能。
1. 工作方式(概览)
Venta / Factura
│
▼
Se encola ──► fza_verifactu_cola (estado PENDIENTE)
│
▼
Hilo de envío en segundo plano (cada X segundos)
│ reclama filas PENDIENTE → PROCESANDO
▼
Envío a la AEAT (SOAP, certificado de la empresa)
├── Aceptado ─► ENVIADA · factura CONSOLIDADA · genera QR y hash
└── Error ─► reintento con espera creciente; al agotar, ERROR
要点:
- 小票上的二维码在本地生成,打印时无需等待 AEAT 响应, 因此不会拖慢收银销售。
- 通信由后台进程(“队列”)完成,收银员可以在发票发送期间继续工作。
- 每次被接受的发送都会与同一开票 NIF 的上一张发票链接指纹, 这是 AEAT 要求的完整性保证。
2. 预先配置(管理员)
启用 Verifactu 前必须准备三项内容:
2.1 公司证书
在 Archivo ▸ Empresas ▸ Certificado / Verifactu 中填写证书序列号及类型。 应用程序使用 Windows 证书存储中的该证书,对发往 AEAT 的内容进行签名。 没有有效证书时,发送会失败。
2.2 Verifactu 参数
在 Otros ▸ Parámetros del entorno 的 Verifactu 类别中:
| 参数 | 含义 |
|---|---|
| Modo fiscal | SIN、VERIFACTU 或 NO_VERIFACTU。只应由管理员更改。 |
| Entorno | PRE(AEAT 测试)或 PRO(真实生产)。 |
| NIF del SIF | 开票信息系统的 NIF。必填:为空时,AEAT 会返回 «[1100] NIF» 错误(见诊断)。 |
| Razón social del SIF | 系统生产者的名称/法定名称。 |
| Id. de instalación | 当前安装的标识符。 |
| Segundos de ciclo | 发送进程检查队列的间隔(默认 60 秒)。 |
| Máx. intentos | 发票标记为 ERROR 前的重试次数(默认 10)。 |
| URLs de QR y de envío(PRE/PRO) | AEAT 二维码核验和发送地址;默认已填写。 |
| Firma con certificado | 在 NO_VERIFACTU 模式下,使用公司证书通过 XAdES 签署本地记录。 |
| Servidores NTP / margen reloj | 税务时间控制;计算机时钟不可靠时阻止生成记录。 |
首先切换到
PRE,针对 AEAT 测试环境进行测试。 在 PRE 中,纳税人 NIF 必须已登记到测试名册,并与证书有关联。 只有一切正常后才切换到PRO。
2.3 启用
选择税务模式:
- VERIFACTU:新的销售和发票会带二维码打印,并自动加入队列。
- NO_VERIFACTU:在本地记录并签署链。没有 AEAT 队列,但可导出要求的 XML。
- SIN:在过渡期或测试时允许不进行 SIF 关闭而继续工作。
3. Verifactu 菜单
安装子系统后,主菜单会显示 Verifactu,包含两个选项 (均可通过权限按组隐藏):
Verifactu
├── Declaración Responsable
└── Verifactu Log
税务队列与其他集成统一放在 Otros ▸ Colas de envíos ▸ Verifactu。
责任声明(Declaración Responsable)
显示开票系统的责任声明文本(RD 1007/2023 第 13 条),
其中包含系统名称(Factuzam)、标识符、已安装版本,
以及参数中配置的生产者/安装数据。该文件用于证明软件符合法规。

发送队列(Cola de Envíos)
路径: Otros ▸ Colas de envíos ▸ Verifactu
用于查询通信队列(fza_verifactu_cola):显示每张待处理或已处理发票的
状态、尝试次数、下次尝试日期,以及发生错误时的错误消息。
| 状态 | 含义 |
|---|---|
| PENDIENTE | 已入队,等待进程发送。 |
| PROCESANDO | 进程正在发送。 |
| ENVIADA | 已被 AEAT 接受并合并入账。 |
| ERROR | 重试耗尽,需要检查。 |

手工重新处理:在该界面中可以编辑一行的 Estado、Intentos 和 Próximo intento 列。保存后,进程会在下一周期重新处理。 这是修正原因(例如 SIF NIF 或证书)后,重新发送处于
ERROR的记录的方法。其余列为只读。
Verifactu Log
用于查询链式事件记录(fza_verifactu_eventos):
完整追踪新增、作废和 AEAT 响应,以及其 SHA-256 指纹链。
这是系统审计界面,仅供查看。

在 NO_VERIFACTU 模式中,Exportar NO*VF 按钮会生成两个 XML 文件:
事件记录和开票记录。导出只会打包已生成的记录,不会在此时创建追踪链。

4. 发票资料中的 Verifactu
打开普通或简化草稿时,可以使用两个专用标签页和一个按钮:
- Verifactu 标签页 — 显示通信结果:生成的二维码、AEAT 核验 URL、 链指纹(
CHAIN_HASH)、合并状态和标识符(CSV、队列 ID、请求 ID)。 包含 Consultar Estado 和 Reconsolidar OFFLINE 按钮。 - Registro Verifactu 标签页 — 当前发票的事件日志。
- Consolidar 按钮 — 强制将发票记录/发送到 Verifactu (通常不需要,队列会自动完成)。
在 Otros 标签页中,如果不是普通境内销售,可以指定 Verifactu 操作类型: 欧盟内服务、欧盟内货物交付、反向征税或出口。对于外国客户,应用程序会使用 国家和 NIF-IVA/证件数据构建正确的收件人。


已合并入账的草稿(
ESCONSOLIDADA = S)已经完成税务关闭, 不能修改或删除:任何更正都必须通过更正发票或作废完成 (见下文)。这是 SIF 不可篡改原则。
5. 已开具发票的税务操作
已登记发票不能直接修改,因此 Verifactu 会根据需要提供不同处理方式。 这些操作可在 Borradores 列表和 Caja POS 的 Buscar operaciones 中使用, 但单据必须已经合并入账:
| 需要… | 操作 | 作用 |
|---|---|---|
| 作废不存在或错误的销售 | Anular (Verifactu) | 加入一个作废记录。发票变为 CANCELADA。 |
| 更正金额或项目 | Rectificar | 创建一张差额更正发票(负数更正)或替代更正发票(正确内容为正数),始终关联原发票。 |
| AEAT 接受记录但带有错误,而已开具发票本身正确 | Resolver incidencia ▸ Subsanar el registro | 使用补正标志重新发送更正后的记录,不创建另一张发票。 |
| 已开具发票中记录了错误 NIF 或其他数据 | Resolver incidencia ▸ Emitir rectificativa R4 | 为正确收件人创建替代更正发票,并关联原发票。 |
| 客户要求将小票转为实名发票 | Facturar ticket (F3) | 创建一张替代简化发票的普通发票,复制其明细并写入客户名称。 |
| 客户在销售收款时提供身份信息 | 收款阶段使用 Factura (F8) | 将销售直接保存为普通发票(不是小票);要求客户有 NIF,并以 A4/PDF 打印。 |
差额更正与替代更正
从 Buscar operaciones 更正小票时,Factuzam 会在打开新收银操作前询问模式:
| 类型 | 新单据 | 实际结果 |
|---|---|---|
| Por diferencias | 以负数显示明细,只保留所需更正。 | 原发票与更正发票共同形成最终结果,适用于部分退货或具体差额。 |
| Sustitutiva | 以正数显示应保留的完整正确内容。 | 更正发票替代原发票。销售清单不再统计原简化发票,而统计替代发票。 |
两种情况都会保留单据之间的关系、更正系列、原因和税务追踪。 替代模式还会用更正单据的仓库移动替换原单据移动;差额模式保留原移动, 并按正负号增加调整。
分步操作见 TPV ▸ 更正小票。
处理 Venta Mayor 中的 «Aceptado con errores»
在 Factura Venta Mayor 中打开发票的 Verifactu 标签页。 只有最新记录处于 Aceptado con errores 且没有正在进行的补正时, 才会显示 Resolver incidencia 按钮。
模态窗口显示 AEAT 返回的代码和说明,并要求选择以下情况之一:
- 已开具发票正确。填写原因并使用 Subsanar el registro。 Factuzam 会加入一条带
<Subsanacion>S</Subsanacion>的新建记录, 不修改或替换发票。 - 错误数据出现在已开具发票上。选择正确客户、系列和日期。 Factuzam 会创建并加入一张关联原发票的替代更正发票 R4。
因此,NIF 错误可能造成 Aceptado con errores,但这本身不能决定处理方式。 如果正确 NIF 已在发票上,只是报送记录构建错误,则进行补正; 如果交付客户的发票包含错误 NIF,则开具 R4。补正被接受后, 原始新建记录的响应、XML 和签名仍保留在历史记录中。

以上每项操作都会重新入队:在 VERIFACTU 模式下发送至 AEAT,
或在 NO_VERIFACTU 模式下本地登记,并保留追踪关系
(哪张单据更正或替代哪张)。适用时,列表还会显示 «Cola Verifactu» 列,
其中包含最新状态。
Anular ≠ Rectificar:作废会在税务上取消发票; 更正则通过开具另一张引用原发票的单据来修正。修改金额通常应使用更正。
6. 常见问题诊断
发票在队列中保持 ERROR。打开
Otros ▸ Colas de envíos ▸ Verifactu,阅读该行的错误消息。
常见原因:
- 未被接受的
ERROR行显示 «[1100] NIF» — 参数中缺少 NIF del SIF, 或公司/客户 NIF 格式错误。修正原因后重新处理该行。 Aceptado con errores中的 NIF 错误 — 使用 Resolver incidencia。 只有已开具发票本身正确时才应补正;如果发票上的 NIF 错误,请创建 R4 更正发票。- 证书 — 公司证书序列号无效,或证书不在当前计算机的 Windows 证书存储中。
- PRE 环境 — NIF 未登记到测试环境,或与证书没有关联。
修正原因后,通过编辑队列行(状态 → PENDIENTE,尝试次数 → 0)
重新启动发送,或提高最大尝试参数:进程只会自动恢复仍有可用尝试次数的
ERROR 行。
系统可自行处理重复记录:如果 AEAT 已接受,但本地保存失败, 重试时 AEAT 会返回“记录重复”,应用程序会将其视为成功,无需操作。
7. 日常工作摘要
- 启用 Verifactu 后,无需特殊操作:正常销售和开票即可,二维码和发送均自动完成。
- 发票错误时不要删除:根据情况使用 Rectificar、Anular 或 Resolver incidencia。
- 定期查看 Otros ▸ Colas de envíos ▸ Verifactu:如果全部为 ENVIADA, 表示已及时报送;看到 ERROR 时,请检查消息并重新处理。
- 发生任何 AEAT 问题时,请准备程序版本(Ayuda ▸ Acerca de) 和 Declaración Responsable。
◀ 从旧版迁移 · 目录 · 下一章 ▶ 变更与新功能