Back

How receipt matching works

Every business expense leaves two traces: a line on your bank or card statement, and a receipt or invoice that explains it. Your books need both, linked together. Linking them by hand is the part of the month most people put off.

Mintas does most of that linking for you. It reads each receipt, searches your bank transactions for the one it belongs to, and suggests the match with a confidence score. You confirm or decline. This article explains what it looks at, in plain words, so you know when to trust a suggestion and how to get better ones.

This is general information, not tax or accounting advice. Check with a professional about the records your business needs to keep.

The problem: reconciliation in plain words

Reconciliation means comparing your records with the bank’s and explaining every difference. It has two halves. One is making sure your balance matches the bank statement, which is part of a monthly close. The other is making sure each expense has a document behind it. A statement line shows an amount, a date and a short name. The receipt shows what you bought and from whom, which is what the IRS or CRA wants to see. Keeping receipts the IRS and CRA will accept covers what a valid record looks like.

The two rarely line up perfectly:

  • Names differ. The receipt says “Eleven Labs Inc.” and the statement says “ELEVENLABS”.
  • Dates differ. A card charge often posts a day or more after you paid. For a posted transaction, Plaid reports the date it posted.
  • Amounts differ. A tip added after you signed, or a receipt that shows the subtotal instead of the total.
  • Currencies differ. The receipt is in euros and your card was charged in dollars.

Matching is the job of deciding, despite all that, which transaction a receipt belongs to.

Step 1: The receipt comes in

Every workspace has its own inbox address (inbox+id@mintas.co). You can forward receipts there, connect Gmail (Mintas reads only emails with PDF attachments), upload files, or drop them in Slack. If a sender keeps sending things that are not receipts, block the sender or the whole domain.

Step 2: Claude reads it

Mintas sends the file to Claude, Anthropic’s AI model, which can read both the text and the visual layout of a PDF or photo. Claude fills in a fixed set of fields:

  • Vendor name, and the vendor’s website when it is printed
  • Date
  • Total and currency
  • Tax amount and rate
  • Document type: receipt, invoice or other
  • Invoice number, when there is one

Mintas tells Claude your business name, so on an invoice addressed to you it does not mistake you for the vendor. If key fields such as the total, currency, vendor or date come back missing, a second Claude model re-reads those fields. If the file is not a financial document at all, such as a contract or a newsletter, Mintas marks it as a document and skips matching.

Step 3: Finding candidates

Mintas then looks through your transactions for candidates. It only considers transactions that:

  • Have posted. Plaid notes that a pending transaction’s name, amount and other details may change before it settles, so Mintas waits for the posted version.
  • Fall inside a date window. For a receipt, that runs from 90 days before the receipt date to 30 days after. For an invoice you have to pay, it reaches about four months ahead, because payment often follows Net 30, 60 or 90 terms.
  • Do not already have a receipt attached.
  • Look plausible. The amount is within 25% in the same currency, or the vendor name is similar.

If nothing fits yet, the receipt waits. Matching runs again whenever new transactions sync, so a receipt that arrives before the charge posts still gets a suggestion later. A receipt with no match after 90 days is marked “No match”.

Step 4: Scoring each candidate

Each candidate gets a score from four signals.

Signal What Mintas compares Weight
Amount Receipt total against the transaction amount About half
Date Receipt date against the posting date About a quarter
Vendor name Receipt vendor against the merchant and description About a sixth
Currency Whether both are in the same currency The rest

Amount. An exact match scores highest. A gap of 1% or 2% still scores high, and 5% fairly well. At 10% the amount counts for less, at 20% for little, and beyond that for nothing.

Date. Mintas assumes the bank shows a charge a few days after it happens. A charge that posts within about ten days of the receipt date scores well. Receipts often arrive late, so a charge that posted weeks before the receipt date still counts, with a lower score the further apart the two are.

Vendor name. Mintas ignores capital letters, punctuation, accents and endings like Inc, LLC, Ltd and Corp. Then it checks for shared words, one name inside the other, the same first word, and names that match once the spaces are removed, which is how “Eleven Labs” finds “ELEVENLABS”. An invoice number or website name that shows up in the bank description counts as a strong match.

Currency. The same currency adds to the score. When the currencies differ, Mintas compares the two amounts loosely instead of converting one into the other. If the vendor name is a strong match, it also gives the date more weight than usual, which helps tell one month’s subscription charge from the next.

A few rules sit on top of the weights:

  • An exact amount with a reasonable name and a close date scores at least 92%, unless you have declined that vendor pairing before.
  • No name match at all cuts the score nearly in half.
  • A date far from the receipt cuts it by about a third.

Mintas only suggests a match at 60% confidence or higher, and shows you the score.

A worked example

You buy a $45.00 software subscription on September 3. The emailed receipt says “Figma, Inc.” Two days later, a $45.00 charge from “FIGMA” posts on your card.

  • Name: with “Inc.” dropped, both read “figma”, a full match.
  • Amount: identical, to the cent.
  • Date: two days apart, inside the normal range.
  • Currency: both in US dollars.

The score comes out at about 96%. You see the suggestion, check it, and confirm.

Now take a receipt from a Berlin coworking space, “Studio Nord GmbH”, for €120 on September 10. Two days later, your US card shows a $134.20 charge from “STUDIO NORD BERLIN”. The amounts are about 10% apart, so the amount signal is weak. The vendor name is a strong match and the dates are close, so the score comes out at about 65%: over the 60% line, with little room to spare. When the gap is wider, as it usually is between US and Canadian dollars, the score can fall below 60% and no suggestion appears, so you match the receipt yourself. Cross-currency receipts are the ones most likely to need your help.

How Mintas learns your vendors

Some vendors show up on statements under a name that looks nothing like their receipt, such as a payment processor’s prefix or a parent company. Each time you confirm a match, Mintas remembers the pairing of the receipt’s vendor name and the statement’s name. Once you have confirmed the same pairing twice in the past six months, Mintas treats those two names as the same vendor, even if they share no words.

Declines teach it too. Decline a suggestion and Mintas will not offer that same transaction for that receipt again. If you keep declining the same vendor pairing, future scores for that pairing drop, and older declines count less than recent ones. Mintas also adjusts how picky it is for your workspace, based on how your suggestions went over the last 90 days, but it never goes below 60%.

Why you still review every match

A score is a likelihood, not proof. The usual traps:

  • Repeat charges. Two $20 charges from the same vendor in one month look alike.
  • Round numbers. A $100 receipt can sit near several $100 transactions.
  • A misread. A faint photo can give the wrong total or date.
  • Mixed payments. One receipt paid with two cards, or one charge covering two receipts.

Each review takes seconds: the suggestion shows the transaction and the confidence score, and you confirm or decline. If the suggestion is wrong, you can pick the right transaction yourself.

Tips for better matches

  1. Send the receipt with the final total. Amount is the biggest signal, so the total should include tax and tip.
  2. Use clean files. An original PDF or a flat, well-lit photo reads more reliably than a blurry one.
  3. Send receipts soon. Matching looks back 90 days from the receipt date.
  4. Answer suggestions. Confirming and declining is how Mintas learns your vendors.
  5. Give pending charges time. A restaurant tip or a hotel hold can change the amount before it posts.
  6. Check foreign-currency receipts yourself. Look at any that stay unmatched and match them by hand.
  7. Block the noise. Newsletters and shipping notices in your inbox only slow things down.

How Mintas helps

  • Receipts arrive by your inbox address, Gmail, upload or Slack, and Claude reads the vendor, date, total, currency, tax and document type.
  • Mintas suggests the matching bank transaction, including across currencies, with a confidence score.
  • It learns how your vendors appear on statements from the matches you confirm and decline.
  • You review every match, and matched receipts travel with your transactions when you export them for your accountant.

Sources

Related posts