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.
Step 1: InstallStep 2: Pair AccountStep 3: Connect Xero
_App-specific connection GIF coming soon_Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Xero
text
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ 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 the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.
bash
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."
bash
# 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 '{}'
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.
clawlink_begin_pairing if it is not configured yet.clawlink_list_integrations to verify the connection is active.bash
clawlink_list_integrations
Response: Returns all connected integrations. Look for xero in the list.
bash
clawlink_list_tools --integration xero
Response: Returns the live tool catalog for Xero.
If Xero tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration xeroToolDescriptionModexero_list_invoicesList all invoices with status filtersReadxero_get_invoiceGet invoice details including line itemsReadxero_create_invoiceCreate a new invoiceWritexero_update_invoiceUpdate an existing invoice's detailsWritexero_void_invoiceVoid an invoice (marks as void, keeps record)Writexero_delete_invoiceDelete a draft invoiceWritexero_email_invoiceSend an invoice to the contact via emailWritexero_get_invoice_as_pdfDownload an invoice as PDFRead
ToolDescriptionModexero_list_billsList all bills (purchase invoices)Readxero_get_billGet bill detailsReadxero_create_billCreate a new billWritexero_update_billUpdate an existing billWritexero_delete_billDelete a draft billWritexero_approve_billApprove a bill for paymentWrite
ToolDescriptionModexero_list_contactsList all contacts (customers and suppliers)Readxero_get_contactGet contact details including addresses and contactsReadxero_create_contactCreate a new contactWritexero_update_contactUpdate contact informationWritexero_delete_contactDelete a contactWritexero_search_contactsSearch contacts by name, email, or account numberRead
ToolDescriptionModexero_list_paymentsList all payments on invoices and billsReadxero_create_paymentRecord a payment against an invoice or billWritexero_delete_paymentDelete/void a paymentWritexero_get_paymentGet details of a specific paymentRead
ToolDescriptionModexero_list_itemsList all items/productsReadxero_get_itemGet item detailsReadxero_create_itemCreate a new itemWritexero_update_itemUpdate an existing itemWritexero_delete_itemDelete an itemWrite
ToolDescriptionModexero_list_accountsList all chart of accountsReadxero_get_accountGet account detailsReadxero_create_accountCreate a new accountWritexero_update_accountUpdate an accountWrite
ToolDescriptionModexero_list_bank_transactionsList bank transactions (deposits, withdrawals, transfers)Readxero_get_bank_transactionGet bank transaction detailsReadxero_create_bank_transactionCreate a bank transactionWritexero_delete_bank_transactionDelete a draft bank transactionWrite
ToolDescriptionModexero_list_bank_transfersList bank transfersReadxero_create_bank_transferCreate a transfer between bank accountsWrite
ToolDescriptionModexero_list_journalsList journal entriesReadxero_get_journalGet a specific journal entryReadxero_create_journalCreate a manual journal entryWrite
ToolDescriptionModexero_get_organisationGet organisation/company detailsReadxero_list_currenciesList currencies configured in the organisationRead
ToolDescriptionModexero_list_tracking_categoriesList tracking categories (regions, departments)Readxero_create_tracking_categoryCreate a tracking categoryWritexero_update_tracking_categoryUpdate a tracking categoryWrite
bash
clawlink_call_tool --tool "xero_list_invoices" \
--params '{
"status": "DRAFT",
"page": 1
}'
bash
clawlink_call_tool --tool "xero_get_invoice" \
--params '{
"invoice_id": "INVOICE_ID"
}'
bash
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"
}
]
}'
bash
clawlink_call_tool --tool "xero_create_payment" \
--params '{
"invoice_id": "INVOICE_ID",
"amount": 2500,
"payment_date": "2025-06-07",
"reference": "Payment via bank transfer"
}'
bash
clawlink_call_tool --tool "xero_create_contact" \
--params '{
"name": "Acme Corporation",
"email_address": "billing@acme.com",
"account_number": "ACM-001"
}'
bash
clawlink_call_tool --tool "xero_get_organisation" \
--params '{}'
clawlink_list_integrations to confirm Xero is connected.clawlink_list_tools --integration xero to see the live catalog.clawlink_search_tools with a short query and integration xero.text
┌─────────────────────────────────────────────────────────────┐
│ 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│
└─────────────────────────────────────────────────────────────┘
clawlink_describe_tool first.whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.clawlink_preview_tool first.clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.ACCREC (accounts receivable) for sales invoices and ACCPAY (accounts payable) for bills.xero_list_contacts first.Status / ErrorMeaningTool 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.
Check that the ClawLink plugin is installed: bash
openclaw plugins list
If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
If a fresh chat does not help, run: bash
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
After restart, tell the user to send /new again and retry.
xero_list_contacts or xero_search_contacts.ACCREC or ACCPAY) matches the intended purpose.Powered by ClawLink — an integration hub for OpenClaw
