Xero
Production-ready Xero connectivity, normalized resources, native actions, and verified webhooks.
Nine resource families, lossless native writes, verified webhooks, and Xero-rendered documents.
On a paid plan, connections run through your own Xero app; hosted OAuth is available while you evaluate.
Capability summary
| Area | Support |
|---|---|
| Authentication | OAuth 2.0, refresh-token rotation, explicit tenant selection, disconnect |
| Reads | Cached lists and live point reads |
| Writes | Contacts, invoices, quotes, payments, and purchase orders; accounts natively only |
| Read-only resources | Organizations, tax rates, branding themes |
| Synchronization | Invoice reconciliation and full sync through durable operations |
| Webhooks | Signature-verified Xero events followed by live provider reads |
| Native actions | PDFs, invoice online URL, organization deep link, cancellation |
Connect Xero
Register the application
Add the exact callback and webhook URLs shown by the AccountingKit provider-app draft. Test and live apps remain isolated.
Store credentials
Submit the client ID, client secret, and webhook key through the console. Secrets are encrypted before persistence and are never returned to the browser.
Verify and connect
Verification checks credentials, OAuth redirects, webhook configuration, and scopes before the app can become active. Create a connect session only after verification succeeds.
Normalized resources
| Resource | List | Get | Create / update | Provider actions |
|---|---|---|---|---|
| Organizations | ✓ | ✓ | — | Deep link |
| Contacts | ✓ | ✓ | ✓ | — |
| Invoices | ✓ | ✓ | ✓ | PDF, online URL, cancel |
| Quotes | ✓ | ✓ | ✓ | |
| Payments | ✓ | ✓ | ✓ | — |
| Purchase orders | ✓ | ✓ | ✓ | |
| Accounts | ✓ | ✓ | Native | — |
| Tax rates | ✓ | ✓ | — | — |
| Branding themes | ✓ | ✓ | — | — |
Native marks a resource that accepts writes only through the provider-native body. Accounts use
Xero's account-specific transport (PUT /Accounts to create, POST /Accounts/{AccountID} to
update), so a normalized account payload is rejected with accounts is read-only in v1.
For lossless Xero document payloads, exact search behavior, payment transitions, and cancellation rules, read the provider-native Xero API.