Dispatch unreconciled items to the client
Who does this: Bookkeeper · Senior Accountant · Platform Admin When: A reconciliation run has unreconciled bank items left over after matching, and you've confirmed they aren't due to missing journal entries on your side Result: The client receives a magic-link email to a portal listing every unreconciled bank line; the run advances
AWAITING_REVIEW → AWAITING_CLIENTand waits for their responses.
When the matching engine finishes and there are bank lines it couldn't pair, two possibilities exist: either you're missing a document on your side (no journal entry was ever created for that transaction), or the client's books and the bank are genuinely out of sync (unauthorised charge, duplicate, transfer the client forgot to mention). Dispatching pushes the question to the client — they see the unreconciled lines, tag each one with a category, and either upload the missing supporting document or declare no supporting with a short note.
The portal session is a magic link — single-use for initial sign-in, then resumable. Progress saves automatically, so the client can respond across multiple sittings.
Before you start
- [ ] All proposed matches have been confirmed or rejected — see Confirm proposed matches. Don't dispatch with proposed still pending; the client will see items that may not actually be unreconciled by the time they respond.
- [ ] You've sanity-checked the unreconciled list — for each line, ask "could this be a missing document on our side?" If yes, ingest the document first via the channel or Upload a document manually, re-run the matcher, then re-evaluate. Don't ask the client about lines that are unreconciled because you haven't done the matching journal entry.
- [ ] The client has at least one active contact with Can submit intake = yes. The dispatch dialog only lists eligible recipients; if the list is empty you can't proceed.
TIP
If the client is small and you usually talk to them directly, send a heads-up over your normal channel before clicking Dispatch — "Sending you a portal link, takes about 10 minutes per item". The portal email is professional but mechanical; a human nudge improves response rate dramatically.
Steps
- Open Bank reconciliations in the staff dashboard sidebar and click into the run.
- Open the Unreconciled tab. Walk the list one more time and confirm each line is genuinely a question for the client.
- Click Dispatch magic link in the top-right action row.
- In the dialog:
- Recipient — pick the contact who'll handle this. Only contacts with Can submit ticked are listed. If multiple are eligible, pick the one who actually does books-related work (often the founder or finance person, not the operations contact).
- Click Send magic link. The dialog closes with a confirmation toast that includes the link's expiry date.
State transition: the run moves from AWAITING_REVIEW to AWAITING_CLIENT. The unreconciled items themselves transition from un-dispatched to PENDING — they're now waiting on the client.
How to know it worked
- The run's status badge flips to AWAITING_CLIENT within a second of clicking Send.
- The Outbox (sidebar → Outbox) shows a
reconciliation-magic-linkrow to your chosen contact, with statusDispatchedwithin ~30 seconds. - The activity log shows
bookkeeping.reconciliation_run.dispatchedwith the recipient contact ID. - The client confirms receipt (or you check Outbox status — see Verify an email was sent).
What the client sees
The recipient gets an email — subject literally:
Action needed: {N} unreconciled bank items for {client legal name}
The body has the firm's logo, an introduction tying the request to the bank statement and period, an info table summarising the item count and total value, and a primary button:
Open the reconciliation portal
Clicking the button opens the portal in their browser, signed in via the magic link. They see one row per unreconciled bank transaction with date, amount, description, and two response options per item:
- Upload supporting documentation — drag/drop a receipt, invoice, or other supporting doc.
- No supporting available — declare there's no supporting document, with a short free-text note explaining the transaction.
Progress saves automatically; the client can come back to the same link until it expires. Link expiry: 60 days from dispatch (longer than payroll's 48 hours because reconciliation responses often need the client to dig through their own records).
When the client responds to even one item, the unreconciled item's status flips PENDING → CLIENT_RESPONDED, and the platform raises a digest notification to your firm. You don't have to wait for them to finish all items — you can start working through their responses as they come in.
Common situations
| If you see… | It means… | What to do |
|---|---|---|
| Dispatch magic link button is missing or greyed out | The run is in a state that doesn't allow dispatch (e.g. already AWAITING_CLIENT, or COMPLETE) | Re-read the status badge — if AWAITING_CLIENT, dispatch already happened, check Outbox; if COMPLETE, the run is closed |
| Dialog shows "No submitter contacts configured" | Every contact for this client is either inactive or doesn't have Can submit intake | Open the client → Contacts tab and add or activate one before dispatching |
Outbox row stays Pending longer than 5 minutes | Outbox dispatcher backed up | See Outbox stuck runbook |
| Client claims they didn't receive it | Confirm Outbox status, then ask them to check spam, then verify the contact's email is right | See Verify an email was sent |
| Client opens the link but it says expired | The 60-day window has lapsed | Re-dispatch — same dialog, same flow; a new link is issued and the old one is invalidated |
| You realised after dispatch that the list is wrong (extra item, missing item) | The portal shows the items as of dispatch time | Either resolve the wrong item manually after the client responds, or wait for their responses, dispatch a follow-up run on a re-matched basis |
Related runbooks
- Resolve client responses on unreconciled items — what happens after they respond
- Confirm proposed matches — prerequisite step
- Verify an email was sent — when the client says they didn't receive it
- Timing reference — link expiry and outbox dispatcher cadence
- Notifications catalog — every email the platform can send, including this one
- Reconciliation run status machine — where AWAITING_CLIENT sits