Statement upload is the fastest way to backfill a month of transactions in Kinly. You drag a PDF in, Claude parses every line in 30–60 seconds, and the matching engine merges them with any transactions you’ve already tracked manually or via receipt OCR. This guide covers the supported formats, the process, and what happens to lines that don’t auto-match.
Which statements work?
Kinly is designed for the major Canadian banks:
- TD, RBC, CIBC, BMO, Scotia: their generated monthly PDF statements work out of the box.
- Amex Canada: works.
- Tangerine, Simplii, EQ Bank: tested and working.
- National Bank, Desjardins, ATB: should work; if you hit a parsing issue, email us a sanitized sample and we’ll tune the parser.
Format: text-based PDFs only, up to 25 MB. Scanned- image PDFs (where the page is essentially a photograph) won’t parse reliably. If your bank only offers image-PDFs, export to CSV from your online-banking instead (CSV import lands in Phase 2).
Step-by-step upload
- Go to Statements → Upload statement in your dashboard.
- Pick the account this statement belongs to (or add a new account first if you haven’t).
- Drop the PDF onto the upload area. Files are stored encrypted in Vercel Blob with a SHA-256 dedup key — uploading the same statement twice is a no-op.
- Click Upload. You’ll be redirected to the statements list with the status set to Parsing… while the background workflow runs.
- In 30 seconds to 2 minutes, status flips to Parsed with a count of how many lines were extracted.
What happens to each line
Every line in the statement becomes a source document in Kinly’s ledger. The matching engine then tries to merge each one with an existing transaction in your account:
- Auto-merged (score ≥ 80): amount matches exactly, merchant matches, date is within 4 days, same payment-method last 4. The source document attaches to the existing transaction silently.
- Candidate (50–79): partial match, surfaced in the reconciliation inbox for you to confirm or reject.
- Unmatched (under 50): no existing transaction looks like a candidate. The source document lives in the reconciliation inbox; you can promote it to a new transaction with one click.
The reconciliation inbox
Visit Inbox from the top nav. Every unmerged statement line shows up there with the merchant, date, amount, and a raw-descriptor preview. Two buttons:
- Create transaction: promotes the line to a new transaction in your account. Useful for charges you didn’t manually track.
- Already recorded: dismisses the line. Use this when you know you already entered this charge manually or via receipt OCR — Kinly couldn’t auto-match because (for example) the merchant name on the statement differs significantly from the receipt.
Re-uploading or replacing a statement
If you re-upload the same PDF (content hash matches), Kinly returns the existing record and doesn’t re-parse. If you uploaded the wrong statement, email hello@kinlyhq.com for now — Phase 1.5 will add a self-serve delete.
Troubleshooting
Status stuck on “Parsing…” for 5+ minutes? Email us with the statement filename. Most cases are an image-only PDF we can’t handle.
Only some lines showed up? Look at the statement detail — Kinly skips summary rows (totals, balances due, interest breakdowns) by design. Only line-item transactions are extracted. If a real transaction is missing, send us the page number.
What’s next
Next up: connect Gmail so future transactions are captured automatically as the confirmation emails arrive — no monthly upload required.