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
Xero would bring in every row the download contains, including holds, their releases and currency conversion rows, so the statement balance stops matching PayPal. Gross and fee need to be separate statement lines for the fees to be coded.
Xero imports the CSV line by line, so title rows above the table, balance rows, currency symbols in the amount, or separate gross, fee and net columns end up rejected or imported as the wrong amount.
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 requires
- Header matches Xero's template: *Date, *Amount, Payee, Description, Reference, Check Number.
- One signed amount column: money out negative, decimal point, no symbols.
- Up to 100,000 rows per file.
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 receives
| *Date | *Amount | Payee | Description | Reference | Check Number |
|---|---|---|---|---|---|
| 03/02/2025 | 1250.00 | Riley Clientname | Riley Clientname - MONTHLY - $1 for the first 2 Months, then $6.99 / Month | 9WD00000TEST0001 | |
| 03/02/2025 | -46.73 | Fee | Fee: Riley Clientname - MONTHLY - $1 for the first 2 Months, then $6.99 / Month | 9WD00000TEST0001 fee | |
| 03/12/2025 | 50.00 | Casey Buyerperson | Casey Buyerperson - Print, 8x10 "Sunset" | 9WD00000TEST0002 | |
| 03/12/2025 | -2.24 | Fee | Fee: Casey Buyerperson - Print, 8x10 "Sunset" | 9WD00000TEST0002 fee | |
| 03/20/2025 | -50.00 | Casey Buyerperson | Casey Buyerperson - Payment Refund | 9WD00000TEST0006 | |
| 03/20/2025 | 1.20 | Fee | Fee: Casey Buyerperson - Payment Refund | 9WD00000TEST0006 fee |
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
- In Xero open Accounting > Bank accounts and choose the account.
- Click Manage account > Import a statement.
- Choose this CSV and click Import.
- Check the column mapping (Date, Amount, Payee, Description, Reference) and confirm the date format if asked.
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 date format does Xero need?
- Xero lists both month-first and day-first dates as accepted and asks you to confirm the format when it is unclear. Choose United States for MM/DD/YYYY or Elsewhere for DD/MM/YYYY, and confirm the same format in Xero if it asks.
- 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.
- Can I import more than one month at once?
- Yes. Xero imports the whole statement file you give it. Keep each file to one bank account in Xero, and avoid overlapping a period you already imported so you do not have to delete duplicate statement lines.
Other ways to convert PayPal
- PayPal CSV to QBO for QuickBooks
- Convert a PayPal activity CSV to QuickBooks Online
- PayPal CSV to QFX for Quicken
- PayPal CSV to OFX
Other exports to Xero (CSV)
- Import a Venmo statement CSV into Xero
- Import a Cash App CSV into Xero
- Import a Stripe balance report CSV into Xero
- Import a Etsy monthly statement CSV into Xero
- Import a Airbnb earnings CSV into Xero
- Import a Gumroad payout CSV into Xero
- Import a Square transactions CSV into Xero
- Import a Shopify Payments transactions CSV into Xero
- Amazon settlement report to Xero
- eBay transaction report to Xero
- Import a Wise statement CSV into Xero
- Import an MT940 statement into Xero
- Import a camt.053 statement into Xero