Daily updates from Odoo
Wednesday, April 15, 2026
6 changes · 17.0
Enhancements to existing features
This update switches from a problematic VIES check to a more reliable IAP server for validating EU Tax IDs. This resolves frequent errors, particularly with French Tax IDs, and ensures partners can accurately process intra-com transactions. Security measures, including HMACs and cron polling, are implemented for secure data updates.
Original PR description
Currently, when changing the Tax ID of a partner that is another EU country, we perform a VIES check to know whether it is valid (i.e. can do intra-com). However, it is often the case that the VIES check fails because of an internal error on their side (timeout, max concurrent update, ...), especially for France. Instead, we will now use the IAP server which stores the validity of a Tax ID for some time. If the IAP server does not have the info (because VIES is down), we will not actively wait. Instead, IAP will perform a push to a webhook on the client database once it has the information. For security purposes, an HMAC is generated and sent to IAP so that only IAP can contact the db with the up-to-date info, and not anyone on the internet that calls this new webhook. There is also a cron for polling for OnPrem instances that cannot be contacted via the webhook. task-5977584
Resolved issues and error corrections
This pull request addresses a bug in the Czech VAT reporting module (l10n_cz_reports_2025) that was preventing accurate summary reports. The fix corrects a calculation error, ensuring that VAT reports generated for Czech businesses align with local regulations. This update improves the reliability of financial reporting.
Original PR description
opw- 5979262
This update addresses a regulatory requirement in Mexico regarding electronic payments (CFDI). The system now prevents users from registering payments with future dates, which are not permitted by government regulations. This ensures compliance and avoids potential issues with payment processing.
Original PR description
To sign a payment registered in the future is not allowed by the government. See http://omawww.sat.gob.mx/tramitesyservicios/Paginas/documentos/Guia_llenado_pagos.pdf Steps: - Create a PDD invoice (the due date should be at least 1 month later than the invoice date) - Send it to CFDI - Register a payment in the future -> We have the 'Update payments' button that appear on the invoice view, if you clik on it the payment will be signed With this commit, we filter out the payments with a future date, that way we don't have the 'Update Payments' button if there are only future payments, or the future payments won't be taken into account when clicking on the button. opw-5934753
This update fixes a potential issue in the l10n_be_hr_payroll_sd_worx module where the report would incorrectly use the current year instead of the specified year. This prevented the report from generating correctly and caused test failures. The fix ensures the correct year is always referenced, improving report accuracy.
Original PR description
Making sure we set the reference year when exporting the sd_worx report as if not stated it will call the current year and this will cause the test failing in future builds runbot-242148
This update resolves an issue where Mercado Pago webhooks with invoice references containing slashes (like INV/2026/00001) were not being correctly processed, resulting in 404 errors. The fix allows the webhook to handle these references, ensuring accurate processing of Mercado Pago payments. This improves the reliability of payment integrations.
Original PR description
Currently, the mercado_pago_webhook http route only takes into consideration 1 url segment. This means that invoices with references like INV/2026/00001 don't match any defined route and the server returns a 404. /payment/mercado_pago/webhook/S00001 => OK /payment/mercado_pago/webhook/INV/2026/00001 => KO This commit allows references with slashes to be matched by the route by capturing the entire remaining url path including the slashes. /payment/mercado_pago/webhook/S00001 => OK /payment/mercado_pago/webhook/INV/2026/00001 => OK opw-6035161 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue preventing credit notes with currency exchange differences from being posted correctly. The fix bypasses a validation error that occurred when automatic exchange moves didn't include the required analytic plan distribution. This ensures credit notes with exchange moves can now be successfully processed.
Original PR description
**Issue:** When a user posts a credit note with a currency exchange difference relative to the reversed move, the resulting exchange move lines lack the mandatory analytic distribution. This triggers…
**Issue:** When a user posts a credit note with a currency exchange difference relative to the reversed move, the resulting exchange move lines lack the mandatory analytic distribution. This triggers a validation error, preventing the credit note from being posted. **Steps to reproduce:** - Set "mandatory" applicability on any analytic plan. - Set two different currency rates on two different dates for any foreign currency. - Create and post an invoice on the first date (ensure the mandatory analytic distribution is set). - Create a credit note from that invoice using the second date. - Click on the post button on the credit note. Result: A validation error occurs even though the credit note itself has the mandatory analytic plan set, because the auto-generated exchange move does not. **Fix:** Since the context key validate_analytic is set to True by the post button action, it must be manually set to False during the automatic creation of exchange difference moves to bypass the mandatory plan check. OPW-6081632