Complete missing bookkeeping fields on card transactions
Find missing categories, business-purpose memos and receipts on existing card charges, then prepare narrowly scoped updates with an exception ledger.
How this works
Start from transactions that already exist in the expense system. For each one, identify missing category, memo or receipt and either prepare a justified correction or explain why it remains unresolved. This differs from creating a new expense claim from a receipt: transaction IDs and current state are the source of truth.
Use AI for classification suggestions and document interpretation. Apply exact policy checks and record-level guards for updates. An export-and-review workflow is valid when connectors are unavailable; report proposed changes separately from confirmed writes and never infer approval to move money.
Before you start
Coding policy
Confirm permitted categories, memo conventions, receipt requirements and who resolves exceptions.
Data access
Use only the authorized card account and specified receipt mailboxes or files.
Write scope
Identify which fields may be updated under the current task; default to a proposal when scope is absent.
Prepare the inputs
- transactions
- Required
Rows with stable ID, date, merchant, amount, currency and current fields
Record snapshot time; distinguish missing, pending and already complete values.
- categories
- Required
Current valid accounting options and policy
Do not invent a category or use a retired code.
- receipt_sources
- Required
Approved mailbox queries, uploaded files or receipt URLs
Limit retrieval to the named account and period; retain evidence references.
- matching_rules
- Required
Approved date, amount and tip tolerances
No silent tolerance defaults; compare currency before amounts.
Implementation, step by step
Inventory the batch
- Snapshot every transaction ID and its current memo, category and receipt status.
- Partition complete and incomplete records, counting every input exactly once.
Checkpoint: The ledger reconciles to the input count.
Retrieve candidate evidence
- Search the permitted receipt sources by merchant, date and amount.
- Keep candidate documents separate until verified; expired links and login pages are failed retrievals, not receipts.
Checkpoint: Each incomplete charge has candidates or an explicit retrieval exception.
Verify matches
- Compare merchant identity, currency, date and totals with approved tolerances using deterministic arithmetic.
- Treat tips, split payments, refunds and duplicate receipts as separate cases. Hold multiple plausible matches.
Checkpoint: Every proposed attachment has a documented match basis.
Draft field updates
- Choose from current categories using policy and permitted prior examples.
- Write a concise business-purpose memo only from evidence; calendar context alone cannot prove who attended or why the purchase occurred.
Checkpoint: The proposed table distinguishes supported, uncertain and blocked changes.
Apply permitted changes
- If writes are authorized, reread the transaction before each update and touch only still-empty approved fields.
- Use record identifiers, capture the response and inspect current state after an ambiguous result before retrying. Otherwise export the proposal.
Checkpoint: Confirmed updates are separated from proposals and uncertain outcomes.
Reconcile and sample
- Account for every transaction as previously complete, confirmed complete or flagged.
- Open a sample of actual attached receipts, include a deliberately similar wrong-amount example in evaluation, and verify a rerun makes no duplicate changes.
Checkpoint: The owner can audit both changes and omissions.
Decisions along the way
A receipt has a different currency
Hold it unless approved evidence explains the settlement conversion; do not match by a similar number.
Another person completes a field during the run
Keep their value and record a skipped update rather than overwriting it.
A charge has no receipt requirement
Record the policy exception; do not fabricate a document to make the row look complete.
What you will produce
transaction-field-proposals.csv
CSVA limited update plan with explicit exceptions.
Include: transaction_id · field · current_value · proposed_value · evidence · confidence_basis · status
bookkeeping-run.md
MarkdownA reconciled run report, separate from payment approval.
Include: input_count · previously_complete · confirmed_complete · flagged · unknown_outcomes
Check the result
- Reconcile input and terminal-state counts without double counting.
- Verify receipt content rather than filenames alone.
- Confirm writes touched only authorized missing fields.
- Run a duplicate/retry check and inspect ambiguous write outcomes.
When something goes wrong
Receipt link is inaccessible
Keep the transaction flagged and ask for an accessible copy.
Current category options differ from the proposal
Refresh the options and return affected rows to review.
An update times out
Read the transaction state before retrying; report unknown when the state cannot be obtained.
A worked example
SYNTHETIC EXAMPLE · NOT A REPORTED BUSINESS RESULT
Request
Synthetic: complete bookkeeping for three existing card charges.
Inputs
One row is complete. A second lacks a receipt and matches an approved 42 USD document. A third has two plausible receipts with different amounts.
Expected result
Keep the first row unchanged; propose or confirm the second attachment within scope; flag the third. The ledger totals three rows and a rerun creates no duplicate attachment.
Run a small pilot
Start small
Use a small historical batch with duplicates, missing receipts, currency mismatches and concurrent changes.
Record the baseline
Record manual completion time, unresolved rows and incorrect attachments.
Agree success criteria
Require zero unauthorized overwrites and an agreed receipt-match error limit before recurring use.
Stop or revise
Stop writes if transaction identity, current state or matching policy cannot be verified.
Keep the scope clear
- Never approve spend, create charges, issue refunds or release payments through this workflow.
- Do not search personal correspondence beyond the explicit receipt-retrieval scope.
Check before using
Finance confirms coding policy and uncertain matches; completing fields does not approve spending or release payment.
Business activities
- Manage finances and accounting
FROM A RECIPE TO YOUR WORKFLOW
Bring the company context together.
This workflow needs reliable inputs before it needs a better prompt. Moat8 Vault brings working information into a readable archive for the AI tools you use.
For this recipe: Card transaction export · Live accounting categories · Authorized receipt sources · Coding policy
Start with one recurring task, agree which sources to use, and review the first result with your team.
Discuss this workflow