Webhook Error

This documents the webhook payload that Host Tools will POST to your configured webhook URL when something goes wrong after a request has already succeeded, and again when it is fixed.

Note: This is not an API endpoint you call.
This documents the requests that Host Tools sends TO your webhook URL.

When triggered:

  • error.raised: a problem started. document.code says what:

    • account.disconnected: a channel account's login or token stopped
      working. The host has to reconnect it.

    • account.verificationRequired: VRBO wants the host to verify the
      account, or the login is not a host account.

    • calendar.syncFailed: a channel refused a price, availability or
      minimum-nights change, for example "You can only accept long-term
      rentals (30 or more)". /api/setPrices and /api/setListing answer
      before the channel does, so this is how you learn about it.

    • listing.connectionFailed: Airbnb refused to connect the listing
      to Host Tools.

    • listing.contentSyncFailed: a channel refused a listing content
      push.

    • message.sendFailed: a scheduled message could not be sent.
      willRetry says whether Host Tools is still trying. A failure Host
      Tools is retrying (the channel was briefly down, for example) is
      only sent once it has kept failing for about an hour, so a blip the
      next try fixes reaches you as nothing at all.

    • review.submitFailed: a scheduled review could not be left.

  • error.resolved: the problem is gone (the account reconnected, the next sync succeeded, the message was sent). Carries the same document plus resolvedAt.

The same problem repeating sends nothing new. A second error.raised for an errorID you already have open replaces its details, for example when a retrying message failure becomes permanent.

Applying the events:

Keep your open errors keyed on document.errorID. Deliveries can arrive out of order (a resolve can overtake a retried raise), so apply them by occurredAt and resolvedAt, and ignore a resolve for an errorID you never saw: problems that started before you subscribed, or before this webhook existed, resolve without a raise. After an outage, call /api/getErrors to get the current list.

OAuth clients only receive the errors their scopes cover. Treat a code you do not know as a generic error.

Handling the webhook:

  1. Your endpoint should respond with HTTP 200 status
  2. Process the data asynchronously if needed
  3. Respond within 30 seconds
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Webhook payload sent by Host Tools

string
enum
required
Allowed:
string
enum
required
Allowed:
document
object
required

One problem Host Tools is reporting for the user. Sent as the document of an error webhook and returned by /api/getErrors.

Response

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json