In this guide · 8 sections
- 01What a custom app usually syncs
- 02Xero API: limits and developer plans (October 2026)
- 03QuickBooks Online API: limits and the App Partner Program
- 04How the connection works: OAuth, IDs and GST codes
- 05Error handling that keeps the books right
- 06Who should own the integration
- 07Do it yourself or get help?
- 08Frequently asked questions
Short answer
A custom app can create contacts, invoices, bills and payments in Xero or QuickBooks through their APIs. For one business, Xero's free Starter developer plan allows 5 connections and 1,000 API calls per organisation per day; Intuit's free Builder tier makes writes free and caps reads at 500,000 a month.
What a custom app usually syncs
The goal is simple: anything your app already knows about a sale should reach the accounting system once, correctly, without someone retyping it. In most small business integrations that means a short list of records.
| Record | Direction | Notes |
|---|---|---|
| Customers (contacts) | App to accounting | Match on email or customer ID to avoid duplicates |
| Invoices or sales receipts | App to accounting | With line items, GST codes and account codes |
| Payments | App to accounting | Marks the invoice paid; link to the right bank or clearing account |
| Payment status | Accounting to app | Shows staff which invoices are paid |
| Items or products | Either | Keep one system as the master |
| Bills from suppliers | App to accounting | Only if your app handles purchasing |
Keep reporting and GST returns inside Xero or QuickBooks. Pulling large amounts of data out for your own reports is where API limits and, increasingly, developer fees bite.
Xero API: limits and developer plans (October 2026)
Xero's API limits page sets these limits per connected organisation: 5 calls in progress at once, 60 calls per minute, and 1,000 calls per day on the Starter tier or 5,000 a day on higher tiers. Exceeding them returns HTTP 429 with a Retry-After header telling you how long to wait.
| Xero developer plan | Max connections | Monthly fee (AUD, ex tax) | Daily calls per org | Requirements |
|---|---|---|---|---|
| Starter | 5 | No charge | 1,000 | None |
| Core | 50 | A$35 | 5,000 | Payment method |
| Plus | 1,000 | A$245 | 5,000 | App certification |
| Advanced | 10,000 | A$1,445 | 5,000 | Certification and security assessment |
For a custom app used by one business, Starter is normally enough: you connect one organisation and a few hundred invoices a day fit comfortably within 1,000 calls if you batch them. Xero suggests up to about 50 invoices per request. Xero's limits page also says each organisation can connect a maximum of five uncertified apps, so count what else is already connected.
QuickBooks Online API: limits and the App Partner Program
Intuit's API limits page lists 500 requests per minute per company (realm ID), 10 requests per second per company and app, and a recommended maximum of 30 payloads per batch request. Queries return at most 1,000 records, so larger reads need pagination. When throttled you get HTTP 429 and should wait 60 seconds.
Since 2025, Intuit's App Partner Program splits calls into Core and CorePlus. Core calls, mostly data-in operations such as creating or updating invoices, customers and payments, are unmetered and free. CorePlus calls, mostly reads, queries and reports, are metered. New apps start in the free Builder tier, which Intuit's limits page says includes 500,000 CorePlus calls per workspace per month before calls are throttled.
How the connection works: OAuth, IDs and GST codes
Both Xero and QuickBooks use OAuth 2.0: someone with admin rights in the accounting file approves your app once, and your app stores tokens that let it call the API on the company's behalf. Tokens expire and must be refreshed, so the app needs to store them securely and handle refresh failures.
Register a developer app
Create it in the Xero developer portal or Intuit Developer, under an account your company controls.
Map your data
Agree which account codes, GST tax codes, tracking categories or classes and items each sale should use. Your accountant should sign this off.
Build against a test company
Use Xero's demo company or a QuickBooks sandbox. Never test against live books.
Store the accounting system's IDs
Save the Xero or QuickBooks ID for every contact, invoice and payment you create, so updates hit the same record and retries do not create duplicates.
Connect the live file and run a pilot
Sync a week of real transactions, then check them against the bank and with your accountant before switching off manual entry.
Getting GST codes right matters more than anything technical. A wrong tax code on every invoice means a wrong GST return. If you are still choosing a system, our Xero vs QuickBooks comparison covers which accountants prefer and how each handles Singapore GST.
Error handling that keeps the books right
Integrations fail quietly. A token expires on a Saturday, an invoice uses a deleted account code, or the API is throttled during a busy hour. Without proper handling, records go missing and nobody notices until month end.
Integration error-handling checklist
Also decide what happens when someone edits a synced invoice in Xero or QuickBooks directly. The usual rule is that the app owns the record until it is paid, and accounting changes after that are made by the accountant only.
Who should own the integration
This is the question most small businesses forget. If a developer builds the integration under their personal developer account, the app, its credentials and any paid developer plan belong to them, not you.
You own it if
- Developer app registered under your company's email and account
- Source code in a repository your company owns
- Credentials stored in your hosting account, not a developer's laptop
- Written documentation of field mappings and error handling
Red flags
- App registered under a freelancer's personal developer login
- No access to the code or hosting
- Paid developer plan billed to someone else's card
- Nobody knows how to reconnect after a token expires
Ask for this in writing before work starts. It costs nothing extra to set up correctly at the beginning and is painful to untangle later. Integration work is also a common line item in larger web projects; our website cost guide shows where it fits in a typical budget.
Do it yourself or get help?
If your app is a standard platform like Shopify, Stripe or a booking tool, check for an existing connector first; it is often cheaper than custom code. Custom integrations make sense when your own system holds the sales data and no connector exists.
Our Xero / QuickBooks Integration (S$390) connects bank feeds and existing payment or sales apps to your accounting. For your own app talking to Xero or QuickBooks through the API, a Custom Business App (from S$4,900) is scoped and fixed-priced in writing, with the developer app and code registered in your company's name. IT Sorted is a Singapore-based team of developers with over 10 years of experience. You pay upfront, send your brief through the site chat or contact form, and track progress on your order page.
Frequently asked questions
For a single business, usually yes. Xero's developer pricing, checked in October 2026, has a Starter plan with no charge, up to 5 connections and 1,000 API calls per organisation per day. Apps needing more connections or calls move to Core at A$35 a month or higher plans, which add data egress allowances and, for Plus and above, certification requirements.
Not for most single-business integrations. Under Intuit's App Partner Program, Core calls such as creating invoices, customers and payments are free and unmetered. Read calls, called CorePlus, are metered; the free Builder tier includes 500,000 CorePlus calls per workspace per month before throttling. Larger apps can subscribe to paid tiers.
Xero's documentation lists, per connected organisation, 5 concurrent calls, 60 calls per minute and 1,000 calls per day on Starter or 5,000 on higher tiers, plus an app-wide limit of 10,000 calls per minute. Exceeding a limit returns HTTP 429 with a Retry-After header. Batching up to about 50 invoices per request keeps most small businesses well within the limits.
Not for a private integration used by one business. Certification is required for Xero's Plus plan and above and for listing on the Xero App Store. However, Xero limits each organisation to five uncertified app connections, so check how many other uncertified apps are already connected to your Xero file.
Usually customers, invoices or sales receipts with the right GST and account codes, and payments that mark invoices as paid. Payment status can be read back so staff see what is outstanding. Keep financial reporting and GST returns inside Xero or QuickBooks, and agree the field mapping with your accountant before building.