Xero

Create invoices, manage contacts, and track transactions in Xero. In Appbricx, your workflows and server functions call it by name once it is connected.

What you can do

22 actions, each one call from a workflow or a server function. Triggers come from your app: a row changing, a schedule or a webhook.

  • Create or Update Contactxero_create_contact
    Create Xero Contact
  • Create or Update Invoicexero_create_invoice
    Create Xero Invoice
  • Add Items to Existing Sales Invoicexero_add_items_to_sales_invoice
    Adds line items to an existing sales invoice (ACCREC).
  • Allocate Credit Note to Invoicexero_allocate_credit_note_to_invoice
    Allocates a credit note to a specific invoice.
  • Create Bank Transferxero_create_bank_transfer
    Transfers money between two bank accounts in Xero.
  • Create Billxero_create_bill
    Creates a new bill (Accounts Payable).
  • Create Credit Notexero_create_credit_note
    Creates a new credit note for a contact.
  • Create Inventory Itemxero_create_inventory_item
    Creates a new inventory item in Xero.
  • Create Paymentxero_create_payment
    Applies a payment to an invoice.
  • Create Projectxero_create_project
    Creates a new project for a contact.
  • Create Purchase Orderxero_create_purchase_order
    Creates a new purchase order for a contact.
  • Create New Quote Draftxero_create_quote_draft
    Creates a new draft quote.

All 22 actions with their inputs

Set it up

About two minutes, once per project or once for the whole workspace.

  1. Open Integrations in the builder

    Backend panel, Integrations tab, then Xero. To connect it for every project, use Workspace settings, Integrations.

  2. Sign in to Xero

    You sign in to Xero and approve access. Appbricx keeps the tokens, encrypted, and refreshes them.

    • openid
    • accounting.transactions

    This uses an OAuth app: the platform's, or your own from the admin panel, and you can bring your own credentials.

  3. Call an action

    From a workflow, by integration id and action name. The call answers with success, output and, when it fails, the reason.

    Workflow
    // .workflow.js (native ctx)
    export async function run(ctx) {
      const res = await ctx.integrations.invoke("xero", "xero_create_contact", {
        "tenant_id": "<tenant_id>",
        "name": "<contact name>"
      });
      if (!res.success) throw new Error(res.error);
      ctx.log.info("Xero answered", { output: res.output });
    }

Xero and its logo are trademarks of their owner, shown only to identify the service this integration connects to. Their use does not imply endorsement by, or affiliation with, that company.

Connect Xero once. Every workflow can use it.