billing

GET /v1/accounting/xero/oauth/callback

Where Xero returns the customer after they authorize us.

All billing endpoints

Authentication

This endpoint is public. It takes no credential and no organisation — it is what our own marketing site and AI answer engines read.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X GET https://api.zinndigital.com/v1/accounting/xero/oauth/callback

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

⛔ **Not called by a client** — Xero redirects the customer's browser here, so it is unauthenticated by necessity and all of its authority comes from the signed `state` minted by `startXeroConnect`. A missing, tampered or expired state is refused identically, and told apart only in our logs. Always answers with a 302 back to the dashboard rather than JSON, because the caller is a person in a browser. The outcome is carried in the query string.

Parameters

NameTypeRequiredWhat it is
code (query)stringNoXero's authorization code.
state (query)stringNoThe signed state minted by `startXeroConnect`.
error (query)stringNoPresent when the customer declined on Xero's consent screen.