The Xero Accounting API carries 140 operations on a single base URL — https://api.xero.com/api.xro/2.0. Its catalog entry lists fourteen properties, ten of which are Documentation, alongside OpenAPI, AsyncAPI, GraphQL, and APIs.json.
140 operations in one API is a design choice, and it is the opposite of the one Adyen made.
One API or many
Adyen, profiled this week, splits 202 APIs across Checkout, Payments, Payouts, Disputes, and eighteen more named boundaries. Xero puts the entire accounting domain — invoices, contacts, accounts, bank transactions, journals, tax rates, tracking categories, payments, credit notes, purchase orders — behind one API with 140 operations.
Neither is wrong. They reflect different consumers.
Adyen’s consumers integrate one capability: a marketplace wires up Legal Entity Management and never touches Terminal. Splitting the surface lets each consumer ignore the rest.
Xero’s consumer is an accounting integration, and accounting does not decompose. You cannot sync invoices without contacts, or reconcile bank transactions without accounts and tax rates. The domain is one connected graph, so the API is one surface.
What the ten Documentation properties mean
The property spread on this entry is documentation-heavy rather than artifact-heavy — ten Documentation entries against a single OpenAPI. For a 140-operation surface, that is a lot of prose carrying a lot of the load.
Accounting is where that is most defensible. The hard part of the Xero integration is not the HTTP; it is knowing that a credit note behaves differently from a negative invoice, or which fields are immutable once a transaction is reconciled. Those are semantics a schema will not tell you, and Xero has clearly invested in explaining them.
But it is still the gap worth naming. Ten documentation links mean ten pages a developer reads and an agent mostly cannot. The AsyncAPI presence is welcome — accounting systems are event-heavy, and knowing what fires when an invoice is approved matters — though for a surface this size, more of the semantics could live in machine-readable form.
Takeaway
140 operations, one base URL, one connected domain. Xero’s monolithic accounting surface is the right shape for a graph that genuinely does not decompose — but at that size, the documentation-to-specification ratio becomes the constraint on who can integrate quickly.
See it at developer.xero.com, and the catalog entry under apis.io/providers/xero/.