Monday, September 14, 2026
5 changes · 18.0
Enhancements to existing features
Adds a test to ensure Mexican electronic invoices keep showing a cancellation request as pending even after the tax authority reports the invoice as valid. This helps prevent invoices from appearing as normally sent while a cancellation is still in progress.
Original PR description
Add test to verify that l10n_mx_edi_cfdi_state remains as 'cancel_requested' when the SAT responds 'valid' after a cancellation request. Currently cfdi_state reverts to 'sent' because the compute requires sat_state == 'not_defined', which no longer holds after pressing 'Update SAT'. This test is expected to fail (red) until the fix is applied.
Resolved issues and error corrections
This fixes an internal setup issue with demo quality worksheet fields that could cause warning messages during automated testing. The change helps keep demo data and module cleanup more reliable, without changing normal user workflows.
Original PR description
The runbot test that uninstalls web_tour module triggers the following warning: `Field x_quality_check_worksheet_template_2.x_product with unknown comodel_name 'product.product'` It could be due to the fact that `x_product` demo field is created without xmlid. runbot-233632
Instagram posts now get more time to complete when Instagram retrieves images from Odoo servers. This reduces posting failures caused by timeouts on some hosted databases, making social publishing more dependable.
Original PR description
Bug === On some database on the saas, timeout issue happen for Instagram. Because Instagram downloads the image on our server, it needs more timeout than other social media. Task-6547753
Adyen payment confirmation requests now include a safeguard that lets repeated requests return the original result instead of failing. This helps prevent payment issues after redirects, duplicate submissions, or network timeouts.
Original PR description
The `/payments/details` request made to Adyen did not set an idempotency key, unlike the sibling `/payments` request in `adyen_payment_request`. Without it, when the request is retried (e.g. a duplicate call following a redirect or a network timeout), Adyen rejects it with a `requests.exceptions.HTTPError: 422 Client Error request already processed or in progress` instead of returning the result of the original request. Generate the idempotency key from the transaction the same way it is done for the other Adyen and provider controllers. OPW-6471695 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now carries the payment reference from imported CII XML invoices into the generated vendor bill. This helps accounting teams keep supplier bills complete and easier to match with payments.
Original PR description
### Issue before this commit: When importing a CII XML invoice containing a PaymentReference, the value is not transferred to the generated vendor bill in Odoo. ### Steps to reproduce the issue: 1. Download Accounting 2. Try to import the invoice in the ticket 3. See that in the tab other info the payment reference is not imported ### Cause of the issue: During a previous refactoring (ffbdf29a816d0ff4136488d26b55b9707fc37fc6), the helper function responsible for extracting the payment reference during the import process was omitted. ### Reason to introduce the fix: Add the missing extraction logic to ensure the payment reference is correctly retrieved from the XML and assigned to the Odoo invoice. opw-6530627 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr