Skip to content
Selfirm

Mainland ChinaBank

Bank of China statements: how to download them and turn them into clean data

Updated 11 November 2026

At Bank of China (中国银行), one card is one account, and the card holds a separate balance for each currency. The transaction details export from online banking is a file named .csv. Selfirm reads it, but it is not the CSV most tools expect.

What Bank of China provides, and what Selfirm reads

File Format In Selfirm
Transaction details export (交易明细) CSV (UTF-16, tab-separated) Read
Other formats offered by online banking, such as PDF PDF Not read
Credit card statements Not read

How to download the statement

We have not confirmed the current steps against an official Bank of China help page, so the following is general.

Log in to Bank of China personal online banking, open the account query area and choose transaction details (交易明细) for the card. Pick the date range and use the download option. If you are offered more than one format, choose the one that produces the .csv file described below.

What the file looks like

It is not really a comma-separated file. The file name ends in .csv, but the contents are UTF-16 text with tabs between the columns. Double-clicking it, or reading it with a CSV library’s defaults, gives one column of garbled characters or an encoding error. Read it as UTF-16 with tab as the separator.

Newest first. The most recent transaction is at the top. To check the running balance you read from the bottom up.

No account number. Nothing in the file says which card it came from. If you hold more than one Bank of China card, the files look alike.

The columns are 交易日期 (date), 业务摘要 (description), 对方账户名称 (counterparty name), 币种 (currency), 收入金额 (money in), 支出金额 (money out) and 余额 (balance).

Dates use slashes: 2026/03/05.

Currency names are written out in Chinese: 人民币元 (CNY), 美元 (USD), 港币 (HKD), 日元 (JPY), 欧元 (EUR). They are names, not codes.

Money in and money out are separate unsigned columns. The signed amount is money in minus money out.

Example

Fictional data, as the rows appear once the file is read correctly:

交易日期 业务摘要 对方账户名称 币种 收入金额 支出金额 余额
2026/03/20 网上快捷支付 示例超市 人民币元 150.00 9,850.00
2026/03/10 转账收入 示例咨询有限公司 人民币元 2,000.00 10,000.00
2026/03/03 结息 美元 1.00 801.00

Read from the bottom up, per currency:

Date Description Currency Amount Balance
2026-03-03 结息 USD 1.00 801.00
2026-03-10 转账收入 · 示例咨询有限公司 CNY 2,000.00 10,000.00
2026-03-20 网上快捷支付 · 示例超市 CNY -150.00 9,850.00

Bringing it into Selfirm

Selfirm is in early access. You upload the file as Bank of China produced it, or a folder of exports at once. Selfirm recognises the export by its column names, handles the encoding and order, and keeps each currency’s balance separate.

Because the file has no account number, you tell Selfirm which account it is the first time. After that, new exports are placed by their balances: a file that starts where an account’s last balance stood continues that account. If a file fits more than one account, Selfirm asks rather than guessing. A file that connects to no account is kept apart, and you can join it to the right account yourself.

It checks that each currency’s balance runs correctly row by row and from one export to the next. Rows repeated across overlapping exports are counted once, which matters here because exports by date range often overlap. Transfers to your other accounts are proposed as transfers, and each movement is classified as income, expense or transfer for you to confirm. Every figure links back to the row of the file it came from.

Exporting to CSV or Beancount is planned, not available today. Join the waitlist to try it.

Other mainland China institutions Selfirm reads: China Merchants Bank, Bank of Communications, HSBC China, China Merchants Securities, CICC Wealth Management.

Common questions

Why does my Bank of China CSV open as one column of strange characters?

The file is encoded in UTF-16 and separated by tabs, although its name ends in .csv. A program that expects UTF-8 and commas reads it wrongly. Open it as UTF-16 text with tab as the separator.

The file has no account number. How does Selfirm know which account it is?

You say which account it is the first time you upload a file from that card. Later files are placed by matching their balances with the statements already there. If a file fits more than one account, Selfirm asks you.

Can one Bank of China export contain several currencies?

Yes. A card holds a separate balance for each currency, and the export has a currency column. Each currency's balance has to be checked on its own.

Related

Bring your own records along

We are onboarding a small group of founders whose companies, accounts and obligations span countries. Tell us about your setup.