The short answer

The PayPal file has 41 columns, dates written as M/D/YYYY and one signed amount column. The CSV written for Xero has the columns Date,Amount,Payee,Description,Reference. So the date is rewritten as DD/MM/YYYY, the amount is written as one signed number, and the text columns are moved as in the table below.

Paid profile. The free manual column mapper works for any bank, this one included, but the free version writes only the first 25 converted rows of a file. The 9 USD one-time licence adds the ready-made PayPal profile (one of the 35 paid profiles) and removes the 25-row limit. The column table on this page is free to read and can be used to fill in the manual mapper.

Open the converter

The converter runs in your browser. Your file is not uploaded.

What the PayPal CSV looks like

Note kept with this layout in the profile data: Forty-one default columns as listed by the source for 2018. The user can choose which columns PayPal exports and the date format follows the account's region (a second rules file in the same repository uses day-month-year with dashes), so the converter must match columns by header name, not by position, and confirm the date order in the preview. Gross is used as the amount; Fee and Net are separate columns. The file can contain email addresses of the other party: the converter must not copy those columns to the output.

What Xero accepts

The file the converter writes for Xero: Date,Amount,Payee,Description,Reference
Xero columnRequired by XeroFilled from the PayPal file
Daterequiredcolumn 1 "Date"
Amountrequiredcolumn 8 "Gross"
Payeeoptionalcolumn 4 "Name"
Descriptionoptionalcolumn 5 "Type" and column 16 "Item Title"
Referenceoptionalcolumn 13 "Transaction ID"

From a web search excerpt of the vendor's help page (the page itself refuses automated reading; re-check it in a browser): "Show income as positive amounts and expenses as negative amounts using a negative sign in front of the amount or with brackets, for example -30.00 or (30.00)."

Column-by-column mapping

Every column of the PayPal file, left to right, and where it ends up in the Xero file.

ColumnHeader textWhat it holdsWhere it goes in the Xero file
1DateTransaction dateDate, rewritten as DD/MM/YYYY
2TimeNot usedNot copied
3TimeZoneNot usedNot copied
4NamePayee or counterpartyPayee
5TypeDescriptionDescription
6StatusNot usedNot copied
7CurrencyCurrencyNot copied
8GrossAmount, signed (negative is money out)Amount, sign kept (money out is negative)
9FeeNot usedNot copied
10NetNot usedNot copied
11From Email AddressNot usedNot copied
12To Email AddressNot usedNot copied
13Transaction IDReference or check numberReference
14Shipping AddressNot usedNot copied
15Address StatusNot usedNot copied
16Item TitleMemo or noteDescription, after the bank's description text
17Item IDNot usedNot copied
18Shipping and Handling AmountNot usedNot copied
19Insurance AmountNot usedNot copied
20Sales TaxNot usedNot copied
21Option 1 NameNot usedNot copied
22Option 1 ValueNot usedNot copied
23Option 2 NameNot usedNot copied
24Option 2 ValueNot usedNot copied
25Reference Txn IDNot usedNot copied
26Invoice NumberNot usedNot copied
27Custom NumberNot usedNot copied
28QuantityNot usedNot copied
29Receipt IDNot usedNot copied
30BalanceRunning balanceNot copied
31Address Line 1Not usedNot copied
32Address Line 2/District/NeighborhoodNot usedNot copied
33Town/CityNot usedNot copied
34State/Province/Region/County/Territory/Prefecture/RepublicNot usedNot copied
35Zip/Postal CodeNot usedNot copied
36CountryNot usedNot copied
37Contact Phone NumberNot usedNot copied
38SubjectNot usedNot copied
39NoteNot usedNot copied
40Country CodeNot usedNot copied
41Balance ImpactNot usedNot copied

Pitfalls for PayPal to Xero

Dates

Amounts and their direction

Shape of the file

Other Xero import rules

Before and after: an invented example

Invented sample data. These four rows were made up for this page. They are not from a real PayPal export and hold no real account, name or balance.

The column headings are the header text the source prints. The 33 unused columns of the file are left out of the table.

Before: rows laid out like the PayPal file
1: Date4: Name5: Type7: Currency8: Gross13: Transaction ID16: Item Title30: Balance
3/4/2024Coffee CornerCOFFEE CORNER MAIN STEUR-4.50S0001Card purchase995.50
3/5/2024Example CoPAYROLL EXAMPLE COEUR2500.00S0002Salary March3495.50
3/7/2024Sample LandlordRENT MARCHEUR-1234.56S0003Standing order2260.94
3/11/2024Example ShopREFUND EXAMPLE SHOPEUR15.25S0004Refund2276.19
After: the same rows as a Xero file (Date,Amount,Payee,Description,Reference)
DateAmountPayeeDescriptionReference
04/03/2024-4.50Coffee CornerCOFFEE CORNER MAIN ST - Card purchaseS0001
05/03/20242500.00Example CoPAYROLL EXAMPLE CO - Salary MarchS0002
07/03/2024-1234.56Sample LandlordRENT MARCH - Standing orderS0003
11/03/202415.25Example ShopREFUND EXAMPLE SHOP - RefundS0004

Do it by hand in a spreadsheet, free

These steps need no tool from this site. The cell references follow the column positions of the profile above; if your spreadsheet uses semicolons between formula arguments, replace the commas.

  1. Open the PayPal CSV in a spreadsheet program through its import dialog. Set the date column (column 1 "Date") to Text so the program does not reinterpret it, and leave the amount columns as numbers.
  2. Row 1 is the header and the transactions start in row 2.
  3. Date: rewrite column A from M/D/YYYY to DD/MM/YYYY (3/4/2024 becomes 04/03/2024). This bank's dates do not have a fixed width, so a position formula is not reliable: split the column into its parts (Text to Columns, or the split function of your spreadsheet) and join them again in the new order.
  4. Amounts: column H is already signed the way Xero wants (money out negative). Copy it as it is.
  5. Text columns: fill Payee (from column 4 "Name"); Description (from column 5 "Type" and column 16 "Item Title"); Reference (from column 13 "Transaction ID"). Where several bank columns feed one column, join them with a separator such as " - ".
  6. Apply Xero's own rules from its help page: Only the Date and Amount fields are needed to create bank statement lines. Payee is recommended; if the payee is an existing contact, the name must match the contact name exactly to avoid duplicates.
  7. Keep only the new columns, put the header row Date,Amount,Payee,Description,Reference on top, save the sheet as a comma-separated CSV, and compare the dates, the direction of the amounts and the number of rows with your statement in Xero's import preview.

Or use the converter

Load the file, choose the PayPal profile in the bank list and the target Xero, read the preview, then download. The conversion runs locally in your browser: the file is not uploaded, and only the licence key is sent for unlocking.

Paid profile. The free manual column mapper works for any bank, this one included, but the free version writes only the first 25 converted rows of a file. The 9 USD one-time licence adds the ready-made PayPal profile (one of the 35 paid profiles) and removes the 25-row limit. The column table on this page is free to read and can be used to fill in the manual mapper.

Open the converter Licence terms

Where this layout comes from

No bank supplied or approved this layout. It was copied on 5 October 2026 from a public open-source importer file kept by volunteers: simonmichael/hledger, file examples/csv/other/paypal-custom.csv.rules

Also read: simonmichael/hledger, file examples/csv/other/paypal-2023.rules

The lines used from the source: "Export CSV from Activity -> Statements -> Custom -> Activity download" ; "The default fields in 2018 were: ..." ; date-format %-m/%-d/%Y ; "(negative means leaving my account, in all amount fields)"

The Xero rules come from the vendor's own help pages: central.xero.com/s/article/Import-a-CSV-bank-statement (named as text, not linked). The official page refuses automated fetches (HTTP 403 or a script-only page), so the rules were read from web search excerpts of that same official URL on the checked date. Re-check in a browser before relying on a detail.

Bank formats change. Banks alter their CSV exports without notice and vendors change their import rules, so this mapping can be out of date. If the preview looks wrong, use the manual column mapper.

Related pages

PayPal to other apps

The PayPal guides for YNAB, QuickBooks Online and Wave, in the bank list

Other international exports to Xero

All banks and apps