Xero: setting up webhooks (and why events aren't arriving)
Xero sends native webhooks, but unlike most connectors, you register them yourself in your own Xero app. Apideck can't do this for you: Xero webhooks are configured in the Xero Developer Portal, on the app your consumers authorize. If no one has done the setup below, no Xero events will arrive.
What you need
Your own Xero app. Webhooks need your own app in the Xero Developer Portal, configured as the Xero OAuth app in Apideck. Apideck's shared test credentials can't be used for webhooks.
A webhook subscription in Apideck for the accounting events you want.
Set it up
In Apideck, open the Xero connector settings and copy the Webhook Execute URL.
In the Xero Developer Portal, open My Apps, choose your app and go to Webhooks. Paste the URL and save. Xero then shows a Webhook key.
Back in Apideck, paste that key into the connector's signature key field and save the settings.
In Xero, click Send "Intent to receive". Apideck answers Xero's validation automatically once the key is saved. If Xero says "Intent to receive required", the key in Apideck is missing or doesn't match.
Create a webhook subscription in Apideck for your delivery URL, with the events below.
For screenshots and full details, see the Xero configuration guide.
Supported events
Event | Sent when |
|---|---|
| An invoice is created |
| An invoice is updated |
| A bill is created |
| A bill is updated |
Xero also offers contact and credit note webhooks, but these aren't forwarded as unified events today.
Events still not arriving?
One connection per Xero organisation. Events are matched to a connection by its Xero organisation. If a consumer authorized several organisations in one connection, events can't be matched. Create a separate connection for each organisation. See Xero: Authorising multiple organizations.
The test notification only checks your endpoint. Receiving Apideck's "Validating delivery URL" message doesn't mean Xero is set up.
Your endpoint must respond with a 2xx within 60 seconds. See Are webhooks retried when they cannot be delivered?
Contact Apideck support through the Customer Portal (the Requests link at the top of this help center), your Slack channel with us, or support@apideck.com if you're still stuck.
