Xero Webhooks: Response body must be removed

New user here. I am trying to create a scenario that uses a Webhook called from Xero. I am following the “Creating a webhook” and the “Configuring your server” instructions on the Xero developer site

I have followed the workaround instructions on the Integromat community, which seems to work except for the final hurdle. When I click the “Intent to receive” button in Xero the correct response code (200 or 401) is sent, but Xero always returns a “Response contained a body” error, even though the response body returned by my Make scenario is empty.

Is there any way to return no body, not even an empty one? This seems to be a blocker on any use of Xero webhooks (and yes, I know Xero is being stupid here, but in my experience there is negligible chance of their developers making a change)

Hey @RobRoy,

Great to see your question here in the community! :slight_smile:

I just wanted to clarify that this is a community of Make users helping out and sharing knowledge. This means we don’t have access to any of your scenarios, organizations etc.
It’s therefore always best to share some screenshots so that the community can see what’s going on in your scenarios visually.

Detailed information could be provided for example by an:

  1. overview of your scenario setup (functions, mappings, variables etc.)
  2. the input area of the module you are having trouble with
  3. the output area of the module you are getting data from

Thank you!

In case you think this is not needed, please disregard this message. I have send this message by automation since you don’t have any attachments.

Point taken, but in this case all the details of what I’ve done are in the links.

1 Like

Hey @RobRoy ,

A screenshot of your setup on the webhook response would still be helpful, have you filled in the exact same details as in the workaround?

I am not sure what Xero expects, but what if you add brackets without any data?

Yes, filled in the exact same details as the workaround.

I tried adding brackets without any data (i.e. ‘{}’ in the Body field, but either way the error in Xero is still

The problem is that there is a body of any kind included with the response - Xero will not proceed unless there is NO body. See point 3 of the Xero “Configuring your Server” page

Configuring your server

Once you’ve created the webhook you’ll need to set up your server to receive the HTTP POST requests at the endpoint you specified. There are just a few basic things that we expect from your endpoint

  1. It uses HTTPS on the standard 443 port
  2. It responds within 5 seconds with a 200 O.K status code
  3. There is no body in the response
  4. There are no cookies in the response headers
  5. If the signature is invalid a 401 Unauthorised status code is returned
1 Like

Hey @RobRoy ,

So I did some testing myself and it looks like its just sending back an empty body.
Not sure if Make is being buggy; so could you try to save the scenario and activate it ? Then let Xero do the verification.

Let me know.

I tested the scenario one more time in edit mode and Intent to Receive (ITR) failed again.
However, I activated the scenario and the Intent to Receive check in Xero returned OK!

1 Like