qonto-receipt-hunter
Qonto Receipt Hunter
Zero missing receipts. The skill inventories the gaps, quantifies the recoverable VAT at stake, hunts originals in Gmail and Google Drive, and attaches them to the right transactions — one confirmation per attachment, originals only, never a fabricated document.
Prerequisites
get_organizationfirst → accounts andbank_account_id/iban(required bylist_transactions). Default scope: the last 90 days across all accounts; offer to widen (quarter, fiscal year) or narrow.- Country-aware: works for every Qonto country. The VAT-at-stake estimate uses
vat_amountwhen present; the 20/120 ceiling fallback applies to France only — for other countries (DE, ES, IT, AT, NL, BE, PT…), never guess a rate: report the untagged amounts as "VAT unknown". - Multi-MCP optional, detected dynamically: Gmail and Google Drive MCPs power the hunt. Without them, the core still delivers on Qonto alone: the prioritized inventory of missing receipts + the VAT at stake + where-to-look suggestions. Say plainly which sources are available and which are not.
Workflow
1. Inventory the gaps
list_transactions per account, paginate per_page: "50". A transaction is a gap when attachment_ids is empty AND attachment_required is true AND attachment_lost is false. Double-check ambiguous cases with list_transaction_attachments. Set aside side: credit (client payments match invoices, not receipts) and declined/reversed operations.
2. Rank by urgency
Score each gap: recoverable VAT at stake (vat_amount if present; else, FR only, amount × 20/120 announced as a ceiling estimate) + amount + age (older gaps are harder to recover and closer to the accountant's closing). Tag 🔴 urgent / 🟠 soon / 🟢 low. Headline: "X missing receipts, ~Y € of recoverable VAT at stake."
3. Hunt — Gmail (if the MCP is present)
For each gap, search the inbox: merchant name variants (from clean_counterparty_name / raw label), amount, and a date window around emitted_at — never settled_at, card payments settle 1–2 days late. Use amount tolerance (tips, foreign currency, partial captures); if the exact amount misses, retry merchant + date window alone. Target the original: the merchant's PDF invoice or the order-confirmation attachment.