Xero connector

Your Silux Chat bot verifies customers against Xero, then answers questions about their account balance and invoices from your live data.

Sign in with the vendor (OAuth) Documented-API tested 3 capabilities Read-only

Good to know: Xero's API is priced by developer tier; the free Starter tier covers a small number of connected organisations — check your Xero developer plan.

What your bot can do with Xero

Account balance

Reads the balance Xero holds for the verified customer and adds it to their account summary.

Customers ask: “How much do I owe?” · “Is my account up to date?”

BalanceOverdue

Recognise and verify customers

Finds the customer in Xero by the email address or mobile number they give, checks their name and one more detail, then sends a one-time code to the contact details Xero holds. Nothing personal is shared until the code is entered.

Customers ask: “I want to check my account — it’s Jane Smith, jane@example.com”

Record IDNameEmail addressPhone / mobilePostcode

Invoices

Reads a verified customer’s invoices from Xero — number, date, amount and whether it is paid.

Customers ask: “Is my latest invoice paid?” · “How much was my last bill?”

Invoice numberDateAmountStatusOutstandingCurrency

Set it up

Most businesses finish in under ten minutes. You need to be able to sign in to Xero as an administrator.

Step 1 — in Xero

Connect with Xero (OAuth) and pick your organisation — Silux Chat asks for read-only access to contacts and invoices.

Permissions (scopes) requested — read-only:

offline_accessaccounting.contacts.readaccounting.transactions.read

Least access: grant only the read permissions named above. Never use an owner or full-admin key where Xero lets you create a restricted one.

Step 2 — in Silux Chat

  1. 1Open Dashboard → Integrations → Connectors and search for “Xero”.
  2. 2
    Fill in:
    FieldExampleStored
    Xero organisation (tenant) ID70784a63-d24b-46a9-a4db-0e70a274b056Setting
  3. 3Press Sign in with Xero. The platform makes a real, read-only call to Xero with a made-up customer and shows a tick or a cross for each capability, with Xero’s exact error if something is refused.
  4. 4If this is your first way of verifying customers it is switched on automatically; otherwise press Use to verify customers. The platform then runs its chained test (verify → code → account → orders → invoices) with the built-in test customer — no real person is contacted.

There is no key to copy. You press “Sign in with Xero”, approve read-only access on Xero’s own page, and are returned to your dashboard. The access token is stored encrypted and refreshed automatically before it expires.

How customer verification works

  1. STEP 1

    Customer asks

    They ask about their own account. The bot asks for their full name and their email or mobile, plus one more detail such as their postcode.

  2. STEP 2

    Found in Xero

    The customer is looked up in Xero by email, then mobile. The surname must match exactly and the first name must match or start with the same letter, plus one more detail.

  3. STEP 3

    Code sent

    A 6-digit code goes to the mobile Xero holds (by text, when your plan has SMS) or otherwise to the email it holds. The chat never chooses where it goes.

  4. STEP 4

    Verified

    The customer types the code. It is valid for 10 minutes and five wrong attempts cancel it. The verified session lasts 30 minutes.

If the details don’t match, the customer is told only that they couldn’t be matched — never which detail was wrong. If Xero can’t be reached, the bot says it can’t check accounts right now rather than “no account found”. The bot is blocked in code from reading orders, invoices or bookings until verification succeeds. Full details: Customer identity verification & OTP.

What the bot can and cannot see

Can see (after verification)

  • Record ID
  • Name
  • Email address
  • Phone / mobile
  • Postcode
  • Invoice number
  • Date
  • Amount
  • Status
  • Outstanding
  • Currency
  • Balance
  • Overdue

Only these standard fields are mapped from Xero’s responses. Everything else in the response is discarded before the bot sees it.

Never sees

  • bank details, ledgers or other customers’ accounts
  • passwords, security answers or login details
  • records belonging to anyone other than the verified customer
  • anything outside the fields listed alongside

Security

  • Sign-in tokens encrypted at rest

    Credentials are stored encrypted, shown only masked after saving, and destroyed — not just hidden — when you disconnect.

  • Read-only look-ups

    Every capability is a look-up. The connector cannot create, change or delete anything in Xero.

  • HTTPS only

    Calls go to the vendor’s HTTPS address, redirects are not followed, and private network addresses are refused.

  • Injection-safe

    Values a customer types are cleaned before they are placed in Xero’s search, and URL-encoded in addresses.

  • Other customers filtered out

    A row that names a different customer’s email is dropped, whatever the vendor’s search returned.

  • Checked daily

    Connections are re-tested every day, and the owner is emailed if a working connection starts failing.

More: Security & data protection.

Technical details

For developers and IT teams: the Xero endpoints this connector reads, relative to https://api.xero.com/api.xro/2.0. Values in braces come from the settings you enter.

CapabilityRequestStandard fields returned
Recognise and verify customersGET/Contactsid, name, email, phone, postcode
InvoicesGET/Invoicesinvoice, date, amount, status, outstanding, currency
Account balanceGET/Contacts/{customer_id}balance, overdue

Test level: Documented-API tested. Each capability is run automatically against Xero’s documented example responses and must produce the standard fields; your own connection is then tested with a real call when you connect. The bot receives these through the standard Account Connect endpoints, exactly as if you had built them yourself.

Troubleshooting

What you seeLikely cause and fix
“the vendor refused the credentials (401)” or (403)The sign-in was revoked or has expired, or it lacks a read permission this connector needs. Sign in with Xero again.
“That Xero organisation (tenant) ID doesn’t look right”Enter it in the form shown, e.g. 70784a63-d24b-46a9-a4db-0e70a274b056 — without https:// or a trailing slash.
“Silux Chat’s Xero app is not registered yet”Our sign-in app with Xero isn’t available yet; our team is notified automatically. Email support@siluxcall.co.uk for timing or alternatives.
Customers are “not matched” although they existCustomers are looked up by email or mobile, not postcode. Check the customer’s email or mobile is saved on their Xero record, and that the surname matches.
A capability shows a cross but others workThat permission wasn’t granted in Xero, or your Xero plan doesn’t include that part of the API. Grant it and press Test.
“the vendor kept rate-limiting the request”Xero returned “too many requests” three times in a row. The platform already waits and retries automatically (up to 10 seconds, as Xero asks); if it persists, ask Xero about your API quota.
Results are empty for a verified customerThe records exist under a different email or customer record in Xero, or none are recent. Check the customer’s record in Xero directly.

Full error reference: Troubleshooting & error reference.

Frequently asked questions

Is the Xero connection read-only?

Yes. Every request Silux Chat makes to Xero is a look-up; none creates, changes or deletes anything in Xero. Give the key or sign-in read-only permissions wherever Xero offers them.

Do I need a developer to connect Xero?

No. You sign in with Xero in Dashboard → Integrations → Connectors and press “Sign in with Xero”. The platform makes a real call to Xero straight away and shows exactly which features work.

How does the bot know it is really my customer?

It finds the customer in Xero by the email or mobile they give, checks their name and one more detail, then sends a one-time code to the mobile or email held in Xero — never to one typed in the chat. The code lasts 10 minutes, five wrong attempts cancel it, and a verified session lasts 30 minutes.

What happens if my Xero key is revoked or expires?

The bot tells customers it can’t check their account right now — it never pretends there are “no orders”. Connections are re-tested daily and the account owner is emailed when a working connection starts failing. Reconnect it in Dashboard → Integrations → Connectors.

How has the Xero connector been tested?

It is Documented-API tested: every capability is run automatically against Xero’s documented example responses and must produce the standard fields. When you connect, it is tested again with a real call to your own Xero account before your bot uses it.

Other accounting connectors

Need help with your integration?

Our integration team can review your endpoints, help you choose the right connector and check a test run with you. Tell us which system you use and what you would like the bot to answer.

support@siluxcall.co.uk