MosoFin · Cash application, in plain words

A customer paid us. Which invoices does that money settle?

Money arrives in your bank from customers. Somebody must decide which invoices each payment pays. This skill does the matching. It finds out why a payment is short, and it drafts the entry for a person to post.

The 20-second version

You give it the payments, from your books or from a file. It reads your open invoices. It finds the invoice that each payment pays, and it records how sure each match is. It explains each short or extra amount, or it keeps that amount open. It drafts the entry, with each part on its own line. It never posts anything and never changes your books.

What a run finds

Six payments into Northbrook Trading, 1 to 9 October

Northbrook Trading sends invoices to its customers and works in US dollars. On Wednesday 30 September 2026, its customers owed it money on six invoices, and Lakeside Freight had a credit of 1,200. Since then, Northbrook sent two new invoices. On Friday 9 October, the owner uploads the bank's deposit list for 1 to 9 October. That file has 6 payments, for a total of 58,997.00.

A bank line often shows a short, upper-case version of the payer's name. The skill compares that name with your customer list, and it gives each pair a similarity score from 0 to 1. It accepts a name only at 0.85 or more. The skill does not say how to calculate the score. This example uses one common text measure.

#DateName on the bank lineAmountNote with the paymentBest name scoreWhat the skill does
P1Fri 2 OctHARBOR RETAIL GRP20,500.00None0.867Harbor Retail. Two invoices: 8,500 + 12,000 = 20,500
P2Mon 5 OctCRESTLINE FOODS LLC6,272.00"INV-0901 6,400.00 less 2% prompt-payment discount 128.00"0.882Crestline Foods, INV-0901. The 128 discount was late, so 128 stays open
P3Tue 6 OctLAKESIDE FRT INC3,775.00Reference INV-1032. Note: "5,000.00 less CM-0044 1,200.00 = 3,800.00"0.750Lakeside Freight, INV-1032, by the reference. The credit and a 25 bank fee explain the gap
P4Wed 7 OctACH CREDIT 44713,300.00None0.417Two customers have an open 3,300 invoice. The skill does not choose. It holds the money
P5Thu 8 OctPINNACLE CLINICS24,200.00Reference INV-10101.000Already in your books. The skill moves it to the review list and drafts no new entry
P6Fri 9 OctJ MORALES950.00None0.364No customer, reference or amount fits. The skill holds it for research
File total58,997.0020,500 + 6,272 + 3,775 + 3,300 + 24,200 + 950
Example figures for a made-up company, in dollars. The scores come from one common text measure that this example chose. A note with the payment is a remittance advice: the customer's note that says which invoices it pays.

Before the skill matches, it compares each row in the file with the payments already in your books. P5 has the same payer, amount, date and reference as a payment that a bank-feed rule recorded on Thursday 8 October. So the skill moves P5 to the review list, and the output reports that 1 row moved. A second entry would reduce what Pinnacle owes twice and count the cash twice. The skill processes the other 5 payments: 58,997 − 24,200 = 34,797.00.

How it decides

Six levels of match, from sure to not known

The skill tries the most certain test first. It stops at the first level that fits, and it records that level for each payment. A match on the invoice number and a guess from the amount are different claims, and the output shows which one you have.

First: already in your books? P5 Pinnacle 24,200: moved to review, no new entry 1 · A reference names the invoice P2 Crestline 6,272 → INV-0901 P3 Lakeside 3,775 → INV-1032 2 · Name and amount fit one invoice No payment this week 3 · Name and amount fit a group P1 Harbor 20,500 → INV-0950 + INV-1001 8,500 + 12,000, oldest first, with your approval 4 · Name fits, amount does not No payment this week 5 · Amount fits two customers P4 3,300 → Acme or Crestline? Held. The skill asks both customers for a note 6 · Nothing fits P6 J MORALES 950 → not known Held for research. It is not sales
The levels are the skill's own order. Green levels apply the payment to invoices. Amber levels hold the money as unapplied cash until a person finds the answer.

The note with the payment helps more than anything else. The skill calls it the single biggest driver of match quality. In the US, an ACH payment can carry the invoice numbers in its record. A Federal Reserve service turns that data into a report, so the receiver can match payments to open invoices1. Without a note, the skill must use the name and the amount. P1, P4 and P6 came with no note.

Harbor's 20,500 fits no single invoice, but it fits the sum of Harbor's two open invoices. The skill checks for other groups that give the same sum, and Harbor has only this one. You chose oldest first at intake, so INV-0950 (due Saturday 1 August) comes before INV-1001 (due Tuesday 15 September). The skill shows the group and waits for your approval.

Lakeside's bank name scores 0.750, under the 0.85 limit, so the skill does not accept the name. The match rests on the reference INV-1032. The skill shows "LAKESIDE FRT INC" as a possible other name for Lakeside Freight, for your approval. The skill does not say which test wins when a reference meets a low name score. This handling is the example's choice.

The mistake it catches

The quiet errors in a quick match

A quick match makes the bank file disappear from the to-do list. But each guess changes what a customer seems to owe you. The skill finds four of those guesses in Northbrook's week.

What the skill does

Each difference gets a cause, or it stays open
P5 Pinnacle, already recordedno new entry
Crestline's late discount$128 open
Lakeside's wire fee$25 own line
P4, two possible customers$3,300 held
Pinnacle's balance changes once. Crestline still owes 128, and collections follows it. The fee shows as a cost. Nobody's balance changes on a guess.

The common shortcut

Enter every row, and make each gap disappear
P5 Pinnacle, entered again+$24,200 cash
Crestline's 128booked as discount
Lakeside's 25hidden in cash
P4 3,300on a guess
The books show 24,200 of cash that never arrived. Crestline keeps a discount that its terms did not allow. Acme or Crestline shows as paid, and nobody knows which one paid.

Crestline's invoice INV-0901 had the terms 2/10, net 30. Under those terms, the customer can take 2% off if it pays within 10 days of the invoice date. If not, the full amount is due in 30 days2. Northbrook dated the invoice Thursday 21 May, so the discount period ended on Sunday 31 May. Crestline paid on Monday 5 October, 127 days later.

So the skill treats the 128 as a deduction that the terms did not allow. It applies the 6,272, keeps 6,400 − 6,272 = 128 open and flags it for collections. It does not book the 128 as a discount. The skill also matched on the open balance of 6,400, because Crestline already paid 3,600 of the original 10,000.

Lakeside sent 3,775, but INV-1032 is for 5,000. That is 1,225 short. The skill checks the credits first: Lakeside's credit CM-0044 explains 1,200. The note says that Lakeside sent 3,800, and the bank credited 3,775. A bank in the middle of the wire kept 3,800 − 3,775 = 25. The skill drafts that 25 as a bank fee, on its own line. Without the note, the 25 can look like a customer dispute.

Kept from a second entry$24,200P5 Pinnacle, already in your books
Still owed$128Crestline. 2% of 6,400, taken 127 days late
Fee on its own line$253,800 sent − 3,775 received
Held, not guessed$4,2503,300 (P4) + 950 (P6)

Your tolerance decides what counts as short. Northbrook chose $5 for each payment. The skill does not say if the tolerance is for each payment or for each invoice, so this example chose. Both 128 and 25 are more than 5, so the skill looks for a cause for each one.

The entry and the tie-out

A draft entry that balances, and a difference of $0.00

The skill drafts one entry for each payment, for you to post. It uses the account names from your own chart of accounts. Each part has its own line, so a fee or a discount stays visible. DR means debit and CR means credit.

PaymentAccountDRCRFor
P1 HarborBusiness Checking20,500The payment
Accounts Receivable (A/R)20,500INV-0950 8,500 and INV-1001 12,000
P2 CrestlineBusiness Checking6,272The payment
Accounts Receivable (A/R)6,272INV-0901. 128 stays open
P3 LakesideBusiness Checking3,775The payment
Bank Service Charges25The wire fee, on its own line
Accounts Receivable (A/R)3,800INV-1032. The skill also applies the 1,200 credit, with no new line
P4Business Checking3,300The payment
Unapplied Cash3,300Held until a note arrives
P6Business Checking950The payment
Unapplied Cash950Held for research
Total34,82234,82234,797 + 25 = 30,572 + 4,250
Example account names. The skill reads the real names from your chart of accounts and says which ones it chose. Lakeside's credit memo already reduced A/R when Northbrook issued it, so its use needs no new line. The skill has no entry for a level-5 payment that waits for a note. Unapplied Cash for P4 is this example's choice.

Then the skill checks that every dollar has a place. Start with what went to invoices. Subtract discounts, fees and tax withheld, and add or subtract any currency difference. Add customer credit and unapplied cash. The result must equal the total of the payments. The skill shows the difference even when it is zero.

Payments applied$34,7975 payments. P5 is out
To invoices$30,57220,500 + 6,272 + 3,800
Tie-out$34,79730,572 − 0 − 25 − 0 ± 0 + 0 + 4,250
Difference$0.00Shown, even when it is zero

After you post the drafts, Northbrook's customers owe $21,728: Crestline 128 + 3,300, Summit Hotels 15,000 and Acme Corp 3,300. Harbor, Pinnacle and Lakeside owe nothing. When a note for P4 arrives, the 3,300 clears one of the two 3,300 invoices. Summit sent no payment, so its case and Acme's dispute stay with the collections work.

How a run starts

Seven items, in one message

The skill asks these first, in one short batch. It asks only for what it cannot already see. It reads no data before you answer.

  1. Use MosoFin for this run, or upload the data yourself?
    MosoFin is the connection to your books and the other platforms you link. With it, the skill reads from there. Without it, you upload the files, and the checks are the same. The skill asks this only if your account has the MosoFin tools. If not, it says once that the run is manual.
  2. Which payments: ones already in your books, or a file that is not entered yet? As of which date for the open invoices?
    Required. They are two different jobs. For payments already in your books, the skill checks how someone applied them. The skill first compares a file with the payments already recorded. The output says which job it did.
  3. Do you have notes from customers that say which invoices they paid, and where are they?
    The skill calls these notes the single biggest driver of match quality. Without them, it must use references and names. An amount that fits several customers then stays open.
  4. How much difference do you accept on a short or extra payment, as an amount or a percentage?
    This limit decides what counts as short or extra. The skill never invents one. With no limit, it matches exactly and says so.
  5. Apply payments to the oldest invoice first, or in another order?
    A payment for several invoices and a part payment both depend on the order. The skill asks for your answer. It does not assume.
  6. Did any payment come in a different currency from its invoice? Which exchange rate, from which source?
    Required if the currencies differ. The rate on the payment date decides the exchange gain or loss. The skill never chooses a rate, because no accounting connection gives one.
  7. Does any customer keep back tax from its payments, and in which country?
    Optional. The skill needs it only where a customer withholds tax. The withheld amount is money due to you, until you get the tax certificate. It is not a short payment.

Northbrook's answers: MosoFin, a file not entered yet, open invoices as of 9 October. Notes came for 2 payments, from Crestline as a PDF and from Lakeside by email. The tolerance is $5 for each payment, oldest first. All payments are in US dollars, and no customer withholds tax.

Then the skill reads the plan back and waits for your yes. The skill's own example uses a lockbox file with 38 payments. For Northbrook, this page's version reads like this:

"Applying the 1–9 October deposit listing you uploaded — 6 payments, 58,997.00 — to Northbrook Trading's open invoices as of 9 October, read from your Mosofin connection. Tolerance $5 per payment; oldest invoice first; remittances for 2 of the payments. Shall I go ahead?"
What you need

Connect once, or upload two files

Connected with MosoFin

Say yes, then give it what no ledger holds

  • It reads back the workspace and the company file by name, and waits for your yes
  • It reads every open invoice, with old ones too, from the aging. It tells you the date range that it searched
  • It reads the customer list, payments already recorded, deposits, credit memos, payment terms, accounts and the company's base currency
  • It checks for a connected payment processor. A processor connection splits one bank deposit into sales, fees, refunds and chargebacks
  • You still give it the payment file, the customer notes, any exchange rates and any tax certificates. Also give it any other bank names for a customer that your books do not hold
Uploading instead

Bring the payments and the open invoices

  • Customer payments: a deposit list, lockbox file or processor export, with date, amount, currency, payer name, method and reference. CSV, XLSX or the bank's file, required
  • Open invoices: customer, number, dates, original amount, paid to date, open balance and currency. CSV or XLSX, required
  • Company name and base currency, typed in the chat, required. An exchange rate and its source for each currency, required if the currencies differ
  • Customer notes (remittance advices), as PDF, email or CSV, recommended
  • Customer list with any known bank names, as CSV or XLSX, recommended
  • The order, the tolerance and any tax country, typed in the chat. Tax certificates as PDF

The skill names each file it gets, with the dates, the payment count and the total. It tells you at once if a file is unreadable, or if it is for the wrong dates or the wrong company.

What you get back

Five sheets, from the summary to the coverage

SummaryThe totals that it processed, applied, held and kept open, and the tie-out with its difference. It says which payments it processed and which company files it read.
Payment to invoiceOne row for each payment and invoice, with the amount that it applied and the amount still open. It also shows the match level from 1 to 6 and any name score.
ExceptionsPayments with no known payer, short and extra payments, and amounts that fit more than one customer, each with a next action.
Draft entryThe entry lines, marked as proposals for a person to post.
CoverageFor each task, what it read and with which tool. It also shows what you must supply, because it could not read it.

It asks whether you want the sheets as an Excel file before it makes one. If you say no, you get the same sheets as tables in the chat. It waits until you see and approve the results. Then it offers to save the bank names that you approved, such as "HARBOR RETAIL GRP" for Harbor Retail. It also saves your tolerance, your order and your account names. It never saves bank account numbers, payments, customer balances or note contents.

What it never does

Six rules that never bend

  • Never reads MosoFin without asking. A connected account is not permission to read it.
  • Never reads anything before you answer the intake items and say yes to the read-back.
  • Never writes, updates or deletes anything, in any system. Every application, credit and write-off that it gives you is a proposal for a person to post.
  • Never picks silently. It never accepts a name under the score limit. It reports an amount that fits several customers, or two invoices of the same amount, and does not choose. When several groups of invoices fit, it names the group it chose and the other one.
  • Never absorbs a short or extra payment. A gap with no cause stays open for collections, unless it is inside your tolerance. Then the skill proposes a small adjustment. Extra money is customer credit, never sales, and the skill first checks if the customer paid twice.
  • Never chooses an exchange rate or a company for you, and never invents a tolerance. With no tolerance, it matches exactly and says so. It never applies one company's receipt to another company's invoice.

At Northbrook, the owner asks for four things that the skill does not do:

"Post it all in QuickBooks"

The skill says no once, because it never writes. It gives you the drafts to post.

"Write off Crestline's 128"

No. The 128 is more than the tolerance and has no valid cause, so it stays open for collections. Any write-off is your decision, in your own system.

"Refund the 950"

Refunds belong to the credit memo and refund skill. Also, nobody can refund the 950 until somebody finds out who sent it.

"Does October agree with the bank?"

That question belongs to the bank reconciliation skill. This skill matches payments to invoices.

Words you'll hear

Seven terms, in plain English

Cash application
The decision about which invoices an incoming payment pays.
Remittance advice
The customer's note that says which invoices a payment covers. In the US, an ACH payment can carry it in its record1.
Bank string
The payer's name as the bank shows it: often short, in capitals, and different from the customer's legal name.
Short pay
A payment that is less than the invoice. The cause decides the entry: a discount, a bank fee, tax withheld, a dispute or not known.
Unapplied cash
Money that you received but did not match to an invoice yet. It is not sales.
Customer deposit
Money that arrives before an invoice exists. A payment in advance is a liability until you deliver. Accountants call it unearned revenue3.
FIFO
First in, first out: apply the payment to the oldest invoice first.

The textbook speaks about payments in advance. The skill applies a similar rule to an extra payment: it holds the excess as customer credit and never books it as sales. That rule is the skill's own.

Sources

Where the facts on this page come from

The sources are a Federal Reserve service page and two sections of an accounting textbook. We found each one on 28 October 2026 in search results. We did not open the pages, so follow each link for today's wording. What the skill does comes from the skill's own files.

  1. Federal Reserve Financial Services: FedPayments Reporter Service, corporate accounting reportsThe service turns the remittance data in ACH records, such as invoice numbers, into a readable report. Receivers can use it to match payments to open receivables. This is a US service.
  2. OpenStax: Principles of Accounting, Volume 1, 6.4 Analyze and Record Transactions for the Sale of Merchandise Using the Perpetual Inventory SystemUnder 2/10, n/30, the customer can take 2% off if it pays within 10 days of the invoice date. If not, the full amount is due in 30 days.
  3. OpenStax: Principles of Accounting, Volume 1, 12.1 Identify and Describe Current LiabilitiesAccountants call a customer's payment in advance, for goods or services that the company did not deliver yet, unearned revenue. It is a liability until the company delivers.

No outside authority backs the six match levels, the 0.85 score limit or the table of short-pay causes. The same is true for the 3-day window of the duplicate check, the five sheets and the tie-out. These are the skill's own rules. We made up Northbrook Trading and every figure in the example for this page. All three sources are US sources.

About this skill

This page explains cash-application, from the MosoFin finance skills library, MosoFin/mosofin-finance-skills on GitHub. Read the skill on GitHub → The skill is in the card format on the main branch. It merged in PR #1 on 26 October 2026, and a bookkeeping-audit fix followed on 27 October 2026. This page describes that version. The customers continue from the A/R aging page. Want the worked examples? Learn it step by step →