Registering Vendor Bills in Odoo: Four Workflows for Hong Kong SMEs
A practical APAA walkthrough of the four ways to capture vendor bills in Odoo Accounting — from purchase orders, manual entry, PDF digitisation, and email alias — plus how bill dates interact with locked fiscal periods.

At APAA, almost every Hong Kong SME we onboard onto Odoo arrives with the same accounts-payable headache: a folder of PDF invoices, a WhatsApp thread of supplier statements, and a finance person re-keying numbers by hand at month-end. Vendor bills are the least glamorous part of bookkeeping, but a missed bill quickly turns into a late payment, an awkward call from a supplier, and a reconciliation that no longer ties out.
The good news is that Odoo does not force you into a single rigid process. It offers four distinct ways to register a vendor bill, and the right one depends on how your suppliers actually send you paperwork. This guide walks through all four, plus the date handling that trips people up when they post into a closed period.
Why It Pays to Get Accounts Payable Right
For the SMEs we work with, clean payables are not just about tidy books. They feed your cash-flow forecast, your two-tier Profits Tax computation at year-end, and your supplier relationships. When a bill is captured accurately and on time, every downstream report — aged payables, cash position, expense analysis — can be trusted. When bills are entered late or inconsistently, every one of those reports inherits the error.
So treat the four methods below as a toolkit. Most companies end up using two or three of them depending on the supplier.
Method 1: Generate the Bill Straight from a Purchase Order

If you already run your procurement through Odoo, this is the fastest and least error-prone route — the bill is built from data you have already entered.
- Open the relevant purchase order. Once goods or services are received, it shows a Ready to Bill status.
- Click the Create Bill button.

- Odoo carries over the vendor, the order lines, quantities, prices, and taxes automatically.

Nothing is re-typed, so there are no transposition errors, and the bill stays linked to its purchase order for a full audit trail — exactly what you want when an auditor or the IRD asks you to substantiate an expense.
Worth knowing: if a single supplier has several open purchase orders, you can select them together and consolidate them into one vendor bill.
Method 2: Enter a Bill by Hand from the Dashboard
Some bills — utilities, rent, professional fees — never go through a purchase order. For those, enter them directly.
- Open Accounting > Dashboard.

- On the Vendor Bills journal, click Create.
- Fill in the vendor, the bill details, and the line items.

Even here Odoo helps: its autocomplete kicks in as you type a vendor name or reference and pulls in matching purchase-order data where it exists. Manual entry does not have to mean starting from a blank form.
Method 3: Drop in the PDF and Let Odoo Read It
This is the method that wins over most of the Hong Kong finance teams we train, because it matches how suppliers actually behave — they email a PDF invoice.
- From the Accounting Dashboard, click Upload on the Vendor Bills journal.

- Choose the PDF file and open it.
- Odoo's document digitisation reads the PDF and auto-fills the bill form for you.

It extracts the vendor, line items, quantities, prices, and taxes. You stay in control — review every field and correct anything before you confirm. In practice this turns a five-minute re-keying job into a fifteen-second review.
Method 4: Let Bills Arrive by Email
For genuinely hands-off capture, give your Vendor Bills journal an email alias and have suppliers send their invoices straight to it.
- Open Accounting > Dashboard.
- On the Vendor Bills journal, click the three-dot menu and open Configuration.

- Under Advanced Settings, set the Email Alias.

Any invoice sent to that address lands on your dashboard automatically, ready for review. No download, no upload — the bill is simply waiting for you.
How Bill Dates Behave Around a Locked Period
A point we always flag during APAA onboarding: every Odoo vendor bill carries two dates, and confusing them causes posting errors.
| Date | What it represents |
|---|---|
| Bill Date | The date the supplier issued the bill |
| Accounting Date | The date the journal entry is actually posted to your ledger |

This matters in Hong Kong because you will lock periods once a month or quarter is closed and reported. If the accounting date you enter falls inside a locked fiscal period, Odoo does not reject the bill — it shifts the accounting date to the first available date after the lock, while keeping the supplier's original bill date intact. You get an accurate record without breaking a closed period.
Confirming and Paying the Bill
Once the bill looks right:
- Click Save, then Confirm. The bill is posted and given a sequence number.

- Click Register Payment, enter the payment details, and click Create.

- The status moves to In Payment.

- Once you record the matching bank transaction and reconcile it, the status becomes Paid.
Made a mistake? Even after confirmation, you can Reset to Draft and amend or cancel — useful when a supplier reissues a corrected invoice.
Keeping an Eye on What You Owe
Odoo has two built-in reports we encourage clients to check on a routine:

- Bills Analysis — your vendor bills broken down by status, supplier, and period.
- Aged Payables — which bills are overdue, and by how many days.
Both sit behind the three-dot menu on the Vendor Bills journal in the Accounting Dashboard. A weekly glance at aged payables is the single cheapest way to stop late-payment surprises.
Where to Start
If you are setting Odoo up for the first time, our advice to clients is simple: turn on the PDF upload and email alias straight away — they remove the most manual work — and use the purchase-order route for anything you procure through the system. Then review your aged payables every week so nothing slips.
If you would like APAA to configure this accounts-payable workflow for your Hong Kong business — including the email alias, digitisation, and period-lock settings tuned to your reporting cycle — get in touch with our Odoo team.