Xero

ToolByIronHubVersion0.1.0

No description.

Install
$ironclaw hub install xero

Description

Xero Accounting API integration for the IronClaw agent runtime. Compiles to a wasm32-wasip2 sandboxed tool that talks to api.xero.com with credentials injected by the host.

What it does

A single xero.invoke capability dispatches a tagged-union action:

  • Read: list_connections, get_organisation, list_contacts, get_contact, list_invoices, get_invoice, list_accounts, list_payments, list_bank_transactions, list_items, list_credit_notes, get_report.
  • Write: create_contact, update_contact, create_invoice, update_invoice, create_payment.
  • Escape hatch: xero_request for any Accounting API endpoint not named above, bounded to /api.xro/2.0/ and /connections.

Multi-tenant

A connected Xero login can reach several organisations. Every action except list_connections requires a tenant_id; the tool sets it as the Xero-tenant-id header. Call list_connections to discover the ids.

Auth

Authorization-code OAuth2. The host obtains and refreshes the token (the tool declares the offline_access and granular accounting.* scopes) and injects it as a Bearer header. The tool never sees the token. See xero-tool.capabilities.json for setup.

Write safety

Invoices are created as DRAFT unless an explicit Status is supplied; create actions accept an idempotency_key; and validation failures are surfaced as errors even when Xero returns HTTP 200.

Build

cargo build --target wasm32-wasip2 --release

The module is emitted at target/wasm32-wasip2/release/xero_tool.wasm and is referenced by manifest.toml as wasm/xero_tool.wasm.

Specifications

WIT Interface0.3.0
Action Capacity18 actions
Auth ModelOAuth 2.0 user-context
Source Pathtools/xero

Security & Network

Network Allowlist
api.xero.comapi.xero.com
Required Secrets
xero_oauth_token

Constraints & Tags

Known Limits
  • A single `xero.invoke` capability dispatches a tagged-union action:
  • Escape hatch: `xero_request` for any Accounting API endpoint not named above,
  • `xero-tool.capabilities.json` for setup.
Technical Tags
WASM toolOAuthHTTP allowlist

Standalone tool trunk without current skill branches.