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.codesays 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.
willRetrysays 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 samedocumentplusresolvedAt.
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:
- Your endpoint should respond with HTTP 200 status
- Process the data asynchronously if needed
- Respond within 30 seconds
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||