Notion Invoice Tracker
Build an AP invoice register in Notion with statuses, a duplicate key, overdue formulas, saved views, and a human approval stop before posting or payment.
— Craig Major
A Notion invoice tracker is an accounts-payable register you build and run in Notion. Each page records who billed you, the invoice number, status, owner, exceptions, and whether a person approved the bill. Notion stores the list, constrains the closed lists, and calculates duplicate keys and overdue flags. This tracker does not extract structured invoice fields from PDFs, create an accounting draft, certify approval, or send payment by itself.
This page implements the published Invoice Tracker in Notion. The paired Notion Invoice Tracker Template is the spec and CSV pack you import. The shared field list and sample rows live in the Invoice Tracker Starter Pack. The published Google Sheets Invoice Tracker is the spreadsheet twin. Extraction and destination drafts stay on Invoice Processing Automation. What to automate first stays on Document Processing Automation.
Who this is for
Use this when supplier invoices already arrive and the immediate job is one visible register in Notion: what came in, what is waiting, what is overdue, and what must not be entered twice.
Prerequisites:
- One buying entity for the first register. The worked example is fictional Cedar & Quay Fabrication Ltd.
- Agreement that this is an AP status list for bills you received, not a sales-invoice layout you send to customers
- A named reviewer who can set
approval_decision - A place to keep the source file, usually a Drive or SharePoint folder plus a
source_ref - Agreement that
posted_refandpaid_refstay empty until a person confirms those actions in another system
Stay out of this first database: supplier bank-detail changes, tax filings, autonomous payment, and multi-entity matching.
If you still need the platform-neutral model, stay on the parent tracker. If you want the same schema in a spreadsheet, use the live Google Sheets Invoice Tracker Workbook. If you need extraction and an accounting draft, use the invoice-processing guide and the live Invoice Processing Test Pack. That pack uses labelled-text fixtures and does not measure OCR.
This is not a Notion invoice template
Many Notion invoice templates are sendable customer invoices with a logo, bill-to address, line items, and a printable page. That is accounts receivable. This pack is an accounts-payable register for bills you received.
What Notion implements
The Invoice Tracker Starter Pack defines the shared field list. This Notion twin uses the same names so you can move data between the two without remapping it.
| Starter piece | Notion twin |
|---|---|
| Field dictionary | Invoices properties, same names |
| Status model | Select options on status |
| Duplicate key | Formula on duplicate_key |
| Exceptions and roles | Exceptions and Roles databases or Setup tables |
| Sample rows INV-TR-0001-0010 | Same fictional Cedar & Quay rows |
| Dashboard metrics | Filtered views and Calculate at as-of 2026-09-08 |
| Audit events | AuditEvents database |
Keeping the published field names makes imports and later migrations easier.
Notion-native additions that are not a second schema:
- Select options for currency, status, exception_code, and approval_decision
- Computed
duplicate_key,amount_delta,days_overdue,aging_bucket,is_overdue,posted_without_approval - Saved views for pending approval, exceptions, overdue, approved unposted, and duplicates
- An optional Board grouped by status
- Optional
source_filesFiles & media orsource_urlbesidesource_ref - A Vendors relation after you rebuild it
duplicate_key is computed whenever invoice_no is present:
if(empty(prop("invoice_no")), "", lower(trim(prop("vendor_name"))) + "|" + lower(trim(prop("invoice_no"))))
A blank invoice number leaves the key empty and pairs with missing_invoice_no. Two blank numbers are not the same bill. Notion has no unique constraint. The formula and a Duplicates view only show the collision.
Import and sharing
Notion documents CSV import on desktop and web (Import data into Notion). Go to Settings → Import → CSV to create a new database, or open Invoices and choose Merge with CSV. Map columns by exact header names. A new CSV import cannot create formulas or relations. Rebuild those after import. CSV merges add rows. They do not update existing rows.
Official file-size limits for CSV: 5 MB per file on the Free plan and 50 MB per file on paid plans.
Share the reviewer as Can edit or Can edit content (Sharing & permissions). Can edit content lets a person create and edit invoice pages and property values. It does not let them add properties or change views. Lock database stops accidental property and view edits (Intro to databases). Anyone with editing access can toggle that lock. It is not a security control.
Version history is collaboration history. Notion Help states you can restore page versions going back 7 days on Free, 30 days on Plus, 90 days on Business, and any number of days on Enterprise (Delete & restore content). That is not a certified financial audit log. Keep named decisions in AuditEvents.
This package is a setup and spec pack. No live duplicable Notion template was created or verified in this pass. Do not treat the download as a Marketplace listing.
Worked example
Cedar & Quay Fabrication Ltd is a fictional Toronto buyer. Import the CSV pack. Keep the sample as-of date at 8 September 2026.
- INV-TR-0001, Ridgemont Industrial Supply Co, INV-TP-2401, CAD 452.00. Status
pending_approval.duplicate_keyisridgemont industrial supply co|inv-tp-2401. Noposted_ref. Nopaid_ref. - INV-TR-0002 uses the same vendor and invoice number on a different file. Status
duplicate. The first page is unchanged.duplicate_keyis stillridgemont industrial supply co|inv-tp-2401. - INV-TR-0003, Ashbridge Print Works, blank invoice number. Status
exception/missing_invoice_no.duplicate_keyis empty. - INV-TR-0004, Prairie Bolt & Fastener Ltd, printed total 185.00 versus 220.50.
amount_deltais 35.50. - INV-TR-0006, Kings Mill Packaging Co, due 19 August 2026, status
approved. On the as-of date it is overdue.follow_up_owneris Priya Nair (fictional). - INV-TR-0007 has
posted_refQBO-BILL-FICTION-441only because a person recorded an external draft afterapproval_decisionwasapprove.
The companies, people, GST/HST numbers, and destination ids are fictional. They are not customer results.
Formulas, views, and optional forms
After import, add the formula properties. Copy the recipes from the paired template pack.
| Property | Job |
|---|---|
duplicate_key |
Identity key when invoice_no exists |
amount_delta |
Absolute difference of subtotal plus tax versus printed total |
days_overdue |
Days past due using as-of 2026-09-08, zero if paid, rejected, or duplicate |
aging_bucket |
current, 1_7, 8_30, 31_plus |
is_overdue |
yes or no |
posted_without_approval |
yes if posted_ref is set and approval_decision is empty |
Dashboard counts should include only pages with a record_id.
Notion documents views, filters, sorts, and groups (Database views, filters, sorts & groups). Create views named Pending approval, Exceptions, Overdue, Approved unposted, and Duplicates. A Board grouped by status is optional.
Optional later: a Form bound to Invoices for intake (Build forms in Notion). Required questions can cover vendor_name, invoice_no, dates, amounts, and source_ref. Conditional form logic is a Business or Enterprise feature. A form is not approval.
Optional later: a Date property reminder (Set reminders). That is notify only.
What can run automatically, and what cannot
| Situation | This tracker can do | Person required |
|---|---|---|
| New page with Select lists | Yes | Confirm the source if intake is messy |
| Compute duplicate_key and amount_delta | Yes | Yes, before approval |
| Flag overdue from the as-of date | Yes | Assign follow_up_owner |
| Filter pending approval | Yes | The approve decision itself |
| Notify a reviewer when status is pending_approval | Paid-plan database automation, or Free Slack-notify only | Still a human decision |
| Extract fields from a PDF | No | Use invoice processing, not this database |
| Create an accounting draft | No | Record posted_ref after a person confirms the write |
| Send payment | No | Record paid_ref after a person confirms payment |
| Certify AP approval | No | approval_decision is an operating field, not a legal certificate |
Notion Help says database automations are available on paid plans. Free Plan users can create Slack notification automations, but no other kinds, and can use existing automations in templates without editing them (Database automations). Do not attach an automation that sets posted_ref or paid_ref.
Human gates
A person keeps these decisions:
- Who owns the page and who may review it
- Whether a duplicate or exception may continue
- Approve, reject, or hold
- Whether
posted_refmay be filled after an accounting write - Whether
paid_refmay be filled after a payment - Who may edit the database
The tracker must not create a vendor bill, release a payment, change supplier bank details, or treat a formula result as approval.
Failure paths
| Failure | Expected result | Next action |
|---|---|---|
| Blank invoice_no | missing_invoice_no; empty duplicate_key |
Collect the number. Do not key two blanks together |
| Same vendor and invoice number | Status duplicate |
Leave the first page alone |
| Subtotal plus tax does not match total | conflicting_total; amount_delta > 0.011 |
Check the source |
| posted_ref with empty approval_decision | posted_without_approval = yes |
Return to pending_approval |
| Overdue approved page | is_overdue yes | Assign follow_up_owner |
| Missing owner | missing_owner |
Assign someone |
| Unknown vendor | unknown_vendor |
Confirm the supplier |
| Treating Lock database as security | Invalid assumption | Share only with people you trust |
| Automation posts or pays | Out of scope | Remove the automation |
Version history and lock are not an audit or security control
After setup you may lock the database so reviewers do not change properties or views. Notion is explicit that anyone with editing access can toggle the lock. Can edit content is a collaboration permission. It is not a SOX control and it is not certified AP approval.
Version history depth is plan-dependent: 7 days on Free, 30 days on Plus, 90 days on Business, unlimited on Enterprise. Restoring a database restores pages and properties. Notion Help says the contents inside those pages are not restored with the database. Keep AuditEvents as the decision record.
Cite: Delete & restore content and Intro to databases, accessed 8 September 2026.
Test cases
Walk these pages after import with as-of 2026-09-08.
| Case | Row | Expected |
|---|---|---|
| Clean received | INV-TR-0001 | pending_approval; key filled; no posted or paid |
| Duplicate | INV-TR-0002 | duplicate; same key as 0001; first page unchanged |
| Missing invoice number | INV-TR-0003 | exception / missing_invoice_no; key empty |
| Conflicting total | INV-TR-0004 | amount_delta 35.50 |
| Overdue approved | INV-TR-0006 | is_overdue yes; follow_up_owner set |
| Posted after human confirm | INV-TR-0007 | posted_ref present; approval present |
| Missing owner | INV-TR-0010 | exception / missing_owner |
Dashboard sample results at that as-of date: open 8, pending approval 1, exception 4, duplicate 1, overdue 2, overdue amount 463.30, approved unposted 2, posted unpaid 1, invalid posted without approval 0, amount mismatch 1. Those are planning counts, not savings.
What to measure
Count open pages, exceptions, duplicate stops, pending approval, overdue pages, and how often posted_ref is filled in the same week as approval.
Do not convert those counts into a savings claim. The Automation ROI Calculator is a planning worksheet. Replace its illustration with your observed numbers.
Replace the fictional sample counts with results from your own register before using them to plan work.
How to use the template pack
Download the Notion Invoice Tracker Template. The paired pack is a setup and spec set: CSVs, formula recipes, views, and import notes. It is not a live Duplicate-as-template URL.
- Download the paired ZIP.
- In Notion, use Settings → Import → CSV or Merge with CSV. Official help: Import data into Notion.
- Rebuild the six formula properties. Confirm Select options match the starter lists.
- Create the saved views listed above.
- Walk the seven cases.
- Add your own approved or fictional pages. Keep automations off financial writes.
If you already imported the Google Sheets Invoice Tracker Workbook, keep the same published field names so imports and later migrations stay aligned.
Canadian buyers who later claim input tax credits still need prescribed information on the source invoice. CRA GST/HST Memorandum 8-4 is about supporting documents, not a licence for this tracker to file tax.
Next step
If one team, one inbox, and one Notion database are enough, stay on this register until the handoffs hurt.
If invoices arrive through several channels, need named approvers with a trail a shared database cannot protect, or must create an accounting draft without retyping, scope a Document Intake and Approval System through AI Automation Systems.
If several document workflows are competing, use the AI Success Audit.
Sources
- Flowgrammer, "Invoice Tracker", Flowgrammer, accessed 2026-09-08, /insights/invoice-tracker
- Flowgrammer, "Invoice Tracker Starter Pack", Flowgrammer, accessed 2026-09-08, /resources/invoice-tracker-starter-pack
- Flowgrammer, "Google Sheets Invoice Tracker", Flowgrammer, accessed 2026-09-08, /insights/google-sheets-invoice-tracker
- Flowgrammer, "Google Sheets Invoice Tracker Workbook", Flowgrammer, accessed 2026-09-08, /resources/google-sheets-invoice-tracker-workbook
- Flowgrammer, "Invoice Processing Automation", Flowgrammer, accessed 2026-09-08, /insights/invoice-processing-automation
- Flowgrammer, "Invoice Processing Test Pack", Flowgrammer, accessed 2026-09-08, /resources/invoice-processing-test-pack
- Flowgrammer, "Document Processing Automation: What to Automate First", Flowgrammer, accessed 2026-09-08, /insights/document-processing-automation
- Notion, "Intro to databases", Notion Help, accessed 2026-09-08, https://www.notion.com/help/intro-to-databases
- Notion, "Database properties", Notion Help, accessed 2026-09-08, https://www.notion.com/help/database-properties
- Notion, "Database views, filters, sorts & groups", Notion Help, accessed 2026-09-08, https://www.notion.com/help/views-filters-and-sorts
- Notion, "Notion formula syntax & functions", Notion Help, accessed 2026-09-08, https://www.notion.com/help/formula-syntax
- Notion, "Import data into Notion", Notion Help, accessed 2026-09-08, https://www.notion.com/help/import-data-into-notion
- Notion, "Delete & restore content", Notion Help, accessed 2026-09-08, https://www.notion.com/help/duplicate-delete-and-restore-content
- Notion, "Sharing & permissions", Notion Help, accessed 2026-09-08, https://www.notion.com/help/sharing-and-permissions
- Notion, "Database automations", Notion Help, accessed 2026-09-08, https://www.notion.com/help/database-automations
- Notion, "Build forms in Notion", Notion Help, accessed 2026-09-08, https://www.notion.com/help/forms
- Notion, "Set reminders", Notion Help, accessed 2026-09-08, https://www.notion.com/help/reminders
- Microsoft, "Automate vendor invoice processing with Power Automate and AI Builder", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/power-platform/architecture/reference-architectures/vendor-invoice-integration
- Canada Revenue Agency, "GST/HST Memorandum 8-4, Documentary Requirements for Claiming Input Tax Credits", accessed 2026-09-08, https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/8-4/documentary-requirements-claiming-input-tax-credits.html
Frequently asked questions
What is a Notion invoice tracker?
An AP register in Notion with required fields, a status Select, an owner, a computed duplicate key, exception flags, and a record of who approved the page. It does not post or pay the invoice.
Is this the same as a Notion invoice template?
No. A tracker records bills you received. A sales-invoice template is a document you send to a customer.
Does this tracker extract invoice fields from PDFs?
No. This tracker does not extract structured invoice fields from PDFs by itself. Keep a file name or URL in `source_ref`. Extraction stays on the invoice-processing workflow.
Does this database create a QuickBooks or Xero draft?
No. This database does not create an accounting draft or send payment by itself. A person records `posted_ref` after confirming the write in accounting.
Are Lock database and version history enough to lock the register?
No. Anyone with edit access can toggle the lock. Version history depth depends on the plan. Keep AuditEvents for named decisions.
Did Flowgrammer publish a live Notion template?
No. The pack ships as a downloadable spec and CSV set. A live Duplicate-as-template URL would be named only after an account-side publish is verified.
Should we use automations to post or pay?
No. Automations are optional later and stay out of v1 financial writes. Most automation types need a paid plan. Do not attach an automation that posts or pays.
When is a Notion tracker no longer enough?
When intake has more than one channel, when approval needs a protected audit trail, or when an approved page must create an accounting draft without retyping.