Posting bills vs receipts
Corporate-card expenses fall into two natural categories:
| Document type | Use for |
|---|---|
| Bill | A real vendor invoice with a registered supplier and a due date (SaaS subscription, vendor with BG/INV-12345, recurring services) |
| Receipt | A cash-like purchase with no invoice (petrol-pump receipt, restaurant, ad-hoc retail) |
By default Payhawk treats every reviewed expense as a bill. Two settings let the reviewer pick Document type per expense and post receipts to a separate Odoo journal — keeping the AP ageing report clean and matching the accounting reality.
Step 1 — Enable the Document Type field in Payhawk
In Payhawk:
- Settings → Expense fields
- Find the field Document type
- Toggle it Enabled
After this, every expense card in Payhawk has a Document type picker during review with values Bill and Receipt. The reviewer is prompted to choose before approval.
Step 2 — Configure the Receipts journal in Odoo
In Odoo:
- Settings → Payhawk (Account Manager rights required)
- Set Receipts Journal to the journal where you want receipts to land
| Field | Pick |
|---|---|
| Bills Journal | The standard purchase journal — formal vendor invoices |
| Receipts Journal | A separate purchase journal — cash-like receipts |
If Receipts Journal is empty, every expense posts to the Bills Journal regardless of Document type — the connector defaults to bills for backwards compatibility.
Creating the Receipts journal
A common pattern is a dedicated Purchase-type journal named PHWK Receipts or Petty Cash — Payhawk, with its default credit account set to the corporate-card clearing account. Bills and receipts then share the same expense GL accounts but post via different journals, so reports can break them apart cleanly.
How it flows
Reviewer in Payhawk → Document type = Receipt
│
▼
Webhook fires → Payhawk × Odoo connector
│
┌────┴─────────────────┐
│ │
▼ ▼
Document type = Bill Document type = Receipt
│ │
▼ ▼
Bills Journal Receipts Journal
(account.move, (account.move,
in_invoice) in_receipt)Bills go through Accounts Payable as usual (3-way match, due date, ageing). Receipts post directly without an AP step — useful when the expense has no formal invoice to chase.
Verify
After enabling both settings, smoke-test once:
- In Payhawk Sandbox, create an expense and review → Document type = Receipt → approve
- In Odoo, Accounting → Vendors → Bills — the expense should not appear here
- Accounting → Vendors → Receipts (or filter the journal items by your Receipts journal) — the entry should appear there
- Repeat with Document type = Bill — entry appears under Bills as normal
If a receipt-typed expense still lands in Bills:
- Confirm Document type is Enabled in Payhawk
- Confirm Receipts Journal is set in Odoo (not blank)
- Force a sync via Settings → Payhawk → Sync now and re-check
Where to read more
- Configuration — the full settings reference
- Sync options — every toggle on the Miscellaneous tab
- Reimbursements — the related employee-payout setup
- PLANA Business Cloud → Vendor bills — the accounting-side workflow