How to import purchase orders into Xero from a CSV

    Updated 17 October 2026

    Xero cannot import purchase orders from a CSV or Excel file. It has CSV imports for bills and sales invoices, but a purchase order has to be raised in Xero one at a time or created through the Xero API. To create many at once from a spreadsheet, you need an app that sends them through the API for you.

    What Xero has said about purchase order imports

    A request for purchase order import and export has been on Xero Product Ideas since November 2013. In May 2022 Xero's community manager replied that Xero did "not have a direct plan to build export and import functionality in Purchase Order any time soon", and the idea is marked "Not in pipeline". A newer request, "Purchase Orders - Import from an Excel file", had 101 votes and the status "Submitted" in October 2026, with users still asking for it in September 2026.

    What the Xero API needs to create a purchase order

    The Xero Accounting API creates purchase orders through its PurchaseOrders endpoint. Two things are required:

    • A contact that already exists in Xero. The endpoint "does not create new contacts", so every supplier has to be set up in Xero first.
    • At least one line item, with a description, or a quantity and unit amount, or both.

    Everything else is optional, and some of it has a default:

    • The date defaults to today, in your organisation's time zone.
    • The purchase order number is generated from your organisation's invoice settings if you leave it out.
    • Line amounts are treated as excluding tax unless you say otherwise.
    • Each line can carry an account code, a tax type, an item code, a discount and up to two tracking categories.

    How to lay out the CSV

    Put one line item on each row. Rows with the same purchase order number become one purchase order, and its contact, date and delivery date are taken from its first row. These are the columns Purchase Order Importer reads:

    ColumnNeededExampleNotes
    Contact NameYesACME SuppliesMust match the full contact name in Xero
    PO NumberYesPO-001Rows sharing a number become one purchase order
    Invoice DateYes01/02/2026The purchase order date
    Due DateYes15/02/2026The delivery date
    DescriptionNoOffice desk - oak
    QuantityYes2
    Unit AmountYes349.99A £ sign, thousands commas or brackets for a negative are fine
    Account CodeYes300A code from your chart of accounts
    Tax TypeYes20%A UK VAT rate name or a Xero tax type code
    TrackingName1 and TrackingOption1NoRegion, NorthA second pair, TrackingName2 and TrackingOption2, is also read

    Column names are flexible: Qty, Amount, Date, Delivery Date and Purchase Order Number are recognised too. Here is a file with two purchase orders, the first with two lines:

    Two purchase orders, three line items
    Contact Name,PO Number,Invoice Date,Due Date,Description,Quantity,Unit Amount,Account Code,Tax Type,TrackingName1,TrackingOption1
    ACME Supplies,PO-001,01/02/2026,15/02/2026,Office desk - oak,2,349.99,300,20%,Region,North
    ACME Supplies,PO-001,01/02/2026,15/02/2026,Ergonomic chair - mesh,4,189.50,300,20%,Region,North
    XYZ Services,PO-002,01/02/2026,28/02/2026,Consulting hours,10,85.00,400,No VAT,,

    Four details cause most of the problems:

    • Dates must be written 01/02/2026 (day first) or 2026-02-01. A date without leading zeros, such as 1/2/2026, is not read, and Excel sometimes saves dates that way.
    • Tax rates can be written as UK VAT names. 20%, 20% (VAT on Expenses) and Standard become Xero's 20% rate on expenses, and 5% the 5% rate. 0% and Zero Rated become zero-rated, No VAT, None and No Tax become no VAT, and Exempt stays exempt. A Xero tax type code such as INPUT2 is passed straight through, which is what an organisation outside the UK should use. A value that is neither a known name nor shaped like a Xero code is set to no VAT with a warning, so read the warnings before you send.
    • Contact names must match the full contact name in Xero, so "ACME Supplies Ltd" in the file will not find a contact called "ACME Supplies".
    • Tracking categories and options must already exist in Xero and be spelled the same. When Xero's API does not recognise a tracking option, it saves the line without it and reports no error.

    Create the purchase orders with Purchase Order Importer

    Purchase Order Importer is FourFourFive's free Xero app for creating purchase orders in bulk from a CSV.

    1. Create a free FourFourFive account and connect the Xero organisation the orders belong to.
    2. Open Purchase Order Importer and choose that organisation.
    3. Upload your CSV (up to 5MB), or download the template from the upload screen and fill it in. The file is read in your browser.
    4. Check the preview. Rows are grouped into purchase orders, errors such as a missing column or an unreadable date or amount are listed, and so are warnings, such as an unknown tax rate or a row whose contact differs from the first row of its purchase order.
    5. Check contacts. Every contact name is looked up in your Xero organisation, and any that are not found are marked so you can create them in Xero first.
    6. Send. The purchase orders are created in Xero as drafts, 25 to a request, and you see the result for each one, including Xero's own message for any it refused. Failed ones can be retried once with Xero numbering them.
    7. Review the drafts in Xero and approve them there.

    The importer also checks the tracking on every line after Xero saves it, and warns you when Xero has dropped a tracking category or option that did not match.

    Sources

    1. Xero Product Ideas, Purchase Orders - Import / Export function. Posted November 2013; Xero's reply of 17 May 2022; status Not in pipeline
    2. Xero Product Ideas, Purchase Orders - Import from an Excel file. Posted October 2023; status Submitted
    3. Xero Developer, Accounting API: Purchase Orders. Required and optional elements, contacts, defaults, tracking
    4. Xero Central, Import bills and credit notes
    5. Xero Central, Import customer invoices