Deltatech Purchase UBL
by Terrabit https://www.terrabit.ro , Dorin Hongu https://www.terrabit.ro| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Purchase (purchase) • Discuss (mail) |
| Lines of code | 859 |
| Technical Name |
deltatech_purchase_ubl |
| License | OPL-1 |
| Website | https://www.terrabit.ro |
| Versions | 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Purchase (purchase) • Discuss (mail) |
| Lines of code | 859 |
| Technical Name |
deltatech_purchase_ubl |
| License | OPL-1 |
| Website | https://www.terrabit.ro |
| Versions | 17.0 18.0 19.0 |
Deltatech Purchase UBL
Import UBL XML vendor invoices to update prices, validate receipts, and create vendor bills
am This module imports vendor invoices in UBL XML format and uses them to update purchase workflows in Odoo.
Key features:
- Automatic vendor and order resolutionthe wizard keeps the selected purchase order on itself and can also identify the vendor and purchase order from the XML (
OrderReference, supplier VAT, supplier name) when context is no longer available. - Automatic matchingproducts are matched by barcode (GS1/EAN), supplier code, internal reference, or exact name.
- Purchase order integration
- when the purchase order already has lines, the import updates only the existing matching lines;
- new XML lines are not added to an existing order, and the wizard shows this warning before import;
- when no purchase order is resolved, the wizard can still identify the vendor from XML and update supplier prices.
- Price managementupdates vendor prices in
product.supplierinfodirectly from the XML data. - Discount supportextracts line discounts from
AllowanceCharge(ChargeIndicator=false) and applies them as percentage discounts on purchase order lines. - Total checkcompares the purchase order total with the XML total (
PayableAmount/TaxInclusiveAmount, with untaxed fallback) and shows a warning when there is a difference. - Stock automationoptionally validates the associated stock receipt by matching quantities from the XML.
- Accountingoptionally creates and links a vendor bill from the purchase order when an order is resolved.
- Missing productsoption to automatically create missing products using data from the UBL file.
The module supports standard UBL Invoice namespaces and common unit code mappings (C62, KGM, LTR, etc.).
Changelog
Changelog
[18.0.1.1.0] - 2026-05-26
Added
- Discount support from e-Factura SPV XML: Line-level
AllowanceChargeelements withChargeIndicator=falseare now extracted and applied as percentage discounts on purchase order lines.- Discount percent is calculated as
allowance_amount / (price * qty) * 100. - Applied on both newly created order lines and existing order lines during update.
- The gross price (
PriceAmount) is preserved asprice_unit; the discount is stored separately in thediscountfield.
- Discount percent is calculated as
- Test coverage: Added automated test
test_allowance_charge_discount_applied_on_order_lineverifying correct discount extraction and application (based on real e-Factura SPV invoice data:PriceAmount=372.20,AllowanceCharge/Amount=93.05,qty=1→discount=25%).
[18.0.1.0.0] - 2025-01-01
Added
- ✓Initial release: import UBL XML vendor invoices to automate purchase order management.
- ✓Automatic product matching by barcode (GS1/EAN), supplier code, internal reference, or name.
- ✓Purchase order line creation and update (quantities and prices) from XML data.
- ✓Supplier price update in vendor pricelist (Supplier Info).
- ✓Stock receipt (picking) validation with quantities from XML.
- ✓Vendor bill creation linked to the purchase order.
- ✓Option to automatically create missing products from UBL data.
- ✓Support for standard UBL Invoice namespaces and common unit code mappings (C62, KGM, LTR, etc.).
Bug Tracker
Bugs are tracked on Terrabit Issues. In case of trouble, please check there if your issue has already been reported.
Do not contact contributors directly about support or help with technical issues.
Credits
Authors
- Terrabit
- Dorin Hongu
Maintainers
Current maintainer:

This module is part of the dhongu/deltatech project on GitHub.
You are welcome to contribute.
Need help getting started?
We are an Odoo partner building apps for the Romanian market (SAGA & WinMentor export; Romanian accounting localization in progress). Direct support from the team that built the module.
Contact Terrabit →Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module