Xero
Finance OAuthRead and create invoices, payments, contacts and journals in Xero from any Windmill script, flow or app.
Set up in 2 steps
Connect from the Resources page
Open Resources, click Add a resource/API and pick xero from the OAuth APIs list. Click Connect, choose the organisation to authorise, then name the resource and save it.
Run your first script
Fork any script below and read before writing anything. There are hundreds here, so search by the verb you need.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
Update Contact
Create or update contact
Get Invoice
Get Item
Get Sales Invoice Online URL
Make API Call
List Invoices
List Credit Notes
Get Tenant Connections
Create or Update Contact
Upload File
Create Credit Note
Email an Invoice
Create Bill
List Manual Journals
Create Bank Transaction
Create Item
Create Payment
Find Invoice
Get Contact
Get History of Changes
List Contacts
Find contact. Optionally, create one if none are found
Create Employee
Add Items to Existing Sales Invoice
Create Sales Invoice
Bank Statements Report
Create History Note
Get Bank Summary
Download Invoice
Resource type
xero — the shape of the credential every script on this page expects.
| Field | Type | Required | What it is |
|---|---|---|---|
| token | string | Yes |
Questions
I have several organisations
The consent screen is where you pick one. Xero scopes a connection to the organisations you tick there, so keep a resource per organisation if scripts should not cross between them.
A call fails on a missing scope
Xero grants scopes at consent time. Reconnect the resource requesting the scope the script needs — an existing token cannot be widened.
There is no Connect button on my instance
Self-hosted instances need a Xero OAuth client configured once by an admin before the tile appears.
Is my token stored on the hub?
Never. It lives only in your own Windmill workspace, encrypted at rest.