Skip to main content
American Express → Beancount

American Express CSV to Beancount

Convert an Amex card statement CSV into balanced double-entry Beancount transactions — with the sign convention already flipped, so charges land as expenses.

Column mapping verified against a real American Express export

How to export your American Express transactions

  1. 1

    Sign in at americanexpress.com and open Statements & Activity for the card you want.

  2. 2

    Pick the statement period or a custom date range, then choose Download.

  3. 3

    Select CSV. Amex also offers Excel and QIF here — the CSV is the one this converter reads.

  4. 4

    Open the file, copy all of it, and paste it below. Leave the sign flip switched on.

Amex writes charges as positive numbers — that is already flipped for you

Amex is a card issuer, so its export shows what you owe: a $84.23 purchase appears as 84.23, and a payment to Amex appears as -500.00. Every bank export on this site does the opposite. The preset below turns on “invert amounts”, so purchases become expenses and payments become transfers, rather than your whole ledger arriving backwards.

Beancount output

Your transactions will appear here as soon as you paste a CSV.

American Express export questions

Why is my payment to Amex showing as income?

It shouldn't, with the sign flip on. If you turned it off, Amex's negative payment line becomes a positive amount and lands in the wrong direction. Leave inversion enabled for Amex, and only Amex.

Does this handle multiple cards on one account?

The export includes a Card Member column so you can see which card each charge belongs to, but the converter maps every row to one Beancount account. If you track supplementary cards separately, export each card individually, or split the output by Card Member afterwards.

What about foreign-currency charges?

Amex converts foreign charges to your card's billing currency before exporting, so the Amount column is already in one currency and there is no currency column to map. The original amount appears only in the description on some statements.

Converting an export from another bank?

Keep the ledger you just converted

Beancount.io hosts your plain-text ledger, imports future statements for you, and keeps every number auditable.

Start Free