电子发票签名常见错误及可能的解决方案

最近,我们发现通过平台发送的电子发票在验证过程中出现错误的情况有所增加。 eFACT根据 FACTURAe 中定义的签名策略,以下我们将详细介绍最常见的问题并提供一些解决方案建议:

  1. invalid:untrustedKey-无效的签名证书
    • 解决方案: 检查用于签署发票的证书的有效性。确保证书有效并由公认的证书颁发机构颁发。
  2. 无效:签名中的签名证书属性中的 untrustedKey-X509IssuerName 格式不正确。
    • 问题: X509IssuerName 字段编码不正确或使用非标准前缀。示例:
      • 错误的编码: <ds:X509IssuerName>CN=AC Representaci�n,OU=CERES,O=FNMT-RCM,C=ES</ds:X509IssuerName>
      • 不符合标准: <ds:X509IssuerName>OrganizationID=VATES-A66*****, CN=UANATACA CA1 2016, OU=TSP-UANATACA, O=UANATACA S.A., L=Barcelona (see current address at www.uanataca.com/address), C=ES</ds:X509IssuerName>
    • 解决方案: 验证 X509IssuerName 字段的前缀和结构是否符合 X.509 编码标准。
  3. XPathEvaluationError - 格式错误的请求:请求没有要验证的签名。
    • 解决方案: 您必须确保签名(简单或高级)对应的方案符合XMLDSig和XAdES标准。检查签名的结构及其在 XML 文档中的存在。
  4. SignaturePolicyNotFound - 签名策略 null 和 SignPolicyImplied 已找到但不受支持。
    • 问题: SignaturePolicyIdentifier 字段不正确或为空。
      • <etsi:SignaturePolicyIdentifier>
      • <etsi:SignaturePolicyImplied/>
      • </etsi:SignaturePolicyIdentifier>
    • 解决方案: 必须在字段中正确指定签名策略 SignaturePolicyIdentifier 而不是将其留空。
  5. SignaturePolicyNotFound - 在签名策略上找不到给定的承诺
    请求签名政策
    • 问题: 该字段已添加 <xades:CommitmentTypeId>
    • 解决方案: 不得并入。
  6. InternalServerError - 无法恢复给定的签名策略及其关联的承诺。
    • 问题: SignaturePolicyIdentifier 字段不正确或为空。
      • <etsi:SignaturePolicyIdentifier>
      • <etsi:SignaturePolicyImplied/>
      • </etsi:SignaturePolicyIdentifier>
    • 解决方案: 必须在字段中正确指定签名策略 SignaturePolicyIdentifier 而不是将其留空。
  7. 无效:不正确的签名 - 签名 PDU 不是 vàlid
    • 问题: 缺少必需的属性, SigningCertificate,在高级签名中。
    • 解决方案: 包含属性 SigningCertificate 根据 FACTURAe 要求进行高级签名。
  8. 未知:证书:PathValidationFails - 无法验证证书路径。读取超时
    • 问题: 发生超时错误。
    • 解决方案: 重试验证。如果错误仍然存​​在,请检查证书链并确保所有中间证书均可访问。

签名政策:

请记住,在附件中详细说明的验证中HAP/1650/2015 令,附件 2.a这表明有必要核实与“FACTURAe”格式相关的当前签名政策。需要审查发送至[此处应填写发送方名称]的发票的签名政策。 eFACT考虑到 技术文件 发表于 FACTURAe 网站.

为了防止此类错误,我们建议在发送之前对电子签名进行彻底测试,以确保其符合 FACTURAe 中定义的签名策略标准。

发表于