Stria and Xero

Invoices and payments pushed to your ledger, and reconciliation read back.

Plans: Paid plans. See plans and pricing

Stria issues invoices and collects payment; Xero is where your accountant works. This connection

keeps the two agreeing without re-typing anything, in both directions.

How the sync works

One worker, one queue, both directions.

Push. An invoice or payment raised in Stria is queued and pushed to your ledger. Pushes are

claimed in small batches so a slow batch cannot hold locks, and retry backoff, jitter and the

dead-or-skipped decision are all decided server-side rather than by the worker.

Pull. After pushing, the same run polls for reconciliation and reads the result back. Pushing

first is deliberate: an invoice created this tick is already in your ledger when the poll reads it,

so it comes back as agreement rather than as a false divergence against your own unsent work.

The pull uses conditional requests, so a poll that finds nothing costs one cheap call rather than

walking pages.

Why the batches are small

Your ledger provider, not Stria, sets the call budget — for Xero it is 60 calls a minute and 5,000 a

day per connected organisation. Stria pushes at most ten per batch and five batches per

invocation, a ceiling of fifty pushes per run, which at a ten-minute schedule is around 300 an hour.

That is far above any freelancer's invoice volume and comfortably inside a tenant's minute budget

even when every push belongs to the same organisation.

One ledger at a time

A workspace connects one accounting provider, not both. Sync state, cursors and the push queue are

shared infrastructure with the provider resolved beneath them, so connecting a second would be

ambiguous about which ledger is authoritative.

What you will see when it breaks

Every run writes a heartbeat, including an idle one — because a stopped sync looks identical from

inside Stria. Every invoice is still present and still correct here; the gap only becomes visible in

your accountant's ledger. The heartbeat is what turns that into an alarm instead of a discovery.

Where a pushed total does not match what the ledger recorded, the divergence is reported with the

figures rather than silently reconciled.

Setting it up

  1. In Settings → Integrations, connect Xero and choose the organisation to sync.
  2. Confirm the account mapping.
  3. Leave it. The sync runs on a schedule; there is no button to press per invoice.

Access tokens are encrypted at rest and rotated automatically when they expire.

See also Stripe for how the money is collected in the first place, and

where the money went for the reporting side.

Other connections

  • Stria and Slack — Scope checks on the channels you nominate — and a consent screen with four scopes on it.
  • Stria and Stripe — Your Stripe account, your money, your merchant relationship — Stria issues the invoice.
  • Stria and QuickBooks Online — Invoices and payments pushed to your ledger, and reconciliation read back.
  • Stria and Asana or Linear — Push an approved item to the tracker your team already works in. One way, one item at a time.
  • Webhooks and the API — Signed HTTPS events when work is approved or money moves, plus token-authenticated endpoints.

Start your 14-day trial · See plans and pricing · Partner API reference