Import Xero Invoice Payments in Bulk

How to use EasyCSV to apply payments to existing Xero sales invoices from CSV or Google Sheets.

← Back to Xero docs

Step-by-step: import invoice payments into Xero in bulk

  1. Log into EasyCSV.
  2. Create a new sheet import page using an example CSV file or Google Sheet. Each row should represent one payment to apply to one Xero sales invoice.
  3. When setting up the import destination, choose Xero.
  4. Under Xero object type, select Invoice Payments.
  5. Connect your Xero account using the Connect Xero Account button, or connect from Sheet Details if you skipped this during setup.
  6. Open Field Mappings and map your spreadsheet columns to the Xero payment fields below. EasyCSV will auto-match common column names when possible.
  7. Upload your CSV or XLSX file, or submit a Google Sheet link, to run the import.
  8. Review the import summary email or import log. If any rows failed, download the attached error CSV for full details.

Need to reconnect Xero first? See the Xero reconnect instructions.

Example spreadsheet columns

A typical invoice payments file might look like this:

Invoice Number Date Amount Account Code Reference Is Reconciled?
INV-1042 2026-07-16 500.00 090 Stripe payout yes
INV-1043 07/17/2026 1250.00 Bank transfer no

Field mapping reference

EasyCSV field Required? Notes
Invoice Number Yes Must match an existing Xero sales invoice number.
Date Yes Payment date. EasyCSV auto-detects formats like YYYY-MM-DD, MM/DD/YYYY, and DD/MM/YYYY.
Amount Yes Payment amount applied to the invoice.
Account Code No Bank account code for the payment. See Account Code fallback when not mapped.
Reference No Optional payment reference sent to Xero.
Is Reconciled? No Accepts yes/true/1 or no/false/0. Leave blank to omit from the Xero payment.

Account Code fallback

If you do not map Account Code, EasyCSV tries to determine the bank account automatically:

  1. Use the account code from the invoice's most recent existing invoice payment in Xero.
  2. If the invoice has no invoice payments yet, use the account code from your organisation's most recent invoice payment.
  3. If neither source is available, the row is marked as an error.

Duplicate detection

EasyCSV skips creating a payment when Xero already has an invoice payment with the same Invoice Number, Date, and Amount. Skipped rows are reported in the import summary but are not treated as errors.

What we support

Supported:

  • Payments against existing Xero sales invoices (ACCREC)
  • One payment per spreadsheet row
  • Batch payment creation with per-row error reporting

Not supported:

  • Multi-currency payments
  • Credit note payments (refunds)
  • Prepayments
  • Overpayments
  • Bill (ACCPAY) payments

Error CSV

When rows fail validation or Xero rejects a payment, EasyCSV includes those rows in an error CSV attached to the import email. The import summary shows the first several error messages; the error CSV contains every failed row and its error message.

Common row errors include missing required fields, invoice numbers not found in Xero, unsupported bill numbers, and Xero validation messages such as amount exceeding the amount due.