Looking for SegmentStream Marketing Analytics? It moved to measure.segmentstream.com →
Built in

Xero

Xero through a custom connection, Xero's server-to-server access. A custom connection belongs to one organisation, so declare one key per organisation.

Moving off Xero? We move you over with your history, and run both side by side until every team has switched.

Xero alternative →
Inside SegmentStream

Connected once, used everywhere.

Connections are declared in your repository and authorised in the console. The credentials stay with the platform; apps, pipelines, workflows and the agent use them under the same roles.

segmentstream.com
The console's connections page: Resend, Xero, Stripe, Supabase, LinkedIn and Telegram connections, each connected, with the key it is declared under in code
Connections declared in code and authorised here. The credentials stay with the platform, never in the repository.

What the connection reaches

  • The Accounting API: invoices, contacts, payments and accounts
  • Xero's other APIs under api.xero.com
  • Tokens renewed every 30 minutes by the platform
Status
Built into the pipeline SDK
Connection class
XeroConnection
Credential
Client ID and client secret of a Xero custom connection
In use
In use at SegmentStream HQ, our own workspace.

Connect Xero

Three steps, the same for every connection. The credential goes to the platform, never into the repository or pipeline code.

  1. 1

    Declare it in connections/connections.py

    connections/connections.py
    from segmentstream.connections import XeroConnection connections = (    XeroConnection(key="xero"),)
  2. 2

    Deploy

    $ segmentstream deploy
  3. 3

    Connect

    Paste the client ID and client secret (developer.xero.com > My Apps) into the connection in the console, or configure it from the terminal with a hidden prompt. API-key connections need no authorisation step: once the value is set, the connection is connected.

    $ segmentstream connection configure xero

Use it

Code asks for the connection by its key. The platform adds the credential on the way out.

pipeline/ingestion/…
import segmentstream as s with s.get_connection("xero").get_http_client() as client:    response = client.get("/Invoices", headers={"Accept": "application/json"})    response.raise_for_status()

Or ask your agent

“Connect our Xero organisation and load authorised invoices.”

Part of these solutions

More in Finance & billing

Enterprise pilot

Want Xero set up for you?

Our forward-deployed engineers build one solution on your data, in your own workspace, as code you own. Tell us what you run today and what you want; your note goes straight to our founder.

  • One solution, on your data, in your own workspace
  • First version live in two weeks
  • Parity proven before anything is switched off
  • Fixed scope and price, credited to your contract if you continue

Not ready for a pilot? Send the form anyway with your question. An engineer will reply, not a sales rep.

How the pilot works

Goes to our founder’s inbox. No sales queue, no newsletter.

Connect what your company runs.

Start a pilot

Our engineers build the first version on your data in two weeks, at a fixed price.

Or build it yourself with your coding agent:

curl -fsSL https://segmentstream.com/install.sh | sh

We’ll email you product updates, tips and onboarding help. Unsubscribe anytime.