Integrate a POS system


The Xero API provides an easy way for developers to integrate a point of sale (POS) system with Xero. In this example we are going to focus on how you can record your POS sales in Xero.

We’ve gone for an approach that focuses on getting your sales information into Xero on a daily basis and making your bank reconciliation as easy as possible. Including a breakdown of the daily sales in Xero by each tender type is useful so that if anyone needs to revisit your daily sales figures later they are clearly labelled in Xero for easy cross checking with your POS system.

We’ll go through the setup process for a basic scenario first and then show how to record the sales in Xero. After that we’ll go through the bank reconcilation in Xero and give some tips to make this as automated as possible.

Getting setup

There are numerous ways to work with different tender types. In this example we’ll setup some current asset and current liability accounts to assist with making our bank reconciliation process as simple as possible.

We’ll start by setting up an asset account for each payment type we’ll be accepting. We’ll also add some liability accounts to handle vouchers and deposits.

a) To add accounts in Xero go to Settings > Chart of Accounts
b) We’re going to add accounts for each of the main methods of payment we accept

Account Type Account Name Account Code Tax Type
Current Asset Cash CASH No Tax
Current Asset Eftpos / Credit card EFT No Tax
Current Asset American Express AMEX No Tax
Current Asset Cheques CHQ No Tax
Current Liability Vouchers VOU No Tax
Current Liability Deposits DEP No Tax

Recording Daily Sales in Xero

We’ll go through an example of recording your daily sales in Xero.

We’ll presume we don’t offer payment terms for customers and all our sales are paid for using either Cash, Eftpos, Credit Card or Cheque. All sales are recorded in on our Point of Sale and we have an Eftpos terminal for processing eftpos and credit card payments.

At the end of the day we should be able to see a summary of our daily sales in our Point of Sale system. We want to record the sales figure in Xero and also make the reconciliation of the money received in our bank account for these sales easy.

Using the Xero API you can create an Accounts Receivable invoice to record this revenue and also the breakdown of payments received for these sales.

In this example we had $1000 ($888.89 + 111.11 GST) of sales for the day, paid using a variety of methods as below.


The total of this invoice is zero and is equivalent to posting a journal to record these sales.

The invoice gets entered into Xero as draft invoice so needs to be approved before your profit and loss and balance sheet show the effect of the invoice.


Bank Reconciliation of daily sales

Once you have received your automated overnight bank feed (or imported your bank statement manually) then you’ll have at least one bank statement lines similar to the line below for the 800.00 of eftpos and credit card sales


We can code this transaction to our Eftpos asset account as we’ve already recorded the sales revenue when we entered our AR invoice which summarised the sales from the day before.


If we revisit out Balance sheet we will see now that our bank account balance has increased by $800 and our Eftpos account now has a value of zero (so isn’t shown on the balance sheet).


Managing inventory purchases and cost of goods sold

Read our guide on How to integrate my inventory system for step by step details on how to record inventory purchases, keep your stock on hand asset value up to date and update your Cost of Goods sold (COGS) expense.