Aiosell to Staydeed (Webhooks)

Rate POST

Aiosell POSTs updated room rates to Staydeed for room types, rate plans, and dates.

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

This endpoint is hosted by Staydeed. Rates are sent at (room, rateplan, date-range) grain.

The SAME endpoint also receives Rate Restrictions - there is no separate restrictions URL. See the Rate Restrictions page.

Dates use YYYY-MM-DD. Every request needs HTTP Basic Auth. Send Staydeed the hotelCode you were given at onboarding.

Headers

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

Request body

FieldTypeRequiredDescription
hotelCodestringYesProperty identifier.
updatesarray<Update>YesRate update blocks (at least one).
updates[].startDatestring (YYYY-MM-DD)YesInclusive start date.
updates[].endDatestring (YYYY-MM-DD)YesInclusive end date; on or after startDate.
updates[].ratesarray<Rate>YesPer (room, rateplan) rate entries.
updates[].rates[].roomCodestringYesRoom type identifier.
updates[].rates[].rateplanCodestringYesRate plan identifier.
updates[].rates[].ratenumberYesNightly rate in property currency (min 0). Optional only when restrictions is sent.

Sample payload

{
  "hotelCode": "sandbox-pms",
  "updates": [
    {
      "startDate": "2026-11-10",
      "endDate": "2026-11-12",
      "rates": [
        {
          "roomCode": "executive",
          "rateplanCode": "executive-d-ep",
          "rate": 1849
        },
        {
          "roomCode": "suite",
          "rateplanCode": "suite-d-cp",
          "rate": 2799
        }
      ]
    }
  ]
}

Responses

200Success

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

200Success

{
  "success": true,
  "message": "Rates Updated Successfully",
  "warnings": [
    "UNMAPPED_RATE_PLAN : suite / suite-d-xx"
  ]
}

200Nothing could be applied

{
  "success": false,
  "message": "No rates applied",
  "warnings": [
    "UNMAPPED_RATE_PLAN : suite / suite-d-xx"
  ]
}

404Unknown or disabled hotelCode

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

401Missing or invalid Basic Auth credentials

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