Overview

Introduction

The Genting JSON OTA API provides JSON-based endpoints for ResortsWorld Genting to manage rates and availability on Agoda. These endpoints are the JSON equivalent of the existing XML-based OTA API (OTA_HotelRateAmountNotifRQ and OTA_HotelAvailNotifRQ), offering a simpler integration path with native JSON request/response format.

Functions

RequestResponseDescription
getRateAmountgetRateAmountResponseUpdate the rates for one room type in a single hotel. The rates include room rates, occupancy-based pricing, and tax amounts.
getAvailabilityAndRestrictionsgetAvailabilityAndRestrictionsResponseUpdate the availability and restrictions for one room type in a single hotel. The restrictions include open/closed for sale (stop sell).

End Points

FunctionMethodURI
getRateAmountPOSThttps://supplyota.agoda.com/b2b/ota/v1/gentings/merchant/getRateAmount
getAvailabilityAndRestrictionsPOSThttps://supplyota.agoda.com/b2b/ota/v1/gentings/merchant/getAvailabilityAndRestrictions

Authentication

Refer to this document


Content Type

All requests and responses use JSON format.

HeaderValue
Content-Typeapplication/json
Acceptapplication/json

Common Error Responses

All endpoints share the same error response format:

{
  "message": "<error description>"
}

HTTP Status Codes

Status CodeDescriptionWhen
200 OKRequest processed successfullyValid request, hotel found, update sent
400 Bad RequestClient errorInvalid JSON, validation failure, authentication failure, hotel not found
500 Internal Server ErrorServer errorInternal service error (e.g., messaging system unavailable)

Common Error Scenarios

Authentication Failed (400):

{
  "message": "Access Denied! Please check the credentials"
}

Hotel Not Found (400):

{
  "message": "Please check the hotel and room type code"
}

Internal Server Error (500):

{
  "message": "Failed to process request due to internal service error. Please try again later."
}

General Guidelines

  • We recommend updating one hotel and one room type per request for optimal processing.
  • All field names are case-sensitive.
  • All date/time fields must use ISO 8601 format.
  • The requestID is echoed back in the success response, and can be used to track each request.