Xero Webhooks
Version 1.0.0
AsyncAPI 2.6 description of Xero's outbound webhook surface for the INVOICE and CONTACT event categories. Xero delivers event notifications by issuing HTTP POST requests with a JSON body to a single subscriber URL configured per application in the Xero developer portal. Each delivery carries one batch payload (`WebhookEvent`) containing one or more `events`. Every event declares the `eventCategory` (`INVOICE` or `CONTACT`) and the `eventType` (`CREATE` or `UPDATE`). Xero does not push the changed resource itself; the subscriber dereferences `resourceUrl` / `resourceId` against the Xero Accounting API to fetch the current state of the resource for the identified `tenantId`. Source documentation: - Webhooks overview: https://developer.xero.com/documentation/guides/webhooks/overview/ - Webhooks OpenAPI (canonical schema source): https://github.com/XeroAPI/Xero-OpenAPI/blob/master/xero-webhooks.yaml Security and signing: Every webhook POST is signed by Xero. The `x-xero-signature` HTTP request header carries a Base64-encoded HMAC-SHA256 of the raw, unmodified JSON request body, computed with the application's webhook signing key (configured in the Xero developer portal) as the secret. Subscribers MUST recompute the HMAC over the raw bytes of the body and compare it against the header using a constant-time comparison. On mismatch the subscriber MUST respond `401 Unauthorized`; on match it MUST respond `200 OK`. The same signed request shape is used during the initial "intent to receive" verification handshake.
Channels
Messages
Servers
{webhookUrl}
AsyncAPI Specification
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/asyncapis/xero-webhooks-asyncapi"
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.