User guide · 3 of 9
Uploading statements
Statements → Upload statement. Perfi parses your PDF deterministically
on the server that hosts your account — no AI services, no third parties.
The PDF itself is kept only while the import is in progress and is deleted
as soon as it succeeds (or within 24 hours if you abandon it).
Supported banks
Citibank · DBS · MariBank · Trust · UOB (credit-card statements; DBS and UOB combined statements with multiple card sections are handled). Investments have their own importer — see Investments.
Step 1 — choose bank and files
Pick your bank, then select up to 5 PDFs, 5 MB each (25 MB combined) per batch, and hit Parse statements. Uploading the wrong bank's PDF is safe — the parser recognises it isn't its bank and tells you.
Step 2 — review the preview
Each file gets a preview grouped by card section, showing the card name, last 4, and every parsed transaction (date, description, amount — with the original foreign amount and rate where the statement prints them).
Assign each section to an account. The dropdown lists your accounts; sections matching a card's last 4 are pre-matched. Or pick "+ Create new account…" to create one on the spot, prefilled from the statement. You can't import until every section is assigned.
Duplicates are flagged, never silently dropped:
- duplicate — an identical transaction (same account, date, description, amount) already exists. Unchecked by default.
- possible duplicate — a transaction with the same amount and description exists within ±3 days (common with overlapping statement periods). Unchecked by default — tick it if it's genuinely a separate purchase.
Re-uploading a file you've already imported for that account shows a red banner and is blocked entirely — Perfi remembers imported files by content, so re-imports are idempotent.
Statement with no printed date? Some PDFs don't print a statement date, which Perfi needs to work out each transaction's year. You'll be asked for the statement month; enter it and reparse.
Step 3 — confirm
Import selected from N file(s) writes the ticked transactions and records the statement. You're redirected to Transactions with a count of what was imported. The uploaded PDF is deleted at this point.
The statements list
Statements shows everything you've imported: file name, account, the
statement period, and how many transactions were parsed. Recent uploads
also appear on the upload page for quick reference.
Conventions worth knowing
- Signs: negative = charge/spend, positive = payment/refund/inflow.
- Dates: when a statement prints both a transaction date and a posting date, Perfi uses the transaction date.
- Foreign currency: the original amount and rate are stored for display only. Every total, filter, and report uses the SGD amount your bank settled.