e-Transfer reconciliation
The Sunday evening back.
Interac e-Transfer is how a large share of Canadian clubs are actually paid, and almost every piece of club software treats it as an inconvenience. This page is the long version of what Gympillar does about it, and the one thing it cannot.
Start with what is not possible
No software can collect an Interac e-Transfer for you. There is no consumer Interac API in Canada. Every transfer is initiated by the person sending it, from inside their own bank, and there is no mechanism by which a third party pulls one. Any product implying otherwise is describing card payments and calling them something else.
That is worth saying first because it decides what the rest of this page can honestly claim. The transfer itself is not the work. A parent sending $320 takes thirty seconds and does it without being asked twice. The work is everything that happens after it lands: opening the notification, finding which family it came from, finding what they owed, deciding whether the amount is right, and writing it down somewhere the rest of the club can see.
For one payment that is a minute. For a registration weekend it is an evening, and it is an evening spent on data entry that a spreadsheet cannot check. That job — not the transfer — is what is automatable, and it is the whole of what this does.
How the matching works
Every payment request the club issues carries a short reference code — five unambiguous characters behind a GYM- prefix, with no letters a parent could confuse for digits. It appears on the invoice, in the emailed payment instruction and in the family portal, and the family puts it in the transfer message.
Your bank's deposit notifications are forwarded to an address belonging to your club. Gympillar reads each one, pulls out the amount, the sender and the reference, and then decides what it is looking at.
The ladder, in order
- Reference found, amount matches a payment awaiting funds. Confirmed. The payment settles, the invoice updates, and nobody is asked anything. This is the only rung that resolves without a person.
- Reference found, amount differs. A person, with the expected and received figures side by side. Over- and underpayments are both ordinary and they need opposite responses — one owes a refund, the other a balance.
- No reference, but the amount and the sender's name both point at exactly one payment awaiting funds. A suggestion, pre-filled, that a person confirms with one click. Never an automatic match.
- Anything else. The review queue, with the reason it could not be resolved written out — no pending payment for that amount, or three that share it, or an amount that could not be read at all.
Why nothing matches on amount alone
This is the rule the whole design is built around, and it is a safety mechanism rather than a threshold someone tuned.
On registration day, several families pay the same fee. Two $320 transfers arriving an hour apart are indistinguishable by amount, and a system willing to match on amount alone will confidently credit one family's payment to the other's invoice. Both look settled. The books balance. Nothing is flagged.
The club finds out weeks later, when a child is turned away from a class their parent actually paid for — and by then the club is arguing with a parent about a payment its own software told it had arrived. A row in a review queue costs ten seconds. That conversation costs a family.
So rung three requires the sender's name to corroborate the amount, requires exactly one candidate, and still only produces a suggestion. The name comparison is deliberately loose — "Nguyen" should corroborate "Nguyen Family" — precisely because a human is going to look at it either way.
A notification that cannot be trusted is not evidence
The address deposit notifications arrive at is reachable by anyone who learns it, and an email claiming to be from a bank is trivial to forge. So a notification whose original sender failed SPF or DKIM authentication never confirms anything automatically, however perfectly it matches. It goes to a person, saying exactly that.
Without that check, "your club has been paid" becomes a sentence a stranger can cause your software to believe.
When a bank changes its email template
Every email parser eventually breaks, because the sender redesigns something and tells nobody. Two decisions limit what that costs here.
First, reference detection does not parse any particular bank's "Message:" field. It scans the whole message for the GYM- code, which is distinctive enough to find wherever a template moves it. The most important extraction is therefore the one least exposed to a redesign.
Second, every notification is stored with its original body. When a format changes, the pattern is corrected against the messages that actually failed rather than against a guess, and the club's own history is re-readable. A rising number of unmatched deposits is the signal that something changed upstream, and it is visible rather than silent.
Worth being plain about: these patterns are written from the documented shape of Interac and Canadian bank notifications. They improve against real mail as real mail arrives, which is why raw bodies are kept from the first day rather than added after the first surprise.
What this deliberately does not do
Recurring collection cannot run on e-Transfer. There is no way to pull an Interac transfer — the payer initiates every one — so a club billing monthly this way gets automatic invoicing, not automatic collection. The invoice raises itself, emails itself, and then waits like any other.
If you want money to arrive each month without anyone doing anything, that is monthly card billing, and it is a different feature. We would rather say so here than have you find out in month two.
Reconciliation is also bookkeeping, not custody. Transfers land in your club's own bank account exactly as they always did. Gympillar never touches the money, and there is nothing to route, hold or release.
What a club needs to set it up
- A bank account that sends deposit notification emails — effectively all of them do.
- An address for those notifications to be forwarded to. A club that does not configure one simply does not use this; nothing else changes.
- Payment instructions that carry the reference code, which the invoice email already does.
Autodeposit is worth turning on if your bank offers it, for the ordinary reason that it removes the security-question step for every parent.
Questions clubs ask
Can software collect Interac e-Transfers automatically?
No. There is no consumer Interac API in Canada, and every e-Transfer is initiated by the person sending it. Nothing can pull one. What can be automated is the bookkeeping afterwards: reading the deposit notification your bank sends and matching it to the invoice it pays.
How does e-Transfer reconciliation work?
Each payment request carries a short reference code in the form GYM-XXXXX, which the family includes in the transfer message. Deposit notification emails are forwarded to an address belonging to your club. When a notification arrives carrying that code, for the exact amount expected, from a sender whose mail passed SPF and DKIM, it is confirmed and the invoice settles. Everything else goes to a review queue for a person to confirm with one click.
Will it match two families who paid the same amount to the wrong invoices?
It refuses to try. Nothing is ever matched on amount alone. Two families paying $320 on registration day would cross-match, and the club would find out when a child was turned away from a class they had paid for. An amount that matches one pending payment and nothing else is a suggestion a person confirms, never an automatic match.
What happens if a family pays the wrong amount?
It reaches a person, with the expected and received figures shown side by side. Overpayments and underpayments are both routine and they need opposite responses — one owes a refund, the other a balance — so neither is resolved automatically.
Can we bill monthly by Interac e-Transfer?
The invoice can be raised and emailed every month automatically, but the money cannot be collected automatically, because nothing can pull an Interac transfer. A club that wants the money to arrive without anyone doing anything needs monthly card billing instead.
What if our bank changes the format of its deposit emails?
Every notification is stored with its original body, so patterns can be corrected retroactively against the messages that actually failed rather than guessed at. Reference detection scans for the GYM- code anywhere in the message rather than parsing a particular bank's layout, which is what keeps the most important extraction working across a template change.
Bring your worst reconciliation evening.
Twenty minutes, a real deposit notification, and an honest answer about how much of your Sunday this actually gives back.