Appearance
Channel managers
Scaffold — coming soon
Channel-manager support is a design-only scaffold today. The GraphQL shapes below are fixed so the protocol is stable, but the resolvers are stubs: calling them returns a userErrors entry like "… is not implemented yet." Build against the shapes now; wiring lands with the channel-manager release.
A channel-manager app pushes reservations and availability from external OTAs (Airbnb / VRBO / Booking.com aggregators) into Stayblox. Like payment apps, it authenticates with a per-install bearer token and speaks the Developer GraphQL API.
Booking.com does not register new partners directly, so these apps front third-party aggregators — the platform only ever sees this protocol.
Operations
Both mutations live in the same dated schema as payments and are documented in full in the GraphQL reference:
reservationCreate(input: ReservationInput!)— create/update a reservation that originated on an external channel.availabilityUpdate(input: AvailabilityInput!)— push availability changes for a unit from an external channel.
Example (shape preview)
graphql
mutation CreateReservation($input: ReservationInput!) {
reservationCreate(input: $input) {
reservation { id externalId channel status }
userErrors { field message }
}
}json
{
"input": {
"externalId": "HMABCD1234",
"channel": "airbnb",
"checkIn": "2026-07-01",
"checkOut": "2026-07-05",
"unitId": "84",
"guestName": "Jordan Lee",
"guestEmail": "[email protected]",
"totalAmount": 640.0,
"currency": "USD"
}
}Until the resolvers are implemented this returns:
json
{ "data": { "reservationCreate": { "reservation": null,
"userErrors": [{ "field": ["input"], "message": "Channel reservation ingestion is not implemented yet." }] } } }Check back, or watch the GraphQL reference for the input/return field shapes as they firm up.