Xero connector
OAuth 2.0 Accounting & FinanceConnect to Xero. Manage accounting, invoices, contacts, payments, bank transactions, and financial workflows
Xero connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Set up the connector
Section titled “Set up the connector”Register your Xero credentials with Scalekit so it handles the token lifecycle. You do this once per environment.
Dashboard setup steps
Register your Scalekit environment with the Xero connector so Scalekit handles the OAuth 2.0 flow and token lifecycle for you. The connection name you create is used to identify and invoke the connection in your code.
-
Set up auth redirects
-
In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Xero and click Create. Copy the redirect URI — it looks like
https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback. -
Log in to developer.xero.com, open your app (or create one under My Apps → New app), and go to Configuration.
-
Paste the redirect URI into the Redirect URIs field and click Save.

-
-
Get client credentials
-
In your Xero app, open the Configuration tab.
-
Copy your Client ID and generate a Client Secret.
-
-
Add credentials in Scalekit
-
In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.
-
Enter your Xero Client ID and Client Secret, then click Save.

-
-
Connect a user account
Your users must authorize access to their Xero organisation. Generate an authorization link and direct them through the OAuth flow.
Via dashboard (for testing)
-
Open the connection and click the Connected Accounts tab → Add Account.
-
Fill in Your User’s ID (e.g.,
user_123) and follow the Xero OAuth prompt.
Via API (for production)
const { link } = await scalekit.actions.getAuthorizationLink({connectionName: 'xero',identifier: 'user_123',});// Redirect your user to `link` — they complete OAuth on Xero's sideconsole.log('Authorize Xero:', link);link_response = scalekit_client.actions.get_authorization_link(connection_name="xero",identifier="user_123")# Redirect your user to link_response.linkprint("Authorize Xero:", link_response.link) -
-
-
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'xero'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Xero:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'xero_accounts_list',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "xero"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Xero:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="xero_accounts_list",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- List users, tracking categories, tax rates — Retrieve users of a Xero organisation
- Get user, quote, purchase order — Retrieve a single Xero organisation user by their UserID
- Create tracking option, tax rate, quote — Create a new option within a tracking category in Xero
- Update tracking category, tax rate, quote — Update a tracking category name or status in Xero
- Delete tracking category, item, invoice — Delete a tracking category from Xero
- Balance report trial — Retrieve the Trial Balance report for a Xero organisation
Common workflows
Section titled “Common workflows”Proxy API call
For raw proxy requests, you must supply the Xero-Tenant-Id header yourself. Trigger any tool call first (e.g. xero_accounts_list) so Scalekit caches the tenant ID, then retrieve it from the connected account’s api_config.path_variables.
const { connectedAccount } = await actions.getConnectedAccount({ connectionName: 'xero', identifier: 'user_123',});const xeroTenantId = connectedAccount.apiConfig?.pathVariables?.xero_tenant_id;
const result = await actions.request({ connectionName: 'xero', identifier: 'user_123', path: '/Invoices', method: 'GET', headers: { 'Xero-Tenant-Id': xeroTenantId },});console.log(result);connected_account = actions.get_connected_account( connection_name='xero', identifier='user_123').connected_accountxero_tenant_id = connected_account.api_config["path_variables"]["xero_tenant_id"]
result = actions.request( connection_name='xero', identifier='user_123', path="/Invoices", method="GET", headers={"Xero-Tenant-Id": xero_tenant_id},)print(result)Create and authorise an invoice
The Contact field must be a JSON string and LineItems must be a JSON array. Include AccountCode in each line item — Xero requires it when authorising or voiding the invoice.
const contacts = await actions.executeTool({ connector: 'xero', identifier: 'user_123', toolName: 'xero_contacts_list', toolInput: {},});const contactId = contacts.Contacts[0].ContactID;
const invoice = await actions.executeTool({ connector: 'xero', identifier: 'user_123', toolName: 'xero_invoice_create', toolInput: { Type: 'ACCREC', Contact: JSON.stringify({ ContactID: contactId }), LineItems: [ { Description: 'Consulting services', Quantity: 1, UnitAmount: 500, AccountCode: '200' }, ], },});const invoiceId = invoice.Invoices[0].InvoiceID;
await actions.executeTool({ connector: 'xero', identifier: 'user_123', toolName: 'xero_invoice_update', toolInput: { invoice_id: invoiceId, Status: 'AUTHORISED', DueDate: '2026-06-30', },});import json
contacts = actions.execute_tool( connection_name='xero', identifier='user_123', tool_name="xero_contacts_list", tool_input={},)contact_id = contacts["Contacts"][0]["ContactID"]
invoice = actions.execute_tool( connection_name='xero', identifier='user_123', tool_name="xero_invoice_create", tool_input={ "Type": "ACCREC", "Contact": json.dumps({"ContactID": contact_id}), "LineItems": [ {"Description": "Consulting services", "Quantity": 1, "UnitAmount": 500, "AccountCode": "200"}, ], },)invoice_id = invoice["Invoices"][0]["InvoiceID"]
actions.execute_tool( connection_name='xero', identifier='user_123', tool_name="xero_invoice_update", tool_input={ "invoice_id": invoice_id, "Status": "AUTHORISED", "DueDate": "2026-06-30", },)Void an invoice
xero_invoice_delete voids an invoice by setting its status to VOIDED. Xero only permits voiding AUTHORISED invoices — calling it on a DRAFT invoice returns a validation error. Authorise the invoice first (see above), then call delete.
await actions.executeTool({ connector: 'xero', identifier: 'user_123', toolName: 'xero_invoice_delete', toolInput: { invoice_id: invoiceId },});actions.execute_tool( connection_name='xero', identifier='user_123', tool_name="xero_invoice_delete", tool_input={"invoice_id": invoice_id},)Create a quote
xero_quote_create requires Contact (JSON string), LineItems (array), and Date (ISO 8601). Without Date, Xero returns "Date cannot be empty".
const quote = await actions.executeTool({ connector: 'xero', identifier: 'user_123', toolName: 'xero_quote_create', toolInput: { Contact: JSON.stringify({ ContactID: contactId }), LineItems: [{ Description: 'Project estimate', Quantity: 1, UnitAmount: 2000 }], Date: '2026-04-29', },});const quoteId = quote.Quotes[0].QuoteID;import json
quote = actions.execute_tool( connection_name='xero', identifier='user_123', tool_name="xero_quote_create", tool_input={ "Contact": json.dumps({"ContactID": contact_id}), "LineItems": [{"Description": "Project estimate", "Quantity": 1, "UnitAmount": 2000}], "Date": "2026-04-29", },)quote_id = quote["Quotes"][0]["QuoteID"]Run aged payables or receivables report
The aged report tools require a contactID parameter. The other reports (Balance Sheet, Profit & Loss, Trial Balance, Bank Summary, Executive Summary) need no inputs beyond the auto-injected tenant ID.
const report = await actions.executeTool({ connector: 'xero', identifier: 'user_123', toolName: 'xero_report_aged_receivables', toolInput: { contactID: contactId },});report = actions.execute_tool( connection_name='xero', identifier='user_123', tool_name="xero_report_aged_receivables", tool_input={"contactID": contact_id},)Common patterns
Section titled “Common patterns”Void (delete) an invoice
xero_invoice_delete voids an invoice by setting its status to VOIDED. Xero only allows voiding invoices that are in AUTHORISED status — calling it on a DRAFT invoice returns a validation error.
The correct sequence is:
- Authorise the invoice with
xero_invoice_update, passingStatus: "AUTHORISED"and aDueDate. - Call
xero_invoice_deletewith the sameinvoice_id.
Node.js example
// Step 1 — authorise the invoiceawait actions.executeTool({ connectionName, identifier, toolName: 'xero_invoice_update', parameters: { invoice_id: invoiceId, Status: 'AUTHORISED', DueDate: '2026-06-30', },});
// Step 2 — void itawait actions.executeTool({ connectionName, identifier, toolName: 'xero_invoice_delete', parameters: { invoice_id: invoiceId },});Python example
# Step 1 — authorise the invoiceactions.execute_tool( connection_name=connection_name, identifier=identifier, tool_name="xero_invoice_update", parameters={ "invoice_id": invoice_id, "Status": "AUTHORISED", "DueDate": "2026-06-30", },)
# Step 2 — void itactions.execute_tool( connection_name=connection_name, identifier=identifier, tool_name="xero_invoice_delete", parameters={"invoice_id": invoice_id},)Pass Contact and LineItems correctly
Several tools (xero_invoice_create, xero_credit_note_create, xero_purchase_order_create, xero_quote_create) take a Contact field and a LineItems field.
Contact— pass as a JSON string:'{"ContactID": "abc123..."}'LineItems— pass as a JSON array (not a string):[{"Description": "...", "Quantity": 1, "UnitAmount": 100, "AccountCode": "200"}]
Include AccountCode in each line item whenever the invoice may later be authorised or voided.
Quotes require a Date
xero_quote_create and xero_quote_update both require a Date field (ISO 8601, e.g. "2026-04-29"). Xero returns a validation error "Date cannot be empty" without it.
xero_quote_update also requires Contact (JSON string) in addition to Date.
Aged reports require a contactID
xero_report_aged_payables and xero_report_aged_receivables require a contactID parameter. The other five report tools (xero_report_balance_sheet, xero_report_profit_and_loss, xero_report_trial_balance, xero_report_bank_summary, xero_report_executive_summary) require no inputs beyond the auto-injected tenant ID.
Update an item
xero_item_update requires Code in the request body (in addition to item_id in the path). Pass the item’s existing code or a new one — Xero uses it to identify the item being updated.
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
xero_account_create
#
Create a new account in the Xero chart of accounts. 8 params
Create a new account in the Xero chart of accounts.
Code string required Customer defined alpha numeric account code. Name string required Name of the account. Type string required Account type (e.g. BANK, CURRENT, EQUITY, EXPENSE, FIXED, LIABILITY, OTHERINCOME, OVERHEADS, PREPAYMENT, REVENUE, SALES, TERMLIAB, PAYGLIABILITY). BankAccountNumber string optional For bank accounts, the bank account number. CurrencyCode string optional For bank accounts, the currency of the account. Description string optional Description of the account. EnablePaymentsToAccount boolean optional If true, payments can be made to this account. TaxType string optional Default tax type for the account. xero_account_delete
#
Archive (soft-delete) an account from the Xero chart of accounts by setting its status to ARCHIVED. 1 param
Archive (soft-delete) an account from the Xero chart of accounts by setting its status to ARCHIVED.
account_id string required Xero account GUID to archive. xero_account_get
#
Retrieve a single account by its AccountID. 1 param
Retrieve a single account by its AccountID.
account_id string required Xero account GUID. xero_account_update
#
Update an existing account in the Xero chart of accounts. 6 params
Update an existing account in the Xero chart of accounts.
account_id string required Xero account GUID. Code string optional Updated account code. Description string optional Updated description. EnablePaymentsToAccount boolean optional Enable/disable payments to account. Name string optional Updated name of the account. TaxType string optional Updated tax type. xero_accounts_list
#
Retrieve the full chart of accounts for a Xero organisation. 3 params
Retrieve the full chart of accounts for a Xero organisation.
modified_after string optional Return records modified after this UTC datetime (ISO 8601). order string optional Order results (e.g. Name ASC). where string optional Filter expression (e.g. Type=="BANK"). xero_bank_transactions_list
#
Retrieve spend or receive money bank transactions from Xero. 4 params
Retrieve spend or receive money bank transactions from Xero.
modified_after string optional Modified after UTC datetime. order string optional Sort order. page number optional Page number. where string optional Filter expression. xero_bank_transfers_list
#
Retrieve bank transfers between accounts in Xero. 3 params
Retrieve bank transfers between accounts in Xero.
modified_after string optional Modified after UTC datetime. order string optional Sort order. where string optional Filter expression. xero_batch_payments_list
#
Retrieve batch payments from a Xero organisation. 3 params
Retrieve batch payments from a Xero organisation.
modified_after string optional Modified after UTC datetime. order string optional Sort order. where string optional Filter expression. xero_contact_create
#
Create a new contact (customer or supplier) in Xero. 10 params
Create a new contact (customer or supplier) in Xero.
Name string required Full name of the contact / company. AccountNumber string optional Unique account number for this contact. Addresses array optional Array of address objects. DefaultCurrency string optional Default currency for this contact. EmailAddress string optional Email address of the contact. FirstName string optional First name of primary contact person. IsCustomer boolean optional True if contact is a customer. IsSupplier boolean optional True if contact is a supplier. LastName string optional Last name of primary contact person. Phones array optional Array of phone objects e.g. [{"PhoneType":"DEFAULT","PhoneNumber":"021-123456"}]. xero_contact_get
#
Retrieve a single contact by its ContactID. 1 param
Retrieve a single contact by its ContactID.
contact_id string required Xero contact GUID. xero_contact_group_create
#
Create a new contact group in Xero. 1 param
Create a new contact group in Xero.
Name string required Name of the contact group. xero_contact_group_delete
#
Delete (soft-delete) a contact group in Xero by setting its status to DELETED. 1 param
Delete (soft-delete) a contact group in Xero by setting its status to DELETED.
contact_group_id string required Xero contact group GUID to delete. xero_contact_group_get
#
Retrieve a single contact group by its ContactGroupID. 1 param
Retrieve a single contact group by its ContactGroupID.
contact_group_id string required Xero contact group GUID. xero_contact_group_update
#
Update a contact group name in Xero. 2 params
Update a contact group name in Xero.
contact_group_id string required Xero contact group GUID. Name string required New name for the contact group. xero_contact_groups_list
#
Retrieve all contact groups in a Xero organisation. 2 params
Retrieve all contact groups in a Xero organisation.
order string optional Sort order. where string optional Filter expression. xero_contact_update
#
Update an existing contact in Xero. 8 params
Update an existing contact in Xero.
contact_id string required Xero contact GUID. DefaultCurrency string optional Updated default currency. EmailAddress string optional Updated email address. FirstName string optional Updated first name. IsCustomer boolean optional Update customer flag. IsSupplier boolean optional Update supplier flag. LastName string optional Updated last name. Name string optional Updated name. xero_contacts_list
#
Retrieve contacts (customers and suppliers) from a Xero organisation. 6 params
Retrieve contacts (customers and suppliers) from a Xero organisation.
modified_after string optional Return contacts modified after this UTC datetime. order string optional Sort order (e.g. Name ASC). page number optional Page number for pagination. pageSize number optional Number of records per page (max 1000). searchTerm string optional Search term to filter contacts by name or email. where string optional Filter expression (e.g. IsSupplier==true). xero_credit_note_create
#
Create a new credit note in Xero. 7 params
Create a new credit note in Xero.
Contact string required Contact object e.g. {"ContactID":"guid"}. LineItems array required Array of line item objects. Type string required Credit note type: ACCRECCREDIT (sales credit) or ACCPAYCREDIT (purchase credit). CurrencyCode string optional Currency code. Date string optional Date of credit note (YYYY-MM-DD). Reference string optional Reference number. Status string optional Status: DRAFT or AUTHORISED. xero_credit_note_get
#
Retrieve a single credit note by its CreditNoteID. 1 param
Retrieve a single credit note by its CreditNoteID.
credit_note_id string required Xero credit note GUID. xero_credit_note_update
#
Update an existing credit note in Xero. 3 params
Update an existing credit note in Xero.
credit_note_id string required Xero credit note GUID. Reference string optional Updated reference. Status string optional New status (DRAFT, AUTHORISED, VOIDED). xero_credit_notes_list
#
Retrieve credit notes from a Xero organisation. 4 params
Retrieve credit notes from a Xero organisation.
modified_after string optional Modified after UTC datetime. order string optional Sort order. page number optional Page number. where string optional Filter expression. xero_currencies_list
#
Retrieve enabled currencies for a Xero organisation. 2 params
Retrieve enabled currencies for a Xero organisation.
order string optional Sort order. where string optional Filter expression. xero_employee_create
#
Create a new employee record in Xero. 4 params
Create a new employee record in Xero.
FirstName string required First name of the employee. LastName string required Last name of the employee. ExternalLink string optional Link to employee in external system e.g. {"Url":"https://...","Description":"Employee record"}. Status string optional Employee status (ACTIVE or TERMINATED). xero_employee_get
#
Retrieve a single employee by their EmployeeID. 1 param
Retrieve a single employee by their EmployeeID.
employee_id string required Xero employee GUID. xero_employee_update
#
Update an existing employee in Xero. 4 params
Update an existing employee in Xero.
employee_id string required Xero employee GUID. FirstName string optional Updated first name. LastName string optional Updated last name. Status string optional Updated status (ACTIVE or TERMINATED). xero_employees_list
#
Retrieve employees from a Xero organisation. 3 params
Retrieve employees from a Xero organisation.
modified_after string optional Modified after UTC datetime. order string optional Sort order. where string optional Filter expression. xero_invoice_create
#
Create a new invoice (ACCREC) or bill (ACCPAY) in Xero. 8 params
Create a new invoice (ACCREC) or bill (ACCPAY) in Xero.
Contact string required Contact object with ContactID e.g. {"ContactID":"guid"}. LineItems array required Array of line items. Each needs Description, Quantity, UnitAmount, AccountCode. Type string required Invoice type: ACCREC (sales invoice) or ACCPAY (bill/purchase invoice). CurrencyCode string optional Currency (defaults to org default). DueDate string optional Due date in YYYY-MM-DD format. InvoiceNumber string optional Custom invoice reference number. Reference string optional Additional reference number. Status string optional Invoice status (DRAFT or AUTHORISED). xero_invoice_delete
#
Void (soft-delete) an invoice or bill in Xero by setting its status to VOIDED. 1 param
Void (soft-delete) an invoice or bill in Xero by setting its status to VOIDED.
invoice_id string required Xero invoice GUID to void. xero_invoice_get
#
Retrieve a single invoice or bill by its InvoiceID. 1 param
Retrieve a single invoice or bill by its InvoiceID.
invoice_id string required Xero invoice GUID. xero_invoice_update
#
Update an existing invoice or bill in Xero. Note: DueDate is required when setting Status to AUTHORISED. 5 params
Update an existing invoice or bill in Xero. Note: DueDate is required when setting Status to AUTHORISED.
invoice_id string required Xero invoice GUID. DueDate string optional Updated due date (YYYY-MM-DD). Required when Status is AUTHORISED. LineItems array optional Updated line items array. Reference string optional Updated reference. Status string optional New status (DRAFT, SUBMITTED, AUTHORISED, DELETED, VOIDED). xero_invoices_list
#
Retrieve sales invoices and bills from a Xero organisation. 7 params
Retrieve sales invoices and bills from a Xero organisation.
ContactIDs string optional Comma-separated ContactIDs to filter invoices. modified_after string optional Return invoices modified after this UTC datetime. order string optional Sort order. page number optional Page number. pageSize number optional Records per page (max 1000). Statuses string optional Comma-separated statuses to filter (e.g. DRAFT,AUTHORISED). where string optional Filter expression (e.g. Type=="ACCREC" && Status=="AUTHORISED"). xero_item_create
#
Create a new inventory item in Xero. 8 params
Create a new inventory item in Xero.
Code string required Unique item code. Description string optional Description for sales invoices. InventoryAssetAccountCode string optional Account code for inventory asset (required if tracked). IsTrackedAsInventory boolean optional Track this item as inventory. Name string optional Name of the item. PurchaseDescription string optional Description for purchase orders. PurchaseDetails string optional Purchase pricing JSON e.g. {"UnitPrice":5.00,"AccountCode":"300","TaxType":"INPUT2"}. SalesDetails string optional Sales pricing JSON e.g. {"UnitPrice":9.99,"AccountCode":"200","TaxType":"OUTPUT2"}. xero_item_delete
#
Delete an inventory item from Xero. 1 param
Delete an inventory item from Xero.
item_id string required Xero item GUID to delete. xero_item_get
#
Retrieve a single item by its ItemID or Code. 1 param
Retrieve a single item by its ItemID or Code.
item_id string required Xero item GUID or item Code. xero_item_update
#
Update an existing inventory item in Xero. 7 params
Update an existing inventory item in Xero.
Code string required Item code (required by Xero for item updates). item_id string required Xero item GUID. Description string optional Updated sales description. Name string optional Updated item name. PurchaseDescription string optional Updated purchase description. PurchaseDetails string optional Updated purchase details JSON. SalesDetails string optional Updated sales details JSON. xero_items_list
#
Retrieve inventory items from a Xero organisation. 3 params
Retrieve inventory items from a Xero organisation.
modified_after string optional Modified after UTC datetime. order string optional Sort order. where string optional Filter expression. xero_manual_journal_create
#
Create a new manual journal entry in Xero. 4 params
Create a new manual journal entry in Xero.
JournalLines array required Array of journal line objects with LineAmount, AccountCode, Description. Narration string required Description of the manual journal. Date string optional Journal date (YYYY-MM-DD). Status string optional Status: DRAFT or POSTED. xero_manual_journal_get
#
Retrieve a single manual journal by its ManualJournalID. 1 param
Retrieve a single manual journal by its ManualJournalID.
manual_journal_id string required Xero manual journal GUID. xero_manual_journal_update
#
Update an existing manual journal in Xero. Note: JournalLines are required when setting Status to POSTED. 5 params
Update an existing manual journal in Xero. Note: JournalLines are required when setting Status to POSTED.
manual_journal_id string required Xero manual journal GUID. Date string optional Updated date (YYYY-MM-DD). JournalLines array optional Array of journal lines (required when changing Status to POSTED). Narration string optional Updated narration. Status string optional Updated status (DRAFT or POSTED). xero_manual_journals_list
#
Retrieve manual journals from a Xero organisation. 4 params
Retrieve manual journals from a Xero organisation.
modified_after string optional Modified after UTC datetime. order string optional Sort order. page number optional Page number. where string optional Filter expression. xero_overpayments_list
#
Retrieve overpayments from a Xero organisation. 4 params
Retrieve overpayments from a Xero organisation.
modified_after string optional Modified after UTC datetime. order string optional Sort order. page number optional Page number. where string optional Filter expression. xero_payments_list
#
Retrieve payments applied to invoices, credit notes, or prepayments in Xero. 4 params
Retrieve payments applied to invoices, credit notes, or prepayments in Xero.
modified_after string optional Modified after UTC datetime. order string optional Sort order. page number optional Page number. where string optional Filter expression. xero_prepayments_list
#
Retrieve prepayments from a Xero organisation. 4 params
Retrieve prepayments from a Xero organisation.
modified_after string optional Modified after UTC datetime. order string optional Sort order. page number optional Page number. where string optional Filter expression. xero_purchase_order_create
#
Create a new purchase order in Xero. 8 params
Create a new purchase order in Xero.
Contact string required Supplier contact object e.g. {"ContactID":"guid"}. LineItems array required Array of line item objects. CurrencyCode string optional Currency code. Date string optional PO date (YYYY-MM-DD). DeliveryDate string optional Expected delivery date (YYYY-MM-DD). PurchaseOrderNumber string optional Custom PO number. Reference string optional Reference. Status string optional Status: DRAFT or SUBMITTED. xero_purchase_order_get
#
Retrieve a single purchase order by its PurchaseOrderID. 1 param
Retrieve a single purchase order by its PurchaseOrderID.
purchase_order_id string required Xero purchase order GUID. xero_purchase_order_update
#
Update an existing purchase order in Xero. 5 params
Update an existing purchase order in Xero.
purchase_order_id string required Xero purchase order GUID. DeliveryDate string optional Updated delivery date (YYYY-MM-DD). LineItems array optional Updated line items. Reference string optional Updated reference. Status string optional New status (DRAFT, SUBMITTED, AUTHORISED, BILLED, DELETED). xero_purchase_orders_list
#
Retrieve purchase orders from a Xero organisation. 5 params
Retrieve purchase orders from a Xero organisation.
DateFrom string optional Filter POs issued from this date (YYYY-MM-DD). DateTo string optional Filter POs issued to this date (YYYY-MM-DD). order string optional Sort order. page number optional Page number. Status string optional Filter by status (DRAFT, SUBMITTED, AUTHORISED, BILLED, DELETED). xero_quote_create
#
Create a new quote in Xero. 10 params
Create a new quote in Xero.
Contact string required Contact object e.g. {"ContactID":"guid"}. Date string required Quote date (YYYY-MM-DD). LineItems array required Array of line item objects. CurrencyCode string optional Currency code. ExpiryDate string optional Quote expiry date (YYYY-MM-DD). QuoteNumber string optional Custom quote number. Reference string optional Reference. Status string optional Status: DRAFT or SENT. Summary string optional Quote summary. Title string optional Quote title. xero_quote_get
#
Retrieve a single quote by its QuoteID. 1 param
Retrieve a single quote by its QuoteID.
quote_id string required Xero quote GUID. xero_quote_update
#
Update an existing quote in Xero. 7 params
Update an existing quote in Xero.
Contact string required Contact object e.g. {"ContactID":"guid"} (required by Xero for quote updates). Date string required Quote date YYYY-MM-DD (required by Xero for quote updates). quote_id string required Xero quote GUID. ExpiryDate string optional Updated expiry date (YYYY-MM-DD). LineItems array optional Updated line items. Reference string optional Updated reference. Status string optional New status (DRAFT, SENT, DECLINED, ACCEPTED, INVOICED, DELETED). xero_quotes_list
#
Retrieve quotes from a Xero organisation. 6 params
Retrieve quotes from a Xero organisation.
ContactID string optional Filter by contact GUID. DateFrom string optional Quote date from (YYYY-MM-DD). DateTo string optional Quote date to (YYYY-MM-DD). order string optional Sort order. page number optional Page number. Status string optional Filter by status (DRAFT, SENT, DECLINED, ACCEPTED, INVOICED, DELETED). xero_repeating_invoices_list
#
Retrieve repeating invoice templates from a Xero organisation. 2 params
Retrieve repeating invoice templates from a Xero organisation.
order string optional Sort order. where string optional Filter expression. xero_report_aged_payables
#
Retrieve the Aged Payables Outstanding report for a Xero organisation. 4 params
Retrieve the Aged Payables Outstanding report for a Xero organisation.
contactID string required Contact GUID (required by Xero for AgedPayablesByContact report). date string optional Report date (YYYY-MM-DD). fromDate string optional Start date for transactions. toDate string optional End date for transactions. xero_report_aged_receivables
#
Retrieve the Aged Receivables Outstanding report for a Xero organisation. 4 params
Retrieve the Aged Receivables Outstanding report for a Xero organisation.
contactID string required Contact GUID (required by Xero for AgedReceivablesByContact report). date string optional Report date (YYYY-MM-DD). fromDate string optional Start date for transactions. toDate string optional End date for transactions. xero_report_balance_sheet
#
Retrieve the Balance Sheet report for a Xero organisation. 5 params
Retrieve the Balance Sheet report for a Xero organisation.
date string optional Report date (YYYY-MM-DD). Defaults to today. periods number optional Number of periods to compare. standardLayout boolean optional Use standard layout. timeframe string optional Timeframe for comparison: MONTH, QUARTER, or YEAR. trackingCategoryID string optional Tracking category ID to segment by. xero_report_bank_summary
#
Retrieve the Bank Summary report for a Xero organisation. 2 params
Retrieve the Bank Summary report for a Xero organisation.
fromDate string optional Start date (YYYY-MM-DD). toDate string optional End date (YYYY-MM-DD). xero_report_executive_summary
#
Retrieve the Executive Summary report for a Xero organisation. 1 param
Retrieve the Executive Summary report for a Xero organisation.
date string optional Report month (YYYY-MM-DD, first day of month). xero_report_profit_and_loss
#
Retrieve the Profit and Loss report for a Xero organisation. 6 params
Retrieve the Profit and Loss report for a Xero organisation.
fromDate string optional Report start date (YYYY-MM-DD). periods number optional Number of periods to compare. standardLayout boolean optional Use standard layout. timeframe string optional Timeframe: MONTH, QUARTER, or YEAR. toDate string optional Report end date (YYYY-MM-DD). trackingCategoryID string optional Tracking category ID to segment by. xero_report_trial_balance
#
Retrieve the Trial Balance report for a Xero organisation. 2 params
Retrieve the Trial Balance report for a Xero organisation.
date string optional Report date (YYYY-MM-DD). paymentsOnly boolean optional If true, include only cash-basis transactions. xero_tax_rate_create
#
Create a new tax rate in Xero. 2 params
Create a new tax rate in Xero.
Name string required Name of the tax rate. TaxComponents array required Array of tax components e.g. [{"Name":"GST","Rate":15,"IsCompound":false}]. xero_tax_rate_update
#
Update an existing tax rate in Xero. 4 params
Update an existing tax rate in Xero.
TaxComponents array required Array of tax component objects e.g. [{"Name":"Tax","Rate":15,"IsCompound":false}]. Required by Xero when updating a tax rate. TaxType string required Tax type identifier to update. Name string optional Updated name. Status string optional Updated status (ACTIVE or DELETED). xero_tax_rates_list
#
Retrieve tax rates from a Xero organisation. 3 params
Retrieve tax rates from a Xero organisation.
order string optional Sort order. TaxType string optional Filter by specific tax type. where string optional Filter expression. xero_tracking_categories_list
#
Retrieve tracking categories and their options from Xero. 2 params
Retrieve tracking categories and their options from Xero.
order string optional Sort order. where string optional Filter expression. xero_tracking_category_delete
#
Delete a tracking category from Xero. 1 param
Delete a tracking category from Xero.
tracking_category_id string required Xero tracking category GUID to delete. xero_tracking_category_update
#
Update a tracking category name or status in Xero. 3 params
Update a tracking category name or status in Xero.
tracking_category_id string required Xero tracking category GUID. Name string optional Updated name. Status string optional Updated status (ACTIVE or ARCHIVED). xero_tracking_option_create
#
Create a new option within a tracking category in Xero. 2 params
Create a new option within a tracking category in Xero.
Name string required Name of the tracking option. tracking_category_id string required Xero tracking category GUID. xero_user_get
#
Retrieve a single Xero organisation user by their UserID. 1 param
Retrieve a single Xero organisation user by their UserID.
user_id string required Xero user GUID. xero_users_list
#
Retrieve users of a Xero organisation. 3 params
Retrieve users of a Xero organisation.
modified_after string optional Modified after UTC datetime. order string optional Sort order. where string optional Filter expression.