- Inicio
- Apps
- SaaS Tools
- Invoice Multi Level Approval
Vista previa ilustrativaA build-to-order Odoo approval engine that routes customer invoices,
vendor bills, refunds and credit notes through configurable multi-level sign-offs before they post.
ECOSIRE scopes, builds, installs and supports it for your Odoo 17, 18 or 19 database.
¿Qué es Invoice Multi Level Approval?
A build-to-order Odoo approval engine that routes customer invoices, vendor bills, refunds and credit notes through configurable multi-level sign-offs before they post. ECOSIRE scopes, builds, installs and supports it for your Odoo 17, 18 or 19 database. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Características clave
Hecho a medida, listo para ti
Sin configuración por tu cuenta: una app funcional creada, instalada y con soporte de ECOSIRE.
- 1
Haces el pedido
Empieza con un precio único de desarrollo. Definimos el alcance contigo en el arranque.
- 2
Creamos e instalamos
ECOSIRE la crea, la configura y la instala en tu Odoo.
- 3
En marcha + soporte
Sales en vivo en aproximadamente una semana laboral, con dos semanas de soporte tras la puesta en marcha. Los defectos en el código que entregamos se corrigen sin coste.
Especificaciones técnicas
- Compatibilidad con Odoo
- Odoo 17, Odoo 18, Odoo 19
- Ediciones
- Enterprise y Community
- Licencia
- La licencia requiere confirmación
- Requisito de Python
- Python 3.10+
- Base de datos
- PostgreSQL 12+
Sobre este producto
Finance teams running Odoo hit a wall the moment their invoicing volume outgrows a single accountant clicking "Confirm." Out of the box, Odoo lets anyone with Billing rights post a customer invoice, validate a vendor bill, or issue a credit note with no structured sign-off in between. There is no native concept of "this bill over $10,000 needs the department head, then the CFO." The result is uncontrolled spend, weak segregation of duties, audit findings, and credit notes that quietly reverse revenue without anyone senior ever seeing them. Odoo's generic Settings-level approval flags are coarse and do not chain multiple approvers by amount, journal, analytic account, or company.
We build a dedicated multi-level approval engine that sits on top of account.move and gates the transition to posted. The core is a configurable approval-matrix model (models.Model) where you define tiers by document type (customer invoice, vendor bill, customer/vendor refund, credit note), amount thresholds, journal, company, and analytic distribution. When a document is submitted, a compute method (@api.depends on amount, partner, and journal) resolves which tiers apply and generates an ordered chain of approval-request records. State moves through draft → to_approve → approved → posted, with a refused branch that returns the document to the author with a mandatory reason. We override action_post() so an unapproved move can never be posted — via the UI, an imported batch, a scheduled action, or the XML-RPC/JSON-RPC API — closing the back doors that a button-only solution leaves open.
Security is enforced the Odoo-native way: approver rights live in dedicated groups wired through ir.model.access.csv, and record rules ensure an approver only sees requests routed to their tier and company. Each approval writes an immutable audit line (who, when, level, comment) rendered in the chatter and available in a QWeb PDF approval certificate for auditors. Automated actions and server-side crons handle escalation and reminders — for example, nudging an approver after 48 hours or auto-escalating to the next tier. Delegation (out-of-office substitute approvers), parallel vs. sequential tiers, and self-approval prevention are all part of the model. Views are delivered as clean XML/OWL with a smart button showing pending approvals and a dedicated "My Approvals" dashboard, so nothing about the standard Odoo accounting experience feels bolted on. The build respects Community vs. Enterprise differences — we do not assume Studio or Enterprise-only approval primitives are present, and we target Odoo 17.0, 18.0 and 19.0 explicitly.
Because this is build-to-order, nothing ships until we have agreed your approval matrix on a scoping call: your tiers, thresholds, roles, and which document types are in scope. We then build against a copy of your data on a staging database, run UAT with your finance team, and hand over installable source, a git repository, and documentation. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); multi-company approval chains, deep localization of tax/credit-note rules, integrations with external procurement or expense systems, and large historical data migration increase the quoted scope. You receive a fixed quote after the scoping call — never a surprise.
lo que obtienes
- Installable source code for your commissioned version, targeting your exact Odoo edition (17.0/18.0/19.0) and Community or Enterprise
- Installation and configuration on your staging (and, when agreed, production) database, including approval-matrix setup
- Technical documentation: data model, security groups, record rules, override points and configuration reference
- End-user guide plus a live training session for your finance and approver teams
- UAT on a staging copy of your data with a documented rollback plan before any production go-live
- Post-go-live support window for defect fixes and configuration questions
- Handover of the full git repository with commit history and tagged release
- Approval-certificate QWeb report template ready for your auditors, branded to your company
¿Para quién es esto?
Finance Controller / CFO
Needs enforceable segregation of duties and amount-based sign-off so no bill or credit note posts without the right level of authorization. Wants an audit-ready trail for external auditors and internal controls.
Accounts Payable Manager
Processes high volumes of vendor bills and wants routing by amount and journal so routine bills flow fast while large or unusual ones stop for review. Needs reminders and escalation so nothing sits unapproved.
Odoo Administrator / IT Lead
Runs the Odoo instance and wants a clean, upgrade-safe module with proper `ir.model.access.csv` security, record rules and a git repo — not a Studio hack that breaks on the next migration.
Compliance / Internal Audit Officer
Requires documented approval chains, immutable logs of who approved what and when, and a printable certificate per document to satisfy SOX-style or ISO control requirements.
Cómo se compara Invoice Multi Level Approval
| Criterio | ECOSIRE | Construcción personalizada | Competidor | Nativo de Odoo |
|---|---|---|---|---|
| Multi-level chains by amount | Unlimited tiers keyed by amount, journal, company and analytic account | Possible but you design and maintain the matrix logic yourself | Usually fixed tiers with limited threshold conditions | No amount-based multi-level chaining out of the box |
| Coverage of refunds & credit notes | Invoices, bills, refunds and credit notes each with own thresholds | Whatever you build; refunds often forgotten | Often invoices/bills only; refunds patchy | No structured approval for any of them |
| Enforcement at ORM level | `action_post()` override blocks UI, batch, cron and RPC paths | Depends on developer discipline; RPC often left open | Frequently button/view-only, leaving API back doors | No posting gate to enforce |
| Security & segregation of duties | Dedicated groups, record rules, self-approval prevention | You define and test all access rules yourself | Basic approver group, limited record-rule scoping | Any Billing user can post; no separation |
| Audit trail & certificate | Immutable chatter log plus QWeb PDF approval certificate | Build reporting yourself | Log yes, printable certificate often absent | Standard chatter only, no approval concept |
| Fit to your process | Matrix agreed on scoping call, built to your rules | Fully bespoke but higher cost and longer timeline | Configure within the vendor's fixed feature set | You adapt your process to Odoo, not the reverse |
| Support & maintenance | Post-go-live window, git repo handover, upgrade retainers | Tied to your in-house or contracted developer | Generic vendor support, upgrade at their cadence | Covered by your Odoo subscription/partner only |
| Version & edition targeting | Built for your exact Odoo 17/18/19, Community or Enterprise | Whatever you target and test | Prebuilt per version; edition assumptions vary | Native behaviour differs per version, no approval added |
Preguntas frecuentes sobre Invoice Multi Level Approval
How long does delivery take?
This is a build-to-order module, not an instant download. Typical delivery is one working week from confirmed scope — that is, after we have agreed your approval matrix, document types, thresholds and target Odoo version on a scoping call. Complex multi-company or heavily localized builds can run longer, and we will tell you honestly during scoping.
How does pricing and scoping work?
Pricing starts from $999 as an indicative figure for a single-company base scope. The final number depends on the number of tiers, document types, multi-company requirements, integrations and any data migration. After a short scoping call we give you a fixed written quote — you approve that before we build, so there are no surprises.
What support and updates do I get after go-live?
Every build includes a post-go-live support window for defect fixes and configuration questions. Because you receive the full git repository and source, your own team can maintain it too. We also offer optional ongoing support and version-upgrade retainers if you want us to keep the module current across future Odoo releases.
Will it work on my Odoo version and edition?
Yes — we build explicitly for Odoo 17.0, 18.0 or 19.0, and for either Community or Enterprise. We do not assume Enterprise-only or Studio features are present, so the approval engine works on Community. We confirm your exact version and edition during scoping and target that build.
Can an invoice still be posted around the approval workflow?
No. We override `account.move.action_post()` at the ORM level, so the block applies everywhere a move can be posted — the UI Confirm button, batch operations, scheduled actions, and the XML-RPC/JSON-RPC API. A button-only or view-only approach leaves those back doors open; ours does not.
Does it handle refunds and credit notes, not just invoices?
Yes. The approval matrix treats customer invoices, vendor bills, customer refunds and vendor credit notes as distinct document types, each with its own thresholds and tiers. This matters because credit notes reverse revenue and are a common control gap — you can require senior sign-off on any refund above a threshold.
How is it kept upgrade-safe and auditable?
The module is delivered as clean, standard Odoo code — a proper `__manifest__.py`, models, security via `ir.model.access.csv` and record rules, XML/OWL views and a QWeb report — with no monkey-patched core files. Every approval writes an immutable chatter log, and a QWeb PDF certificate gives auditors the full sign-off chain per document.
Módulos relacionados

Invoice Format Editor
A build-to-order Odoo module that gives your finance team real control over invoice report layout, branding, and formatting without hard-coding a new template for every variation. ECOSIRE designs, builds, installs, and supports it against your exact Odoo version and document standards.

Invoice from Multiple Sales and Purchases
A build-to-order Odoo module that consolidates multiple confirmed sales orders (or vendor purchase orders) for the same partner into a single invoice or vendor bill, with full traceability back to each source document. ECOSIRE scopes, builds, installs, and supports it for you.

Invoice Report Templates
A build-to-order pack of 10 professionally designed, fully customizable QWeb invoice report templates for Odoo — branded, tax-compliant, and installed and supported by ECOSIRE after you request a quotation.

Italy SDI FatturaPA E-Invoicing
Build-to-order Odoo module that generates, validates and exchanges FatturaPA XML through Italy's SdI — B2B, B2G and B2C.
Invoice Multi Level Approval
A build-to-order Odoo approval engine that routes customer invoices, vendor bills, refunds and credit notes through configurable multi-level sign-offs before they post. ECOSIRE scopes, builds, installs and supports it for your Odoo 17, 18 or 19 database.
- Override of `account.move.action_post()` so no invoice, bill, refund or credit note can post while an approval chain is pending — closes UI, batch, cron and XML-RPC/JSON-RPC back doors
- Configurable approval-matrix model with tiers keyed by document type, amount threshold, journal, company and analytic distribution
- Sequential and parallel approval tiers (e.g. two managers in parallel, then CFO in sequence) resolved by a `@api.depends` compute method
- Separate handling for customer invoices, vendor bills, customer refunds and vendor credit notes with independent thresholds per type