Graften Docsgraften.io
Docs / Integration Guides / Xero (quotes & invoicing)

Xero (quotes & invoicing)

Integration guide

Setup

  1. Go to Integrations → Xero and click Connect.
  2. You'll be redirected to Xero's own login/consent screen (login.xero.com/identity/connect/authorize) to authorise Graften.
  3. After approving, you're redirected back and the connection is marked active.

What it does today

The full connection flow is real: the OAuth connect step, the token exchange, and Xero's connections call to fetch your organisation (tenant) ID all genuinely talk to Xero's servers, and tokens are refreshed automatically when they expire.

Once connected, an approved Service Desk quote can be pushed to Xero via POST /api/v1/sd/quotes/{id}/xero. This finds (or creates) the client as a Xero Contact, then creates a real DRAFT invoice in your Xero account with the quote's actual line items — Graften never sends or approves an invoice on your behalf; you always review and finalise it inside Xero yourself. Contacts can also be pulled the other way via Integrations → Xero → Sync Contacts (POST /api/v1/xero/sync/contacts).

Line items and accounts

Every draft invoice line currently posts against Xero account code 200 (Xero's default Sales account on a standard chart of accounts). If your chart of accounts differs, or you want quotes to land against a specific account, recode the line items inside Xero after the draft is created — before approving it.

Open in the interactive docs