CenResService

<back to all web services

StayHistoryPost

The following routes are available for this service:
POST/stayhistory/{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 UniqueIDType:
    id: Optional[str] = None
    type: Optional[str] = None
    context: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StayHistoryRevenue:
    record_status: Optional[str] = None
    revenue_group: Optional[str] = None
    revenue_type: Optional[str] = None
    amount: Optional[Decimal] = None
    currency_code: Optional[str] = None
    folio_window: Optional[str] = None
    transaction_date: Optional[datetime.datetime] = None
    inactive_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StayHistoryDailyRate:
    record_status: Optional[str] = None
    transaction_date: Optional[datetime.datetime] = None
    rate_code: Optional[str] = None
    market_code: Optional[str] = None
    amount: Optional[Decimal] = None
    currency_code: Optional[str] = None
    room_number: Optional[str] = None
    resource_i_d: Optional[str] = None
    pseudo_room: Optional[str] = None
    room_category: Optional[str] = None
    rate_room_type: Optional[str] = None
    inactive_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StayHistory:
    cendyn_property_i_d: Optional[str] = None
    resort_i_d: Optional[str] = None
    external_profile_i_d1: Optional[str] = None
    external_res_id1: Optional[str] = None
    crs_book_no: Optional[str] = None
    resort_book_no: Optional[str] = None
    resort_leg_no: Optional[int] = None
    confirmation_i_d: Optional[str] = None
    reservation_status: Optional[str] = None
    has_daily_rooms: Optional[bool] = None
    rate_room_type: Optional[str] = None
    actual_arrival_date: Optional[datetime.datetime] = None
    actual_departure_date: Optional[datetime.datetime] = None
    book_date: Optional[datetime.datetime] = None
    booked_arrival_date: Optional[datetime.datetime] = None
    booked_departure_date: Optional[datetime.datetime] = None
    comp_y_n: Optional[str] = None
    adults: Optional[int] = None
    children: Optional[int] = None
    room_category: Optional[str] = None
    room_number: Optional[str] = None
    rate_amount: Optional[Decimal] = None
    rate_code: Optional[str] = None
    rate_amount_currency_code: Optional[str] = None
    currency_code: Optional[str] = None
    source_code: Optional[str] = None
    market_code: Optional[str] = None
    travel_agent_i_d: Optional[str] = None
    company_i_d: Optional[str] = None
    channel: Optional[str] = None
    payment_method: Optional[str] = None
    rate_currency_code: Optional[str] = None
    total_revenue: Optional[Decimal] = None
    room_revenue: Optional[Decimal] = None
    fb_revenue: Optional[Decimal] = None
    membership_type: Optional[str] = None
    membership_i_d: Optional[str] = None
    transaction_i_d: Optional[str] = None
    transaction_status: Optional[str] = None
    unique_i_ds: Optional[List[UniqueIDType]] = None
    stay_history_revenue_collection: Optional[List[StayHistoryRevenue]] = None
    stay_history_daily_rate_collection: Optional[List[StayHistoryDailyRate]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StayHistoryContainer:
    echo_token: Optional[str] = None
    stay_history_list: Optional[List[StayHistory]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StayHistoryPost:
    stay_history_container: Optional[StayHistoryContainer] = None
    subscription_id: Optional[str] = None
    cendyn_property_id: Optional[str] = None

Python StayHistoryPost DTOs

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

HTTP + XML

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

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

<StayHistoryPost xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CenResSS.ServiceModel">
  <CendynPropertyId>String</CendynPropertyId>
  <StayHistoryContainer>
    <EchoToken>String</EchoToken>
    <StayHistoryList>
      <StayHistory>
        <ActualArrivalDate>0001-01-01T00:00:00</ActualArrivalDate>
        <ActualDepartureDate>0001-01-01T00:00:00</ActualDepartureDate>
        <Adults>0</Adults>
        <BookDate>0001-01-01T00:00:00</BookDate>
        <BookedArrivalDate>0001-01-01T00:00:00</BookedArrivalDate>
        <BookedDepartureDate>0001-01-01T00:00:00</BookedDepartureDate>
        <CRSBookNo>String</CRSBookNo>
        <CendynPropertyID>String</CendynPropertyID>
        <Channel>String</Channel>
        <Children>0</Children>
        <CompYN>String</CompYN>
        <CompanyID>String</CompanyID>
        <ConfirmationID>String</ConfirmationID>
        <CurrencyCode>String</CurrencyCode>
        <ExternalProfileID1>String</ExternalProfileID1>
        <ExternalResId1>String</ExternalResId1>
        <FbRevenue>0</FbRevenue>
        <HasDailyRooms>false</HasDailyRooms>
        <MarketCode>String</MarketCode>
        <MembershipID>String</MembershipID>
        <MembershipType>String</MembershipType>
        <PaymentMethod>String</PaymentMethod>
        <RateAmount>0</RateAmount>
        <RateAmountCurrencyCode>String</RateAmountCurrencyCode>
        <RateCode>String</RateCode>
        <RateCurrencyCode>String</RateCurrencyCode>
        <RateRoomType>String</RateRoomType>
        <ReservationStatus>String</ReservationStatus>
        <ResortBookNo>String</ResortBookNo>
        <ResortID>String</ResortID>
        <ResortLegNo>0</ResortLegNo>
        <RoomCategory>String</RoomCategory>
        <RoomNumber>String</RoomNumber>
        <RoomRevenue>0</RoomRevenue>
        <SourceCode>String</SourceCode>
        <StayHistoryDailyRateCollection>
          <StayHistoryDailyRate>
            <Amount>0</Amount>
            <CurrencyCode>String</CurrencyCode>
            <InactiveDate>0001-01-01T00:00:00</InactiveDate>
            <MarketCode>String</MarketCode>
            <PseudoRoom>String</PseudoRoom>
            <RateCode>String</RateCode>
            <RateRoomType>String</RateRoomType>
            <RecordStatus>String</RecordStatus>
            <ResourceID>String</ResourceID>
            <RoomCategory>String</RoomCategory>
            <RoomNumber>String</RoomNumber>
            <TransactionDate>0001-01-01T00:00:00</TransactionDate>
          </StayHistoryDailyRate>
        </StayHistoryDailyRateCollection>
        <StayHistoryRevenueCollection>
          <StayHistoryRevenue>
            <Amount>0</Amount>
            <CurrencyCode>String</CurrencyCode>
            <FolioWindow>String</FolioWindow>
            <InactiveDate>0001-01-01T00:00:00</InactiveDate>
            <RecordStatus>String</RecordStatus>
            <RevenueGroup>String</RevenueGroup>
            <RevenueType>String</RevenueType>
            <TransactionDate>0001-01-01T00:00:00</TransactionDate>
          </StayHistoryRevenue>
        </StayHistoryRevenueCollection>
        <TotalRevenue>0</TotalRevenue>
        <TransactionID>String</TransactionID>
        <TransactionStatus>String</TransactionStatus>
        <TravelAgentID>String</TravelAgentID>
        <UniqueIDs>
          <UniqueIDType>
            <Context>String</Context>
            <ID>String</ID>
            <Type>String</Type>
          </UniqueIDType>
        </UniqueIDs>
      </StayHistory>
    </StayHistoryList>
  </StayHistoryContainer>
  <SubscriptionId>String</SubscriptionId>
</StayHistoryPost>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CenResSS.ServiceModel">
  <ErrorCount>0</ErrorCount>
  <RecordCount>0</RecordCount>
  <StatusCode>String</StatusCode>
</Response>