Aiosell to Staydeed (Webhooks)

Rate Restrictions POST

Aiosell POSTs rate-plan-level restrictions (stop-sell, min/max stay, advance booking windows, etc.) to Staydeed.

POSThttps://staydeed.com/api/ota/rates

Sent to the SAME endpoint as Rate POST - you do not build a separate endpoint. The payload adds a restrictions object to each rate entry.

Same restriction fields as inventory restrictions, but scoped to a (room, rateplan).

Restriction fields you omit keep their stored value. A field sent as null clears it (booleans reset to false).

Headers

NameRequiredExample
Content-TypeYesapplication/json
AuthorizationYesBasic <base64(user:pass)>

Request body

FieldTypeRequiredDescription
hotelCodestringYesProperty identifier.
updatesarray<Update>YesRestriction update blocks.
updates[].startDatestring (YYYY-MM-DD)YesInclusive start date.
updates[].endDatestring (YYYY-MM-DD)YesInclusive end date.
updates[].ratesarray<Rate>YesPer (room, rateplan) restriction entries.
updates[].rates[].roomCodestringYesRoom type identifier.
updates[].rates[].rateplanCodestringYesRate plan identifier.
updates[].rates[].ratenumberNoNightly rate; may accompany restrictions.
updates[].rates[].restrictionsobjectYesRestriction object (see fields below).
restrictions.stopSellbooleanNoDisable all bookings for this date.
restrictions.minimumStayintegerNoMinimum nights required (0 - 65535).
restrictions.maximumStayinteger | nullNoMaximum nights allowed (0 - 65535).
restrictions.closeOnArrivalbooleanNoBlock check-ins on this date.
restrictions.closeOnDeparturebooleanNoBlock check-outs on this date.
restrictions.minimumStayArrivalinteger | nullNoMinimum stay if arriving on this date.
restrictions.maximumStayArrivalinteger | nullNoMaximum stay if arriving on this date.
restrictions.exactStayArrivalinteger | nullNoExact stay length if arriving on this date.
restrictions.minimumAdvanceReservationinteger | nullNoMin days ahead a booking can be made.
restrictions.maximumAdvanceReservationinteger | nullNoMax days ahead a booking can be made.

Sample payload

{
  "hotelCode": "sandbox-pms",
  "updates": [
    {
      "startDate": "2026-11-10",
      "endDate": "2026-11-12",
      "rates": [
        {
          "roomCode": "executive",
          "rateplanCode": "executive-d-ep",
          "restrictions": {
            "stopSell": false,
            "minimumStay": 2,
            "maximumStay": null,
            "closeOnArrival": false,
            "closeOnDeparture": false,
            "minimumStayArrival": null,
            "maximumStayArrival": null,
            "exactStayArrival": null,
            "minimumAdvanceReservation": null,
            "maximumAdvanceReservation": null
          }
        }
      ]
    }
  ]
}

Responses

200Success

{
  "success": true,
  "message": "Rates Updated Successfully",
  "nights": 3
}

404Unknown or disabled hotelCode

{
  "success": false,
  "message": "Unknown hotelCode"
}

401Missing or invalid Basic Auth credentials

{
  "success": false,
  "message": "Unauthorized"
}