The interesting part here is deciding when the system should ask a question, not just which question to ask. A bank line with no match could be a missing invoice, a bank fee, or a single payment covering several bills.
I’d probably give each unmatched line a reconciliation state rather than treating every mismatch as a missing-document request. For example, a €2,400 supplier payment could match three invoices of €800, while a €12.50 bank charge might need categorisation rather than a client reminder. Only genuinely unresolved cases would trigger a request, with the confidence level and previous attempts kept in the audit trail.
How are you thinking about duplicate requests and late-arriving documents? If an invoice lands after the reminder has already gone out, the system should ideally close that request automatically instead of asking the client for something they’ve already sent.