Skip to main content
The Xero Accounting API a bookkeeping integration actually posts to, over OAuth 2.0 with a tenant. The conformance suite runs xero-python — Xero’s own client, generated from their OpenAPI document — against the container, so what the twin answers has to survive the SDK’s own deserialisation of Xero’s /Date(...)/ encoding and its decimal amounts. Slug: xero

What it models

Advancing the sandbox approves a submitted invoice. Being overdue is not a status: it is derived from the due date, which the age_invoice directive can push into the past.

Scenarios

overdue-receivables, rate-limited, disconnected-tenant.

Not modelled

The OAuth authorization code flow itself — the twin is handed a live token — along with webhooks, bank transactions and reconciliation, bank transfers, credit notes, prepayments and overpayments, purchase orders, quotes, manual journals, tracking categories, contact groups, attachments, branding themes, Payroll, Files, Projects and reports. Everything unmodelled answers 501 in Xero’s own validation envelope, naming what was asked for. A where clause or an order this twin cannot apply is refused the same way rather than quietly ignored.