At tax time the bottleneck is rarely the tax math. It is turning messy Alipay, WeChat Pay, and bank export CSVs into one clean table you (or your accountant) can actually use. This walkthrough covers export, cleanup, and monthly rollups, plus a tool that automates the grind.
Alipay “bill details” and WeChat “transaction details” CSVs usually trip you up with:
If you freelance or run a side gig, a tax draft usually needs monthly income/expense totals, main counterparties, and categories. Raw exports almost never give you that.
Tip: If Excel shows mojibake, use Data → From Text/CSV and set encoding to GBK (or UTF-8). Do not double-click open.
WeChat headers differ from Alipay (e.g. 交易类型, 交易对方, 金额(元)). Normalize column names before merging.
Whether you do it by hand or with a script, aim for this target schema:
| Field | Meaning |
|---|---|
| date | YYYY-MM-DD |
| amount | Signed: income positive, expense negative |
| direction | in / out |
| counterparty | Who you paid or who paid you |
| category | Food / transport / client income / etc. |
| note | Item description or memo |
| source | alipay / wechat / bank |
With that schema you can stably sum monthly income, group client payments by counterparty, and filter explainable costs by category.
This is bookkeeping hygiene, not tax or legal advice. File with a licensed accountant or the tax authority.
BillFold targets Alipay / WeChat / bank export CSVs: auto-detect source and encoding, emit a clean CSV, plus monthly Markdown reports. Try a sample in the browser (data stays local). Buy the Pro pack for the full CLI and source.
python -m billfold run alipay-export.csv -o out/ # → clean.csv + monthly.md
Built for freelancers who refuse to babysit Excel headers every month.
Yes - e.g. paying a WeChat merchant via Alipay, or balance transfers. After cleanup, dedupe by order id or amount+time, or keep only the side where cash finally settled.
If large receipts hit a card or corporate account, export those detail CSVs too and merge into the same schema. BillFold Pro includes a generic bank template you can extend from real headers.
Read income / expense / net from the monthly report; export full clean.csv for your accountant at filing time.
Next step
Run the sample on the landing page, confirm the fields match how you reconcile, then clean one real month of exports.