Xero Automation
Automate Xero accounting operations including managing invoices, contacts, payments, bank transactions, and chart of accounts for small business bookkeeping.
Toolkit docs: composio.dev/toolkits/xero
Setup
This skill requires the Rube MCP server connected at https://rube.app/mcp.
Before executing any tools, ensure an active connection exists for the xero toolkit. If no connection is active, initiate one via RUBE_MANAGE_CONNECTIONS.
Multi-tenant: If you manage multiple Xero organizations, first call XERO_GET_CONNECTIONS to list active tenants and obtain the correct tenant_id for subsequent calls.
Core Workflows
1. List and Filter Invoices
Retrieve invoices with filtering by status, contact, date range, and pagination.
Tool: XERO_LIST_INVOICES
Key Parameters:
- •
Statuses-- Comma-separated status filter:"DRAFT","SUBMITTED","AUTHORISED","PAID" - •
ContactIDs-- Comma-separated Contact IDs to filter by - •
InvoiceIDs-- Comma-separated Invoice IDs to filter by - •
where-- OData-style filter, e.g.,"Status==\"AUTHORISED\" AND Total>100" - •
order-- Sort expression, e.g.,"Date DESC","InvoiceNumber ASC" - •
page-- Page number for pagination - •
If-Modified-Since-- UTC timestamp; returns only invoices modified since this date - •
tenant_id-- Xero organization ID (uses first tenant if omitted)
Example:
Tool: XERO_LIST_INVOICES Arguments: Statuses: "AUTHORISED,PAID" order: "Date DESC" page: 1
2. Manage Contacts
Retrieve and search contacts for use in invoices and transactions.
Tool: XERO_GET_CONTACTS
Key Parameters:
- •
searchTerm-- Case-insensitive search across Name, FirstName, LastName, Email, ContactNumber - •
ContactID-- Fetch a single contact by ID - •
where-- OData filter, e.g.,"ContactStatus==\"ACTIVE\"" - •
page,pageSize-- Pagination controls - •
order-- Sort, e.g.,"UpdatedDateUTC DESC" - •
includeArchived-- Include archived contacts whentrue - •
summaryOnly-- Lightweight response whentrue
Example:
Tool: XERO_GET_CONTACTS Arguments: searchTerm: "acme" page: 1 pageSize: 25
Note: On high-volume accounts, some
wherefilters (e.g.,IsCustomer,IsSupplier) may be rejected by Xero. Fall back tosearchTermor pagination.
3. Create Payments
Link an invoice to a bank account by creating a payment record.
Tool: XERO_CREATE_PAYMENT
Key Parameters:
- •
InvoiceID(required) -- Xero Invoice ID the payment applies to - •
AccountID(required) -- Bank account ID for the payment - •
Amount(required) -- Payment amount (number) - •
Date-- Payment date inYYYY-MM-DDformat - •
Reference-- Payment reference or description - •
CurrencyRate-- Exchange rate for foreign currency payments
Example:
Tool: XERO_CREATE_PAYMENT Arguments: InvoiceID: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" AccountID: "b2c3d4e5-f6a7-8901-bcde-f12345678901" Amount: 1500.00 Date: "2026-02-11" Reference: "Payment for INV-0042"
4. Create Bank Transactions
Record spend (payments out) or receive (money in) bank transactions.
Tool: XERO_CREATE_BANK_TRANSACTION
Key Parameters:
- •
Type(required) --"SPEND"(payment out) or"RECEIVE"(money in) - •
ContactID(required) -- Xero Contact ID - •
BankAccountCode(required) -- Bank account code from chart of accounts - •
LineItems(required) -- Array of line items, each with:- •
Description(required) -- Line item description - •
UnitAmount(required) -- Unit price - •
AccountCode(required) -- Account code for categorization - •
Quantity-- Quantity (default 1) - •
TaxType-- Tax type:"OUTPUT","INPUT","NONE"
- •
- •
Date-- Transaction date inYYYY-MM-DDformat - •
Reference-- Transaction reference - •
Status--"AUTHORISED"or"DELETED" - •
CurrencyCode-- e.g.,"USD","EUR"
Example:
Tool: XERO_CREATE_BANK_TRANSACTION
Arguments:
Type: "SPEND"
ContactID: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
BankAccountCode: "090"
LineItems: [
{
"Description": "Office supplies",
"UnitAmount": 75.00,
"AccountCode": "429",
"Quantity": 1,
"TaxType": "INPUT"
}
]
Date: "2026-02-11"
Reference: "Feb office supplies"
5. List Payments and Bank Transactions
Review existing payments and bank transaction history.
Tools:
- •
XERO_LIST_PAYMENTS-- List payments linking invoices to bank transactions - •
XERO_LIST_BANK_TRANSACTIONS-- List spend/receive bank transactions
Common Parameters:
- •
where-- OData filter, e.g.,"Status==\"AUTHORISED\"" - •
order-- Sort expression, e.g.,"Date DESC" - •
page-- Page number for pagination - •
If-Modified-Since-- Incremental updates since timestamp - •
tenant_id-- Organization ID
6. View Chart of Accounts and Connections
Tools:
- •
XERO_LIST_ACCOUNTS-- Retrieve a