Add vendors to vendor master
Who does this: Bookkeeper · Senior Accountant · Platform Admin When: Onboarding a new bookkeeping client, a recurring vendor keeps landing as
UNCLASSIFIEDor on the wrong account, or the client adds a new regular supplier Result: A row in the client's vendor master that turns OCR'd vendor name → account code + tax code, producingHIGHconfidence journal entries with no human review needed.
The vendor master is the highest-priority match in the classification engine. When a document lands and the OCR pulls out a vendor name, the engine first looks for an exact match (or alias hit) in this client's vendor master. If it finds one with a default account code, the engine produces a HIGH confidence entry and skips keyword and category inference entirely. This is the single biggest lever you have for reducing manual review — every vendor row you add converts a recurring stream of low-confidence drafts into auto-approved entries.
Before you start
- [ ] The client exists with Bookkeeping enabled.
- [ ] The chart of accounts is configured — vendor rows reference an account code, so the account must already exist.
- [ ] You have a list of the client's regular vendors — the top 20-50 they pay every month: landlord, utilities, recurring SaaS, key suppliers. The long-tail one-off vendors don't justify a master row; let those go through keyword classification.
- [ ] You know the default tax code convention for your jurisdiction. Singapore:
SRfor standard-rated,ZRfor zero-rated,EXEMPTfor exempt supplies.
Steps
- Open Clients in the staff dashboard sidebar and click into your client.
- Open the Vendor master tab on the client detail page.
- Choose your path:
Bulk CSV upload (recommended for onboarding)
- Click Upload CSV in the top right of the Vendor master panel.
- Download the template — required columns:
name,defaultAccountCode,defaultTaxCode, optionalaliases(semicolon-separated),taxRegistrationNumber. - Drag the CSV into the dialog, click Validate, fix any row errors, then Import.
Add a single vendor
- Click Add vendor in the top right.
- Fill in:
- Vendor name — exactly the string you expect OCR to read off the document. Trailing legal suffixes matter — e.g. DBS Bank Ltd and DBS BANK LIMITED will not match each other; add aliases for variants.
- Aliases (optional) — alternate strings the same vendor appears under. Each is matched independently.
- Default account code — pick from the chart-of-accounts dropdown. This is the account every entry from this vendor lands on.
- Default tax code — e.g.
SR,ZR,EXEMPT. Falls through to the chart-of-accounts row'staxCodeDefaultif not set. - Tax registration number (optional) — the vendor's GST/UEN/equivalent. Useful for the audit trail and for downstream upload-file generation.
- Click Save.
Edit or deactivate a vendor
Open the row, click Edit. Change the default account code (e.g. you've decided rent should book to a different cost centre going forward) or untick Active to stop the engine consulting this row on new documents. Existing journal entries that reference this vendor are preserved.
TIP
One vendor, two name variants — add both. If the same vendor shows up on receipts as DBS Bank and on invoices as DBS Bank Ltd, the safest approach is two rows pointing at the same account. Aliases work too, but a separate row is more visible to the next reviewer who maintains the list.
IMPORTANT
Match is exact (case-insensitive, leading/trailing whitespace trimmed). The engine does not fuzzy-match — Singtel will not match Singtel Mobile Pte Ltd. If OCR outputs both forms across documents from the same vendor, you need both as rows or aliases.
How to know it worked
- The Vendor master tab lists every active row with name, default account, default tax code, and the date last updated.
- The activity log shows
bookkeeping.vendor_master.entry_created(single add) orbookkeeping.vendor_master.imported(bulk). - Drop a test document from this vendor — via Upload a document manually — and check the resulting journal entry. If the row is wired correctly the entry shows HIGH confidence and the chosen account.
Common situations
| If you see… | It means… | What to do |
|---|---|---|
| Same vendor with two name spellings | OCR is producing both forms across documents | Add both as rows, or add the second as an alias on the first |
Vendor row exists but new entries still land as UNCLASSIFIED | OCR is reading a string that doesn't match the vendor name (whitespace, punctuation, abbreviation) | Open the document detail, look at the extracted vendor name field, copy that exact string into a new alias |
| Vendor matches but lands on the wrong account | The defaultAccountCode on the row points at an outdated chart-of-accounts entry | Edit the row, pick the correct account, save — only future drafts pick up the change |
| A row was added but doesn't show up in the dropdown when adding | The vendor's defaultAccountCode references an inactive or deleted chart-of-accounts entry | First reactivate or recreate the chart-of-accounts row, then revisit the vendor |
Related runbooks
- Configure chart of accounts and keyword triggers — Priority 2 fallback, runs only when no vendor matches
- Vendor-master match isn't firing — diagnostic flow when documents bypass an existing row
- Review a journal batch — where you'll see the confidence label per entry
- Bookkeeping SOP §4.2 — the full classification priority order