All articles

Integrations

Accounting

Connect Xero, QuickBooks Online, or Zoho Books and create one invoice for every paid order.

Overview

Channels & integrations → Accounting (/en/integrations/accounting) connects your accounting system so paid orders become invoices.

  • Xero and QuickBooks Online — sign in with your Xero or Intuit account. OrderInChat creates contacts and invoices through the official Xero and QuickBooks APIs.
  • Zoho Books — connects through Zoho MCP. Copy your Server URL from Zoho MCP (your server → Connect). OrderInChat does not host this URL.

If a card says the provider is not set up on OrderInChat yet, the OrderInChat team has not enabled it for the platform. Contact support.

Connect

  1. Open Channels & integrations → Accounting.
  2. For Xero or QuickBooks, click Connect with OAuth, sign in, and approve access. If you approve more than one Xero organisation, choose the one that receives invoices under Xero organisation.
  3. For Zoho Books, open Zoho MCP, choose your server, open Connect, and copy the Server URL. It is unique to that server and looks like https://….zohomcp.com/mcp/…/message. Other data centers use mcp.zoho.eu, mcp.zoho.in, mcp.zoho.com.au, or mcp.zoho.jp. Paste that URL, save it, then click Connect with OAuth. Treat the URL like a password.
  4. Set the invoice options and click Save invoice settings:
    • Xero: invoice status (Draft or Approved) and the sales account code — the chart-of-accounts code on each invoice line (often 200). It must already exist in that Xero organisation. If you leave it blank, OrderInChat sends 200.
    • QuickBooks: Product/service for invoice lines — every line uses this product or service. Leave it blank to use "Sales"; if it does not exist, OrderInChat creates it as a service on your income account. QuickBooks Online has no draft invoices.
    • Zoho Books: invoice status and Organization ID (Zoho Books → Settings → Organization Profile).
  5. Turn Active on and optionally enable Create invoice when order is paid.
  6. Click Test. For Xero and QuickBooks the message shows the organisation or company name you are connected to.

Use Disconnect to remove the connection. For Xero and QuickBooks this also revokes OrderInChat's access in your accounting system.

When auto-sync is on, each paid order creates one invoice in your accounting system:

  • Customer: matched by email, then by name; created when there is no match.
  • Lines: products, shipping, tax, and discounts are separate lines, so the invoice total equals the order total. No extra tax is added on top. In QuickBooks, discounts appear as one discount line.
  • Reference: in Xero the invoice reference is the order number. In QuickBooks the order number becomes the invoice number when custom transaction numbers are on, and it is always in the invoice memo.
  • Never twice: an order never gets a second invoice. A retry finds and reuses the invoice that already exists.
  • Currency: the order currency must be the organisation's currency, or multicurrency must be on in your accounting system.
  • When it runs: card payments and payments you confirm yourself on the order (bank transfer, cash) both create the invoice. Auto-sync is turned on when you first connect; switch it off to stop new invoices.
  • Zoho Books: on your Zoho MCP server, enable list_contacts, create_contact, create_invoice, list_invoices (needed so an order is never invoiced twice) and mark_invoice_sent, plus list_currencies for orders in other currencies. A customer already billed in another currency gets a second contact named "Name (EUR)".
  • QuickBooks Online is live: real QuickBooks companies can connect. Only if the QuickBooks card shows a Sandbox badge is the platform in Intuit's test environment, where only Intuit sandbox companies can connect.
  • Connection kept alive: OrderInChat refreshes the connection at least every 20 days, so it does not expire while you have no orders. If QuickBooks or Xero no longer accepts the authorization (expired or revoked), the card shows Reconnect needed and the button becomes Reconnect; reconnecting clears it. A temporary provider outage does not ask you to reconnect: the refresh and the invoice are retried automatically.

Problems appear under Invoice sync jobs with the accounting system's own message (for example an unknown account code). Fix the cause, then click Retry. Retry runs at once and shows the result; each job links to its order.

Need more help?

Chat with the Help assistant about OrderInChat, or open My Support Tickets while signed in (free trial included).