Card-to-Card Booking Deposits Without the Chaos: Matching Receipts to the Bank

For many clinics — especially those with long appointments or expensive treatments — a deposit is the most effective way to make a booking stick. A patient who has paid part of the fee in advance is far less likely to vanish without a word, and if they can't come, they tend to say so earlier. The trouble starts elsewhere: with card-to-card deposits.
In Iran, a card-to-card transfer is the default way to pay a deposit. The patient transfers the money, sends a screenshot of the receipt over a messaging app, the receptionist glances at it on a phone and confirms the booking. At month-end the accountant sits down with the bank statement and discovers several receipts with no deposit behind them, and several deposits in the account that nobody can attribute. This guide shows how to bring order to that flow without making life any harder for the patient.
A receipt photo is not proof of payment
The first principle: a receipt image is only a claim that payment was made. Payment is certain when the deposit appears on the clinic's bank statement. The reasons are simple:
- A receipt image can be edited, and spotting that by eye, at a busy front desk, is not easy.
- One genuine receipt can be sent for two different bookings.
- The money may have gone to another card — an old clinic card, or a number the patient mistyped.
- The amount may be below the required deposit, and nobody notices in the rush.
None of this necessarily involves bad faith. But if your system doesn't distinguish "a receipt arrived" from "the money arrived", sooner or later the cash won't balance, and tracing why can take days.
The right flow, step by step
- Record the receipt. For an online booking, the patient uploads the receipt image themselves. If a receipt arrives through a messaging app, a receptionist records it against that patient and that booking.
- AI reads the receipt. Amount, date and time, tracking number, card digits and name are read from the image, so nobody retypes them and no typing errors creep in.
- Early warnings. If the amount is below the deposit, the destination card isn't the clinic's, or the same receipt has been used before, the system flags it.
- "Unverified" status. The receipt is entered in that day's cash box but labelled unverified. The booking stays reserved, but the money is not yet treated as confirmed income.
- Staff confirmer review. For an online-booking deposit, the responsible staff member gets an SMS, reviews and approves the receipt, and the patient receives an SMS too.
- Import the bank statement. The bank statement is imported as a CSV or Excel file.
- Matching. Each receipt is paired with one bank line, using the rules below.
- Cashier confirmation and voucher. Only once the receipt is matched to the bank and the cashier confirms it is the accounting voucher posted.
This is the flow FaraERP runs for card-to-card deposits. What matters is that every step has a clear owner and no step stands in for the next one: staff approval doesn't replace the bank match, and the bank match doesn't replace the cashier's confirmation.
Rules for matching a receipt to the bank
Matching a deposit receipt to the bank means finding the exact statement line that receipt refers to. FaraERP uses three rules, applied in order of confidence.
1. Tracking number
If the receipt's tracking or reference number appears in the bank transaction description, that is the most reliable match there is: one number, one transaction. Nothing left to argue about.
2. Source card digits plus time
Many statements show part of the payer's card number. If the card digits on the receipt match the bank line and the two timestamps are close, the match can be trusted.
3. Payer name plus time
When there is neither a tracking number nor card digits, the payer's name in the transaction description and the closeness in time can still help. It is a weaker rule — names get abbreviated or spelled differently, or the payment came from a family member's card — so the cashier should look at these matches more carefully.
Why the amount alone is useless
It is tempting to say "the amount matches, so that's the one". But in a clinic where the deposit is a fixed sum, a single day can bring several deposits of exactly the same amount. Matching on amount alone glues one patient's receipt to another patient's money and hides the discrepancy instead of resolving it: a receipt that was never actually paid looks "verified" because someone else paid. That is why amount is a necessary condition in matching, but never sufficient on its own.
| Rule | Confidence | Where it falls short |
|---|---|---|
| Tracking number | High | When the bank leaves it out of the description |
| Card digits and time | Good | When the statement doesn't show card digits |
| Payer name and time | Moderate | Similar or abbreviated names, or payment from someone else's card |
| Amount only | Not acceptable | Any day with several same-amount deposits |
Two lists that should be empty every day
Once the statement is imported, two lists matter more than any report, and FaraERP shows both separately:
- Receipts with no bank match: receipts that were recorded but have no deposit on the statement. Each one either hasn't reached the statement yet, is a mistake, or needs a call to the patient.
- Undeclared deposits: money that arrived in the account with no receipt recorded against it. Usually it's a patient who never sent the receipt, or a receipt sitting on someone's phone that never got entered.
Our operational advice is to tie closing the daily cash box to reviewing these two lists, not to month-end. A discrepancy found the same day is solved with one short phone call; one left for a month often never gets solved at all.
Why the voucher waits for the match
If a voucher is posted the moment a receipt arrives, your books show income that may never have come in. Correcting it later means reversing entries, explaining things to the auditor and ending up with figures nobody fully trusts. The rule "voucher only after bank match and cashier confirmation" asks for a little patience, but it keeps your books and your bank in step at all times.
Separate the duties, even in a small clinic
- Whoever records a receipt should ideally not be the person who approves its match.
- Keep the destination card or account for deposits few and fixed; every extra card makes matching harder.
- Tell patients the deposit amount and refund terms clearly, before they pay.
- Import the bank statement at least once a day, not once a week.
What about an online payment gateway?
A bank gateway removes much of this work, because payment and confirmation happen in the same moment. FaraERP can be connected to the common Iranian gateways, including Saman, Mellat, Parsian, Pasargad, Sadad, AsanPardakht, Sepehr, IranKish, ZarinPal, Zibal, IDPay and PayPing. Even so, many patients are used to card-to-card and not every clinic has a gateway, so a disciplined card-to-card flow is still needed alongside one.
From the patient's side
All of this happens behind the scenes. The patient does what they always do: a card-to-card transfer and a receipt. The difference is that they get a clear SMS saying their deposit has been received and is being checked, and if something is wrong, the clinic calls them that same day with the exact details — not weeks later with "we can't find your receipt". That kind of care is part of treating patients with respect.
Frequently asked questions
Why can't receipts be matched on amount alone?
Because in a clinic with a fixed deposit, a single day brings several same-amount deposits, and amount-only matching attaches one patient's receipt to another patient's money. FaraERP matches by tracking number, card digits plus time, or payer name plus time.
Does FaraERP pick up receipts from WhatsApp automatically?
Not today. For online bookings the patient uploads the receipt, and receipts arriving through a messaging app are recorded by reception; from there, AI reading and bank matching work the same way.
What does an "unverified" receipt mean?
The receipt is recorded in the day's cash box and the booking is held, but its deposit hasn't yet been found on the bank statement. The accounting voucher is only posted after the bank match and the cashier's confirmation.
Can deposits be taken through a bank gateway instead?
FaraERP can be connected to the common Iranian gateways such as Saman, Mellat, Parsian and ZarinPal. Since many patients still prefer card-to-card, the matched card-to-card flow stays available alongside it.