Flectic
Odoo Module Guide

Odoo Invoicing, Explained for SME Finance Teams

From the first customer invoice to a reconciled bank statement — how Odoo Invoicing handles bills, payment terms, online payment providers, and credit notes under double-entry rules, and how it compares to the Dynamics 365 sales and purchase documents for SMEs evaluating ERP.

What Is Odoo Invoicing?

Odoo Invoicing is the standalone Odoo app dedicated to creating invoices, sending them to customers, and managing payments; it also handles the matching flows for vendor bills. It is deliberately lighter than the Odoo Accounting app, which performs the same invoicing actions and adds standard financial reports, bank reconciliation, budgets, and asset management. For an SME that only needs to bill customers and pay suppliers, Invoicing is enough; the moment you need a general ledger close or bank feeds, you graduate to Accounting.

Like other Odoo finance apps, Invoicing is built on Odoo's native 'one app, one job, integrated by default' pattern: a self-contained app with its own Configuration menu that shares the same double-entry ledger as every other Odoo app. There is no separate billing database to reconcile — the journal entries a posted invoice creates are the same entries your accountant sees.

Underneath, Odoo uses double-entry bookkeeping. Every accounting transaction — a customer invoice, a vendor bill, a point-of-sale order, an expense, an inventory valuation — automatically generates the underlying journal entries, with one account debited and the other credited so the books always balance. That is what lets a standalone Invoicing app still produce audit-ready, balanced books.

Customer Invoices and Vendor Bills

A customer invoice in Odoo starts as a Draft in the Customer Invoices journal (Accounting → Customers → Invoices). You can create it manually or generate it from a sales order; either way, the draft holds the partner, product lines, taxes, and payment terms. Clicking Confirm moves it to Posted and writes the journal entry — debiting Accounts Receivable and crediting the revenue accounts on each line.

Vendor bills are the mirror image. Recorded in the Vendor Bills journal (Accounting → Vendors → Bills), a bill can be entered manually or captured through document digitization, and the Vendor Bill sequence parallels invoice numbering. Posting debits the expense or asset accounts and credits Accounts Payable, again under the same double-entry rule.

Because invoices and bills share one ledger, the same partner card, the same tax grid, and the same chart of accounts serve both. A customer who is also a supplier appears once, with receivable and payable balances that net correctly on aged reports — something a spreadsheet-based billing process cannot do without manual reconciliation.

Payment Terms and Installment Plans

Payment terms in Odoo specify the conditions of a sale's payment — due dates, early-payment discounts, and any other conditions — and are defined on documents such as sales orders, customer invoices, and vendor bills. An installment plan goes further, letting a customer pay a single invoice in parts, with amounts and dates defined beforehand.

Payment terms are configured at Accounting → Configuration → Payment Terms. Built-in examples ship with every database so you can start billing immediately:

When an invoice carries specific payment terms, Odoo generates a different journal entry: one journal item per computed due date. That produces an accurate aged receivable report, easier customer follow-ups, and cleaner bank reconciliation, because each installment lines up with its own expected deposit rather than collapsing into a single due line.

Selected built-in Odoo payment terms (Accounting → Configuration → Payment Terms)
TermBehaviour
Immediate PaymentFull amount due on invoice issuance
15 Days (Net 15)Full amount due 15 days after invoice date
21 MFIDue on the 21st of the month following the invoice
30% Advance End of Following Month30% upfront, balance at month-end after invoice
2% 10, Net 30 EOM2% cash discount if paid within 10 days; net due end of month

Registering Payments: Manual and Online

Payments in Odoo can be linked automatically to an invoice or bill — reducing the amount due — or stand alone, creating outstanding credit or debit until matched later. Registering a payment is as direct as clicking Pay on the document; the status then moves to In Payment, and to Paid once the bank transaction is reconciled.

For manual methods, Odoo supports cash and checks. Checks can be tracked and printed directly from the database, and registering a customer payment by check does not move funds until the check is deposited and reconciled with a bank transaction — the same control a controller expects from a dedicated accounting system.

For batch payouts, Odoo generates standard payment files such as NACHA (North America) and SEPA (Europe), so a finance team can pay dozens of vendors in one upload rather than typing each wire.

When customers self-serve, Odoo embeds several payment providers (formerly called 'payment acquirers' before Odoo 16) that let customers pay online, on the customer portal, or on the eCommerce website — for sales orders, invoices, and subscriptions. Odoo delegates handling of sensitive card data to the certified provider, so no cardholder data is stored on Odoo servers. That keeps Odoo out of PCI DSS scope: a provider-specific Self-Assessment Questionnaire is all that is required.

  • 20+ built-in providers include Stripe, PayPal, Adyen, Authorize.Net, Mollie, Razorpay, Mercado Pago, Worldline, Redsys, and more, plus a bundled Demo provider for testing. (Hundreds more connectors are available via the Odoo App Store and OCA — this list covers the natively bundled ones.)
  • Tokenization (saved cards) is supported by Stripe, Razorpay, and Adyen — useful for subscription and repeat billing.
  • Manual capture is supported by Adyen, Authorize.Net, Razorpay, and Stripe, letting you authorize at order time and capture at shipment.
  • Full and partial refunds are supported by Adyen, Razorpay, and Stripe directly from the invoice.
  • Express checkout (Apple Pay / Google Pay) is supported by Stripe.
  • PayPal hosts payment on its own flow with refunds but no tokenization or express checkout.
  • Provider processing fees are set by the provider, not by Odoo, and vary by region and card type — Odoo does not set or take a cut of those fees.

Credit Notes, Refunds, and Reversals

A credit note (also called a credit or debit memo) is the only legal method in Odoo for canceling, refunding, or modifying a validated invoice. Common triggers are a mistake in the invoice or vendor bill, a return of goods, a rejection of services, or damaged goods. Editing a posted invoice directly is intentionally blocked — the audit trail must show the reversal.

To issue a customer credit note, open the relevant invoice (Accounting → Customers → Invoices) and click Credit Note. The credit-note sequence starts with R followed by the related document number — for example, RINV/2025/0004 reverses invoice INV/2025/0004. Creating the credit note generates a reverse entry that cancels out the journal items from the original invoice, so the books stay balanced and the partner's receivable is corrected in the same period.

Vendor refunds work the same way: open the relevant vendor bill (Accounting → Vendors → Bills) and click Credit Note. The vendor credit note mirrors the customer flow, reversing the payable instead of the receivable. Because both sit in the same double-entry ledger, a refund that crosses a customer and a vendor (a true contra situation) still nets correctly without a manual journal.

The Dynamics 365 Equivalent for SMEs

Dynamics 365 Business Central — the SME SKU most comparable to Odoo Invoicing — maps the same flow onto formal document types. You create a sales invoice (or sales order) to record the agreement to sell products on certain delivery and payment terms; posting the sales invoice creates the related quantity and value entries, and you can email it as a PDF with a payment summary such as a PayPal link.

Posted sales invoices and posted purchase invoices appear in their respective Posted lists with the final invoice numbers. You can correct or cancel an unpaid posted sales invoice, but a paid posted sales invoice must be reversed with a sales credit memo — the same legal-reversal rule Odoo enforces, expressed as a formal document type rather than an R-prefixed sequence.

Business Central also supports several ways to register customer payments: manually via Register Customer Payments, automatically via payment reconciliation that matches bank receipts to open invoices, and through payment services by filling in the Payment Method Code (and Payment Service for electronic payments) on the sales document. A purchase invoice or purchase order records the cost of purchases and tracks accounts payable; posting it updates inventory and financial records and activates vendor payment according to the payment terms, with the vendor's own invoice number captured in the Vendor Invoice No. field.

Payment methods in Business Central define how customers pay you and how you pay vendors — bank, cash, check, or account — and the same Payment Method table serves both sales and purchase documents. Credit memos are an exception: because money flows in the opposite direction, a default payment method is intentionally not assigned to them.

Dynamics 365 Finance, the larger enterprise SKU, replaces the Business Central document model with free-text invoices, vendor invoices, and customer payment journals under Modules > Accounts receivable and Accounts payable. The conceptual mapping — customer invoice, vendor invoice, credit memo, payment terms, payment methods — is the same; the headline difference is that Business Central and Finance ship sales and purchase documents as part of one integrated ERP, where Odoo splits billing into a lighter Invoicing app and a fuller Accounting app.

Odoo Invoicing vs. Dynamics 365 Business Central: billing concepts mapped
ConceptOdoo InvoicingBusiness Central
Customer invoiceInvoice in Customer Invoices journal (Posted)Posted Sales Invoice (document type Invoice)
Vendor billBill in Vendor Bills journalPosted Purchase Invoice; Vendor Invoice No. field
Credit note / reversalCredit Note from invoice (R-prefixed reverse entry)Sales / Purchase Credit Memo document type
Payment termsAccounting → Configuration → Payment TermsPayment Terms table on customer/vendor cards
Online paymentPayment Providers (Stripe, PayPal, Adyen, …)Payment Service + Payment Method Code

When Each Fits an SME

Choose Odoo Invoicing when billing is genuinely simple — a handful of customers, manual or portal payments, no bank reconciliation needed today — and you want the option to grow into Odoo Accounting later without re-platforming. The standalone app keeps day-one setup short while sharing the same ledger you will keep using.

Choose Odoo Accounting (instead of just Invoicing) the moment you need bank reconciliation, budgets, asset management, or standard financial reports. Because Invoicing is a subset of Accounting, the upgrade is a configuration change, not a data migration.

Choose Dynamics 365 Business Central when your SME already lives inside the Microsoft stack — Outlook, Teams, Excel, Power Platform — and you want sales and purchase documents treated as first-class ERP document types with deep Microsoft integration. Business Central is positioned for SMEs that expect to grow into a broader financial-management footprint.

In every case, the decision should follow your existing stack and your team's actual billing workflow, not a vendor's feature checklist. Flectic implements both Odoo and Dynamics 365 and is platform-neutral: the goal is the right fit for the SME, not a preferred vendor.

Getting Started Responsibly

  1. 01
    Confirm the app scope

    Decide up front whether Invoicing alone is enough or whether Accounting is the right starting point. If bank reconciliation, budgets, or formal financial reports are on the near-term roadmap, start with Accounting to avoid a later configuration-only migration.

  2. 02
    Configure the chart of accounts and taxes first

    Payment terms, journals, and tax grids all depend on a correct chart of accounts. Lock this down before creating real invoices so that posted entries land in the right accounts from day one.

  3. 03
    Set payment terms and payment methods before going live

    Configure the payment terms you actually use (Net 15, Net 30, 2% 10 Net 30) and enable the payment providers you need (Stripe, PayPal, etc.) under Accounting → Configuration. Test a sandbox invoice end-to-end before opening billing to customers.

  4. 04
    Train the team on credit notes

    The single biggest behavioural change for teams coming from spreadsheets is that a posted invoice is never edited — it is reversed with a credit note. Train AR and AP staff on the Credit Note flow before go-live to avoid end-of-period rework.

  5. 05
    Plan the bank-reconciliation cutover

    Even if you start on Invoicing, plan how and when you will adopt bank reconciliation. Reconciling the first month cleanly is the difference between a ledger you trust and one you re-check every quarter.

Frequently asked questions

What is the difference between Odoo Invoicing and Odoo Accounting?

Odoo Invoicing is the standalone app for creating invoices, sending them to customers, and managing payments, including vendor bills. Odoo Accounting performs all of those same actions and adds standard financial reports, bank reconciliation, budgets, and asset management. Invoicing is effectively a subset of Accounting, so upgrading later is a configuration change rather than a data migration.

How do I cancel or refund a posted invoice in Odoo?

A posted invoice cannot be edited directly. You open the invoice (Accounting → Customers → Invoices) and click Credit Note; Odoo creates a reverse entry that cancels the journal items from the original invoice. The credit-note sequence starts with R followed by the original document number, for example RINV/2025/0004 for invoice INV/2025/0004. This is the only legal way in Odoo to cancel, refund, or modify a validated invoice. Vendor refunds follow the same flow from the vendor bill.

Which online payment providers does Odoo Invoicing support?

Odoo bundles 20+ providers, including Stripe, PayPal, Adyen, Authorize.Net, Mollie, Razorpay, Mercado Pago, Worldline, Redsys, and many regional providers, plus a bundled Demo provider for testing. (Hundreds more are available via the Odoo App Store and OCA.) Capabilities vary: Stripe, Razorpay, and Adyen support tokenization; Adyen, Authorize.Net, Razorpay, and Stripe support manual capture; Adyen, Razorpay, and Stripe support full and partial refunds; and Stripe supports express checkout (Apple Pay / Google Pay). Processing fees are set by each provider, not by Odoo.

Does Odoo handle PCI DSS compliance for online payments?

Odoo itself is not PCI DSS-certified, and it does not need to be: it delegates handling of sensitive cardholder data to the certified payment provider, so no cardholder data is stored on Odoo servers. That keeps Odoo out of PCI DSS scope, leaving only a provider-specific Self-Assessment Questionnaire for the merchant to complete. The same principle applies to Dynamics 365 — both rely on the certified provider.

How do payment terms affect the journal entry in Odoo?

When an invoice uses specific payment terms such as an installment plan, Odoo generates one journal item for every computed due date instead of a single due line. That produces an accurate aged receivable report, easier customer follow-ups, and cleaner bank reconciliation, because each installment lines up with its own expected deposit. Built-in terms include Immediate Payment, 15 Days, 21 MFI, 30% Advance End of Following Month, and 2% 10, Net 30 EOM.

Choosing Between Odoo Invoicing and Dynamics 365?

Whether you lean toward the lighter standalone Odoo Invoicing app or the integrated sales-and-purchase document model in Dynamics 365 Business Central, the right choice depends on your existing stack, your bank-reconciliation needs, and how your team actually bills. Flectic implements both platforms and is platform-neutral — we help SMEs in Canada, the UK, and the USA choose and roll out the right one, with AI-accelerated delivery designed to deliver up to 3x faster than a traditional ERP project.

Book an ERP Readiness Call
Response within one business day

Sources

  • Odoo Invoicing is a standalone app designed to create invoices, send them to customers, and manage payments; it also handles flows involving vendor bills. The Accounting app is a comprehensive accounting solution that allows the same actions and includes additional features such as standard financial reports, bank reconciliation, budgets, and asset management.https://www.odoo.com/documentation/19.0/applications/finance/accounting.html (verified Odoo 19.0 official documentation — Accounting overview page. Verified via WebSearch against odoo.com/documentation/19.0; page resolves and the verbatim wording matches the standalone-Invoicing vs full-Accounting distinction.)
  • Odoo uses double-entry bookkeeping: it automatically creates all underlying journal entries for every accounting transaction (customer invoices, vendor bills, point-of-sales orders, expenses, inventory valuations, etc.), with one account debited and the other credited so the accounts always balance.https://www.odoo.com/documentation/19.0/applications/finance/accounting.html (verified Odoo 19.0 official documentation — same Accounting overview page. Verified via WebSearch; matches the double-entry description verbatim.)
  • A credit/debit note (credit/debit memo) is the only legal method in Odoo for canceling, refunding, or modifying a validated invoice; common use cases are a mistake in the invoice or vendor bill, a return of goods, rejection of services, or damaged goods.https://www.odoo.com/documentation/19.0/applications/finance/accounting/customer_invoices/credit_notes.html (verified Odoo 19.0 official documentation — Credit Notes page. Verified via WebSearch; verbatim quote 'only legal method for canceling, refunding, or modifying a validated invoice' confirmed across Odoo 13/16/19 doc versions.)
  • To issue a customer credit note in Odoo, open the relevant invoice (Accounting → Customers → Invoices) and click Credit Note; a credit note sequence starts with R followed by the related document number (e.g., RINV/2025/0004 for invoice INV/2025/0004). Creating a credit/debit note generates a reverse entry that cancels out the journal items from the original invoice/bill. Vendor refunds are recorded the same way from the vendor bill (Accounting → Vendors → Bills).https://www.odoo.com/documentation/19.0/applications/finance/accounting/customer_invoices/credit_notes.html (verified Odoo 19.0 official documentation — Credit Notes page. Verified; R-prefix sequence pattern and reverse-entry behaviour confirmed via WebSearch (the R-prefix convention is documented in Odoo's journal sequence configuration and corroborated across multiple Odoo-version docs).)
  • Payment terms in Odoo specify the conditions of a sale's payment (due dates, early payment discounts, other conditions) and are defined on documents such as sales orders, customer invoices, and vendor bills. An installment plan lets customers pay an invoice in parts, with amounts and dates defined beforehand.https://www.odoo.com/documentation/19.0/applications/finance/accounting/customer_invoices/payment_terms.html (verified Odoo 19.0 official documentation — Payment Terms page. Verified; matches claim.)
  • Odoo payment terms are configured under Accounting → Configuration → Payment Terms. Built-in examples include Immediate Payment (full due on issuance), 15 Days (Net 15), 21 MFI (due 21st of month following invoice), 30% Advance End of Following Month, and 2% 10, Net 30 EOM (2% cash discount if paid within ten days). Invoices with specific payment terms generate one journal item for every computed due date, producing an accurate aged receivable report and easier follow-ups and reconciliation.https://www.odoo.com/documentation/19.0/applications/finance/accounting/customer_invoices/payment_terms.html (verified Odoo 19.0 official documentation — Payment Terms page. Verified; built-in term names and per-due-date journal-item behaviour match.)
  • In Odoo, payments can be automatically linked to an invoice/bill (reducing the amount due) or stand-alone (creating outstanding credit/debit). Registering a payment is done by clicking Pay on the invoice or bill; the document status moves to In Payment, then to Paid once the bank transaction is reconciled. Odoo supports manual payment methods (cash, checks) and batch payment files (NACHA, SEPA); checks can be tracked and printed directly from Odoo, and a check payment does not move funds until deposited and reconciled.https://www.odoo.com/documentation/19.0/applications/finance/accounting/payments.html (verified Odoo 19.0 official documentation — Payments page. Verified; status flow In Payment → Paid and NACHA/SEPA batch files match.)
  • Odoo embeds several payment providers that let customers pay online, on the customer portal, or on the eCommerce website, for sales orders, invoices, and subscriptions. Odoo delegates handling of sensitive data to the certified provider so no cardholder data is stored on Odoo servers, keeping Odoo out of PCI DSS scope (a provider-specific Self-Assessment Questionnaire is all that is required).https://www.odoo.com/documentation/19.0/applications/finance/payment_providers.html (verified Odoo 19.0 official documentation — Online Payments / Payment Providers page. Verified via WebSearch; PCI DSS scope delegation matches claim and is corroborated by independent payment-guide sources.)
  • Odoo's bundled online payment providers include Stripe, PayPal, Adyen, Authorize.Net, Mollie, Razorpay, Mercado Pago, Worldline, Redsys, and a bundled Demo provider for testing (20+ bundled, with hundreds more available via the Odoo App Store and OCA). Provider capabilities vary: Stripe, Razorpay, and Adyen support tokenization; Adyen, Authorize.Net, Razorpay, and Stripe support manual capture; Adyen, Razorpay, and Stripe support full and partial refunds; Stripe supports express checkout (Apple Pay / Google Pay). PayPal hosts payment on the provider's flow with refunds but no tokenization or express checkout.https://www.odoo.com/documentation/19.0/applications/finance/payment_providers.html (verified Odoo 19.0 official documentation — Payment Providers page (plus the dedicated Authorize.Net page at /payment_providers/authorize.html). Verified via WebSearch; core bundled provider list and per-provider capability matrix match. Clarified that the '20+' figure refers to natively bundled providers — the broader 170+/hundreds figure applies to App Store + OCA connectors.)
  • In Business Central you create a sales invoice (or sales order) to record the agreement to sell products on certain delivery and payment terms; posting the sales invoice creates the related quantity and value entries. Posted sales invoices and posted purchase invoices appear in their respective Posted lists with the final invoice numbers; you can correct or cancel an unpaid posted sales invoice, but a paid posted sales invoice must be reversed with a sales credit memo (or sales return order).https://learn.microsoft.com/en-us/dynamics365/business-central/sales-manage-sales (verified Microsoft Learn — Business Central 'Manage Sales' overview (sales-manage-sales). Verified via WebSearch; the paid-invoice reversal rule (sales credit memo / sales return order) matches the Microsoft-stated behaviour.)
  • Business Central supports multiple ways to register customer payments: manually via Register Customer Payments, automatically via payment reconciliation that matches bank receipts to open invoices, and through payment services by filling in the Payment Method Code (and Payment Service for electronic payments) on the sales document.https://learn.microsoft.com/en-us/dynamics365/business-central/sales-how-invoice-sales (verified Microsoft Learn — Business Central 'Invoice Sales' page. Verified; three payment-registration paths match.)
  • A Business Central purchase invoice (or purchase order) records the cost of purchases and tracks accounts payable; posting the purchase invoice updates inventory and financial records and activates vendor payment according to the payment terms. The vendor's invoice number is recorded in the Vendor Invoice No. field. To reverse a purchase for items/services on a paid posted purchase invoice, you create a purchase credit memo.https://learn.microsoft.com/en-us/dynamics365/business-central/purchasing-how-record-purchases (verified Microsoft Learn — Business Central 'Record Purchases' page. Verified; Vendor Invoice No. field and purchase-credit-memo reversal match.)
  • In Business Central, payment methods define how customers pay you and how you pay vendors (bank, cash, check, account) and are used for both sales and purchase documents. Credit memos are an exception because money flows in the opposite direction, so a default payment method is not assigned to them.https://learn.microsoft.com/en-us/dynamics365/business-central/finance-payment-methods (verified Microsoft Learn — Business Central 'Payment Methods' page. Verified; dual sales/purchase use and credit-memo exception match.)