New to VisionScaper?
Start here
Help Center › Get your API keys › Get your Xero Client ID and Client Secret
Get your Xero Client ID and Client Secret
Create a web app at Xero's developer site, add VisionScaper's redirect address, and connect your organisation.
VisionScaper connects to Xero through an app you make yourself. You create the app, copy its Client ID and secret, and paste them into VisionScaper. Xero’s own plan costs are Xero’s. VisionScaper adds no fee for this.
Warning: Check the scope note below before you start. Xero changed how new apps get permissions in 2026.
Before you start
- A Xero organisation you can sign in to.
- A free developer account at developer.xero.com.
- The Contractor Hub screen Settings → Connected apps with the Xero card available on your plan.
Steps
- In the Contractor Hub open Settings → Connected apps and find the Xero card. It prints a redirect address, ending in
/wp-json/dreamscaper/v1/oauth/xero/callbackon your site. Copy it. - Go to
developer.xero.com/app/manageand make a new app. VisionScaper’s card says: “make an app (type: web app).” Xero’s own docs list the integration types as web app, standard authorization code, PKCE and custom connection. Xero requires an HTTPS redirect address. - Add the copied address as the app’s redirect address.
- Get the Client ID. Generate a Client secret. Xero says the secret is shown only once, so copy it now.
- In the VisionScaper Xero card, paste them into Client ID and Client secret. The secret is stored scrambled and never shown again.
- Click Save keys.
- Click Connect to Xero, sign in, and choose your organisation. If you have several, pick one in Xero organisation afterwards.
- Set Xero account for sales (Xero’s usual one is 200) and Xero bank account for payments. Use Look up my Xero accounts to pick from your lists. Click Save settings.
Scopes VisionScaper asks for
offline_access, accounting.transactions, accounting.contacts and accounting.settings.read.
Scope note: Xero’s 2026 change
Xero’s developer pages say apps created on or after 2 March 2026 use new granular scopes. For example, accounting.invoices replaces the broad accounting.transactions. Older apps keep their broad scopes until they move, with a deadline of September 2027. Contacts and settings scopes are unchanged.
VisionScaper still asks for accounting.transactions. Whether a brand-new Xero app can approve that scope is not verified. If Xero shows an “invalid scope” error when you press Connect, stop and report it to the VisionScaper team. Do not change settings in Xero to work around it.
Tips
- Changing keys after connecting needs a reconnect.
- If Xero asks you to sign in again, a banner says “Xero needs you to sign in again” with a Reconnect button.
- Records already sent to one organisation are not resent to another.
If something goes wrong
- Xero says redirect mismatch. The address in the app differs from the one on the card.
- “Xero is not part of your current plan.” Your VisionScaper plan does not include it.
- Connect works but nothing syncs. The sales or bank account code is blank.
Sources
- Xero, standard authorization code flow: https://developer.xero.com/documentation/guides/oauth2/auth-flow/ (read 2026-10-15; only an outline loaded)
- Xero, OAuth 2.0 overview: https://developer.xero.com/documentation/guides/oauth2/overview/
- Xero, granular scopes FAQ: https://developer.xero.com/faq/granular-scopes
- Xero Developer blog, scope changes: https://devblog.xero.com/upcoming-changes-to-xero-accounting-api-scopes-705c5a9621a0
- Xero’s “getting started” page did not load, so exact button names in Xero’s app form are unverified.
- Plugin: assets/js/xero.js; includes/modules/xero.php.