CenResService

<back to all web services

ReservationPost

The following routes are available for this service:
POST/reservation/{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 ProfileExtension:
    language_code: Optional[str] = None
    salutation_ext: Optional[str] = None
    first_name_ext: Optional[str] = None
    familiar_name_ext: Optional[str] = None
    middle_name_ext: Optional[str] = None
    last_name_ext: Optional[str] = None
    name_suffix_ext: Optional[str] = None
    company_name_ext: Optional[str] = None
    blacklist: Optional[str] = None
    black_list_message: Optional[str] = None
    anonymization_status: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Address:
    address_type_code: Optional[str] = None
    address_type_description: Optional[str] = None
    address_status: Optional[str] = None
    attn: Optional[str] = None
    address1: Optional[str] = None
    address2: Optional[str] = None
    city: Optional[str] = None
    state_province: Optional[str] = None
    postal_code: Optional[str] = None
    country_code: Optional[str] = None
    is_primary: Optional[bool] = None
    address_language: Optional[str] = None
    address_cleansed: Optional[bool] = None
    opt_out_marketing: Optional[bool] = None
    opt_out_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Membership:
    external_i_d: Optional[str] = None
    program_code: Optional[str] = None
    membership_i_d: Optional[str] = None
    membership_category: Optional[str] = None
    membership_name: Optional[str] = None
    membership_level: Optional[str] = None
    membership_status: Optional[str] = None
    enrollment_code: Optional[str] = None
    date_membership_starts: Optional[datetime.datetime] = None
    date_membership_expires: Optional[datetime.datetime] = None
    total_stays: Optional[int] = None
    award_credits: Optional[int] = None
    award_available: Optional[int] = None
    primary_airline: Optional[bool] = None
    display_sequence: Optional[int] = None
    source_name: Optional[str] = None
    source_i_d: Optional[str] = None
    is_active: Optional[bool] = None
    inactive_date: Optional[datetime.datetime] = None
    points_indicator: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ContactMethod:
    type: Optional[str] = None
    category: Optional[str] = None
    data_value: Optional[str] = None
    extra_data: Optional[str] = None
    opt_out: Optional[bool] = None
    source_date: Optional[datetime.datetime] = None
    is_primary: Optional[bool] = None
    confirmation: Optional[bool] = None
    inactive_date: Optional[datetime.datetime] = None
    opt_out_marketing: Optional[bool] = None
    opt_out_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ActionComment:
    external_i_d: Optional[str] = None
    comment_type: Optional[str] = None
    comment_title: Optional[str] = None
    comment_class: Optional[str] = None
    action_type: Optional[str] = None
    comment: Optional[str] = None
    action_date: Optional[datetime.datetime] = None
    inactive_date: Optional[datetime.datetime] = None
    guest_viewable: Optional[bool] = None
    creator_code: Optional[str] = None
    date_comment_created: Optional[datetime.datetime] = None
    resort_code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SpecialRequest:
    external_i_d: Optional[str] = None
    request_type: Optional[str] = None
    request_code: Optional[str] = None
    request_comments: Optional[str] = None
    resort_field: Optional[str] = None
    action_type_code: Optional[str] = None
    action_type: Optional[str] = None
    inactive_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UDFDataType:
    cendyn_property_i_d: Optional[str] = None
    module_name: Optional[str] = None
    table_name: Optional[str] = None
    column_name: Optional[str] = None
    udf_value: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Lead:
    f_k__reservation: Optional[str] = None
    external_lead_i_d: Optional[str] = None
    external_lead_source: Optional[str] = None
    lead_status: Optional[str] = None
    lead_acquired: Optional[datetime.datetime] = None
    tentative_start_date: Optional[datetime.datetime] = None
    tentative_end_date: Optional[datetime.datetime] = None
    assigned_agent: Optional[str] = None
    assigned_date: Optional[datetime.datetime] = None
    contact_method: Optional[str] = None
    contact_agent: Optional[str] = None
    contact_date: Optional[datetime.datetime] = None
    last_followup_method: Optional[str] = None
    last_followup_agent: Optional[str] = None
    last_followup_date: Optional[datetime.datetime] = None
    booking_method: Optional[str] = None
    booking_agent: Optional[str] = None
    booking_date: Optional[datetime.datetime] = None
    reasonfor_stay: Optional[str] = None
    market_code: Optional[str] = None
    campaign_code: Optional[str] = None
    campaign_name: Optional[str] = None
    price_estimate: Optional[Decimal] = None
    flagged_for_attention: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RelatedTraveler:
    cendyn_property_i_d: Optional[str] = None
    property_name: Optional[str] = None
    unique_i_ds: Optional[List[UniqueIDType]] = None
    salutation: Optional[str] = None
    first_name: Optional[str] = None
    familiar_name: Optional[str] = None
    middle_name: Optional[str] = None
    last_name: Optional[str] = None
    full_name: Optional[str] = None
    suffix: Optional[str] = None
    relation: Optional[str] = None
    is_primary: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Document:
    document_i_d: Optional[str] = None
    document_type: Optional[str] = None
    document_source: Optional[str] = None
    code_on_document: Optional[str] = None
    document_notes: Optional[str] = None
    name_on_document: Optional[str] = None
    nationality_on_document: Optional[str] = None
    effective_date: Optional[datetime.datetime] = None
    expiration_date: Optional[datetime.datetime] = None
    issuer: Optional[str] = None
    issuer_country: Optional[str] = None
    is_primary: Optional[bool] = None
    pi_i__stored_as: Optional[str] = None
    inactive_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Voucher:
    hotel_code: Optional[str] = None
    voucher_i_d: Optional[str] = None
    voucher_i_d2: Optional[str] = None
    applied_to_resort: Optional[str] = None
    reservation_i_d: Optional[str] = None
    profile_i_d_recipient: Optional[str] = None
    subscriber_i_d_recipient: Optional[str] = None
    recipient_name: Optional[str] = None
    emailaddress: Optional[str] = None
    profile_i_d_purchaser: Optional[str] = None
    purchaser_name: Optional[str] = None
    voucher_status: Optional[str] = None
    voucher_type: Optional[str] = None
    membership_type: Optional[str] = None
    cert_code: Optional[str] = None
    cert_no: Optional[str] = None
    short_description: Optional[str] = None
    gift_message: Optional[str] = None
    comments: Optional[str] = None
    voucher_amount: Optional[Decimal] = None
    currency_code: Optional[str] = None
    issue_type: Optional[str] = None
    date_consumed: Optional[datetime.datetime] = None
    expiration_date: Optional[datetime.datetime] = None
    award_points: Optional[int] = None
    rule_type: Optional[str] = None
    rule_value: Optional[str] = None
    cancel_allowed: Optional[bool] = None
    max_extensions: Optional[int] = None
    reference_type: Optional[str] = None
    reference_i_d: Optional[str] = None
    promotion_code: Optional[str] = None
    reservation_consumed: Optional[bool] = None
    web_consumed: Optional[bool] = None
    pms_consumed: Optional[bool] = None
    verify_cert_no: Optional[bool] = None
    generate_in_lieu: Optional[bool] = None
    creator_code: Optional[str] = None
    last_updater_code: Optional[str] = None
    folio_i_d: Optional[str] = None
    inactive_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProfilePolicy:
    policy_type: Optional[str] = None
    attribute_name: Optional[str] = None
    integer_value: Optional[int] = None
    string_value: Optional[str] = None
    effective_date: Optional[datetime.datetime] = None
    expiration_date: Optional[datetime.datetime] = None
    comments: Optional[str] = None
    external_i_d: Optional[str] = None
    applies_to: Optional[str] = None
    applies_to_descriptor: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Profile:
    cendyn_property_i_d: Optional[str] = None
    property_name: Optional[str] = None
    unique_i_ds: Optional[List[UniqueIDType]] = None
    profile_type_code: Optional[str] = None
    profile_type_description: Optional[str] = None
    name_code: Optional[str] = None
    profile_type_category: Optional[str] = None
    job_title: Optional[str] = None
    salutation: Optional[str] = None
    first_name: Optional[str] = None
    familiar_name: Optional[str] = None
    middle_name: Optional[str] = None
    last_name: Optional[str] = None
    full_name: Optional[str] = None
    name_suffix: Optional[str] = None
    vipid: Optional[str] = None
    vip_code: Optional[str] = None
    primary_language: Optional[str] = None
    gender_code: Optional[str] = None
    dob_year: Optional[str] = None
    dob_month: Optional[str] = None
    dob_day_of_month: Optional[str] = None
    company_name: Optional[str] = None
    ar_number: Optional[str] = None
    allow_mail: Optional[bool] = None
    allow_e_mail: Optional[bool] = None
    guest_priv: Optional[bool] = None
    allow_phone: Optional[bool] = None
    allow_s_m_s: Optional[bool] = None
    allow_history: Optional[bool] = None
    allow_market_research: Optional[bool] = None
    allow_third_party: Optional[bool] = None
    allow_loyalty_program: Optional[bool] = None
    creator_code: Optional[str] = None
    last_updater_code: Optional[str] = None
    date_profile_created: Optional[datetime.datetime] = None
    date_profile_updated: Optional[datetime.datetime] = None
    inactive_date: Optional[datetime.datetime] = None
    nationality: Optional[str] = None
    resort_code: Optional[str] = None
    retired_profile_id: Optional[str] = None
    transferred_subscription_id: Optional[str] = None
    source_name: Optional[str] = None
    source_i_d: Optional[str] = None
    opt_out_marketing: Optional[bool] = None
    opt_out_date: Optional[datetime.datetime] = None
    profile_extension: Optional[ProfileExtension] = None
    addresses: Optional[List[Address]] = None
    memberships: Optional[List[Membership]] = None
    contact_methods: Optional[List[ContactMethod]] = None
    action_comments: Optional[List[ActionComment]] = None
    special_requests: Optional[List[SpecialRequest]] = None
    udf_data_collection: Optional[List[UDFDataType]] = None
    lead: Optional[Lead] = None
    related_travelers: Optional[List[RelatedTraveler]] = None
    documents: Optional[List[Document]] = None
    vouchers: Optional[List[Voucher]] = None
    profile_policies: Optional[List[ProfilePolicy]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ExternalReference:
    p_k__external_references: Optional[str] = None
    f_k__internal: Optional[str] = None
    f_k__internal_id: Optional[int] = None
    key_table: Optional[str] = None
    reference_type: Optional[str] = None
    reference_source: Optional[str] = None
    reference_number: Optional[str] = None
    leg_number: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Activity:
    cendyn_property_i_d: Optional[str] = None
    reservation_i_d: Optional[str] = None
    profile_i_d: Optional[str] = None
    activity_status: Optional[str] = None
    activity_category: Optional[str] = None
    activity_i_d1: Optional[str] = None
    activity_source1: Optional[str] = None
    activity_i_d2: Optional[str] = None
    activity_source2: Optional[str] = None
    activity_name: Optional[str] = None
    activity_description: Optional[str] = None
    activity_notes: Optional[str] = None
    group_code: Optional[str] = None
    currency_code: Optional[str] = None
    amount: Optional[Decimal] = None
    deposit_required: Optional[Decimal] = None
    deposit_collector_type: Optional[str] = None
    inactive_date: Optional[datetime.datetime] = None
    url_link: Optional[str] = None
    confirmation_num: Optional[str] = None
    activity_class: Optional[str] = None
    activity_code: Optional[str] = None
    activity_sub_code: Optional[str] = None
    language_code: Optional[str] = None
    num_adults: Optional[int] = None
    num_youths: Optional[int] = None
    num_children: Optional[int] = None
    start_date: Optional[datetime.datetime] = None
    start_task_type: Optional[str] = None
    start_location_code: Optional[str] = None
    start_location_name: Optional[str] = None
    end_date: Optional[datetime.datetime] = None
    end_task_type: Optional[str] = None
    end_location_code: Optional[str] = None
    duration_unit: Optional[str] = None
    related_date: Optional[datetime.datetime] = None
    related_type: Optional[str] = None
    related_location_code: Optional[str] = None
    related_description: Optional[str] = None
    vip_code: Optional[str] = None
    assigned_user: Optional[str] = None
    booked_date: Optional[datetime.datetime] = None
    booked_by: Optional[str] = None
    last_updated_date: Optional[datetime.datetime] = None
    last_updated_by: Optional[str] = None
    cancellation_code: Optional[str] = None
    custom_field1: Optional[str] = None
    custom_field2: Optional[str] = None
    custom_field3: Optional[str] = None
    custom_field4: Optional[str] = None
    custom_field5: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Guest:
    arrival_date: Optional[datetime.datetime] = None
    departure_date: Optional[datetime.datetime] = None
    profile_sequence: Optional[int] = None
    is_primary: Optional[bool] = None
    folio_i_d: Optional[str] = None
    percentage_billed: Optional[Decimal] = None
    purpose_of_stay: Optional[str] = None
    original_reservation_num: Optional[str] = None
    original_confirmation_num: Optional[str] = None
    guest_group_sequence: Optional[int] = None
    tax_type: Optional[str] = None
    guest_profile: Optional[Profile] = None
    external_references: Optional[List[ExternalReference]] = None
    activities: Optional[List[Activity]] = None
    udf_data_collection: Optional[List[UDFDataType]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TaxType:
    amount: Optional[Decimal] = None
    code: Optional[str] = None
    description: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StayDetail:
    external_i_d: Optional[str] = None
    stay_date: Optional[datetime.datetime] = None
    room_number: Optional[str] = None
    room_type: Optional[str] = None
    rate_type: Optional[str] = None
    market_code: Optional[str] = None
    res_source_code: Optional[str] = None
    number_of_rooms: Optional[int] = None
    daily_rate: Optional[Decimal] = None
    currency_code: Optional[str] = None
    date_stay_detail_updated: Optional[datetime.datetime] = None
    daily_rate_before_tax: Optional[Decimal] = None
    daily_rate_after_tax: Optional[Decimal] = None
    tax_types: Optional[List[TaxType]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CancelPenalty:
    rule_type: Optional[str] = None
    rule_code: Optional[str] = None
    rule_description: Optional[str] = None
    resort_rule_i_d: Optional[str] = None
    rule_i_d: Optional[str] = None
    amount: Optional[Decimal] = None
    percentage: Optional[Decimal] = None
    cancel_by_date: Optional[datetime.datetime] = None
    cancel_percent_due: Optional[Decimal] = None
    cancel_room_nights: Optional[int] = None
    activity_deposit: Optional[Decimal] = None
    room_deposit: Optional[Decimal] = None
    rule_scope: Optional[str] = None
    currency_code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ResServicePrice:
    external_i_d: Optional[str] = None
    actual_begin_date: Optional[datetime.datetime] = None
    actual_end_date: Optional[datetime.datetime] = None
    unit_price: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ResService:
    external_i_d: Optional[str] = None
    service_type: Optional[str] = None
    service_group: Optional[str] = None
    res_action: Optional[str] = None
    service_pricing_type: Optional[str] = None
    service_sequence: Optional[int] = None
    service_inventory_code: Optional[str] = None
    start_date: Optional[datetime.datetime] = None
    end_date: Optional[datetime.datetime] = None
    frequency: Optional[str] = None
    price_amount: Optional[Decimal] = None
    currency_code: Optional[str] = None
    quantity: Optional[int] = None
    rate_plan_code: Optional[str] = None
    inventory_block_code: Optional[str] = None
    price_guaranteed: Optional[bool] = None
    inclusive: Optional[bool] = None
    service_comments: Optional[str] = None
    inactive_date: Optional[datetime.datetime] = None
    service_prices: Optional[List[ResServicePrice]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PayInfo:
    record_type: Optional[str] = None
    method_type_code: Optional[str] = None
    method_type: Optional[str] = None
    due_date: Optional[datetime.datetime] = None
    amount: Optional[Decimal] = None
    currency_code: Optional[str] = None
    cancel_if_not_received: Optional[bool] = None
    drop_time: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FixedCharge:
    charge_code: Optional[str] = None
    charge_name: Optional[str] = None
    description: Optional[str] = None
    frequency: Optional[str] = None
    charge_unit: Optional[int] = None
    charge_type: Optional[str] = None
    curency_code: Optional[str] = None
    amount: Optional[Decimal] = None
    tax_inclusive: Optional[bool] = None
    tax_amount: Optional[Decimal] = None
    percentage: Optional[Decimal] = None
    effective_date: Optional[datetime.datetime] = None
    expiration_date: Optional[datetime.datetime] = None
    taxable: Optional[bool] = None
    custom_code1: Optional[str] = None
    custom_code2: Optional[str] = None
    custom_code3: Optional[str] = None
    inactive_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StayHeader:
    external_i_d: Optional[str] = None
    stay_begin_date: Optional[datetime.datetime] = None
    stay_end_date: Optional[datetime.datetime] = None
    building_code: Optional[str] = None
    room_number: Optional[str] = None
    room_type: Optional[str] = None
    market_segment_code: Optional[str] = None
    res_source_code: Optional[str] = None
    share_code: Optional[str] = None
    inv_block_code: Optional[str] = None
    res_status_type: Optional[str] = None
    rtc: Optional[str] = None
    channel_code: Optional[str] = None
    source_sequence: Optional[int] = None
    rate_type: Optional[str] = None
    rate_category: Optional[str] = None
    daily_rate: Optional[Decimal] = None
    currency_code: Optional[str] = None
    promotion_code: Optional[str] = None
    stay_details: Optional[List[StayDetail]] = None
    cancel_penalties: Optional[List[CancelPenalty]] = None
    res_services: Optional[List[ResService]] = None
    pay_info_collection: Optional[List[PayInfo]] = None
    fixed_charges: Optional[List[FixedCharge]] = 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 PaymentCard:
    card_type: Optional[str] = None
    card_holder_name: Optional[str] = None
    card_value: Optional[str] = None
    card_value_type: Optional[str] = None
    expiration_month: Optional[int] = None
    expiration_year: Optional[int] = None
    security_code: Optional[str] = None
    is_primary: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PaymentMethod:
    method_of_payment: Optional[str] = None
    folio_i_d: Optional[str] = None
    payment_cards: Optional[List[PaymentCard]] = None


class ResActionTypeCode(str, Enum):
    RT = 'RT'
    AT = 'AT'
    TR = 'TR'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ResAction:
    external_i_d: Optional[str] = None
    res_action_type_i_d: Optional[str] = None
    res_action_type: Optional[ResActionTypeCode] = None
    source_res_action: Optional[str] = None
    res_action_text: Optional[str] = None
    res_action_by: Optional[str] = None
    res_action_date: Optional[datetime.datetime] = None
    inactive_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Reservation:
    cendyn_property_i_d: Optional[str] = None
    property_name: Optional[str] = None
    unique_i_ds: Optional[List[UniqueIDType]] = None
    res_type_code: Optional[str] = None
    res_status_code: Optional[str] = None
    res_status: Optional[str] = None
    confirmation_num: Optional[str] = None
    central_res_num: Optional[str] = None
    res_arrive_date: Optional[datetime.datetime] = None
    res_depart_date: Optional[datetime.datetime] = None
    res_arrive_time: Optional[str] = None
    res_depart_time: Optional[str] = None
    num_rooms: Optional[int] = None
    building_code: Optional[str] = None
    room_type_code: Optional[str] = None
    room_number: Optional[str] = None
    rate_code: Optional[str] = None
    rate_category_code: Optional[str] = None
    rate_amount: Optional[Decimal] = None
    rate_confidential: Optional[bool] = None
    package_code: Optional[str] = None
    package_amount: Optional[Decimal] = None
    package_description: Optional[str] = None
    discount_code: Optional[str] = None
    discount_amount: Optional[Decimal] = None
    discount_percent: Optional[Decimal] = None
    discount_reason_code: Optional[str] = None
    guaranteed_by_code: Optional[str] = None
    mop: Optional[str] = None
    is_not_refundable: Optional[bool] = None
    sharer_code: Optional[str] = None
    leg_numbers: Optional[str] = None
    group_i_d: Optional[str] = None
    group_name: Optional[str] = None
    res_source_code: Optional[str] = None
    res_source_category: Optional[str] = None
    trvl_agnt_pms_i_d: Optional[str] = None
    trvl_agnt_code: Optional[str] = None
    trvl_agnt_i_a_t_a: Optional[str] = None
    trvl_agnt_name: Optional[str] = None
    market_segment_code: Optional[str] = None
    market_code_category: Optional[str] = None
    market_region_code: Optional[str] = None
    company_code: Optional[str] = None
    company_name: Optional[str] = None
    billing_code: Optional[str] = None
    billing_name: Optional[str] = None
    customer_segment: Optional[str] = None
    num_adults: Optional[int] = None
    num_youths: Optional[int] = None
    num_children: Optional[int] = None
    total_room_nights: Optional[int] = None
    date_res_made: Optional[datetime.datetime] = None
    date_res_updated: Optional[datetime.datetime] = None
    res_made_by: Optional[str] = None
    res_updated_by: Optional[str] = None
    checked_in_by: Optional[str] = None
    checked_out_by: Optional[str] = None
    cancellation_i_d: Optional[str] = None
    cancellation_code: Optional[str] = None
    cancellation_comment: Optional[str] = None
    cancellation_date: Optional[datetime.datetime] = None
    source_name: Optional[str] = None
    source_i_d: Optional[str] = None
    average_room_rate: Optional[Decimal] = None
    deposit_amount_due: Optional[Decimal] = None
    deposit_amount_paid: Optional[Decimal] = None
    account_balance: Optional[Decimal] = None
    total_other_revenue: Optional[Decimal] = None
    total_f_b_revenue: Optional[Decimal] = None
    total_room_revenue: Optional[Decimal] = None
    total_tax: Optional[Decimal] = None
    total_revenue: Optional[Decimal] = None
    currency_code: Optional[str] = None
    guests: Optional[List[Guest]] = None
    stay_headers: Optional[List[StayHeader]] = None
    action_comments: Optional[List[ActionComment]] = None
    special_requests: Optional[List[SpecialRequest]] = None
    udf_data_collection: Optional[List[UDFDataType]] = None
    tax_types: Optional[List[TaxType]] = None
    stay_history_revenue_collection: Optional[List[StayHistoryRevenue]] = None
    res_services: Optional[List[ResService]] = None
    external_references: Optional[List[ExternalReference]] = None
    payment_methods: Optional[List[PaymentMethod]] = None
    res_actions: Optional[List[ResAction]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReservationContainer:
    echo_token: Optional[str] = None
    change_action: Optional[str] = None
    reservations: Optional[List[Reservation]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReservationPost:
    reservation_container: Optional[ReservationContainer] = None
    subscription_id: Optional[str] = None
    cendyn_property_id: Optional[str] = None

Python ReservationPost 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 /reservation/{SubscriptionId}/{CendynPropertyId} HTTP/1.1 
Host: cert.cendyn.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"reservationContainer":{"echoToken":"String","changeAction":"String","reservations":[{"cendynPropertyID":"String","propertyName":"String","uniqueIDs":[{"id":"String","type":"String","context":"String"}],"resTypeCode":"String","resStatusCode":"String","resStatus":"String","confirmationNum":"String","centralResNum":"String","resArriveDate":"0001-01-01T00:00:00.0000000","resDepartDate":"0001-01-01T00:00:00.0000000","resArriveTime":"String","resDepartTime":"String","numRooms":0,"buildingCode":"String","roomTypeCode":"String","roomNumber":"String","rateCode":"String","rateCategoryCode":"String","rateAmount":0,"rateConfidential":false,"packageCode":"String","packageAmount":0,"packageDescription":"String","discountCode":"String","discountAmount":0,"discountPercent":0,"discountReasonCode":"String","guaranteedByCode":"String","mop":"String","isNotRefundable":false,"sharerCode":"String","legNumbers":"String","groupID":"String","groupName":"String","resSourceCode":"String","resSourceCategory":"String","trvlAgntPmsID":"String","trvlAgntCode":"String","trvlAgntIATA":"String","trvlAgntName":"String","marketSegmentCode":"String","marketCodeCategory":"String","marketRegionCode":"String","companyCode":"String","companyName":"String","billingCode":"String","billingName":"String","customerSegment":"String","numAdults":0,"numYouths":0,"numChildren":0,"totalRoomNights":0,"dateResMade":"0001-01-01T00:00:00.0000000","dateResUpdated":"0001-01-01T00:00:00.0000000","resMadeBy":"String","resUpdatedBy":"String","checkedInBy":"String","checkedOutBy":"String","cancellationID":"String","cancellationCode":"String","cancellationComment":"String","cancellationDate":"0001-01-01T00:00:00.0000000","sourceName":"String","sourceID":"String","averageRoomRate":0,"depositAmountDue":0,"depositAmountPaid":0,"accountBalance":0,"totalOtherRevenue":0,"totalFBRevenue":0,"totalRoomRevenue":0,"totalTax":0,"totalRevenue":0,"currencyCode":"String","guests":[{"arrivalDate":"0001-01-01T00:00:00.0000000","departureDate":"0001-01-01T00:00:00.0000000","profileSequence":0,"isPrimary":false,"folioID":"String","percentageBilled":0,"purposeOfStay":"String","originalReservationNum":"String","originalConfirmationNum":"String","guestGroupSequence":0,"taxType":"String","guestProfile":{"cendynPropertyID":"String","propertyName":"String","uniqueIDs":[{"id":"String","type":"String","context":"String"}],"profileTypeCode":"String","profileTypeDescription":"String","nameCode":"String","profileTypeCategory":"String","jobTitle":"String","salutation":"String","firstName":"String","familiarName":"String","middleName":"String","lastName":"String","fullName":"String","nameSuffix":"String","vipid":"String","vipCode":"String","primaryLanguage":"String","genderCode":"String","dobYear":"String","dobMonth":"String","dobDayOfMonth":"String","companyName":"String","arNumber":"String","allowMail":false,"allowEMail":false,"guestPriv":false,"allowPhone":false,"allowSMS":false,"allowHistory":false,"allowMarketResearch":false,"allowThirdParty":false,"allowLoyaltyProgram":false,"creatorCode":"String","lastUpdaterCode":"String","dateProfileCreated":"0001-01-01T00:00:00.0000000","dateProfileUpdated":"0001-01-01T00:00:00.0000000","inactiveDate":"0001-01-01T00:00:00.0000000","nationality":"String","resortCode":"String","retiredProfileId":"String","transferredSubscriptionId":"String","sourceName":"String","sourceID":"String","optOutMarketing":false,"optOutDate":"0001-01-01T00:00:00.0000000","profileExtension":{"languageCode":"String","salutationExt":"String","firstNameExt":"String","familiarNameExt":"String","middleNameExt":"String","lastNameExt":"String","nameSuffixExt":"String","companyNameExt":"String","blacklist":"String","blackListMessage":"String","anonymizationStatus":"String"},"addresses":[{"addressTypeCode":"String","addressTypeDescription":"String","addressStatus":"String","attn":"String","address1":"String","address2":"String","city":"String","stateProvince":"String","postalCode":"String","countryCode":"String","isPrimary":false,"addressLanguage":"String","addressCleansed":false,"optOutMarketing":false,"optOutDate":"0001-01-01T00:00:00.0000000"}],"memberships":[{"externalID":"String","programCode":"String","membershipID":"String","membershipCategory":"String","membershipName":"String","membershipLevel":"String","membershipStatus":"String","enrollmentCode":"String","dateMembershipStarts":"0001-01-01T00:00:00.0000000","dateMembershipExpires":"0001-01-01T00:00:00.0000000","totalStays":0,"awardCredits":0,"awardAvailable":0,"primaryAirline":false,"displaySequence":0,"sourceName":"String","sourceID":"String","isActive":false,"inactiveDate":"0001-01-01T00:00:00.0000000","pointsIndicator":false}],"contactMethods":[{"type":"String","category":"String","dataValue":"String","extraData":"String","optOut":false,"sourceDate":"0001-01-01T00:00:00.0000000","isPrimary":false,"confirmation":false,"inactiveDate":"0001-01-01T00:00:00.0000000","optOutMarketing":false,"optOutDate":"0001-01-01T00:00:00.0000000"}],"actionComments":[{"externalID":"String","commentType":"String","commentTitle":"String","commentClass":"String","actionType":"String","comment":"String","actionDate":"0001-01-01T00:00:00.0000000","inactiveDate":"0001-01-01T00:00:00.0000000","guestViewable":false,"creatorCode":"String","dateCommentCreated":"0001-01-01T00:00:00.0000000","resortCode":"String"}],"specialRequests":[{"externalID":"String","requestType":"String","requestCode":"String","requestComments":"String","resortField":"String","actionTypeCode":"String","actionType":"String","inactiveDate":"0001-01-01T00:00:00.0000000"}],"udfDataCollection":[{"cendynPropertyID":"String","moduleName":"String","tableName":"String","columnName":"String","udfValue":"String"}],"lead":{"fK_Reservation":"00000000000000000000000000000000","externalLeadID":"String","externalLeadSource":"String","leadStatus":"String","leadAcquired":"0001-01-01T00:00:00.0000000","tentativeStartDate":"0001-01-01T00:00:00.0000000","tentativeEndDate":"0001-01-01T00:00:00.0000000","assignedAgent":"String","assignedDate":"0001-01-01T00:00:00.0000000","contactMethod":"String","contactAgent":"String","contactDate":"0001-01-01T00:00:00.0000000","lastFollowupMethod":"String","lastFollowupAgent":"String","lastFollowupDate":"0001-01-01T00:00:00.0000000","bookingMethod":"String","bookingAgent":"String","bookingDate":"0001-01-01T00:00:00.0000000","reasonforStay":"String","marketCode":"String","campaignCode":"String","campaignName":"String","priceEstimate":0,"flaggedForAttention":false},"relatedTravelers":[{"cendynPropertyID":"String","propertyName":"String","uniqueIDs":[{"id":"String","type":"String","context":"String"}],"salutation":"String","firstName":"String","familiarName":"String","middleName":"String","lastName":"String","fullName":"String","suffix":"String","relation":"String","isPrimary":false}],"documents":[{"documentID":"String","documentType":"String","documentSource":"String","codeOnDocument":"String","documentNotes":"String","nameOnDocument":"String","nationalityOnDocument":"String","effectiveDate":"0001-01-01T00:00:00.0000000","expirationDate":"0001-01-01T00:00:00.0000000","issuer":"String","issuerCountry":"String","isPrimary":false,"piI_StoredAs":"String","inactiveDate":"0001-01-01T00:00:00.0000000"}],"vouchers":[{"hotelCode":"String","voucherID":"String","voucherID2":"String","appliedToResort":"String","reservationID":"String","profileIDRecipient":"String","subscriberIDRecipient":"String","recipientName":"String","emailaddress":"String","profileIDPurchaser":"String","purchaserName":"String","voucherStatus":"String","voucherType":"String","membershipType":"String","certCode":"String","certNo":"String","shortDescription":"String","giftMessage":"String","comments":"String","voucherAmount":0,"currencyCode":"String","issueType":"String","dateConsumed":"0001-01-01T00:00:00.0000000","expirationDate":"0001-01-01T00:00:00.0000000","awardPoints":0,"ruleType":"String","ruleValue":"String","cancelAllowed":false,"maxExtensions":0,"referenceType":"String","referenceID":"String","promotionCode":"String","reservationConsumed":false,"webConsumed":false,"pmsConsumed":false,"verifyCertNo":false,"generateInLieu":false,"creatorCode":"String","lastUpdaterCode":"String","folioID":"String","inactiveDate":"0001-01-01T00:00:00.0000000"}],"profilePolicies":[{"policyType":"String","attributeName":"String","integerValue":0,"stringValue":"String","effectiveDate":"0001-01-01T00:00:00.0000000","expirationDate":"0001-01-01T00:00:00.0000000","comments":"String","externalID":"String","appliesTo":"String","appliesToDescriptor":"String"}]},"externalReferences":[{"pK_ExternalReferences":"00000000000000000000000000000000","fK_Internal":"00000000000000000000000000000000","fK_InternalId":0,"keyTable":"String","referenceType":"String","referenceSource":"String","referenceNumber":"String","legNumber":0}],"activities":[{"cendynPropertyID":"String","reservationID":"String","profileID":"String","activityStatus":"String","activityCategory":"String","activityID1":"String","activitySource1":"String","activityID2":"String","activitySource2":"String","activityName":"String","activityDescription":"String","activityNotes":"String","groupCode":"String","currencyCode":"String","amount":0,"depositRequired":0,"depositCollectorType":"String","inactiveDate":"0001-01-01T00:00:00.0000000","urlLink":"String","confirmationNum":"String","activityClass":"String","activityCode":"String","activitySubCode":"String","languageCode":"String","numAdults":0,"numYouths":0,"numChildren":0,"startDate":"0001-01-01T00:00:00.0000000","startTaskType":"String","startLocationCode":"String","startLocationName":"String","endDate":"0001-01-01T00:00:00.0000000","endTaskType":"String","endLocationCode":"String","durationUnit":"String","relatedDate":"0001-01-01T00:00:00.0000000","relatedType":"String","relatedLocationCode":"String","relatedDescription":"String","vipCode":"String","assignedUser":"String","bookedDate":"0001-01-01T00:00:00.0000000","bookedBy":"String","lastUpdatedDate":"0001-01-01T00:00:00.0000000","lastUpdatedBy":"String","cancellationCode":"String","customField1":"String","customField2":"String","customField3":"String","customField4":"String","customField5":"String"}],"udfDataCollection":[{"cendynPropertyID":"String","moduleName":"String","tableName":"String","columnName":"String","udfValue":"String"}]}],"stayHeaders":[{"externalID":"String","stayBeginDate":"0001-01-01T00:00:00.0000000","stayEndDate":"0001-01-01T00:00:00.0000000","buildingCode":"String","roomNumber":"String","roomType":"String","marketSegmentCode":"String","resSourceCode":"String","shareCode":"String","invBlockCode":"String","resStatusType":"String","rtc":"String","channelCode":"String","sourceSequence":0,"rateType":"String","rateCategory":"String","dailyRate":0,"currencyCode":"String","promotionCode":"String","stayDetails":[{"externalID":"String","stayDate":"0001-01-01T00:00:00.0000000","roomNumber":"String","roomType":"String","rateType":"String","marketCode":"String","resSourceCode":"String","numberOfRooms":0,"dailyRate":0,"currencyCode":"String","dateStayDetailUpdated":"0001-01-01T00:00:00.0000000","dailyRateBeforeTax":0,"dailyRateAfterTax":0,"taxTypes":[{"amount":0,"code":"String","description":"String"}]}],"cancelPenalties":[{"ruleType":"String","ruleCode":"String","ruleDescription":"String","resortRuleID":"String","ruleID":"String","amount":0,"percentage":0,"cancelByDate":"0001-01-01T00:00:00.0000000","cancelPercentDue":0,"cancelRoomNights":0,"activityDeposit":0,"roomDeposit":0,"ruleScope":"String","currencyCode":"String"}],"resServices":[{"externalID":"String","serviceType":"String","serviceGroup":"String","resAction":"String","servicePricingType":"String","serviceSequence":0,"serviceInventoryCode":"String","startDate":"0001-01-01T00:00:00.0000000","endDate":"0001-01-01T00:00:00.0000000","frequency":"String","priceAmount":0,"currencyCode":"String","quantity":0,"ratePlanCode":"String","inventoryBlockCode":"String","priceGuaranteed":false,"inclusive":false,"serviceComments":"String","inactiveDate":"0001-01-01T00:00:00.0000000","servicePrices":[{"externalID":"String","actualBeginDate":"0001-01-01T00:00:00.0000000","actualEndDate":"0001-01-01T00:00:00.0000000","unitPrice":0}]}],"payInfoCollection":[{"recordType":"String","methodTypeCode":"String","methodType":"String","dueDate":"0001-01-01T00:00:00.0000000","amount":0,"currencyCode":"String","cancelIfNotReceived":false,"dropTime":"0001-01-01T00:00:00.0000000"}],"fixedCharges":[{"chargeCode":"String","chargeName":"String","description":"String","frequency":"String","chargeUnit":0,"chargeType":"String","curencyCode":"String","amount":0,"taxInclusive":false,"taxAmount":0,"percentage":0,"effectiveDate":"0001-01-01T00:00:00.0000000","expirationDate":"0001-01-01T00:00:00.0000000","taxable":false,"customCode1":"String","customCode2":"String","customCode3":"String","inactiveDate":"0001-01-01T00:00:00.0000000"}]}],"actionComments":[{"externalID":"String","commentType":"String","commentTitle":"String","commentClass":"String","actionType":"String","comment":"String","actionDate":"0001-01-01T00:00:00.0000000","inactiveDate":"0001-01-01T00:00:00.0000000","guestViewable":false,"creatorCode":"String","dateCommentCreated":"0001-01-01T00:00:00.0000000","resortCode":"String"}],"specialRequests":[{"externalID":"String","requestType":"String","requestCode":"String","requestComments":"String","resortField":"String","actionTypeCode":"String","actionType":"String","inactiveDate":"0001-01-01T00:00:00.0000000"}],"udfDataCollection":[{"cendynPropertyID":"String","moduleName":"String","tableName":"String","columnName":"String","udfValue":"String"}],"taxTypes":[{"amount":0,"code":"String","description":"String"}],"stayHistoryRevenueCollection":[{"recordStatus":"String","revenueGroup":"String","revenueType":"String","amount":0,"currencyCode":"String","folioWindow":"String","transactionDate":"0001-01-01T00:00:00.0000000","inactiveDate":"0001-01-01T00:00:00.0000000"}],"resServices":[{"externalID":"String","serviceType":"String","serviceGroup":"String","resAction":"String","servicePricingType":"String","serviceSequence":0,"serviceInventoryCode":"String","startDate":"0001-01-01T00:00:00.0000000","endDate":"0001-01-01T00:00:00.0000000","frequency":"String","priceAmount":0,"currencyCode":"String","quantity":0,"ratePlanCode":"String","inventoryBlockCode":"String","priceGuaranteed":false,"inclusive":false,"serviceComments":"String","inactiveDate":"0001-01-01T00:00:00.0000000","servicePrices":[{"externalID":"String","actualBeginDate":"0001-01-01T00:00:00.0000000","actualEndDate":"0001-01-01T00:00:00.0000000","unitPrice":0}]}],"externalReferences":[{"pK_ExternalReferences":"00000000000000000000000000000000","fK_Internal":"00000000000000000000000000000000","fK_InternalId":0,"keyTable":"String","referenceType":"String","referenceSource":"String","referenceNumber":"String","legNumber":0}],"paymentMethods":[{"methodOfPayment":"String","folioID":"String","paymentCards":[{"cardType":"String","cardHolderName":"String","cardValue":"String","cardValueType":"String","expirationMonth":0,"expirationYear":0,"securityCode":"String","isPrimary":false}]}],"resActions":[{"externalID":"String","resActionTypeID":"String","resActionType":"RT","sourceResAction":"String","resActionText":"String","resActionBy":"String","resActionDate":"0001-01-01T00:00:00.0000000","inactiveDate":"0001-01-01T00:00:00.0000000"}]}]},"subscriptionId":"String","cendynPropertyId":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

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