Use the Xero CLI from KosmoKrator to call Xero tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.
Xero can be configured headlessly with `kosmokrator integrations:configure xero`.
# Install KosmoKrator first if it is not available on PATH.curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash# Configure and verify this integration.kosmokrator integrations:configure xero --set access_token="$XERO_ACCESS_TOKEN" --enable --read allow --write ask --jsonkosmokrator integrations:doctor xero --jsonkosmokrator integrations:status --json
Credentials
Authentication type: Manual OAuth tokenoauth2_manual_token. Configure credentials once, then use the same stored profile from
scripts, coding CLIs, Lua code mode, and the MCP gateway.
Key
Env var
Type
Required
Label
access_token
XERO_ACCESS_TOKEN
Secret secret
yes
Access Token
base_url
XERO_BASE_URL
URL url
no
API Base URL
Call Xero Headlessly
Use the generic call form when another coding CLI or script needs a stable universal interface.
Every function below can be called headlessly. The generic form is stable across all integrations;
the provider shortcut is shorter but specific to Xero.
xero.xero_create_invoice
Write write
Create a new invoice in Xero.
Requires a contact_id and at least one line item with description and unit_amount.
Returns the created invoice with its ID and number.
Parameters
contact_id, type, date, due_date, reference, line_items, status
Retrieve the currently authenticated Xero user.
Returns the user's ID, name, and email.
Useful for identifying which Xero organisation or token is in use.
Use these parameter tables when building CLI payloads without calling integrations:schema first.
xero.xero_create_invoice
Create a new invoice in Xero.
Requires a contact_id and at least one line item with description and unit_amount.
Returns the created invoice with its ID and number.
Retrieve the currently authenticated Xero user.
Returns the user's ID, name, and email.
Useful for identifying which Xero organisation or token is in use.
Xero where filter expression (e.g. Type=="ACCREC").
order
string
no
Sort order (e.g. "Date DESC", "InvoiceNumber ASC").
Permissions
Headless calls still follow the integration read/write permission policy. Configure read/write defaults
with integrations:configure. Add --force only for trusted automation that should bypass that policy.