PromptShop

Xero Automation

Automate accounting, invoicing, and financial reporting via Rube MCP.

Install

npx promptshop add Xero

Details

AutomationAuto-detects your installed agents and installs the skill to each one.

What This Skill Does

The Xero Automation skill enables users to automate accounting tasks within Xero, a popular accounting software. It's designed for businesses and developers who want to streamline bookkeeping processes by managing invoices, contacts, payments, and other financial data. The skill requires a connection to Xero via Rube MCP.

When to Use

  • List and filter invoices by status.
  • Manage contacts and customer data.
  • Automate payment processing.
  • Retrieve bank transactions.
  • Manage chart of accounts.
  • Search for specific financial records.

Key Features

  • Automates Xero accounting operations.
  • Uses XERO_LIST_INVOICES to retrieve invoices.
  • Uses XERO_GET_CONTACTS to manage contacts.
  • Supports filtering and pagination.
  • Requires active Xero connection.
  • Supports multi-tenant Xero organizations.

Manual Installation

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 all account codes for categorizing transactions XERO_GET_CONNECTIONS -- List active Xero tenant connections XERO_LIST_ATTACHMENTS -- List attachments on an entity (invoice, contact, etc.)

Known Pitfalls

PitfallDetail
Multi-tenant routingIf tenant_id is omitted, the first connected tenant is used. Always verify the correct tenant with XERO_GET_CONNECTIONS when managing multiple organizations.
High-volume filter rejectionOn large accounts, some where filters like IsCustomer/IsSupplier may be rejected. Fall back to searchTerm with pagination.
OData filter syntaxUse double-equals (==) in OData filters, e.g., Status=="AUTHORISED". Single = causes errors.
Pagination requiredMost list endpoints paginate results. Always check for additional pages and continue fetching until complete.
Date formatAll dates must be in YYYY-MM-DD format. Timestamps for If-Modified-Since must be full ISO 8601 UTC datetime.
Bank account codesBankAccountCode in bank transactions must match a valid code from the chart of accounts. Use XERO_LIST_ACCOUNTS to discover valid codes.

Quick Reference

Tool SlugDescription
XERO_LIST_INVOICESList invoices with filtering and pagination
XERO_GET_CONTACTSRetrieve and search contacts
XERO_CREATE_PAYMENTCreate a payment linking invoice to bank account
XERO_CREATE_BANK_TRANSACTIONRecord a spend or receive bank transaction
XERO_LIST_PAYMENTSList payment records
XERO_LIST_BANK_TRANSACTIONSList bank transactions
XERO_LIST_ACCOUNTSRetrieve chart of accounts
XERO_GET_CONNECTIONSList active Xero tenant connections
XERO_LIST_ATTACHMENTSList attachments on an entity

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