| name | Xero Automation |
| description | Xero Automation: manage invoices, contacts, payments, bank transactions, and accounts in Xero for cloud-based bookkeeping |
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 when true
summaryOnly -- Lightweight response when true
Example:
Tool: XERO_GET_CONTACTS
Arguments:
searchTerm: "acme"
page: 1
pageSize: 25
Note: On high-volume accounts, some where filters (e.g., IsCustomer, IsSupplier) may be rejected by Xero. Fall back to searchTerm or 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 in YYYY-MM-DD format
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 in YYYY-MM-DD format
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