docs/integrations/sources/xero.md
This page contains the setup guide and reference information for the Xero source connector.
For multi-tenant Xero accounts, you'll need to select which organization to connect with using the Tenant ID. You can find your Tenant IDs by following the Xero documentation.
Required list of scopes to sync all streams:
There are two currently supported ways to authenticate with Xero:
For the bearer token strategy, please follow instructions to obtain all requirements:
For the OAuth client credentials, please follow instructions to obtain all requirements:
YYYY-MM-DDTHH:mm:ssZ from which you'd like to replicate data.The Xero source connector supports the following sync modes:
As Xero uses .NET, some date fields in records could be in .NET JSON date format which look like /Date(1419937200000+0000)/. The connector automatically detects and transforms these dates into ISO 8601 format for consistency and easier data processing.
The connector also handles ISO 8601 formatted dates and ensures all datetime fields use a consistent format with UTC timezone.
This connector supports incremental sync for all streams. The connector uses the UpdatedDateUTC field as the cursor field to track which records to sync incrementally. During the first sync, the connector will fetch all data from the start date you specify. In subsequent syncs, it will only fetch records that have been updated since the last sync.
The connector implements automatic handling for common API errors:
The connector is restricted by Xero API rate limits:
When rate limits are exceeded, the API returns a 429 HTTP status code with a Retry-After header indicating how many seconds to wait before retrying.
The connector automatically handles pagination for all streams, using a page size of 100 records per request.
If you are upgrading from a previous version of the connector, please refer to the migration guide for important information about changes between versions.
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 2.1.5 | 2026-02-25 | 71340 | Resolve the generator returned from JsonDecoder into dictionary |
| 2.1.4 | 2025-03-01 | 55142 | Update dependencies |
| 2.1.3 | 2025-02-22 | 54526 | Update dependencies |
| 2.1.2 | 2025-02-15 | 54042 | Update dependencies |
| 2.1.1 | 2025-02-08 | 43841 | Update dependencies |
| 2.1.0 | 2024-10-23 | 47264 | Migrate to Manifest-only |
| 2.0.1 | 2025-01-10 | 51034 | Fix for time part being removed from all datetimes fields |
| 2.0.0 | 2024-06-06 | 39316 | Add OAuth and Bearer strategies |
| 1.0.1 | 2024-06-06 | 39264 | [autopull] Upgrade base image to v1.2.2 |
| 1.0.0 | 2024-04-30 | 36878 | Migrate to low code |
| 0.2.6 | 2024-05-17 | 38330 | Updating python dependencies |
| 0.2.5 | 2024-01-11 | 34154 | prepare for airbyte-lib |
| 0.2.4 | 2023-11-24 | 32837 | Handle 403 error |
| 0.2.3 | 2023-06-19 | 27471 | Update CDK to 0.40 |
| 0.2.2 | 2023-06-06 | 27007 | Update CDK |
| 0.2.1 | 2023-03-20 | 24217 | Certify to Beta |
| 0.2.0 | 2023-03-14 | 24005 | Enable in Cloud |
| 0.1.0 | 2021-11-11 | 18666 | 🎉 New Source - Xero [python cdk] |