Xero
Source - Vendo imports Xero accounting data and maps financial activity into events and contact profiles for reporting, modeling, and revenue analysis.
What Vendo Syncs
Xero is an Airbyte-managed source in Vendo. The app setup highlights invoices, contacts, and bank transactions, and the source package can sync the full Xero accounting stream set below.
| Stream | What it contains | Primary key |
|---|---|---|
| Accounts | Chart of accounts and accounting categories | account_id |
| Bank Transactions | Cash movements, totals, dates, and reconciliation context | bank_transaction_id |
| Contacts | Customer and supplier profiles | contact_id |
| Credit Notes | Credit note records and financial adjustments | credit_note_id |
| Invoices | Invoice totals, currency, contact, status, and dates | invoice_id |
| Manual Journals | Manual accounting journal entries | manual_journal_id |
| Organisations | Xero organization metadata | organisation_id |
| Payments | Payment records, amounts, contacts, and dates | payment_id |
| Tracking Categories | Xero tracking dimensions used for reporting | tracking_category_id |
Raw tables follow the pattern raw_xero_<source_short_id>_<stream_key>, for example raw_xero_src1_invoices.
Modeled Events and Profiles
Vendo uses the Xero streams below in semantic mappings:
| Xero stream | Vendo entity | Key mappings |
|---|---|---|
| Invoices | Event | invoice_id -> event ID, date -> occurred at, total -> revenue, currency_code -> currency, contact_id -> customer ID |
| Payments | Event | payment_id -> event ID, date -> occurred at, amount -> revenue, contact_id -> customer ID |
| Bank Transactions | Event | bank_transaction_id -> event ID, date -> occurred at, total -> revenue, contact_id -> customer ID |
| Contacts | User profile | contact_id -> customer ID, email_address -> email, name -> name |
Reference streams such as accounts, organizations, manual journals, credit notes, and tracking categories are kept available for modeling and accounting context.
Authentication
The Vendo app currently asks for Xero Custom Connection credentials:
| Field | Description |
|---|---|
| Tenant ID | Your Xero organization’s tenant ID |
| Start Date | UTC timestamp for the first record to sync, formatted as YYYY-MM-DDTHH:mm:ssZ |
| Client ID | Xero Custom Connection client ID |
| Client Secret | Xero Custom Connection client secret |
Vendo maps these fields to the pipeline as tenant_id, start_date, client_id, and client_secret.
Setup
- In Xero, create or open the Custom Connection used for Vendo
- Copy the tenant ID for the Xero organization you want to sync
- Copy the Custom Connection client ID and client secret
- Choose a UTC start date such as
2024-01-01T00:00:00Z - In Vendo, navigate to Sources > Xero
- Enter Tenant ID, Start Date, Client ID, and Client Secret
- Select the Xero data you want to import and save the source
Platform Details
| Setting | Value |
|---|---|
| Provider | Airbyte-managed Xero source |
| Auth Method | Xero Custom Connection credentials |
| Sync Method | Server-side scheduled import |
| Default Cadence | Daily |
| Schema Mode | Discovered from Xero by Airbyte |
| Materialization | Merge for transaction streams; replace or merge for reference streams |
| Highlighted Setup Streams | Invoices, contacts, bank transactions |
Verify Setup
- Confirm the Xero source status is active in Vendo
- Trigger a manual sync or wait for the next daily sync
- Check that invoice, contact, and bank transaction tables are populated
- Confirm invoice and payment totals line up with Xero for the same date range
- Review Vendo job logs for Airbyte authentication, schema discovery, or stream errors
Troubleshooting
| Symptom | What to check |
|---|---|
| Credentials fail validation | Confirm the tenant ID belongs to the Xero organization and the client ID/client secret are from the Custom Connection |
| No records import | Check that the start date uses YYYY-MM-DDTHH:mm:ssZ and is earlier than the records you expect |
| Invoices import but contacts look sparse | Confirm contacts in Xero have email/name fields populated; Vendo maps contact_id, email_address, and name |
| Totals do not match a Xero report | Compare the same date range, currency, and invoice/payment status filters |
| Schema changes appear after setup | Xero schema discovery is managed by Airbyte; review job logs for schema drift or stream-specific failures |