1. Export the file from PayPal
- Sign in to PayPal on a computer and open Activity.
- Click the Download icon (or go to Reports > Activity download).
- Choose a date range of up to 12 months and the CSV format.
- Pick "Balance affecting" transactions if you are offered the choice.
- Download the file (large reports are emailed) and upload it here.
Why a raw PayPal export fails in Xero, Wave, GnuCash, Moneydance, MS Money and others
The PayPal activity download is a CSV, not a bank statement file. To keep PayPal as its own account in QuickBooks, Quicken or Xero, each payment has to become a statement line in one currency, with the PayPal fee on its own line.
Programs that read OFX do not ask you to map columns, which avoids the date and sign mistakes a hand-mapped CSV invites. Payment apps rarely offer OFX themselves, so the file has to be built from their CSV.
What is unusual about the PayPal file
- Columns can be added or removed in PayPal, so we read them by name.
- Date and number formats follow your PayPal country (for example 01/31/2025 and 1,234.56 in the US, 31/01/2025 and 1.234,56 in Europe).
- Fees are negative and Net is Gross plus Fee.
- A purchase in another currency appears as three rows (the payment and two "General Currency Conversion" rows); each currency is its own balance.
- Holds and their releases, and "Memo" rows, do not change your balance and are left out.
- The file may start with an invisible byte-order mark.
- Headers are translated if your PayPal is not in English; switch to English before downloading.
What Xero, Wave, GnuCash, Moneydance, MS Money and others requires
- Plain OFX 1.0.2 SGML with no Intuit extensions.
- One account and one currency per file.
- Stable transaction ids: the same row in two overlapping exports gets the same id.
2. Before and after
Before: the PayPal activity CSV as downloaded
"Date","Time","TimeZone","Name","Type","Status","Currency","Gross","Fee","Net","From Email Address","To Email Address","Transaction ID","Shipping A... "03/30/2025","18:22:05","PDT","","General Withdrawal","Completed","USD","-1,000.00","0.00","-1,000.00","seller@example.com","","9WD00000TEST0010","... "03/28/2025","09:01:12","PDT","Sample Hosting Co","PreApproved Payment Bill User Payment","Completed","EUR","-20.00","0.00","-20.00","","","9WD0000... "03/28/2025","09:01:12","PDT","","General Currency Conversion","Completed","USD","-21.84","0.00","-21.84","","","9WD00000TEST0008","","","","","","... "03/28/2025","09:01:12","PDT","","General Currency Conversion","Completed","EUR","20.00","0.00","20.00","","","9WD00000TEST0007","","","","","","",... "03/20/2025","14:10:00","PDT","Casey Buyerperson","Payment Refund","Completed","USD","-50.00","1.20","-48.80","","casey@example.com","9WD00000TEST0... "03/18/2025","11:00:00","PDT","Sample Hardware Store","Account Hold for Open Authorization","Pending","USD","-1.58","0.00","-1.58","","","9WD00000T... "03/18/2025","11:05:00","PDT","Sample Hardware Store","Reversal of General Account Hold","Completed","USD","1.58","0.00","1.58","","","9WD00000TEST... "03/12/2025","8:15:30","PDT","Casey Buyerperson","Shopping Cart Item","Completed","USD","50.00","0.00","50.00","","","9WD00000TEST0003","","","Prin...
After: what Xero, Wave, GnuCash, Moneydance, MS Money and others receives
... <STMTTRN> <TRNTYPE>CREDIT</TRNTYPE> <DTPOSTED>20250302120000</DTPOSTED> <TRNAMT>1250.00</TRNAMT> <FITID>22B0EAEC98E76955G</FITID> <NAME>Riley Clientname</NAME> <MEMO>Riley Clientname - MONTHLY - $1 for the first 2 Months, then $6.99 / Month</MEMO> </STMTTRN> <STMTTRN> <TRNTYPE>DEBIT</TRNTYPE> <DTPOSTED>20250302120000</DTPOSTED> <TRNAMT>-46.73</TRNAMT> <FITID>22B0EAEC98E76955F</FITID> <NAME>Fee</NAME> <MEMO>Fee: Riley Clientname - MONTHLY - $1 for the first 2 Months, then $6.99 / Month</MEMO> </STMTTRN> ...
Synthetic sample data that follows the real export layout, not a real account. The "after" output was produced from it by the same converter this page runs.
3. Import the converted file into Xero, Wave, GnuCash, Moneydance, MS Money and others
- In your accounting software open the bank account and choose Import statement (or File > Import > OFX).
- Choose this .ofx file.
- Review and confirm the transactions.
Questions
- Should I download "Balance affecting" or "All transactions"?
- Pick balance affecting if you are offered the choice. Either way, the converter leaves out holds, their releases and Memo rows, because they do not change your PayPal balance.
- Which programs accept OFX files?
- Xero, Wave, GnuCash, Moneydance and many desktop finance programs offer an OFX import. QuickBooks prefers .qbo and Quicken prefers .qfx; use those variants for Intuit products.
- How are PayPal fees handled?
- By default each payment is written as the gross amount plus a separate fee line, so the fee can go to a merchant fees expense account and the running balance still matches PayPal. Choose "Net amount only" in the options for one line per payment.
- What happens with overlapping exports or repeated rows?
- Each transaction gets an id built from its date, amount, description and platform id, so the same row in two overlapping exports gets the same id. Whether your software uses that id to skip a repeat is up to the software, so avoiding overlapping date ranges is still the safest habit. Within one file, exact repeats of the same platform transaction are dropped and the notes say how many.
Other ways to convert PayPal
- Import a PayPal activity CSV into Xero
- PayPal CSV to QBO for QuickBooks
- Convert a PayPal activity CSV to QuickBooks Online
- PayPal CSV to QFX for Quicken
Other exports to OFX
- Venmo CSV to OFX
- Stripe CSV to OFX
- Wise CSV to OFX
- Convert an MT940 file to OFX
- Convert a camt.053 file to OFX