Odoo Peppol BIS Billing 3.0非VAT格式客户端点ID配置咨询
Odoo中适配卢森堡Peppol BIS Billing 3.0非VAT格式EndpointID的解决方案
现有默认行为
- 激活Peppol BIS Billing 3.0协议(路径:
Accounting > Configuration > Journals > Customer Invoices)后,发送发票邮件会自动附带PDF及ubl_bis3.xml附件 - 当客户拥有合规的卢森堡VAT ID(格式如
LU12345678)时,XML会自动生成以下端点ID片段:
... <cac:AccountingCustomerParty> <cac:Party> <cbc:EndpointID schemeID="9938">LU12345678</cbc:EndpointID> ...
遇到的问题
大量卢森堡本地机构使用社保注册号等非VAT格式标识(如9938:20225000299)作为Peppol EndpointID,但Odoo的VAT ID字段有严格格式校验,无法录入此类值;同时系统无原生字段专门用于存储Peppol端点ID,导致无法自动生成符合要求的XML。
可行方案
1. 排查原生适配可能性
目前Odoo官方模块及主流第三方模块中,暂未发现专门适配此类非VAT格式EndpointID的现成模块。可尝试以下排查:
- 启用开发者模式,在客户表单视图中检查是否有隐藏的Peppol相关字段
- 确认卢森堡本地化模块是否有更新版本,部分本地化模块会针对当地电子发票需求做定制适配
2. 自定义开发实现(推荐方案)
若没有现成适配方案,需自行开发自定义模块,核心步骤如下:
- 在
res.partner模型中新增字段(如peppol_endpoint_id),用于存储非VAT格式的Peppol端点ID - 修改Peppol BIS Billing 3.0对应的QWeb模板(通常关联
account_invoice_ubl_bis3模板),调整cbc:EndpointID节点的生成逻辑:优先读取新增的peppol_endpoint_id字段值;若该字段为空,再回退使用客户的VAT ID - 在客户表单视图中添加该字段的录入界面,方便用户维护
- (可选)针对卢森堡9938 scheme的格式,为新增字段添加简单的合法性校验
内容的提问来源于stack exchange,提问作者geom
相关产品推荐
相关产品推荐

