Migrating from Odoo 16 to Odoo 17: which OCA modules are available
Of the 3,166 OCA modules confirmed in Odoo 16.0, 1,542 (49 %) are also confirmed in Odoo 17.0. The other 1,624 do not have a confirmed 17.0 version in the catalogue yet: if you use any of them, check its page before planning the migration. In addition, 452 modules are in Odoo 17.0 without being in 16.0.
- 3,166
- in Odoo 16
- 1,542
- also in Odoo 17
- 1,624
- pending in Odoo 17
- 49 %
- already migrated
See also
Odoo 16 modules not yet confirmed in Odoo 17
- Account Move Line Repair InfoOdoo 14, 15, 16account_move_line_repair_info
Links journal items to the repair order they come from, so you can see and group accounting entries by repair order.
- Acccount Move Original PartnersOdoo 14, 15, 16account_move_original_partner
Shows the original customers from the sale orders behind a customer invoice, so you can see who was actually invoiced when several orders are grouped into one invoice.
- Account Move Reconcile Forbid CancelOdoo 13, 15, 16, 18account_move_reconcile_forbid_cancel
Prevents users from cancelling or resetting to draft any invoice or journal entry that has already been reconciled (paid).
- Account Move Sent UsabilityOdoo 15, 16account_move_sent_usability
Lets users filter journal entries and invoices by whether they have been sent, and shows a 'Sent' indicator on the invoice form.
- Journal Entry Sale Order completionOdoo 12, 16, 18account_move_so_import
Adds two automatic matching rules that find the customer on a bank statement line by looking up a Sales Order using the line's label or payment reference.
- Account Move Sub StateOdoo 14, 15, 16, 19account_move_substate
Adds a secondary status (substate) to journal entries and invoices, so you can track extra steps like 'To Verify', 'Checked' or 'Verified' on top of the standard Draft/Posted status.
- Account Move Transfer PartnerOdoo 14, 16account_move_transfer_partner
Lets you move the outstanding amount due on posted invoices, refunds or payments from one or several partners to a single destination partner, by creating and posting a new journal entry.
- account_multicompany_reporting_currency
Adds a reporting-currency amount to invoices, bills and journal entries, so you can see and total each document in one shared company reporting currency.
- Multicurrency revaluationOdoo 12, 13, 14, 15, 16account_multicurrency_revaluation
Generate and reverse unrealized currency revaluation entries for foreign-currency balances, and print a currency revaluation report. Configure revaluation, provision and analytic accounts per company.
- Account Payment Batch ProcessingOdoo 14, 15, 16account_payment_batch_process
Pay several customer invoices or vendor bills at once from a single screen, with the option to leave invoices partly open or write off the unpaid difference to an account.
- Discount on batch paymentsOdoo 14, 16account_payment_batch_process_discount
Apply early-payment discounts when paying invoices in batch. Odoo calculates the discount automatically, shows a discount date on invoices, and lets you filter invoices that still qualify for the discount.
- Credit Card PaymentsOdoo 12, 14, 16, 18account_payment_credit_card
Lets you flag a bank journal as a credit card journal and pick the credit card company. When entries are posted in that journal, Odoo automatically creates the offsetting lines that transfer the payable to the credit card company.
- Payment Counterpart LinesOdoo 14, 16, 18account_payment_line
Adds a "Counterpart Lines" tab to payments so you can split a payment across several invoices, add extra lines (fees, commissions, interest) and set write-off accounts. A button proposes the distribution automatically, oldest due date first.
- Payment Counterpart Lines Import XLSXOdoo 14, 16account_payment_line_import
Import payment distribution lines into a draft payment from an Excel file. The button "Import Payment Distribution" appears on the payment form and fills the counterpart lines automatically.
- account_payment_method_fs_storage
Lets you pick a file storage on a payment method so that payment files are automatically uploaded there when generated, and marks the payment order as uploaded.
- Account payment notificationOdoo 15, 16, 18, 19account_payment_notification
Automatically notify customers by email or SMS when a payment or debit order is marked as sent, and optionally block sending if the customer cannot be reached.
- Account Payment Order Tier ValidationOdoo 12, 13, 14, 16, 18account_payment_order_tier_validation
Adds an approval workflow to Payment Orders: before a draft payment order can be confirmed, the reviewers you configure must validate it. A new "Needs my Review" filter helps reviewers find orders waiting for them.
- Account Payment Order EmailOdoo 14, 16account_payment_order_vendor_email
Automatically emails vendors a remittance advice when a payment order is uploaded, and lets you send it manually with a button. You can enable this per payment mode and choose the email template.
- Account Payment Terms DiscountOdoo 14, 16account_payment_term_discount
Configure early payment discounts on payment terms and let Odoo automatically calculate and apply the discount when registering a customer or vendor payment.
- Account Payment Term Partner HolidayOdoo 12, 13, 14, 15, 16account_payment_term_partner_holiday
Lets you record holiday periods on a customer or vendor so invoice due dates are automatically moved to the next working day, avoiding due dates that fall inside those holidays.
- Payment Term RestrictionOdoo 13, 15, 16account_payment_term_restriction
Lets you mark each Payment Term as usable only for Sales, only for Purchases, or for All, and blocks users from picking a wrong-type Payment Term on invoices, credit notes, bills or refunds.
- Payment Term Restriction PurchaseOdoo 13, 16account_payment_term_restriction_purchase
Restricts which payment terms can be used on purchase orders and on vendor records, so only terms marked as applicable to purchases (or to all) are allowed.
- Payment Term Restriction SaleOdoo 13, 16account_payment_term_restriction_sale
Restricts which payment terms can be used on sales orders and customer records, so only terms marked as applicable to Sales or All can be selected.
- account_period_lock_date_multi_company
Adds a single screen listing all companies where you can edit the accounting lock dates (period and fiscal year) directly in the list, without opening each company one by one.
- Account Product - Fiscal ClassificationOdoo 12, 13, 14, 16, 18account_product_fiscal_classification
Lets you define ready-made combinations of purchase and sale taxes (fiscal classifications) and assign one to each product, instead of picking taxes manually. You can also set rules that forbid certain tax combinations for certain product categories.
- Impresión de pagaré CaixaBank A4Odoo 12, 13, 15, 16, 18account_promissory_note_caixabank
Adds a CaixaBank A4 promissory note layout that can be selected on the company and printed from payments, placing the due date, amount, payee and amount in words on the official form.
- Receipts JournalsOdoo 14, 15, 16, 18, 19account_receipt_journal
Lets you mark sale and purchase journals as exclusive to receipts, so customer and vendor receipts automatically use those journals and normal invoices cannot.
- Receipts Print and SendOdoo 15, 16, 18account_receipt_send
Adds a Send button on receipt documents so you can email the receipt PDF to the customer using a dedicated receipt email template.
- Analytic tags in account reconciliationOdoo 16, 18, 19account_reconcile_analytic_tag
Lets accountants add analytic tags while reconciling bank statement lines and while setting up reconciliation models, so tagged costs and revenues are carried into the journal entries created during reconciliation.
- account_reconcile_match_regex
Adds a regular expression field to reconciliation models so Odoo can extract the invoice number from a payment reference and use it to match bank statement lines with invoices.
- account_reconcile_model_multicompany_propagate
Copy a reconciliation model to other companies that share the same chart of accounts, updating existing models with the same name.
- Account Reconcile OCA - Add default filtersOdoo 16, 18account_reconcile_oca_add_default_filters
When a bank statement line has a partner, the Reconcile tab automatically filters journal items to show only receivable, payable and outstanding payment/receipt lines, hiding VAT lines by default.
- Volume in the invoices analysis viewOdoo 13, 15, 16, 18account_reporting_volume
Adds a Volume measure to the invoices analysis view, so users can see the total product volume of invoiced goods, with returns and refunds subtracted.
- Weights in the invoices analysis viewOdoo 12, 13, 15, 16, 18account_reporting_weight
Adds a Weight measure to the Invoices Analysis reporting view, so users can see the total product weight of invoiced lines alongside amounts and quantities.
- Account ReversalOdoo 16account_reversal
This module adds a 'To Be Reversed' checkbox and filter to journal entries, and lets you add a reason to reversal lines. It also provides a dedicated menu to list entries marked for reversal.
- Online Bank Statements: OFXOdoo 16account_statement_import_online_ofx
Connect Odoo to banks that use the OFX format so bank statements can be downloaded automatically. Users set up OFX institutions and credentials, then pull transactions into Odoo.
- Online Bank Statements: QontoOdoo 16, 19account_statement_import_online_qonto
Adds Qonto as an online bank statement provider in Odoo, so users can fetch Qonto transactions directly into their bank journals instead of importing files manually.
- Import QIF Bank StatementsOdoo 16, 19account_statement_import_qif
Lets you import QIF bank statement files (Quicken/QuickBooks format) into Odoo's bank and cash statement import wizard, so transactions are parsed and stored as statement lines.
- Account Tax ChangeOdoo 16account_tax_change
Lets accountants record tax changes with a start date and a mapping from old taxes to new taxes, then apply those mappings to draft, unpaid invoices in one action.
- Account Tax Group Widget Base AmountOdoo 13, 15, 16, 18account_tax_group_widget_base_amount
Shows the base amount next to each tax group in the tax totals widget on invoices and receipts, so users see the amount the tax was calculated on.
- Account Tax One VATOdoo 16, 18account_tax_one_vat
Lets you mark taxes as VAT and, when enabled per company, prevents selecting more than one VAT tax on invoice lines and on products. It warns or blocks the user so each line keeps a single VAT tax.
- Account Tax One VAT PurchaseOdoo 16, 18account_tax_one_vat_purchase
Limits purchase order lines to a single VAT tax, preventing users from selecting more than one VAT tax on the same line.
- Account Tax One VAT SaleOdoo 16, 18account_tax_one_vat_sale
Limits sales order lines to a single VAT tax. When more than one VAT tax is selected on a line, Odoo blocks saving and shows a warning.
- Disable Account Template ItemsOdoo 12, 14, 16account_template_active
Lets you archive (disable) or re-enable accounting template items — accounts, taxes and fiscal positions — so they can be hidden from the chart template without deleting them.
- ITA - Liquidazione IVAOdoo 12, 14, 16account_vat_period_end_statement
Create and manage Italian VAT period-end statements (liquidazione IVA): collect VAT from selected periods, compute the amount due to or from the tax authority, and generate the related journal entry.
- Maintenance AgreementsOdoo 12, 13, 14, 16agreement_maintenance
Link maintenance agreements to equipment and maintenance requests, so you can see which contract covers each machine and each repair job.
- Agreement RebateOdoo 13, 15, 16, 18, 19agreement_rebate
Lets you define rebate conditions on agreements and automatically calculate, settle and invoice the rebates owed to customers or vendors based on their invoiced amounts.
- Agreement Rebate Partner Company GroupOdoo 13, 15, 16, 18, 19agreement_rebate_partner_company_group
Extends rebate agreements so that when a rebate settlement is created, it can include all members of the agreement partner's company group, not just the partner itself.
- Agreement Service ProfileOdoo 12, 13, 14, 15, 16, 18agreement_serviceprofile
Adds a Service Profile object to agreements, letting you track the services delivered under a contract with their own stages, products and notes.
- Ai AutomationOdoo 16ai_automation
This module lets you create AI-powered automated actions in Odoo. You configure a connection to an AI service (Ollama), then add an "AI OCA Action" to any server action so it can generate text, post messages, or update record fields automatically.
- Ai Oca Bridge CRM LeadOdoo 16ai_oca_bridge_crm_lead
Connects CRM leads to external AI systems, so that creating, updating or deleting a lead can automatically send information to an AI service configured in an AI Bridge.
- AI OCA Bridge Field ServiceOdoo 16ai_oca_bridge_fieldservice
Connects Field Service orders to the AI OCA Bridge so an AI service can be triggered from a field service order. It adds the AI bridge conversation capability to fsm.order records.
- Ai Oca Bridge Helpdesk MgmtOdoo 16ai_oca_bridge_helpdesk_mgmt
Connects the AI Bridge with Helpdesk Management so helpdesk tickets can be used as AI conversation threads. It adds no new screens or fields by itself.
- Ai Oca Bridge MRPOdoo 16ai_oca_bridge_mrp
Connects Odoo Manufacturing work orders to external AI systems, so an AI service can be notified automatically when a work order is created, updated or deleted.
- Ai Oca McpOdoo 16ai_oca_mcp
Create MCP servers in Odoo that expose selected AI tools to external AI clients (like n8n or custom agents) through a secure web address, with per-client access keys and a full log of every request.
- Ai ToolOdoo 16, 18, 19ai_tool
This technical module creates a registry of AI tools in Odoo, letting developers declare callable functions that AI assistants or MCP servers can use, such as getting today's date or posting a message on a record.
- AI Tool - ReadOdoo 16ai_tool_read
Adds a per-field "AI Read Forbidden" flag and three AI tools (list_models, get_fields, search_read) that let an AI agent list, describe and read Odoo data with the user's own access rights, while keeping flagged sensitive fields out of the results.
- Analytic amount securityOdoo 16, 18, 19analytic_amount_security
Adds a security group that controls which users can see the amount (cost) on analytic lines. By default, regular users and analytic accounting users are granted this access.
- analytic_distribution_widget_remove_save
Removes the Save button from the analytic distribution popup, so users no longer have to click Save after editing analytic distribution values.
- analytic_hr_department_restriction
Restrict which analytic plans and analytic accounts each user can see, based on the HR departments linked to them. Users only see plans/accounts tied to their own department (or, optionally, those with no department).