Connecting inFlow to Xero
Cut down on double entry when it comes to exporting your sales and purchases from inFlow to Xero!
If you want your purchase and sales orders pushed to Xero Accounting, follow this guide to set up the integration.
How does this work?
This one-way integration* will have inFlow act as the main hub for your inventory tracking needs. It will create new records for products, customers, and vendors if they don’t already exist in Xero.
* one way from inFlow to Xero.
When sales orders in inFlow are marked as invoiced, meaning you’ve notified your customer that they owe you for the order, inFlow will then send this sales order to Xero as an invoice.
Purchase orders work in a similar way – when a purchase order is fully or partially received, inFlow will sync this purchase order to Xero and it will appear as a bill. Along with sending this information, your inventory value will also be pushed too.
Note: as soon as the purchase order sync is enabled, inFlow will sync your inventory value to Xero. It’s important that your inventory value is accurate in inFlow and Xero before enabling the integration.
Before setup checklist
- Are your quantities and costs for products accurate in inFlow? If you intend to push purchase orders, make sure that your stock levels and product costs are accurate! The integration adjusts Xero’s total inventory value to match inFlow’s, so you’ll want to make sure they match before you begin. See the “Push purchase orders” tab for details!
- Does your home currency in inFlow and Xero match? Make sure that your main currency Xero and inFlow, are the same. The home currency is set at the time of creating your Xero account. For information on how you can use multiple currencies in Xero take a look here.
- Are the taxes in both systems the same? Make sure that the tax rates that are found in inFlow are also added in Xero. For guides on taxes in Xero, take a look here.
- Have you set up SKUs for your inFlow products? Xero requires your products to have SKUs, and it will display product SKUs as Item Codes on invoices and bills. You can either add SKUs to inFlow manually or through an import or let inFlow generate them for you.
- Is your Xero account using Non-Tracked (untracked) inventory? Xero suggests that 3rd party inventory integrations should only use non-tracked inventory products. If you are not using this, you need to change your products to non-tracked inventory instead. Xero tracked inventory uses a special “Inventory” type account for tracking stock levels and value, and this will conflict with the integration and cause double entries.
For more on tracked inventory take a look here. If you already have tracked products in Xero, you can convert your products to non-tracked products.
- Have you added a Current Assets account? All non-tracked inventory needs to be connected to a Current Assets account type in Xero instead of the Inventory account type that is made for tracked inventory. For a full guide on creating accounts, take a look at Xero’s guide.
Connecting inFlow to Xero
- Log in as an inFlow administrator here: app.inflowinventory.com.
- Go to the Main Menu > Options > Integrations and click on the Xero tile.
- Click Connect to begin the integration setup.
- Your browser will direct you to your Xero account for authorization. If you have multiple Xero accounts, select the one that you’d like inFlow to communicate with.
- Click Allow Access to allow inFlow to view and update your Xero data.
Once you’ve connected the two programs, you’ll be able to configure what inFlow will push to Xero. This includes payment options, account selection, tax setup, and more. Click on the different tabs to learn more about each section.
Push sales orders
Push inFlow sales orders to Xero invoices
Once you’ve connected Xero to inFlow, the next screen will direct you to the Sales settings. Here you can choose to push sales orders from inFlow to Xero.
Sales Orders are pushed to Xero when they are marked as invoiced, paid or partially paid in inFlow.
inFlow pushes sales orders as Xero invoices, credit notes, and payments (if payment push is enabled). The payment push setting is optional in case you already handle payments in Xero. In Xero, these can all be found under the Sales Overview section.
If you don’t want to push sales orders from inFlow to Xero, you can click to toggle this setting off.
inFlow needs to know which Xero accounts to update for you during the push. It’s always best to confirm account mappings with your company bookkeeper or accountant if you’re unsure of something.
Product income account: When items are created in Xero via inFlow, we have to set their Product Income account, and it can be any income type account. This is the account used to receive money for products when they are sold.
Shipping income account: This is an optional account if you ship products to your customers. Since Xero does not have a specified field for shipping, freight is added as a line item to the invoice in Xero. Ideally, shipping should not be included with actual product income. You may make a separate account in Xero to keep track of freight charged to your customers.
Payments account: This can be any bank or asset type account for receiving payments from your customers when a sale is made. It is recommended that it is turned off if you record payments in Xero directly; otherwise, there will be double entries.
Taxes: Make sure that the tax rates that are found in inFlow are also added in Xero.
Push purchase orders
Push inFlow purchase orders to Xero bills and inventory values
The integration settings allow inFlow to push purchase orders and inventory values to Xero.
Keep in mind as soon as the first purchase order is pushed from inFlow to Xero, inFlow will push your inventory value too. It’s important that your inventory value is accurate in inFlow before connecting to Xero. Purchase orders will appear as a bill in Xero.
When are purchase orders pushed to Xero?
Purchase orders are pushed any time an order is paid*, partially paid*, fulfilled, or partially fulfilled.
*if payment push setting is enabled.
For partially received orders in inFlow, Xero will only include products that have been received in inFlow so far. When the remaining products are marked as received in inFlow, the related Xero Bill will be updated to include those items.
If you’d like to create separate Xero bills when partially receiving products in inFlow, you’ll need to split the order by received items and create two separate purchase orders in inFlow.
How to set up purchase order push
If you don’t want to push purchase orders and inventory value from inFlow to Xero, you can toggle off the Enable push setting at the top right to disable it.
If you’ve enabled purchase order push, then the first time you push a purchase order to Xero, your total inventory value will also be pushed along with it. It’s important that your inventory value is accurate in inFlow beforehand. Otherwise, the inventory value that is pushed to Xero will be inaccurate, resulting in journal entries that will need to be reconciled. To check the current inventory value in inFlow, run the Inventory Details report with Total Cost Value selected as a column.
Make sure not to map the Xero Cost of goods sold account to the Adjustments / Other Costs Account. Otherwise your inventory value will push to that account incorrectly.
Push inventory value: You can manually update the inventory value from inFlow to Xero by clicking Push Inventory value in the inFlow integration settings.
Cost of goods sold: You’ll need to tell inFlow which Xero account to update when it pushes the total Cost of Goods Sold value from inFlow to Xero.
Inventory assets account: This can be any type of asset account (except INVENTORY) to track the inventory cost value of inFlow’s stocked products. This is also the account set for the stocked item’s Product Purchases account in Xero. Please see the FAQ tab on this article for how to set up this account if you haven’t set it up already.
Adjustments/other costs account: This can be any direct costs type account, but we recommend selecting + Create inFlow Adjustment Account from the settings page. This account is used to balance out the Inventory Asset account and also to track the cost value of inFlow’s non-stocked items. This is also the account we use to set the Product Purchases to account in Xero for non-stocked / service items.
Payment push: This should only be enabled if inFlow is your only source of updating payments for purchase orders. If payment push is disabled, marking a purchase order as paid in inFlow will not mark it as paid in Xero.
Depending on what payment method you have, inFlow will push the payment to Xero’s Cash or Check account or Credit Card account. A blank payment method will default to the Credit Card account. The table below shows which payment will go under each account.
|Payments (Check) account||Payments (Credit Card) account|
Note: inFlow does not push Vendor Credit – any payments made with vendor credit will not be pushed to Xero.
Taxes: Make sure that the tax rates that are found in inFlow are also added in Xero. You will have to map those taxes in the taxes field.
Xero bills don’t have a discount column available, so any bills pushed from inFlow will show the discounted unit price from inFlow.
Frequently asked questions
When do sales orders get pushed to Xero from inFlow?
Sales orders are pushed to Xero when they are marked as invoiced, paid, or partially paid in inFlow. Another way to mark a sales order as invoiced is if you manually enter an invoice date, print, or email the invoice.
What are these rounding adjustments on my sales and purchase orders? The two programs handle rounding differently. inFlow sums everything up before rounding the final total, whereas Xero rounds each item and then sums it all up. In order to make your order totals match, inFlow may sometimes have to push a rounding adjustment.
Will Xero also track my inventory?
This integration is only one-way, which means only information from inFlow will be pushed to Xero. Inventory in inFlow will also push the inventory value to Xero. This means all your day-to-day inventory will be tracked in inFlow, and Xero will only be used for accounting and bookkeeping purposes. If you create an invoice, bill, or credit note on Xero, it won’t be pushed to inFlow.
Please note this integration uses Xero’s non-tracked inventory product types. Inventory levels aren’t pushed from inFlow to Xero.
Does inFlow push serial numbers?
At the moment, Xero doesn’t have serial number support. Products pushed from inFlow won’t include the serial information.
I selected the wrong Xero account; how can I disconnect the app?
- Go to https://app.inflowinventory.com/options/integrations
- In the Xero section, click Edit.
- At the bottom left-hand corner, click on Disconnect from Xero.
- Next, a warning message will appear. Click on the Disconnect button.
- Click Done to complete disconnection.
For full steps on how to disconnect inFlow from the Xero apps section, take a look here. Once both sides have been disconnected, you can reconnect inFlow to Xero again.
What happens when a return or a refund is applied to a sales order in inFlow?
If there is a return or refund on a sales order, this will create a credit note in Xero. The number will be similar to the original invoice number, and the original invoice in Xero will remain unchanged.
Can I apply a pending credit on a customer’s account to a sales order as a payment?
Applying a credit on a customer’s account to a sales order in inFlow will not push it as a payment on Xero. You will have to manually apply the credit as a payment to the order on Xero.
Why are the quantities different on the two invoices?
For sales orders, inFlow will push the standard UOM quantity of your product to Xero. For example, if the Sales Unit of Measure of Product A is set to 1 pack = 6 ea., and you sell 2 packs, inFlow will push the quantity for 12 units to the Xero invoice.
For purchase orders, inFlow will push the Standard UOM quantity of your product to Xero. For example, if the Purchase Unit of Measure of Product A is set to 1 pack = 6 ea., and you buy 2 packs, inFlow will push the quantity for 12 units to the Xero Bill.
What fields on a sales order and customer page are pushed to Xero?
|Sales order fields that sync to Xero||Sales order fields that don’t sync to Xero|
|Customer name||P.O #|
|Invoice/Order date||Sales Rep|
|Invoice/Order number||Location of items|
|Freight Charges||Non-Customer costs|
|Products/SKUs sold||Payments made by credit|
|Quantity of products Sold||Shipping Address|
|Payment Details||Customer fields synced to Xero|
|Due Date||Billing and Shipping Address|
|Subtotal on sales order|
|Taxes on sales order||Currency|
|Balance left on on sales order|
I ship products to my customers; how will this work with inFlow & Xero?
If you don’t already have a dedicated shipping account in Xero, then you’ll need one to connect inFlow to Xero to track the shipping. For a full guide on creating accounts, take a look at Xero’s guide. For the Shipping account, you can use Revenue -> Other Income and name it Shipping and select how it is taxed.
inFlow created new products in Xero, but they already existed in Xero. Now I have duplicates! Why did this happen?
inFlow looks for existing products based on SKU. If it doesn’t find any matching products with the SKU, then it will create new products (using that SKU). To avoid duplicates, please make sure that the SKU is exactly the same.
What happens when a Purchase Order is pushed to Xero from inFlow?
When a purchase order is pushed to Xero, inFlow will create a corresponding Xero Bill. inFlow’s total Inventory Cost Value will update the Xero Inventory Assets account to match. Lastly, inFlow’s Cost of Goods Sold will update the Xero Cost of Goods Sold account.
What payment setting should I use if I enter payments in Xero?
When enabled, inFlow will send all payment information on a purchase order from inFlow to Xero. Entering a payment on a purchase order in inFlow will create a corresponding Xero Payment.
If your business enters payments into Xero manually or with another software integration, this can cause duplicate payments if you mark an order Paid in inFlow. This is because there are now two sources trying to pay the same order. To prevent this, you can disable payment push. When the payment push is off, all orders that are partially paid or paid in inFlow will still sync to Xero, but payment information from inFlow will not be updated in Xero. That way, when you receive the payment in Xero, you can still mark it as paid in inFlow without worrying about duplicate payments.
How does inFlow calculate and push the Cost of Goods Sold?
inFlow calculates the Cost of Goods Sold using a number of factors which are explained here. When a sales order is marked Fulfilled, inFlow will update Xero’s Cost of Goods Sold account with the Cost of Goods Sold value for that order.
If you disable sales order push, the invoice will not be created in Xero, but the Cost of Goods Sold will still be pushed if you have enabled purchase order & inventory value push.
When does inFlow update the inventory value in Xero?
A lot of things can affect inventory value. When an item leaves or enters your stock, it decreases or adds to your total inventory value. Changing the costs of the products will also change your inventory value. This can include:
- Purchase of items
- Sales of items, when purchase order push is enabled
- Stock adjustments/count sheets
- Work orders
- Cost adjustments
In addition to the events above, inventory value push happens every day automatically at 2:00 a.m. your local time or manually from the integration settings page.
Why is the discount percentage on my purchase order not showing on the Xero bill?
Xero bills don’t have a discount column available, so any bills pushed from inFlow will show the discounted unit price.
I have marked a purchase order as paid, but it did not push to Xero!
If you have disabled payment push, then the purchase order will only be pushed when the products are fulfilled.
What happens when you return something on a purchase order?
Once any item on your purchase order is returned and it’s unstocked or refunded, Xero will create a credit note with the name <order name>-Credit. Applying credit from the vendor’s account to an order in inFlow will not push it as a payment to Xero.
I added a payment on my purchase order in inFlow, but it didn’t get pushed to Xero. Do I need to change something?
Check to see if you have payment push enabled! If it isn’t, then a payment alone will not push the purchase order. If it is enabled, check which payment accounts you’ve set up! inFlow defaults to the Credit Card account if you don’t specify a payment method. So if you don’t have a Credit Card account in Xero, then make sure you are selecting the specific payment method (e.g., cash, check, EFT).
I prepay my vendor when I purchase from them. How does the integration handle this?
If your Unfulfilled purchase order is marked paid or partially paid, this will still push to Xero as a Bill. In the bill, the accounts for those products will temporarily use your mapped Adjustment/Other Costs account (you can think of it as a temporary clearing account). As you fulfill the order, the received items will automatically update on the bill to show the mapped Inventory Assets account.
What fields on a purchase order and vendor page are pushed to Xero?
|Purchase Order fields that sync to Xero||Purchase Order fields that don’t sync to Xero|
|Vendor name||Shipping Address|
|Order Number||Sales Rep|
|Order Date||Email and Phone number|
|Freight Charges as a line item||Non-Vendor costs|
|Products/SKUs Ordered||Payments made by credit|
|Quantity of products Ordered||Billing Address|
|Payment Details||Vendor Fields Synced to Xero|
|Due Date||Vendor Name|
|The subtotal on the purchase order||–|
|Taxes on the purchase order||–|
|Balance left on on purchase order||–|
Troubleshooting common errors
You may encounter some errors from time to time as data is sent to Xero. Below we have a few examples and how you can fix them.
The contact name [Name] is already assigned to another contact. The contact name must be unique across all active contacts.
Reason: There is duplicate contact information in either the Name or Contact Name in Xero.
Solution: Change both the first and last name of the customer in either Xero (since these fields are separate) or add something to the Name or Contact Name in inFlow (first and last name share a field, so the change will apply).
A validation exception occurred: Invoice not of valid status for modification
Reason: Changes are being made in inFlow to an order/bill in Xero that has been voided or deleted.
Solution: Change the order number in inFlow, save, then click the Retry button on the integration page.
Note: Before voiding or deleting an order in Xero, add “inactive” or some identifier so that it isn’t impacting the order with the same number in inFlow in case you want to make any edits.
Please enter a SKU for the following products.
Reason: All products must have a SKU in order to push purchase orders or sales orders.
Solution: Add SKUs to your products, then click the Retry button on the integration page.
A validation exception occurred: Payment amount exceeds the amount outstanding on this document.
Reason: An overpayment is applied to the Sales Order.
Solution: Click the Paid button in your sales order to check the payments. Change the lines to make sure that the payments don’t exceed the total amount of the order, then click the Retry button on the integration page.
A validation exception occurred: You must specify and Account code or Account ID for the payment.
Reason: A payment method hasn’t been added to the order, or there is no credit card account.
Solution: If there’s no payment method specified on the purchase order, inFlow defaults to using the credit card account. If you’re paying using other methods, please specify it in the order. Otherwise, if you want to keep a blank payment method, then you’ll need to add the credit card bank account in Xero.
Your home currency must match in inFlow and Xero.
Reason: The main currency in inFlow and Xero don’t match.
Solution: Check both programs to check the currency, and change whichever one needs correcting.
Xero doesn’t allow you to change your base currency once it’s set, so you may need to change your inFlow currency settings to have them match. Before changing currency settings in inFlow contact inFlow support so we can make sure everything is set up correctly.
A validation exception occurred: The SalesAccountId account is invalid.
Reason: Select a sales-type account (called a revenue account in Xero) in the integration settings.
Solution: Change the account to a revenue account.
A validation exception occurred: Account must be valid: Tax rate must be valid.
Reason: Xero and inFlow handle rounding differently, causing a discrepancy. inFlow pushes the standard unit of measure price, and Xero rounds by the unit price rather than the subtotal.
Solution: If the unit price requires more than 2 decimal places, change the standard unit of measure in inFlow so that the price is 2 decimal places.