channel_not_supported

Pre-approvals, special offers and accepting or declining requests exist only for Airbnb listings connected directly. Nothing was sent.

HTTP 422The request was understood but refused as sent. Change it before retrying.

When it fires

You asked Repull to pre-approve, send a special offer, or accept or decline a booking request on a conversation or reservation where that step does not exist. It comes from POST /v1/conversations/{id}/pre-approval, /special-offers (and reading or withdrawing an offer), and POST /v1/reservations/{id}/accept and /decline.

  • Another channel. Booking.com, VRBO and direct bookings confirm instantly or have no request step, so there is nothing to approve. channel says which.
  • Airbnb through a property management system. When the listing reaches Airbnb through a PMS such as Hostaway or Guesty, that system owns the Airbnb connection, and the answer has to be given there. channel is airbnb and pms names the system.

Nothing was sent.

Response shape

Every Repull error follows the same envelope. The code is stable and safe to switch on.

{
  "error": {
    "code": "channel_not_supported",
    "message": "Reservation 233530 reaches Airbnb through guesty, not a direct Airbnb connection. Accept it in guesty.",
    "fix": "Pre-approvals, special offers and accepting/declining requests exist only on Airbnb, and only for listings connected to Airbnb directly (not through a PMS such as Hostaway or Guesty).",
    "docs_url": "https://repull.dev/docs/channels/airbnb/inquiries-and-requests",
    "request_id": "req_01J5X7Y8Z9ABCDEF12345678",
    "channel": "airbnb",
    "pms": "guesty"
  }
}

How to fix

  1. Read `channel` and `pms` in the error.
  2. If `channel` is not `airbnb`, there is no request to answer: the booking is already confirmed, or the channel has no inquiry step. Message the guest instead if you need to.
  3. If `pms` is set, act on the inquiry or request inside that system.
  4. To act from Repull, connect the Airbnb account directly (`POST /v1/connect/airbnb`).

Common gotchas

  • GET /v1/inquiries marks relayed inquiries with relayedBy. Skip those rows and you never hit this error for an inquiry.
  • See which channels support this.

Examples

curl

curl -X POST https://api.repull.dev/v1/reservations/233530/accept \
  -H "Authorization: Bearer sk_live_YOUR_KEY"
# → 422 channel_not_supported (a Booking.com booking, or Airbnb through a PMS)

TypeScript

// Only answer inquiries Repull can act on
const res = await fetch('https://api.repull.dev/v1/inquiries', {
  headers: { Authorization: `Bearer ${process.env.REPULL_API_KEY}` },
})
const { data } = await res.json()
const actionable = data.filter((i: any) => i.channel === 'airbnb' && !i.relayedBy)

If you're an AI agent

Pre-approvals, special offers and accept/decline exist only for Airbnb listings connected directly. Nothing was sent. If `pms` is set, act in that PMS; if the channel is not Airbnb, there is no request step. Do not retry.

Hit an error that isn't covered? Email hello@repull.dev with the request id from the response headers.

AI