CenResService

<back to all web services

HotelRate

The following routes are available for this service:
POST/hotelrate/{SubscriptionId}/{CendynPropertyId}
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Response:
    status_code: Optional[str] = None
    record_count: Optional[int] = None
    error_count: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RateType:
    hotel_code: Optional[str] = None
    rate_code: Optional[str] = None
    rate_category: Optional[str] = None
    rate_name: Optional[str] = None
    start_date: Optional[datetime.datetime] = None
    end_date: Optional[datetime.datetime] = None
    rate_status: Optional[str] = None
    base_rate_code: Optional[str] = None
    market_code: Optional[str] = None
    confidential: Optional[bool] = None
    meals_included: Optional[bool] = None
    tax_included_indicator: Optional[str] = None
    rate_category_description: Optional[str] = None
    display_text: Optional[str] = None
    short_description: Optional[str] = None
    long_description: Optional[str] = None
    min_l_o_s: Optional[int] = None
    source_name: Optional[str] = None
    source_i_d: Optional[str] = None
    rate_adjust_direction: Optional[str] = None
    rate_adjust_amount: Optional[Decimal] = None
    rate_adjust_percent: Optional[Decimal] = None
    currency_code: Optional[str] = None
    is_daily: Optional[bool] = None
    is_active: Optional[bool] = None
    inactive_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RateChargeDetail:
    charge_code: Optional[str] = None
    is_base_rate: Optional[bool] = None
    rate_before_tax: Optional[Decimal] = None
    rate_after_tax: Optional[Decimal] = None
    unit_count: Optional[int] = None
    tax_amount: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RateGuestCountDetail:
    guest_count: Optional[int] = None
    min_rate: Optional[Decimal] = None
    max_rate: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Rate:
    hotel_code: Optional[str] = None
    rate_code: Optional[str] = None
    room_code: Optional[str] = None
    start_date: Optional[datetime.datetime] = None
    end_date: Optional[datetime.datetime] = None
    rate1: Optional[Decimal] = None
    rate2: Optional[Decimal] = None
    rate3: Optional[Decimal] = None
    rate4: Optional[Decimal] = None
    extra_adult: Optional[Decimal] = None
    extra_child: Optional[Decimal] = None
    extra_bed: Optional[Decimal] = None
    currency_code: Optional[str] = None
    free_child_limit: Optional[int] = None
    include_monday: Optional[bool] = None
    include_tuesday: Optional[bool] = None
    include_wednesday: Optional[bool] = None
    include_thursday: Optional[bool] = None
    include_friday: Optional[bool] = None
    include_saturday: Optional[bool] = None
    include_sunday: Optional[bool] = None
    customer_segment: Optional[str] = None
    source_name: Optional[str] = None
    source_i_d: Optional[str] = None
    is_active: Optional[bool] = None
    inactive_date: Optional[datetime.datetime] = None
    rate_set_i_d: Optional[str] = None
    rate_charge_details: Optional[List[RateChargeDetail]] = None
    rate_guest_count_details: Optional[List[RateGuestCountDetail]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RateContainer:
    echo_token: Optional[str] = None
    rate_type: Optional[RateType] = None
    change_action: Optional[str] = None
    rates: Optional[List[Rate]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HotelRate:
    rate_container: Optional[RateContainer] = None
    subscription_id: Optional[str] = None
    cendyn_property_id: Optional[str] = None

Python HotelRate DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /hotelrate/{SubscriptionId}/{CendynPropertyId} HTTP/1.1 
Host: cert.cendyn.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"rateContainer":{"echoToken":"String","rateType":{"hotelCode":"String","rateCode":"String","rateCategory":"String","rateName":"String","startDate":"0001-01-01T00:00:00.0000000","endDate":"0001-01-01T00:00:00.0000000","rateStatus":"String","baseRateCode":"String","marketCode":"String","confidential":false,"mealsIncluded":false,"taxIncludedIndicator":"String","rateCategoryDescription":"String","displayText":"String","shortDescription":"String","longDescription":"String","minLOS":0,"sourceName":"String","sourceID":"String","rateAdjustDirection":"String","rateAdjustAmount":0,"rateAdjustPercent":0,"currencyCode":"String","isDaily":false,"isActive":false,"inactiveDate":"0001-01-01T00:00:00.0000000"},"changeAction":"String","rates":[{"hotelCode":"String","rateCode":"String","roomCode":"String","startDate":"0001-01-01T00:00:00.0000000","endDate":"0001-01-01T00:00:00.0000000","rate1":0,"rate2":0,"rate3":0,"rate4":0,"extraAdult":0,"extraChild":0,"extraBed":0,"currencyCode":"String","freeChildLimit":0,"includeMonday":false,"includeTuesday":false,"includeWednesday":false,"includeThursday":false,"includeFriday":false,"includeSaturday":false,"includeSunday":false,"customerSegment":"String","sourceName":"String","sourceID":"String","isActive":false,"inactiveDate":"0001-01-01T00:00:00.0000000","rateSetID":"String","rateChargeDetails":[{"chargeCode":"String","isBaseRate":false,"rateBeforeTax":0,"rateAfterTax":0,"unitCount":0,"taxAmount":0}],"rateGuestCountDetails":[{"guestCount":0,"minRate":0,"maxRate":0}]}]},"subscriptionId":"String","cendynPropertyId":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"statusCode":"String","recordCount":0,"errorCount":0}