OCA/contract
OCA community repository with 59 Odoo modules confirmed in the OdooWiki catalogue (versions 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0). Reviewed on 2026-11-03.
Open on GitHubConfirmed modules per version
Modules in the repository
- AgreementsOdoo 12, 13, 14agreement
Register and follow customer and supplier agreements in one place, with a code, partner, sale or purchase domain, and signature, start and end dates. Agreements appear on the partner form and can be classified by type or used as templates.
- Agreement AccountOdoo 12, 14agreement_account
Link customer invoices and vendor bills to an agreement, and see all related invoices directly from the agreement form.
- Agreement Helpdesk MgmtOdoo 12agreement_helpdesk_mgmt
Link helpdesk tickets to agreements and see all tickets related to an agreement from a smart button on the agreement form.
- Agreements LegalOdoo 12, 13, 14agreement_legal
Manage legal agreements, letters of intent and contracts in Odoo: build them from templates with sections, clauses, recitals and appendices, generate PDF documents, and track versions, signatures and review dates.
- Agreement Legal SaleOdoo 12, 14agreement_legal_sale
When a sales order is confirmed, this module automatically creates a customer agreement from a chosen agreement template, copying the order lines and generating service profiles for service products.
- agreement_legal_sale_fieldservice
When a sales order is confirmed, this module automatically fills in the Field Service location on the related agreement using the customer's service location, so users don't have to set it manually.
- Maintenance AgreementsOdoo 12, 13, 14agreement_maintenance
Link maintenance agreements to equipment and maintenance requests, so you can see which contract covers each machine and each repair job.
- Agreement - MRPOdoo 12, 14agreement_mrp
Link manufacturing orders to an agreement and see how many MOs belong to each agreement from a smart button on the agreement form.
- Agreement - ProjectOdoo 12, 14agreement_project
Link projects and their tasks to an agreement, and see a Tasks counter button on the agreement form that opens the related tasks.
- Agreement RebateOdoo 13agreement_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, 18agreement_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 - RepairOdoo 12, 14agreement_repair
Link repair orders to an agreement and see all related repair orders from the agreement form with a smart button.
- Agreement SaleOdoo 12, 13, 14agreement_sale
Links sales orders to agreements and agreement types, and shows a Sale Orders counter button on the agreement form. Sales managers get full access to agreements and agreement types.
- Agreement Service ProfileOdoo 12, 13, 14agreement_serviceprofile
Adds a Service Profile object to agreements, letting you track the services delivered under a contract with their own stages, products and notes.
- Agreement - StockOdoo 12, 14agreement_stock
Link stock transfers, moves and lots/serials to an agreement, and see counters and lists of the related stock documents directly from the agreement form.
- Agreement Tier ValidationOdoo 14agreement_tier_validation
Adds an approval workflow to agreements: an agreement in draft must be reviewed and validated by the assigned reviewers before it can become active.
- Recurring - Contracts ManagementOdoo 12, 13, 14, 15, 16, 17, 18, 19contract
Create customer and supplier contracts with recurring lines that automatically generate draft invoices on a schedule, and let customers view their contracts in the portal.
- Contract Analytic TagOdoo 16, 17, 18, 19contract_analytic_tag
Lets you add analytical tags on contract lines so the invoices generated from those contracts automatically carry the same tags.
- Contract Delivery ZoneOdoo 14, 19contract_delivery_zone
Shows the delivery zone of a customer directly on contracts, so you can see and filter contracts by delivery zone without opening the customer record.
- Contract Digitized SignatureOdoo 12contract_digitized_signature
Adds a customer signature field to contracts, letting you capture a handwritten signature on screen and print it on the contract PDF report.
- Contract ForecastOdoo 12, 16, 18contract_forecast
Adds a forecast of future contract invoices, showing expected amounts and invoice dates per contract line, and lets you view them in a pivot, graph or list report.
- contract_forecast_variable_quantity
This module makes contract forecasts refresh automatically when you change how a contract line calculates its quantity, so the forecast stays in line with the new quantity rule.
- Contract Invoice Auto ValidateOdoo 12, 17, 18, 19contract_invoice_auto_validate
Automatically validates (posts) invoices generated from contracts when the company option is enabled. A new setting in the Contract configuration lets you turn this behaviour on or off.
- Contract Manually InvoiceOdoo 18contract_invoice_manually
Adds a "Manually Invoiced" option on contracts so they are skipped by automatic invoice generation and can instead be invoiced on demand from Accounting. A company setting turns the feature on or off.
- Contract Invoice Start End DatesOdoo 12, 14, 16, 17, 18, 19contract_invoice_start_end_dates
When a contract generates an invoice, this module automatically fills the start and end dates on the invoice line for products that require dates, using the contract's billing period.
- Contract Layout Category Hide DetailOdoo 12, 13, 18contract_layout_category_hide_detail
Lets you hide the detail lines, subtotals and line amounts of sections on contracts, their printed reports, the customer portal and the invoices generated from them.
- Contract Line DeferOdoo 18contract_line_defer
Lets you mark contract lines as deferred so they are not invoiced while their start date is unknown, then activate them later with a start and end date. A company setting can defer new contract lines automatically.
- contract_line_defer_successor
When a contract line is deferred, this module blocks the successor, stop and cancel actions on it and greys it out in the contract lines list, so users cannot act on a line that has been postponed.
- Contract Line SuccessorOdoo 18, 19contract_line_successor
Manage the full life of contract lines: stop, suspend, plan a successor, cancel, un-cancel and renew them, with automatic renewal and clear lifecycle states.
- Contract MandateOdoo 12, 13, 14, 16, 17, 18contract_mandate
Lets you attach a direct debit mandate to a contract so that invoices created from that contract automatically carry the mandate. The mandate field only appears when the contract's payment method requires a mandate.
- Contract - Auto PaymentOdoo 16contract_payment_auto
Lets you turn on automatic payment for contracts, so invoices created from them are posted, emailed and charged to a saved payment token without manual work.
- Contract Payment ModeOdoo 12, 13, 14, 15, 16, 17, 18, 19contract_payment_mode
Adds a Payment Mode field to contracts so that invoices generated from a contract automatically carry the same payment mode as the contract.
- Contract Price RevisionOdoo 12, 13, 15, 17, 18contract_price_revision
Lets you revise contract line prices by applying a percentage change or a fixed new price, creating a new line and closing the old one the day before the new start date.
- Contract Queue JobOdoo 12, 14, 16, 17, 18contract_queue_job
When enabled, contract invoicing and contract line renewals are split into background jobs instead of being processed all at once, and a new button lets you enqueue invoice creation from the manual invoice wizard.
- Contract Refund On StopOdoo 18, 19contract_refund_on_stop
Lets users stop a contract line even after it has already been invoiced: when the stop date falls before the last invoiced date, a refund invoice is created automatically for the unused period and the line's last invoiced date is moved back to the stop date.
- Contract from SaleOdoo 12, 13, 14, 15, 16, 17, 18, 19contract_sale
Gives salespeople access to recurring contracts directly from the Sales app, without needing accounting permissions. Sales users see their own contracts, while sales managers see all contracts.
- Contracts Management - Recurring SalesOdoo 12, 14, 15, 16, 17, 18contract_sale_generation
Lets contracts generate sales orders instead of invoices on their recurring schedule, with an option to confirm those orders automatically. Users can also see how many sales orders a contract has produced and open them from the contract form.
- Contract Invoicing of Pending Sales OrdersOdoo 12, 15, 17, 18contract_sale_invoicing
Lets you add pending sales orders to a recurring contract invoice when they share the same analytic account, either merged into the contract invoice or as separate invoices.
- contract_sale_invoicing_pricelist
When recurring invoices are generated from a contract, the invoice automatically uses the contract's pricelist and currency instead of the customer's default pricelist.
- Contract Sale MandateOdoo 12, 18contract_sale_mandate
When a sale order with a banking mandate is turned into a contract, the mandate is automatically carried over to the contract.
- Contract Sale Payment ModeOdoo 12, 18contract_sale_payment_mode
Lets you choose a different payment mode for contracts generated from sale orders than the one used for invoices, controlled by a company-level setting.
- Contract Sale TagOdoo 14contract_sale_tag
Adds a "Contract tags" field to sale orders and automatically copies the tags from the contract when a sale order is generated from it.
- contract_sale_transmit_method
When a contract is created from a sale order, the transmit method chosen on the sale order (email, post, portal, etc.) is automatically copied to the contract.
- Contract Service DatesOdoo 18contract_service_dates
Adds Service Start Date and Service End Date fields to contract lines, so you can record the real service period separately from the billing dates. The service dates follow the contract line dates automatically unless you change them by hand.
- Contract SplitOdoo 14contract_split
Adds a Split button on contracts so you can move or divide contract lines into a brand-new contract, keeping a link back to the original contract and line.
- Contract TerminationOdoo 18, 19contract_termination
Lets authorized users terminate a contract with a reason, comment and date, and reactivate it later. Terminated contracts show a warning and become read-only, and their lines can no longer be renewed or modified.
- Contract Transmit MethodOdoo 12, 18contract_transmit_method
Lets you choose how each contract should be sent (email, post, portal, etc.) and automatically copies that choice onto the invoices generated from the contract.
- Contract Last Date UpdateOdoo 14, 16, 17, 18, 19contract_update_last_date_invoiced
Lets authorized users manually correct the last invoiced date and the next invoice date on a contract line, for example after invoices were deleted. A refresh button on the contract line opens a small pop-up to set both dates.
- Contract Variable Qty ProratedOdoo 12, 14, 18, 19contract_variable_qty_prorated
Adds a "Prorated Quantity" formula for contract lines, so invoices can bill a quantity proportional to the days actually covered in the invoicing period.
- contract_variable_qty_sale_order_line
Adds a new formula option for contract quantity calculation that uses the linked sale order line quantity. This lets users invoice based on the ordered quantity from a sale order.
- Contract Variable Qty TimesheetOdoo 12, 13, 15, 16, 17, 18contract_variable_qty_timesheet
Adds three new quantity formulas to recurring contracts so that invoice lines can be automatically filled with hours logged in Timesheets (analytic lines) for the matching period.
- Variable quantity in contract recurrent invoicingOdoo 12, 13, 14, 15, 16, 17, 18, 19contract_variable_quantity
Lets you set contract lines to invoice a quantity calculated by a formula instead of a fixed number, and optionally skip lines whose computed quantity is zero.
- Partner Contract AnniversaryOdoo 18partner_contract_anniversary
Adds a Contracts tab on the contact form showing the first contract date and this year's contract anniversary date, kept up to date automatically and refreshed yearly by a scheduled job.
- Recurring - Product ContractOdoo 12, 13, 14, 15, 16, 17, 18, 19product_contract
Lets you mark service products as recurring contracts with their own invoicing rhythm, renewal and termination rules, and automatically creates contract records when a sale order is confirmed.
- Product Contract Line DeferOdoo 18product_contract_line_defer
Lets you mark a product so that contract lines created from it are deferred by default, meaning they are not invoiced until they are activated. The deferred flag is carried from the product to the sale order line, the contract configurator and the contract…
- product_contract_recurrence_in_price
Adds an option on products and sale order lines to include all planned recurring invoices in the line total, so a monthly contract line shows the full contract value instead of just one period.
- Product Contract SectionOdoo 18product_contract_section
When you generate a contract from a sale order, this module keeps the section headings and notes from the order and copies them into the contract, so the contract keeps the same layout as the order.
- Product Contract Variable QuantityOdoo 12, 18product_contract_variable_quantity
Lets you set a quantity type (fixed or variable) and a quantity formula on contract products, and automatically carries those settings into sale order lines, contract lines and the contract configurator.
- Subscription managementOdoo 14, 15, 16, 17, 18, 19subscription_oca
Create and manage recurring subscriptions that automatically generate invoices or sales orders on a schedule. Subscriptions can be paused, resumed, and closed, and products can be marked as subscribable so confirming a sale order creates a subscription.