LedgerDrop

Credit card statement PDF to CSV: what is different from a bank statement

Published 19 October 2026 · by Tekiba

Short answer: A card statement looks like a bank statement with fewer columns, but five things work differently: each line can carry two dates, the signs run the other way, fees and interest sit in their own blocks below the purchases, a foreign purchase arrives already in dollars with its fee on a separate line, and an instalment plan changes what later statements show. Settle each one before the CSV goes into your books, then check the total against the statement's new balance.

The rules quoted are from the US Truth in Lending regulation, Regulation Z, and its official interpretations, read on the eCFR on 19 October 2026: § 1026.7, § 1026.8 and Supplement I. Card issuers' and Mastercard's pages were read the same day. Card statements outside the US follow other rules.

1. Two dates on one line

A bank statement usually prints one date per line. Regulation Z requires a card issuer, for each purchase, to say that “the creditor must disclose the amount and date of the transaction”, and many issuers also print the date it reached the account. The official interpretation covers that case: “If the creditor discloses more than one date (for example, the transaction date and the posting date), the creditor must identify each.” The two can differ. Discover puts it this way: “Your post date can be on the same day as your transaction, or it can be a few days later.”

The posting date is the one the statement is built on. Chase describes the closing date as the end of the billing cycle: “That makes it the last day that new charges can post and appear on the billing statement that follows the closing date.” A purchase made on the last day of the cycle and posted the next day belongs to the next statement. If your CSV uses purchase dates, a row can carry a date inside one statement's period while its amount counts toward the other's total.

What to do: keep one date column, and use the same one for every statement you take in. The posting date keeps each file's total equal to its statement; the transaction date is closer to the receipt. Some people keep both by putting the other date in the description.

LedgerDrop recognises the headings Transaction Date, Posting Date and Posted Date. When a statement prints both, it uses the posting date and leaves the other column out. To use the transaction date instead, set that column to Date and the posting column to Ignore under “Columns and date format”. If the headings are worded in a way LedgerDrop does not recognise — the regulation's own model statement uses Trans Date and Post Date — name the columns there yourself; naming them is free.

2. The signs run the other way

On a current account, money in is the positive number. On a card statement, a purchase increases what you owe, so purchases are usually printed as plain positive figures and payments and refunds are the ones marked. How they are marked is up to the issuer: “Credits may be distinguished from transactions in any way that is clear and conspicuous, for example, by use of debit and credit columns or by use of plus signs and/or minus signs.” The regulation's model statement puts a minus after the figure, as in $450.00-.

Accounting software that takes a card account usually wants money leaving you negative, the same as a bank account. Should debits be negative in a bank CSV? covers the convention and how QuickBooks and Xero read it. Wave is the exception: it wants card purchases positive, as Wave bank statement CSV format explains.

LedgerDrop reads a trailing minus, brackets and a leading minus as negative. When the statement reads like a card — phrases such as “Payments and Other Credits”, “New Charges” or “Minimum Payment Due” — and its rows show which way they are printed, it turns the signs round so purchases come out negative and payments positive, and says so above the table. Without that evidence it leaves them as printed. “Amount signs” under “Columns and date format” has two overrides, and “Reverse them (credit card)” turns round only amounts printed with a sign: a purchase printed with no sign at all stays positive. On a layout like the model form — unsigned purchases, credits marked with a minus, a separate Fees block — that can leave the signs mixed, and the balance check then does not match.

Check: one purchase, one payment and one refund in the CSV. If the signs are still mixed after choosing a setting, fix them in the spreadsheet: purchases, fees and interest negative; payments and refunds positive.

3. Fees and interest in their own blocks

A bank statement lists a monthly fee among the other lines. A card statement may not: the interpretation says that “creditors must group all fees and all interest separately from transactions and may not disclose any fees or interest charges with transactions.” So below the purchases come a block headed Fees and a block headed Interest Charged, each with its own total, then year-to-date totals.

Trans datePost dateDescriptionAmount
Mar 03Mar 04CEDAR HARDWARE$86.20
Mar 05Mar 05PAYMENT THANK YOU$300.00-
Fees
Mar 12Mar 12FOREIGN TRANSACTION FEE$1.35
TOTAL FEES FOR THIS PERIOD$1.35
Interest Charged
Interest charge on purchases$4.12
TOTAL INTEREST FOR THIS PERIOD$4.12

Fictional statement, made up for this page, laid out after the regulation's model form.

Two things go wrong here. The totals are not transactions, and counting them doubles the fees. And in the model form the interest lines carry no date at all. LedgerDrop builds rows from lines that start with a date, so an undated interest line is not read, and it drops lines it recognises as totals.

Check: if the balance check is out by the period's total interest, add the interest lines from the PDF by hand, dated on the closing date. If it is out by the fee total, look for a fee line that was not read.

4. Foreign purchases arrive in dollars

A purchase in euros appears on a US card statement as a dollar amount. Mastercard says its rate is fixed when the payment is approved: “Currency conversion rates are specific to the date and time your bank authorizes the transaction (which generally occurs at the point of sale/interaction).” The regulation leaves the issuer room: the rate “need not be the rate in effect on the date of the transaction (purchase or cash advance)”. Either way, converting the receipt yourself will rarely give the statement's figure, and the statement's figure is the one that adds up.

A foreign transaction fee is usually a line of its own. Chase says it appears “either in the fees section or as a separate line item in your recent transactions”. Some statements also print the foreign amount and the rate on a second line under the purchase.

Check: each foreign purchase has one dollar amount, its fee is a separate row, and no figure from the foreign-currency line has been taken as an amount.

5. Instalment plans change later statements

Several issuers let you move a purchase into a plan paid monthly. The interpretation allows two ways of showing it: “the first periodic statement reflecting the transaction must show either the full amount of the transaction together with the date the transaction actually took place; or the amount of the first installment” — and later statements show each instalment. American Express describes its own: “The first monthly plan payment will appear in the next billing statement following the date you created the plan(s).” Its statements list plans in a section of their own, where “you can see a list of your current plans in the “Plan Balance Details” section”, and a monthly plan fee is charged as well.

Check: that a purchase is not taken in twice — once in full on the statement where it posted, and again as monthly plan amounts on later ones. How a plan belongs in your books is a question for whoever keeps them; what the CSV has to do is carry each figure once.

6. Refunds are their own lines

A refund does not change the original purchase; it arrives later as a credit. Capital One lists them together with other credits: “Account credits: This can include refunds, earned rewards or mistakes that have been credited back to you.” Keep the refund as a separate positive row rather than netting it against the purchase, so the CSV still matches the statement line for line. Payment services have fees and payouts of their own: see PayPal, Stripe and Wise statements to CSV.

The card's balance check

Each statement must give “The closing date of the billing cycle and the account balance outstanding on that date.” With the previous balance, that is enough to check the file: previous balance, plus purchases, fees and interest, less payments and credits, should equal the new balance. LedgerDrop runs this check for a card the right way round and shows the Difference if it does not match, free at any length. A match is strong evidence; how to check a converted bank statement CSV for errors covers what it can miss.

Before you import a card CSV

  1. Pick the date. Posting or transaction, the same for every statement.
  2. Check the signs. Purchases, fees and interest negative; payments and refunds positive.
  3. Look below the purchases. Fee and interest lines in; totals and year-to-date lines out.
  4. Read the foreign purchases. One dollar amount each; fees as their own rows.
  5. Look for plans. No purchase taken in twice.
  6. Match the new balance. Then import into the card account, not the bank account. Clean up a bank statement CSV before you import it covers the spreadsheet steps.

Convert a statement → LedgerDrop reads the PDF in your browser, shows every row and checks them against the statement's printed balances, free at any length; the CSV is free for files of up to 3 pages. LedgerDrop Pro ($39 once) writes the CSV for longer statements and adds a reconciliation report. The statement is not uploaded.

What this page cannot tell you

How your issuer lays out its statement. The card layouts LedgerDrop is tested on are listed on the formats page; another issuer's may mark credits or place fees differently. Rules outside the US are not covered, and nor is how to account for interest, plans or rewards.

Questions

Should I use the transaction date or the posting date?

Either, as long as every statement uses the same one. The posting date decides which statement a charge is on, so it keeps each file's total equal to its statement. The transaction date matches the receipt.

Why are my card purchases positive in the CSV?

The statement prints them that way, because a purchase adds to what you owe, and LedgerDrop turns them round only when the statement shows clearly which way it is printed. “Reverse them (credit card)” under “Amount signs” turns round only amounts printed with a sign, so purchases printed with none can stay positive. Fix those in the spreadsheet.

Why doesn't my converted card statement add up to the new balance?

Look below the purchases first. Interest lines often carry no date and are missed; fee and interest totals can be counted as rows. Compare the Difference with the period's total interest and total fees.

Why is the foreign purchase a different amount from my receipt?

The receipt is in the foreign currency; the statement shows the dollar amount after conversion, and the rate need not be the one on the day you paid. Use the statement's figure, with any foreign transaction fee as a separate row.