Install
openclaw skills install xero-accountingManage invoices, contacts, bills, payments, and accounting records in Xero via the Xero API. Use this skill when users want to create invoices, manage contacts, track payments, or automate Xero accounting workflows.
openclaw skills install xero-accountingManage 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: Install | Step 2: Pair Account | Step 3: Connect Xero |
|---|---|---|
![]() | ![]() | App-specific connection GIF coming soon |
| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Xero |
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ 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.
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."
# 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.clawlink_list_integrations
Response: Returns all connected integrations. Look for xero in the list.
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 xero| Tool | Description | Mode |
|---|---|---|
xero_list_invoices | List all invoices with status filters | Read |
xero_get_invoice | Get invoice details including line items | Read |
xero_create_invoice | Create a new invoice | Write |
xero_update_invoice | Update an existing invoice's details | Write |
xero_void_invoice | Void an invoice (marks as void, keeps record) | Write |
xero_delete_invoice | Delete a draft invoice | Write |
xero_email_invoice | Send an invoice to the contact via email | Write |
xero_get_invoice_as_pdf | Download an invoice as PDF | Read |
| Tool | Description | Mode |
|---|---|---|
xero_list_bills | List all bills (purchase invoices) | Read |
xero_get_bill | Get bill details | Read |
xero_create_bill | Create a new bill | Write |
xero_update_bill | Update an existing bill | Write |
xero_delete_bill | Delete a draft bill | Write |
xero_approve_bill | Approve a bill for payment | Write |
| Tool | Description | Mode |
|---|---|---|
xero_list_contacts | List all contacts (customers and suppliers) | Read |
xero_get_contact | Get contact details including addresses and contacts | Read |
xero_create_contact | Create a new contact | Write |
xero_update_contact | Update contact information | Write |
xero_delete_contact | Delete a contact | Write |
xero_search_contacts | Search contacts by name, email, or account number | Read |
| Tool | Description | Mode |
|---|---|---|
xero_list_payments | List all payments on invoices and bills | Read |
xero_create_payment | Record a payment against an invoice or bill | Write |
xero_delete_payment | Delete/void a payment | Write |
xero_get_payment | Get details of a specific payment | Read |
| Tool | Description | Mode |
|---|---|---|
xero_list_items | List all items/products | Read |
xero_get_item | Get item details | Read |
xero_create_item | Create a new item | Write |
xero_update_item | Update an existing item | Write |
xero_delete_item | Delete an item | Write |
| Tool | Description | Mode |
|---|---|---|
xero_list_accounts | List all chart of accounts | Read |
xero_get_account | Get account details | Read |
xero_create_account | Create a new account | Write |
xero_update_account | Update an account | Write |
| Tool | Description | Mode |
|---|---|---|
xero_list_bank_transactions | List bank transactions (deposits, withdrawals, transfers) | Read |
xero_get_bank_transaction | Get bank transaction details | Read |
xero_create_bank_transaction | Create a bank transaction | Write |
xero_delete_bank_transaction | Delete a draft bank transaction | Write |
| Tool | Description | Mode |
|---|---|---|
xero_list_bank_transfers | List bank transfers | Read |
xero_create_bank_transfer | Create a transfer between bank accounts | Write |
| Tool | Description | Mode |
|---|---|---|
xero_list_journals | List journal entries | Read |
xero_get_journal | Get a specific journal entry | Read |
xero_create_journal | Create a manual journal entry | Write |
| Tool | Description | Mode |
|---|---|---|
xero_get_organisation | Get organisation/company details | Read |
xero_list_currencies | List currencies configured in the organisation | Read |
| Tool | Description | Mode |
|---|---|---|
xero_list_tracking_categories | List tracking categories (regions, departments) | Read |
xero_create_tracking_category | Create a tracking category | Write |
xero_update_tracking_category | Update a tracking category | Write |
clawlink_call_tool --tool "xero_list_invoices" \
--params '{
"status": "DRAFT",
"page": 1
}'
clawlink_call_tool --tool "xero_get_invoice" \
--params '{
"invoice_id": "INVOICE_ID"
}'
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"
}
]
}'
clawlink_call_tool --tool "xero_create_payment" \
--params '{
"invoice_id": "INVOICE_ID",
"amount": 2500,
"payment_date": "2025-06-07",
"reference": "Payment via bank transfer"
}'
clawlink_call_tool --tool "xero_create_contact" \
--params '{
"name": "Acme Corporation",
"email_address": "billing@acme.com",
"account_number": "ACM-001"
}'
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.┌─────────────────────────────────────────────────────────────┐
│ 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 / Error | Meaning |
|---|---|
| Tool not found | The tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration xero. |
| Missing connection | Xero is not connected. Direct the user to https://claw-link.dev/dashboard?add=xero. |
Invoice not found | The invoice ID does not exist or belongs to a different organisation. |
Contact not found | The contact ID does not exist. |
Account not found | The account code does not exist in the chart of accounts. |
Invalid status transition | The invoice cannot be updated in its current status (e.g., voiding an already-paid invoice). |
Validation error | A required field is missing or has an invalid value. |
Duplicate invoice | An invoice with the same number already exists. |
| Write rejected | User did not confirm a write action. Always confirm before executing writes. |
openclaw plugins list
/new as a standalone message to reload the catalog.openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
/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
