User Guide

WiseEntry

Invoices in. CSV out.

01What WiseEntry does

WiseEntry turns scanned invoice PDFs into a clean CSV ready for most accounting and bookkeeping applications that import invoices from a .csv file.

Drop a folder of invoice PDFs in. WiseEntry reads each one with Claude, pulls out the vendor, invoice number, dates, totals, and line items, applies your saved coding rules, lets you review and fix anything that looks off, and writes a CSV right back into the same folder.

The shape of it

Four stages: FolderExtractReviewExport. You can step backward through them at any time.

02First-run setup

The first time you open WiseEntry, you'll do three things. After that, it remembers.

1. Set your API key

WiseEntry uses your own Anthropic API key. You'll see a gold-bordered welcome panel asking for it — paste your key (it starts with sk-ant-) and pick a passphrase.

The key is encrypted with your passphrase using AES-GCM and stored only on this device. You'll type the passphrase once per session to unlock it.

Don't have an API key?

Get one at console.anthropic.com. WiseEntry uses Claude Sonnet 4.6, which costs about $0.01–$0.03 per invoice depending on length.

2. Pick your app-config folder

Pick a folder anywhere on your computer. WiseEntry stores its CSV template (wiseentry.csv) and rules backups here. You'll only do this once — it's remembered.

Suggested location

~/Documents/WiseEntry/ works well. Make a fresh empty folder for it; WiseEntry will populate it on first run.

3. Pick today's work folder

This is the folder of invoice PDFs you want to process today. WiseEntry reads PDFs from it and writes the CSV back to the same place. Originals are never modified.

Browser support

WiseEntry needs the File System Access API. Use a recent Chrome, Edge, or Brave. Safari and Firefox don't yet support folder access from the browser.

03Your daily workflow

  1. Open WiseEntry. If you closed it after the last batch, you'll just need to type your passphrase to unlock the API key.
  2. Pick the work folder for this batch. WiseEntry scans it for PDFs and shows them as a queue with thumbnails.
  3. Hit “Extract all”. WiseEntry sends each PDF to Claude one at a time. Watch the progress bar — each invoice usually takes 5–15 seconds.
  4. Review the table. Anything missing or unusual is flagged. Click into any row to see the PDF side-by-side with the extracted fields. Edit anything by clicking on it.
  5. Code uncoded vendors. If a vendor doesn't match an existing rule, you'll see them in the “uncoded” count. Click Code uncoded vendors to walk through them one at a time.
  6. Export. Pick a filename (auto-suggested with a timestamp), click export, and you'll have a CSV in your work folder.
Realistic batch time

20 invoices ≈ 5 minutes start to finish, including a quick review pass. Most of that's wall-clock time on the extraction; the human work is just glancing at flagged rows.

04Vendor rules

A rule is a stored coding decision: “when this vendor appears, use this Default GL and Default property”. This is where most time savings come from. Once a vendor is coded correctly, future invoices can code themselves.

Rules vs GL accounts (mental model)

  • Rule = the matching logic (which vendor this applies to) + coding defaults.
  • GL account = the account value you want in the exported gl_code column.
  • Property code = the value you want in exported property_code.
  • Rule match first, then export mapping — rules decide values; the CSV template writes them to columns (see CSV template).
Think in two questions

(1) How do I recognize this vendor? (Vendor match) and (2) What coding do I want by default? (Default GL + Default property + optional detail rules).

When to create a rule

  • Create a rule the first time you code a vendor you expect to see again.
  • Use summary mode for single-code vendors (utilities, flat-fee services).
  • Use detail mode when one invoice can contain multiple categories that need different GL codes.

Matching strategy in Settings

Rules apply automatically after extraction. You can tune matching strictness in Settings:

  • Exact — case-sensitive equality. Strict.
  • Normalized (default) — case-insensitive, ignores suffixes like LLC, Inc, Co.
  • Fuzzy — similarity above threshold (default 0.85), useful for slight OCR/name variation.

Add rule form: every field explained

Vendor match

Text used to identify invoices from this vendor. Be specific enough to avoid collisions.

  • Good: CITY OF BAYTOWN UTILITY SERVICES
  • Good: ACME PLUMBING
  • Risky: CITY (too broad, can match unrelated vendors)

Default GL

Fallback GL code for the rule. In detail mode, this is used when no line-item keyword rule matches.

  • Example: 6000 for general repairs
  • Example: 6300 for utilities
  • Risky: leaving it blank unless your downstream process intentionally fills it later

Default property

Fallback property code. Line-item rules can override it, but blank property values in detail lines fall back here.

  • Example: 302 Red Bud
  • Example: HOU-001
  • Risky: using a temporary code you forget to update later

Tax GL

GL code used for emitted tax rows in detail mode. If blank, WiseEntry falls back to Default GL.

  • Example: 2200-SALESTAX when tax should post separately
  • Example: 6000 when tax should roll into same account
  • Risky: assuming tax splits automatically without verifying your accounting policy

Emit distribution lines

Switches between summary vs detail export behavior.

  • Off (summary mode): one row per invoice
  • On (detail mode): one row per non-zero line item, plus tax rows
  • Typical use: On for mixed repair/trade invoices, Off for simple monthly bills

Line-item keywords (easy) / JSON (advanced)

Keyword rules that map line descriptions to specific GL/property combinations in detail mode.

  • Easy mode examples: truck, sewer, recycle (one per line or comma-separated)
  • Good: specific words tied to distinct coding outcomes
  • Risky: generic terms like service that match too many lines

Note

Internal reminder only. This does not affect matching or export behavior.

  • Example: Use this for invoices after 2026 contract update.
  • Example: Vendor changed format in Q3; watch for OCR misses.

Summary mode vs detail mode

Use summary mode when one invoice should land on one coding line. Use detail mode when one invoice has multiple meaningful charge types that must post to different GLs.

Practical setup recipes

Rules setup video walkthrough

Use the player's built-in controls for playback and volume. For all downloadable reference files, see WiseEntry Resources.

Recipe 1: single-code utility vendor

Input invoice pattern: monthly utility bill, one total you post to one GL/property.

Rule setup: Vendor match = utility vendor name, Default GL = utility GL, Default property = property code, Emit distribution lines = Off.

Expected CSV effect: one exported row per invoice with stable gl_code and property_code.

Recipe 2: multi-line maintenance vendor (detail mode)

Input invoice pattern: invoice contains labor, trip charge, materials, and tax.

Rule setup: Emit distribution lines = On, set Default GL/Default property, add keywords for line-item overrides, optionally set Tax GL.

Expected CSV effect: multiple rows from one invoice, each line carrying its mapped coding.

Recipe 3: vendor name variants

Input invoice pattern: same vendor appears as ACME PLUMBING LLC, Acme Plumbing Inc., or with punctuation noise.

Rule setup: use a stable Vendor match string and keep matching strategy at Normalized (or Fuzzy if OCR is messy).

Expected CSV effect: all variants map to one consistent coding rule.

Recipe 4: tax handling split vs combined

Input invoice pattern: invoices with explicit sales tax lines.

Rule setup: in detail mode, set Tax GL to dedicated tax account if needed; otherwise leave it to inherit Default GL.

Expected CSV effect: tax rows post either separately or with operating charges based on your setup.

Common mistakes and fixes

  • Wrong vendor matched: make Vendor match more specific, lower fuzzy usage, or switch to Normalized/Exact.
  • Blank GL or property on export: verify Default GL/Default property are filled and confirm your template includes gl_code and property_code columns.
  • Too many detail rows: turn off Emit distribution lines for that vendor, or tighten line-item keywords.
  • Tax posted to wrong account: set Tax GL explicitly for detail-mode vendors.
  • Rule not triggering after import: review vendor text normalization and confirm matching strategy in Settings.
Where to verify outcomes

Use Reviewing & editing to fix one-off extraction issues, CSV template to confirm column names, and Exporting to validate uncoded warnings before final CSV output.

Adding rules two ways

Either click Rules in the top bar to add them manually, or let WiseEntry capture them in the uncoded walkthrough: the “Remember this for [vendor]” option is on by default.

Backup & restore

From the Rules editor, Export rules… downloads JSON. Import rules… restores from JSON (replace or merge). Files from earlier WiseITOC exports are supported.

05The CSV template

The shape of the output CSV is defined by wiseentry.csv in your app-config folder. The first row is the header — that's what WiseEntry uses to figure out what each column means. Edit this file directly when you need a different column order or extra columns.

Recognized column names

These header names map to extracted fields automatically (case-insensitive, punctuation-flexible):

vendor_name      → vendor
invoice_number   → invoice ID
invoice_date     → invoice issue date
due_date         → payment due date
property_code    → from the rule
gl_code          → from the rule
description      → first line item or "Invoice #..."
amount           → total
tax_amount       → tax (if broken out)
currency         → ISO 4217 (USD, EUR, ...)
notes            → blank by default
Custom columns are fine

Any header WiseEntry doesn't recognize gets emitted as an empty column on every row. Add static fields, post-import flags, batch IDs — anything you need. Fill them in after import or in your spreadsheet.

If wiseentry.csv doesn't exist

WiseEntry creates it for you the first time you export, with a sensible default schema and three example rows. Open it in your spreadsheet of choice, change column order, add or remove columns, save it back. The example rows are ignored on read.

06Reviewing & editing

The review table shows one row per extracted invoice. Click any row to open the card view: PDF on the left, fields on the right. Use and to flip through, or Esc to come back.

Editing fields

In the table, double-click any cell to edit it. In the card view, single-click any field. Enter commits, Esc cancels. Edits are saved immediately and survive across sessions (until you change folders or delete the batch).

What gets flagged

A row is marked “needs attention” if any of these are missing: vendor name, invoice number, invoice date, total amount. You can still export — flagged rows just appear with empty cells in the CSV.

Always glance at flagged rows

The model is good but not perfect. Handwritten amounts, faded scans, and unusual layouts are the most common causes of misses. The flag isn't a verdict — it's a “please double-check this one.”

07Exporting

The export stage shows the columns from your wiseentry.csv template (mapped fields in gold, custom columns with a ?) and lets you pick a filename. Default is invoices-YYYYMMDD-HHMM.csv — adjust the prefix in Settings.

This export format is designed to be flexible, so it works with most accounting and bookkeeping systems that support invoice CSV import.

Hit Export. The file is written to your work folder. You'll see a green confirmation panel.

Excel and Unicode

If your invoices contain accented characters and you open the CSV in Excel, turn on Prepend UTF-8 BOM in Settings. Without it, Excel can mangle non-ASCII text.

08Your API key, explained

WiseEntry uses your own Anthropic API key. The key is sent directly from your browser to api.anthropic.com. It never goes to FlexMystic's servers — there are no FlexMystic servers in this loop. The HostGator URL just hosts the static files; the moment the page loads, every API call is browser-to-Anthropic.

How encryption works

When you set up your key, you choose a passphrase. WiseEntry derives an AES-GCM encryption key from your passphrase using PBKDF2 with 250,000 iterations, encrypts the API key, and stores the ciphertext in your browser's local storage. The plaintext key is never persisted — it lives only in memory for the duration of your session.

Three states you'll see

  • Setup — first run only. Gold-bordered welcome.
  • Unlock — slim navy strip when you return. Type your passphrase.
  • Active — green-tinted strip showing your key (masked) is unlocked for this session.

Buttons in the active state

  • Change passphrase — re-encrypt with a new passphrase. Need the old one to do it.
  • Lock — drop the key from memory. Useful if you're stepping away.
  • Forget on this device — wipe the encrypted blob entirely. You'll have to paste your key again next time.

09Reference resources

Need training/support materials? Open the full resources page here: WiseEntry Resources.

WiseEntry is intended to support most accounting and bookkeeping applications that import invoice data from a .csv file.

Workflow image preview

WiseEntry workflow image

Workflow demo video (with volume control)

Use the player's built-in controls for playback and volume. On some devices/browsers, volume behavior may be OS-managed.

Open the Data Blueprint PDF

10Troubleshooting

“Browser not supported”

You're on Safari or Firefox. Switch to Chrome, Edge, or Brave for the work. WiseEntry needs showDirectoryPicker(), which only Chromium-family browsers ship.

The folder picker doesn't open

Make sure you're on https://, not http://. The File System Access API requires HTTPS. WiseEntry's .htaccess redirects HTTP to HTTPS automatically — if you somehow got past that, try the URL with https:// explicitly.

“Permission denied” on the work folder

The browser's permission to access your folder expires after a while. Click the folder name in the path bar to re-pick it. The app remembers which folder you chose, but the permission grant doesn't persist forever.

Extraction fails on a specific invoice

Common causes: PDF is password-protected, scan is too low-resolution, the file is huge (over ~30 MB). Click Retry on the failed row. If it keeps failing, open the PDF directly to check it's readable, then re-add a fresh copy.

“Incorrect passphrase”

Try again carefully — the passphrase is case-sensitive. If you've genuinely forgotten it, click Reset on the unlock panel; this wipes the encrypted blob, and you'll paste your API key fresh and pick a new passphrase.

Your accounting app rejected the CSV

Most often it's column names. Open wiseentry.csv in your app-config folder and edit the header row to match exactly what your target accounting/bookkeeping import expects. Save the file, then re-run export.

The page looks broken / blank

Usually a stale cached version after an update. Hard-refresh: Ctrl+Shift+R on Windows/Linux, Cmd+Shift+R on Mac.

11Privacy & data

WiseEntry is a single-user, BYO-key tool. Here's where every piece of data lives:

  • PDFs — never uploaded anywhere by WiseEntry except direct to Anthropic for extraction. Never shared with FlexMystic. Never persisted by WiseEntry beyond the session.
  • Extracted JSON — saved in your browser's IndexedDB so you can come back to a batch later. Tied to the work folder name. Cleared when you click Clear all data in Settings.
  • API key — encrypted with your passphrase, stored in your browser's local storage. Never transmitted anywhere except to api.anthropic.com as the auth header on each extraction call.
  • Vendor rules — IndexedDB, exportable as JSON.
  • The CSV template — a real file in your app-config folder. You own it; edit it freely.

To wipe everything WiseEntry has stored on this device, open Settings → StorageClear all data on this device. Files in your work folders are not touched.