Xero

Manage invoices, contacts, bills, payments, and accounting records in Xero via the Xero API. Use this skill when users want to create invoices, manage contac...

Jay

@hith3sh

What This Skill Does

Manages invoices, contacts, bills, payments, and accounting records in Xero via the Xero API. Users can create, retrieve, and update financial documents and contacts directly from chat without manual data entry.

Replaces manual data entry and custom API integrations by automating Xero accounting workflows through a chat interface with secure OAuth token management.

When to Use It

  • Create a new invoice for a client and send it directly from chat
  • List all draft invoices to review pending billing items
  • Add a new contact to Xero and associate it with an invoice
  • Retrieve payment details for a specific invoice to reconcile accounts
  • Update a bill or purchase order status in Xero
  • Check the connection status and verify Xero integration is active

Install

$ openclaw skills install @hith3sh/xero-accounting

Xero

Xero

Manage Xero invoices, contacts, bills, payments, and accounting records from chat via the Xero API.

This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Xero API access yourself.

Setup in 3 Steps

Step 1: InstallStep 2: Pair AccountStep 3: Connect Xero
InstallPairApp-specific connection GIF coming soon
Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Xero

How It Works

┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐
│   OpenClaw      │────▶│   ClawLink   │────▶│   Xero API       │
│   (User Chat)   │     │   (OAuth)    │     │                  │
└─────────────────┘     └──────────────┘     └──────────────────┘
         │                       │                       │
         │  1. Install Plugin    │                       │
         │  2. Pair Device       │                       │
         │  3. Connect Xero     │                       │
         │                       │  4. Secure Token       │
         │                       │  5. Proxy Requests    │
         │                       │                       │
         ▼                       ▼                       ▼
   ┌──────────┐           ┌──────────┐           ┌──────────┐
   │  SKILL   │           │ Dashboard│           │  Xero   │
   │  File    │           │ Auth     │           │  Tenant │
   └──────────┘           └──────────┘           └──────────┘

Install

Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.

openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart

Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for Xero again."

Quick Start

# List invoices
clawlink_call_tool --tool "xero_list_invoices" --params '{"status": "DRAFT"}'

# Get an invoice
clawlink_call_tool --tool "xero_get_invoice" --params '{"invoice_id": "INVOICE_ID"}'

# List contacts
clawlink_call_tool --tool "xero_list_contacts" --params '{}'

Authentication

All Xero tool calls are authenticated automatically by ClawLink using the user's connected Xero account OAuth token.

No API credentials are required in chat. ClawLink stores the OAuth token securely and injects it into every Xero API request on the user's behalf.

Getting Connected

  1. Install the ClawLink plugin (see Install above).
  2. Pair the plugin with clawlink_begin_pairing if it is not configured yet.
  3. Open https://claw-link.dev/dashboard?add=xero and connect Xero.
  4. Call clawlink_list_integrations to verify the connection is active.

Connection Management

List Connections

clawlink_list_integrations

Response: Returns all connected integrations. Look for xero in the list.

Verify Connection

clawlink_list_tools --integration xero

Response: Returns the live tool catalog for Xero.

Reconnect

If Xero tools are missing or the connection shows an error:

  1. Direct the user to https://claw-link.dev/dashboard?add=xero
  2. After they confirm, call clawlink_list_integrations to verify
  3. Then call clawlink_list_tools --integration xero

Security & Permissions

  • Access is scoped to the Xero organization connected during OAuth setup.
  • All write operations (create invoice, approve, delete, payment) require explicit user confirmation.
  • Financial transactions (invoices, bills, payments) affect accounting records — always confirm details.
  • Confirm before voiding or deleting invoices, as these actions affect financial reporting.
  • Tax and currency amounts should always be verified against the Xero dashboard.

Tool Reference

Invoices

ToolDescriptionMode
xero_list_invoicesList all invoices with status filtersRead
xero_get_invoiceGet invoice details including line itemsRead
xero_create_invoiceCreate a new invoiceWrite
xero_update_invoiceUpdate an existing invoice's detailsWrite
xero_void_invoiceVoid an invoice (marks as void, keeps record)Write
xero_delete_invoiceDelete a draft invoiceWrite
xero_email_invoiceSend an invoice to the contact via emailWrite
xero_get_invoice_as_pdfDownload an invoice as PDFRead

Bills (Purchase Invoices)

ToolDescriptionMode
xero_list_billsList all bills (purchase invoices)Read
xero_get_billGet bill detailsRead
xero_create_billCreate a new billWrite
xero_update_billUpdate an existing billWrite
xero_delete_billDelete a draft billWrite
xero_approve_billApprove a bill for paymentWrite

Contacts

ToolDescriptionMode
xero_list_contactsList all contacts (customers and suppliers)Read
xero_get_contactGet contact details including addresses and contactsRead
xero_create_contactCreate a new contactWrite
xero_update_contactUpdate contact informationWrite
xero_delete_contactDelete a contactWrite
xero_search_contactsSearch contacts by name, email, or account numberRead

Payments

ToolDescriptionMode
xero_list_paymentsList all payments on invoices and billsRead
xero_create_paymentRecord a payment against an invoice or billWrite
xero_delete_paymentDelete/void a paymentWrite
xero_get_paymentGet details of a specific paymentRead

Items

ToolDescriptionMode
xero_list_itemsList all items/productsRead
xero_get_itemGet item detailsRead
xero_create_itemCreate a new itemWrite
xero_update_itemUpdate an existing itemWrite
xero_delete_itemDelete an itemWrite

Accounts

ToolDescriptionMode
xero_list_accountsList all chart of accountsRead
xero_get_accountGet account detailsRead
xero_create_accountCreate a new accountWrite
xero_update_accountUpdate an accountWrite

Bank Transactions

ToolDescriptionMode
xero_list_bank_transactionsList bank transactions (deposits, withdrawals, transfers)Read
xero_get_bank_transactionGet bank transaction detailsRead
xero_create_bank_transactionCreate a bank transactionWrite
xero_delete_bank_transactionDelete a draft bank transactionWrite

Bank Feeds

ToolDescriptionMode
xero_list_bank_transfersList bank transfersRead
xero_create_bank_transferCreate a transfer between bank accountsWrite

Manual Journals

ToolDescriptionMode
xero_list_journalsList journal entriesRead
xero_get_journalGet a specific journal entryRead
xero_create_journalCreate a manual journal entryWrite

Organisation

ToolDescriptionMode
xero_get_organisationGet organisation/company detailsRead
xero_list_currenciesList currencies configured in the organisationRead

Tracking Categories

ToolDescriptionMode
xero_list_tracking_categoriesList tracking categories (regions, departments)Read
xero_create_tracking_categoryCreate a tracking categoryWrite
xero_update_tracking_categoryUpdate a tracking categoryWrite

Code Examples

List all draft invoices

clawlink_call_tool --tool "xero_list_invoices" \
  --params '{
    "status": "DRAFT",
    "page": 1
  }'

Get invoice details

clawlink_call_tool --tool "xero_get_invoice" \
  --params '{
    "invoice_id": "INVOICE_ID"
  }'

Create an invoice

clawlink_call_tool --tool "xero_create_invoice" \
  --params '{
    "contact_id": "CONTACT_ID",
    "type": "ACCREC",
    "status": "DRAFT",
    "line_items": [
      {
        "description": "Web development services - Phase 1",
        "quantity": 1,
        "unit_amount": 2500,
        "account_code": "200"
      }
    ]
  }'

Record a payment

clawlink_call_tool --tool "xero_create_payment" \
  --params '{
    "invoice_id": "INVOICE_ID",
    "amount": 2500,
    "payment_date": "2025-06-07",
    "reference": "Payment via bank transfer"
  }'

Create a contact

clawlink_call_tool --tool "xero_create_contact" \
  --params '{
    "name": "Acme Corporation",
    "email_address": "billing@acme.com",
    "account_number": "ACM-001"
  }'

Get organisation details

clawlink_call_tool --tool "xero_get_organisation" \
  --params '{}'

Discovery Workflow

  1. Call clawlink_list_integrations to confirm Xero is connected.
  2. Call clawlink_list_tools --integration xero to see the live catalog.
  3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.
  4. If the user describes a capability but the exact tool is unclear, call clawlink_search_tools with a short query and integration xero.
  5. If no Xero tools appear, direct the user to https://claw-link.dev/dashboard?add=xero.

Execution Workflow

┌─────────────────────────────────────────────────────────────┐
│  READ OPERATIONS (Safe)                                     │
│  list → get → search → describe                             │
│                                                             │
│  Example: List invoices → Get invoice → Show line items     │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│  WRITE OPERATIONS (Require Confirmation)                    │
│  describe → preview → confirm → call                      │
│                                                             │
│  Example: Preview invoice creation → User approves → Create│
└─────────────────────────────────────────────────────────────┘
  1. For unfamiliar tools, ambiguous requests, or any write action, call clawlink_describe_tool first.
  2. Use the returned guidance, schema, whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.
  3. Prefer read, list, get, and search operations before writes when that reduces ambiguity.
  4. For writes or anything marked as requiring confirmation, call clawlink_preview_tool first.
  5. Execute with clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.
  6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.

Notes

  • Xero uses ACCREC (accounts receivable) for sales invoices and ACCPAY (accounts payable) for bills.
  • Invoice and bill IDs are unique within an organisation — use them directly for payments.
  • Voiding an invoice keeps it in the system as a voided record for audit purposes.
  • Currency amounts should match the organisation's configured currencies.
  • Tracking categories (regions, departments) can be assigned to line items for reporting.
  • Draft invoices must be approved or sent before they appear in financial reports.
  • Contact IDs are required for creating invoices and bills — resolve from xero_list_contacts first.

Error Handling

Status / ErrorMeaning
Tool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration xero.
Missing connectionXero is not connected. Direct the user to https://claw-link.dev/dashboard?add=xero.
Invoice not foundThe invoice ID does not exist or belongs to a different organisation.
Contact not foundThe contact ID does not exist.
Account not foundThe account code does not exist in the chart of accounts.
Invalid status transitionThe invoice cannot be updated in its current status (e.g., voiding an already-paid invoice).
Validation errorA required field is missing or has an invalid value.
Duplicate invoiceAn invoice with the same number already exists.
Write rejectedUser did not confirm a write action. Always confirm before executing writes.

Troubleshooting: Tools Not Visible

  1. Check that the ClawLink plugin is installed:
    openclaw plugins list
    
  2. If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
  3. If a fresh chat does not help, run:
    openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
    openclaw gateway restart
    
  4. After restart, tell the user to send /new again and retry.

Troubleshooting: Invoice Creation Fails

  1. Verify the contact ID exists — use xero_list_contacts or xero_search_contacts.
  2. Check that account codes are valid for line items.
  3. Confirm the invoice type (ACCREC or ACCPAY) matches the intended purpose.
  4. Ensure date formats are correct (ISO 8601 format recommended).

Resources


Powered by ClawLink — an integration hub for OpenClaw

ClawLink Logo

Top skills in this category

Stock Analysis

@udiedrichsen

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management, watchlists with alerts, dividend analysis, 8-dimension stock scoring, viral trend detection (Hot Scanner), and rumor/early signal detection. Use for stock analysis, portfolio tracking, earnings reactions, crypto monitoring, trending stocks, or finding rumors before they hit mainstream.

25959k

Stock Market Pro

@kys42

Yahoo Finance (yfinance) powered stock analysis skill: quotes, fundamentals, ASCII trends, high-resolution charts (RSI/MACD/BB/VWAP/ATR), plus optional web a...

15532k

Stock Watcher

@robin797860

Manage and monitor a personal stock watchlist with support for adding, removing, listing stocks, and summarizing their recent performance using data from 10jqka.com.cn. Use when the user wants to track specific stocks, get performance summaries, or manage their watchlist.

8837k

A股量化 AkShare

@mbpz

A股量化数据分析工具,基于AkShare库获取A股行情、财务数据、板块信息等。用于回答关于A股股票查询、行情数据、财务分析、选股等问题。

10232k

Intelligent Stocks Screener

@financial-ai-analyst

基于东方财富数据库,支持通过自然语言输入筛选A港美股、基金、债券等多种资产,支持多元指标筛选,含技术面、消息面、基本面及市场情绪等,可用于全球资产速筛、跨市场监控、投资组合构建、策略回测等场景。返回结果包含数据说明及 csv 文件。Natural language screener for investment...

10627k