VNDLY Xero Integration: Complete Setup Guide [2026]
Connect VNDLY to Xero in minutes. Sync customers, push invoices as drafts, and map products to items. Step-by-step setup guide for 2026.
Your sales team just closed a deal. Your warehouse shipped the order. Your customer paid the invoice. And now your accountant wants to know why the numbers in Xero do not match the numbers in your inventory system.
If that scenario sounds familiar, you are not alone. Xero is brilliant for accounting. It handles bank feeds, VAT returns, and financial reporting better than almost anything on the market. But Xero was never built to track stock levels across multiple warehouses, manage purchase orders, or handle the messy operational layer between selling a product and recording the revenue.
That is where VNDLY comes in. We handle the inventory, orders, and operations. Xero handles the books. And our integration keeps the two systems talking so you do not have to copy data by hand.
In this guide, I will walk you through exactly what the VNDLY + Xero integration syncs, how to set it up, and where the limits are. No fluff. Just the real steps and real code.
Why Xero Users Need an Inventory Bridge
Xero's native inventory tracking works fine when you are small. You can add items, set stock levels, and record sales. But the moment you grow past a single location or start selling through multiple channels, the gaps become obvious.
Here is what Xero does not handle out of the box:
- Multi-warehouse stock tracking. Xero stores one quantity per item. If you have stock in Stockholm and a second warehouse in Gothenburg, Xero sees one blended number.
- Purchase order workflows. You can create purchase orders in Xero, but there is no goods receipt workflow. You cannot record partial deliveries or track what is still inbound.
- Landed cost allocation. Freight, duty, and insurance do not get attached to your inventory cost in Xero unless you do manual journal entries.
- Real-time channel sync. Sell something on Shopify and something else on WooCommerce? Xero has no idea until you manually tell it.
Research from InFlow Inventory's 2026 State of Inventory report found that 84.8% of operators still use spreadsheets as their primary tracking tool, even at companies with 500+ employees. The reason is not that they love Excel. It is that their accounting system and their operational system refuse to talk to each other.
That is the problem VNDLY solves. We are the operational layer. Xero is the financial layer. The integration is the bridge.
What VNDLY Actually Syncs to Xero
Let me be specific, because "sync" is a word that gets thrown around too loosely. Here is exactly what moves from VNDLY to Xero when you connect the two systems.
Customers
When you create a customer in VNDLY, the integration can push that customer to Xero as a Contact. Here is what maps across:
- Name and legal name
- VAT / tax number
- Email address (invoice email takes priority)
- Phone number
- Website
- Default shipping address
VNDLY stores the Xero ContactID in its mapping table, so if you update the customer later, the integration knows which Xero record to update. No duplicates. No orphaned contacts.
⚡ Pro Tip
Make sure your customers in VNDLY have a legal name filled in. Xero uses the legal name as the primary Contact name if available, falling back to the display name.
Invoices
This is where the integration earns its keep. When you mark an invoice as issued in VNDLY (moving it out of draft status), the integration can push it to Xero as a draft sales invoice.
Each line item includes:
- Description (or the product name snapshot at time of sale)
- Quantity
- Unit price
- Discount percentage
- Tax amount
- Item code (if the product variant has been mapped to a Xero Item)
The invoice lands in Xero with a status of DRAFT. That means your bookkeeper still has the final say before it becomes an authorised invoice in Xero. It is the best of both worlds: your operations team generates the invoice in VNDLY, and your finance team controls when it hits the books.
Important: Draft invoices in VNDLY do not sync. Only issued invoices do. And credit notes are not supported in the current version of the integration.
Items (Optional)
You can optionally push your VNDLY product variants to Xero as Items. Here is how the mapping works:
- SKU becomes the Item Code in Xero (max 30 characters)
- Product name + variant title becomes the Item Name (max 50 characters)
- Sale price maps to Sales Details
- Cost price maps to Purchase Details
This is turned off by default because not every VNDLY user wants to manage their product catalog inside Xero. But if you do want item-level detail on your Xero invoices, flip the toggle and run a sync.
How to Connect VNDLY to Xero: Step by Step
The setup takes about three minutes if you have admin access to both systems.
Step 1: Open Integrations in VNDLY
Log into VNDLY and go to Settings > Integrations. Scroll down to the Accounting section. You will see a card labeled Xero with the description "Cloud Accounting. Sync customers and invoices."
Step 2: Click Connect
Click the Connect to Xero button. VNDLY redirects you to Xero's OAuth authorization screen. You will need to log into your Xero account if you are not already signed in.
Step 3: Authorize the Connection
Xero will ask you to approve the following permissions:
- offline_access - so VNDLY can refresh the connection automatically
- accounting.contacts - to create and update customer contacts
- accounting.transactions - to push invoices
- accounting.settings - to read tax rates and currency settings
Approve the connection. If your Xero account has access to multiple organisations, Xero will ask you to pick the one you want to connect.
Step 4: Configure Your Sync Settings
Once connected, you will see four toggles in the Xero card:
- Sync Customers - ON by default. Pushes new VNDLY customers to Xero.
- Push Invoices - ON by default. Pushes issued invoices to Xero as drafts.
- Sync Items - OFF by default. Pushes product variants to Xero as Items.
- Auto Sync - OFF by default. Automatically syncs changes to Xero.
Choose the combination that makes sense for your workflow. Most users leave Customers and Invoices on, enable Items if they want product detail in Xero, and turn on Auto Sync once they are comfortable with how everything works.
Step 5: Run Your First Sync
Click Sync Now. VNDLY will push your customers first, then your issued invoices, then your items (if enabled). You will see a live activity log showing how many records synced, how many failed, and the status of each batch.
If something goes wrong, the error message appears in the log. Common issues include missing customer email addresses, invoices still in draft status, or Xero API rate limits during large initial syncs.
See how VNDLY handles your accounting workflow. Free 14-day trial, no credit card.
Try VNDLY free →What Happens Behind the Scenes
I want to pull back the curtain for a moment, because the mechanics matter.
When you click Sync Now, VNDLY does the following in order:
-
Load the integration - VNDLY retrieves your encrypted access token, refresh token, and Xero tenant ID from the database. If the access token has expired, it refreshes automatically using Xero's identity API.
-
Sync customers - VNDLY fetches every customer from your tenant and checks whether they already have a Xero ContactID in the mapping table. If not, it creates the contact in Xero and stores the mapping. If yes, it updates the existing contact.
-
Push invoices - VNDLY fetches every issued invoice (excluding drafts and credit notes). For each invoice, it checks whether the customer has already been synced. If not, it syncs the customer first. Then it builds the invoice payload and sends it to Xero as a draft ACCREC invoice. The Xero InvoiceID gets stored in the mapping table so the same invoice is never pushed twice.
-
Sync items (if enabled) - VNDLY fetches every active product variant, maps the SKU to a Xero Item Code, and pushes the item with sales and purchase pricing.
-
Log everything - Every sync batch gets recorded in the integration sync log with timestamps, record counts, and any error details.
The mapping table is the secret sauce. Without it, you would end up with duplicate contacts and duplicate invoices every time you ran a sync. With it, VNDLY knows exactly which Xero record corresponds to which VNDLY record, even if you change the name or SKU later.
From the Founder: Why We Built It This Way
At my product company, we used Xero for accounting from roughly 2012 onwards. Our bookkeeper loved it. But every Monday, she would email me a spreadsheet of invoices she needed me to check against the warehouse dispatch log. Because the sales team created invoices in one system and the accountant recorded them in another, we had a permanent reconciliation gap. It was not dramatic. It was just... constant. Like a dripping tap.
When I built VNDLY, I knew the accounting integration had to be opinionated. Push invoices as drafts, not as final authorised records. Let the finance team keep control. Sync customers automatically so you do not end up with "ABC Ltd" and "ABC Limited" as two separate contacts. And always, always store the external mapping so nothing gets duplicated.
The integration is not trying to replace Xero. It is trying to make sure your operational data reaches your financial system without you babysitting it.
Limitations and Honest Expectations
I would rather you know the boundaries now than discover them later.
Outbound only. VNDLY pushes data to Xero. It does not pull customers, invoices, or payments back from Xero into VNDLY. Your source of truth for operations stays in VNDLY. Your source of truth for accounting stays in Xero.
Credit notes are not supported. If you issue a credit note in VNDLY, it will not automatically appear in Xero. You will need to create the credit note manually in Xero for now.
Invoices land as drafts. This is by design, but it means your bookkeeper still needs to review and authorise invoices inside Xero before they affect your financial reports.
No stock quantity sync. VNDLY does not push stock levels to Xero. Xero's inventory module tracks its own quantities, and we do not attempt to override them. If you want real-time stock visibility, you get that inside VNDLY.
Tax rate mapping is basic. VNDLY passes the tax amount per line item, but it does not map your VNDLY tax rates to specific Xero tax codes. If you need precise tax code mapping for complex VAT scenarios, check the results of your first few synced invoices carefully.
The Catch
If you are looking for a two-way sync where Xero and VNDLY constantly mirror each other, this integration is not that. It is an operational-to-financial bridge. Your inventory lives in VNDLY. Your books live in Xero. The bridge carries customers and invoices one way.
Who Is This Integration For?
The VNDLY + Xero integration fits a specific profile. You are probably a good match if:
- You run a product business with multiple sales channels (Shopify, WooCommerce, B2B portal, manual sales orders) and you want one inventory system feeding clean invoice data into Xero.
- You have a bookkeeper or accountant who prefers to review invoices before they hit the ledger.
- You are outgrowing spreadsheets for purchase orders and stock tracking, but you do not want to abandon Xero for accounting.
- You operate in multiple currencies and need VNDLY to handle the operational side while Xero handles the exchange rate accounting.
If you are a pure service business with no inventory, you probably do not need VNDLY at all. If you are a manufacturer looking for full BOM and production scheduling, you might need a dedicated MRP system instead.
For most growing product businesses selling physical goods, the combination of VNDLY for operations and Xero for accounting hits a sweet spot. You get the operational depth that Xero lacks, without paying for an enterprise ERP that takes six months to implement. If you are a small business evaluating your options, our small business inventory software page breaks down exactly what to look for.
How This Fits Into Your Broader Workflow
The Xero integration is not an island. It works best when the rest of your VNDLY setup is already clean.
Here is a typical flow:
-
Purchase order arrives. You receive stock against a PO in VNDLY, updating your on-hand quantities and unit costs. Read our PO receiving guide if you want the exact steps.
-
Sales order comes in. VNDLY checks stock availability across all locations and reserves the inventory.
-
Order ships. You mark the sales order as shipped in VNDLY.
-
Invoice generates. VNDLY creates the invoice from the sales order, pulling the correct prices from your price list.
-
Invoice syncs to Xero. If the integration is enabled, the issued invoice pushes to Xero as a draft, ready for your bookkeeper.
That is the loop. Purchase in VNDLY. Sell in VNDLY. Invoice in VNDLY. Account in Xero. No double entry.
If you are also selling online, you can connect Shopify or WooCommerce to VNDLY so your web orders feed into the same sales order pipeline before reaching Xero.
Frequently Asked Questions
Does VNDLY sync stock levels to Xero?
No. VNDLY does not push inventory quantities to Xero. Xero tracks its own stock levels independently. If you need real-time stock visibility, check VNDLY's planning reports and stock projection charts.
Will the integration duplicate my customers in Xero?
No. VNDLY stores a mapping table that links each VNDLY customer to their Xero ContactID. Once a customer has been synced, updates go to the same Xero contact every time.
Can I pull invoices from Xero into VNDLY?
Not currently. The sync is one-way: VNDLY to Xero. We recommend creating and managing your operational invoices inside VNDLY, then pushing the final issued invoices to Xero for accounting.
What happens if I disconnect and reconnect Xero?
Your existing mappings are preserved in VNDLY's database, so reconnecting the same Xero organisation will resume syncing without creating duplicates. If you connect a different Xero organisation, you should clear the old mappings first.
Do I need a specific Xero plan for this to work?
No. The integration uses standard Xero API endpoints available on all Xero plans. You just need a Xero organisation with API access enabled, which is standard for all subscriptions.
Ready to Connect?
If you are already using VNDLY and Xero separately, the integration is the easiest win you can implement this week. It takes three minutes to connect, runs your first sync in under a minute, and immediately removes the manual copy-paste work between your operations and accounting teams.
If you are not using VNDLY yet, start a free trial and connect your Xero organisation during setup. You will see the sync in action before you commit to anything.
Start a 14-day free trial of VNDLY - no credit card required.
Henrik Åberg is the founder of VNDLY. Before building inventory software, he spent 13 years running a product company that shipped 75+ containers per year and used Xero for accounting throughout.