A Singapore accounting firm's client spent 6 hours every month manually creating invoices in Xero from their e-commerce orders. Copy order. Open Xero. Create invoice. Enter line items. Send. Repeat 200 times.
We connected their Shopify store to Xero via the API. Now every order automatically creates a Xero invoice, coded to the correct account, with the correct tax treatment, sent to the customer automatically.
6 hours became 0 hours. Every month. Forever.
Xero's API is one of the most capable in the accounting software space. Most Singapore businesses using Xero aren't using the API at all — meaning they're doing manually what a system could handle automatically.
What Xero's API Actually Lets You Do
The Xero API provides programmatic access to most of Xero's functionality:
Invoicing — Create, update, and send invoices. Apply payments. Mark as voided. Query invoice status for your own systems.
Contacts — Create and manage customers and suppliers. Sync contact details across systems.
Accounts and transactions — Create bills and payments. Reconcile transactions. Query account balances.
Inventory items — Manage your Xero items library. Sync product data from e-commerce or ERP.
Reports — Pull financial data programmatically. Build custom dashboards with live Xero data.
Payroll (via separate Xero Payroll API) — Employee records, pay runs, leave management.
The things you can't do via API: bank feeds (these are handled by Xero's banking connections), advanced reporting customisation, and anything inside Xero's UI that isn't exposed to third-party developers (which is relatively little).
Authentication: How Xero API Access Works
Xero uses OAuth 2.0 for authentication. This is important to understand before committing to an integration project.
The flow works like this:
- Your application requests access from Xero
- The Xero account holder (your client or your business) approves access in their Xero dashboard
- Xero issues an access token to your application
- Your application uses the access token to make API calls
Access tokens expire every 30 minutes. Refresh tokens last 60 days. Your integration needs to handle token refresh automatically.
For multi-tenant applications (where you're connecting your system to multiple clients' Xero accounts), the OAuth flow means each client needs to separately authorise your application. This is by design — Xero won't let you access someone's account without their explicit consent.
This is the right approach from a security and compliance perspective. From an implementation perspective, it adds complexity: you need to store tokens securely per client, handle expiry gracefully, and manage the authorisation flow UX.
The Integrations That Save the Most Time
From experience building Xero integrations for Singapore businesses, the highest-value automations:
E-commerce → Xero (Shopify, WooCommerce, custom stores)
Every sale creates an invoice. Payment reconciliation automatic. Tax coded correctly. Inventory updated. Eliminates manual bookkeeping for e-commerce operations entirely.
CRM → Xero (HubSpot, Salesforce, custom CRM)
When a deal closes in your CRM, a Xero invoice is automatically created. When the invoice is paid, the CRM record is updated. Sales and finance always have the same picture.
Project management → Xero (for service businesses, agencies, professional services)
When a project milestone is completed or a billable time entry is logged, an invoice is created in Xero. Time tracking to billing without manual intervention.
Operations/ERP → Xero
Purchase orders in your operations system automatically create bills in Xero. When a delivery is confirmed, the bill is ready for payment approval. Accounts payable automated.
Custom dashboard
Pull live financial data (revenue, expenses, outstanding invoices, overdue amounts) from Xero into a business dashboard. Replace the "export to Excel and make a chart" process with live visualisation.
Xero vs Using Third-Party Integration Platforms
Before custom development, evaluate whether a no-code integration tool covers your needs:
Zapier — Has a Xero integration with common triggers and actions. Create invoice on new Shopify order, update contact on CRM event. Works for simple, linear workflows. Limited on complex business logic or data transformation.
Make (Integromat) — More powerful than Zapier. Handles multi-step workflows and data transformation better. Xero connector covers most API endpoints.
Xero's own marketplace — Hundreds of pre-built integrations with common software (Shopify, Stripe, Cin7, Unleashed). Check the marketplace before building custom — your specific integration may already exist.
Custom development makes sense when: your source system isn't covered by marketplace integrations, you need complex business logic (multi-currency, custom tax rules, complex product/account coding), you're integrating a proprietary or legacy system, or you need the integration embedded within your own application.
PDPA Considerations for Xero Integrations
Xero data includes personal information — customer names, addresses, financial data. When you build an integration:
- Access tokens must be stored encrypted, not in plaintext config files
- Customer data pulled from Xero should only be stored as long as necessary
- Log API access for audit purposes
- Ensure your integration application has appropriate access scope (don't request full read/write access if you only need invoices)
Xero's API uses minimum-scope authorisation — you can request only the specific permissions your integration needs, rather than full account access.
What a Xero Integration Costs to Build
Simple one-directional integration (e.g. Shopify orders → Xero invoices, no edge cases): S$3,000–S$8,000
Standard bidirectional integration with error handling and monitoring: S$8,000–S$18,000
Complex multi-system integration with custom business logic: S$18,000–S$40,000+
Ongoing maintenance: Xero updates its API periodically. Budget S$500–S$1,500/year for API monitoring and update management.
The ROI calculation is usually straightforward. If the integration saves 6 hours/month of manual work at S$40–S$60/hour effective cost, that's S$2,880–S$4,320/year in staff time. A S$8,000 integration pays back in under 2 years — and continues saving time indefinitely.
Using Xero and doing significant manual data work around it? Let's look at what's takeable off your plate.
