UBL2.1电子发票XML验证报错求助(Django模板场景)
验证XML发票时遇到如下错误
我在使用Django模板生成符合UBL2.1标准的发票XML文件时,验证发票有效性失败,碰到了与开票合规要求相关的UBL格式电子发票错误,求帮忙解决。
模板代码
{% comment %} {% for discount in %} {% endcomment %} {% if invoice.allowance_discount %} <cac:AllowanceCharge> <cbc:ID>1</cbc:ID> <cbc:ChargeIndicator>false</cbc:ChargeIndicator> <cbc:AllowanceChargeReason>discount</cbc:AllowanceChargeReason> <cbc:Amount currencyID="{{ invoice.currency.code }}">{{ invoice.allowance_discount|default:"0.0"|floatformat:2 }}</cbc:Amount> <cac:TaxCategory> <cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5305">{{ invoice.company.finance_company.account_sale_tax.vat_category_code }}</cbc:ID> <cbc:Percent>{{ invoice.company.finance_company.account_sale_tax.amount|default:"0.0"|floatformat:2 }}</cbc:Percent> <cac:TaxScheme> <cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5153">VAT</cbc:ID> </cac:TaxScheme> </cac:TaxCategory> </cac:AllowanceCharge> {% endif %} {% comment %} {% endfor %} {% endcomment %}
错误和警告信息
错误
- 类别:BR_ERROR
- 代码:BR-CL-18
- 信息:发票税目必须使用UNCL5305代码表编码
警告
- 类别:BR_KSA_WARNING
- 代码:BR-KSA-80
- 信息:预付金额(BT-113)必须等于预付增值税税目应税金额(KSA-31)与预付增值税税目税额(KSA-32)之和。
- 类别:BR_KSA_WARNING
- 代码:BR-KSA-08
- 信息:销售方标识(BT-29)必须仅出现一次,且使用指定的scheme ID(BT-29-1)之一(CRN、MOM、MLS、SAG、OTH、700),且仅包含字母数字字符。商业注册号使用'CRN'作为schemeID;Momrah许可证使用'MOM'作为schemeID;MHRSD许可证使用'MLS'作为schemeID;700编号使用'700'作为schemeID;MISA许可证使用'SAG'作为schemeID;其他证件使用'OTH'作为schemeID。若存在多个商业注册号,销售方应填写开具税务发票的分支机构的商业注册号。若存在多个标识,必须按上述指定顺序填写其中一个。
- 类别:BR_WARNING
- 代码:BR-S-01
- 信息:[BR-S-01] 若发票包含发票行(BG-25)、单据级折扣(BG-20)或单据级费用(BG-21)且增值税税目代码(BT-151、BT-95或BT-102)为"Standard rated",则在增值税明细(BG-23)中必须至少包含一个增值税税目代码(BT-118)等于"Standard rated"。
- 类别:BR_WARNING
- 代码:BR-CO-17
- 信息:增值税税目税额(BT-117)= 增值税税目应税金额(BT-116)×(增值税税目税率(BT-119)/100),保留两位小数。
- 类别:BR_KSA_WARNING
- 代码:BR-KSA-73
- 信息:若提供了预付金额(BT-113),则必须提供以下数据作为附加发票行:预付款ID(KSA-26);预付款发票的顺序发票号(BT-1);预付款发票开具日期(KSA-28);预付款发票开具日期(BT-2);预付款发票开具时间(KSA-29);预付款发票开具时间(KSA-25);预付款单据类型代码(KSA-30);发票类型代码(BT-3)必须为386。
内容的提问来源于stack exchange,提问作者user29678989
相关产品推荐
相关产品推荐

