Xero
The Xero block connects your workflows to Xero accounting — create and send invoices, manage contacts, record payments and bills, and pull reports like Profit & Loss, Balance Sheet, and Aged Receivables.
Accounting Automation: Turn workflow events into real Xero records — an invoice for every new order, a contact for every new customer, a report in your inbox every Monday.
Key Features
- Invoicing: Create, update, send, and void invoices, plus credit notes
- Contacts: Create and look up contacts by ID
- Money In & Out: Record payments, bills, bank transactions, and purchase orders
- Reports: Profit & Loss, Balance Sheet, and Aged Receivables on demand
- Items & Files: Manage items, read tax rates, and attach files to records
- Auto Token Refresh: Xero access tokens expire after 30 minutes — Indite refreshes them for you
Operations
Invoices & Credit Notes
| Operation | Description |
|---|---|
| Create Invoice | Create an invoice for a contact with JSON line items, due date, and status (DRAFT, SUBMITTED, AUTHORISED) |
| Get Invoice / Get Invoices | Fetch one invoice by ID, or list invoices |
| Update Invoice | Change an existing invoice |
| Send Invoice | Email an invoice to the contact |
| Void Invoice | Void an invoice |
| Create Credit Note | Issue a credit note |
Contacts
| Operation | Description |
|---|---|
| Create Contact | Add a contact with name and email |
| Get Contact / Get Contacts | Fetch one contact, or list contacts |
Payments, Bills & Purchases
| Operation | Description |
|---|---|
| Create Payment | Record a payment against an invoice |
| Create Bill | Record a supplier bill |
| Create Purchase Order | Create a purchase order, with an optional delivery date |
| Get Bank Transactions | List bank transactions |
Items, Accounts & Files
| Operation | Description |
|---|---|
| Get Accounts | List your chart of accounts |
| Get Items / Create Item | List items, or create one with code, name, and unit price |
| Get Tax Rates | List tax rates |
| Attach File | Attach a file (by URL) to Invoices, Contacts, CreditNotes, PurchaseOrders, Receipts, BankTransactions, ManualJournals, or Accounts |
Reports
| Operation | Description |
|---|---|
| Get Profit & Loss | P&L report for a date range |
| Get Balance Sheet | Balance sheet for a date range |
| Get Aged Receivables | Aged receivables for a contact |
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
| Credentials | Select | Yes | Your saved Xero connection |
| Action | Select | Yes | One of the 22 operations above |
| Contact / Invoice ID | Text | Per operation | The target record's ID |
| Contact Name & Email | Text | For Create Contact | New contact details |
| Line Items | JSON | For invoices, bills, POs | The line items as a JSON array |
| Amount / Due Date / Reference / Account Code | Text | Per operation | Money fields — support {{variables}} |
| Status | Text | For invoices | DRAFT, SUBMITTED, or AUTHORISED |
| Start Date / End Date / Date | Text | For reports & documents | Dates in YYYY-MM-DD |
| File URL / File Name / Endpoint Type / Entity ID | Text | For Attach File | What to attach and where |
Connecting your Xero account
- Create an app at developer.xero.com (opens in a new tab) (App type: Web app).
- Copy the app's Client ID and Client Secret.
- Complete Xero's OAuth 2.0 flow for your organisation to get an Access Token and Refresh Token (Xero's docs include a step-by-step guide; the
offline_accessscope is required to receive a refresh token, plusaccounting.transactions,accounting.contacts,accounting.reports.read, andaccounting.attachmentsdepending on the operations you use). - Find your Tenant ID — it's returned by Xero's
connectionsendpoint after you authorize your organisation. - In Indite, add the Xero block, click Connect new, and fill in: Access Token, Refresh Token, Tenant ID, Client ID, and Client Secret.
Xero access tokens only live for 30 minutes. Indite transparently refreshes the token on expiry and stores the rotated access and refresh tokens, so the connection keeps working without your help.
Output
The block returns the raw Xero API response for the operation — for example the created Invoices object, a Contacts list, or the report rows. Reference fields in later blocks with {{<blockId>.<field>}}.
Example: weekly finance digest
- Schedule Trigger — every Monday at 08:00.
- Xero → Get Profit & Loss — start date = first of the month, end date = today.
- Xero → Get Aged Receivables — see who still owes you money.
- Send Email — a summary of both reports to the finance team.