Skip to content

Reservation synchronization

The external system, and/or SIHOT.WEB, can directly transmit a new or changed reservation to the upstream system.

Operationcode: RES

RES

Direction

SIHOT.PMS ← SIHOT.WEB

Message

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
    <OC>RES</OC>
    <ID>1</ID>
    <TN>1</TN>
    <RC>0</RC>
    <MSG>OK</MSG>
    <ARESLIST>
        <RESERVATION>
            <CONTACT>
                <Name>Meyer</Name>
                <Name2>Klaus</Name2>
                <STREET>Hauptstrasse</STREET>
                <ZIP>12345</ZIP>
                <CITY>Munich</CITY>
                <EMAIL1>r.meyer@abc.de</EMAIL1>
                <PHONE1>004981234567</PHONE1>
                <FAX1>004981234568</FAX1>
                <PERS-TYPE>1A</PERS-TYPE>
            </CONTACT>
            <RATE>
                <ISDEFAULT>Y</ISDEFAULT>
                <R>ÜF</R>
                <PRICE/>
                <CURRENCY/>
                <RATE-SEGMENT>GB0</RATE-SEGMENT>
            </RATE>
            <RATE>
                <ISDEFAULT>N</ISDEFAULT>
                <R>01</R>
                <DAYS>
                    <D>2004-09-14</D>
                    <PRICE>166.00</PRICE>
                </DAYS>
                <DAYS>
                    <D>2004-09-16</D>
                    <PRICE>160.00</PRICE>
                </DAYS>
                <CURRENCY>EUR</CURRENCY>
                <RATE-SEGMENT>GB4</RATE-SEGMENT>
            </RATE>
            <CANCELLATIONINFOS>
                <AUTHCODE>2584600965</AUTHCODE>
            </CANCELLATIONINFOS>
            <PERSON>
                <NAME>Kluge</NAME>
                <NAME2>Hans</NAME2>
                <SEX>1</SEX>
                <RN/>
                <ROOM-SEQ>0</ROOM-SEQ>
                <ROOM-PERS-SEQ>0</ROOM-PERS-SEQ>
                <PERS-TYPE>1A</PERS-TYPE>
                <CAT>4B</CAT>
                <PCAT>4Z</PCAT>
                <MATCHCODE-ADM>khans</MATCHCODE-ADM>
                <EXT-REFERENCE>E1234</EXT-REFERENCE>
                <VOUCHERNUMBER>V1234</VOUCHERNUMBER>
                <PERS-RATE>
                    <ISDEFAULT>N</ISDEFAULT>
                    <R>01</R>
                    <DAYS>
                        <D>2004-09-14</D>
                        <PRICE>166.00</PRICE>
                    </DAYS>
                    <DAYS>
                        <D>2004-09-16</D>
                        <PRICE>160.00</PRICE>
                    </DAYS>
                    <CURRENCY>EUR</CURRENCY>
                    <RATE-SEGMENT>GB0</RATE-SEGMENT>
                </PERS-RATE>
                <GUESTPROGRAMLIST>
                    <GUESTPROGRAM>
                        <GUESTPROGRAM-OBJID>4</GUESTPROGRAM-OBJID>
                        <CENTRAL-GUESTPROGRAM-ID>1</CENTRAL-GUESTPROGRAM-ID>
                        <STATE>DEFINITIVE</STATE>
                    </GUESTPROGRAM>
                </GUESTPROGRAMLIST>
            </PERSON>
            <PERSON>
                <SEX>0</SEX>
                <ROOM-SEQ>1</ROOM-SEQ>
                <ROOM-PERS-SEQ>0</ROOM-PERS-SEQ>
                <CITY>Schiffweiler</CITY>
                <DOB>1975-04-27</DOB>
                <AGE>42</AGE>
                <EMAIL>e.dillinger@gubse.com</EMAIL>
                <COUNTRY>AU QLD OOL</COUNTRY>
                <COUNTRY-CODE>AU</COUNTRY-CODE>
                <STATE>QLD</STATE>
                <POST-AREA>OOL</POST-AREA>
                <NAME>Dernier</NAME>
                <PERS-TYPE>1A</PERS-TYPE>
                <TITLE>Dr.</TITLE>
                <COMMENT>Hofseite</COMMENT>
                <ADDRESS>1</ADDRESS>
                <NAME2>Hubert</NAME2>
                <PHONE>35468578</PHONE>
                <ZIP>D-907878</ZIP>
                <STREET>Landsweiler Str. 34</STREET>
                <FAX>6856756</FAX>
                <ARR>2004-09-14</ARR>
                <DEP>2004-09-18</DEP>
                <MATCHCODE-ADM>edill</MATCHCODE-ADM>
                <EXT-REFERENCE>E1234</EXT-REFERENCE>
                <VOUCHERNUMBER>V1234</VOUCHERNUMBER>
                <CAT>2B</CAT>
                <RN>102</RN>
                <PCAT>2Z</PCAT>
                <CENTRALGUEST-ID>354678
                </CENTRALGUEST-ID>
                <DISCOUNT-GROUP>RG2</DISCOUNT-GROUP>
                <CREDITALLOWED>TRUE</CREDITALLOWED>
                <GUEST-IDS>
                    <CARD>
                        <TYPE>SA</TYPE>
                        <NUMBER>2F45A2C3000000</NUMBER>
                    </CARD>
                </GUEST-IDS>
            </PERSON>
            <PERSON>
                <ROOM-SEQ>1</ROOM-SEQ>
                <ROOM-PERS-SEQ>1</ROOM-PERS-SEQ>
                <NAME>UNKNOWN</NAME>
                <NAME2>UNKNOWN</NAME2>
                <AUTO-GENERATED>Y</AUTO-GENERATED>
            </PERSON>
            <RESCHANNELLIST>
                <RESCHANNEL>
                    <IDX>0</IDX>
                    <MATCHCODE>WHOLESALER
                    </MATCHCODE>
                    <CENTRALGUEST-ID>123
                    </CENTRALGUEST-ID>
                    <CONTACT-ID>4455</CONTACT-ID>
                    <COMMISSION>
                        <PC>25.00</PC>
                        <TOTAL>28.00</TOTAL>
                    </COMMISSION>
                </RESCHANNEL>
                <RESCHANNEL>
                    <IDX>1</IDX>
                    <MATCHCODE>TRAVEL AGENT</MATCHCODE>
                    <CENTRALGUEST-ID>666</CENTRALGUEST-ID>
                    <CONTACT-ID>7843</CONTACT-ID>
                    <COMMISSION>
                        <PC>10.00</PC>
                        <TOTAL>11.20</TOTAL>
                    </COMMISSION>
                </RESCHANNEL>
            </RESCHANNELLIST>
            <CHECKLIST>
                <CHECKLISTENTRY>
                    <TYPE>6</TYPE>
                    <DATE>2004-09-14</DATE>
                    <USER>ADM</USER>
                </CHECKLISTENTRY>
            </CHECKLIST>
            <APERS-TYPE-LIST>
                <PERS-TYPE>
                    <TYPE>123</TYPE>
                    <NO>1</NO>
                </PERS-TYPE>
                <PERS-TYPE>
                    <TYPE>123</TYPE>
                    <NO>1</NO>
                </PERS-TYPE>
            </APERS-TYPE-LIST>
            <FROMWEB>Y</FROMWEB>
            <LAST-MOD>2004-09-14T00:20:27</LAST-MOD>
            <STREET>Strasse</STREET>
            <COMMENT>KommentarInternet</COMMENT>
            <CAT>2B</CAT>
            <COUNTRY>AU QLD OOL</COUNTRY>
            <COUNTRY-CODE>AU</COUNTRY-CODE>
            <STATE>QLD</STATE>
            <POST-AREA>OOL</POST-AREA>
            <NOCHILDS>0</NOCHILDS>
            <ADDRESS>1</ADDRESS>
            <MATCHCODE>hjb0007157</MATCHCODE>
            <EMAIL1>e.dillinger@gubse.com</EMAIL1>
            <LANG>de</LANG>
            <PERS-TYPE>1A</PERS-TYPE>
            <ALLOTMENT-NO/>
            <MARKETCODE-NO>PRI1-4</MARKETCODE-NO>
            <OBJID>1372</OBJID>
            <GDSNO>200409140020270</GDSNO>
            <CENTRALGUEST-ID>55</CENTRALGUEST-ID>
            <PWD>ZuEM1MF8</PWD>
            <NAME>Kluge</NAME>
            <NAME2>Hans</NAME2>
            <DOB>1974-04-27</DOB>
            <FIDELITY-TYPE>WM</FIDELITY-TYPE>
            <NOPAX>22</NOPAX>
            <CCLIST>
                <CCTYPE>VI</CCTYPE>
                <HOLDER-NAME>Otto Handle</HOLDER-NAME>
                <CCHANDLE>08154711abcdef</CCHANDLE>
                <CCHANDLEVALIDUNTIL>2021-01-31
                </CCHANDLEVALIDUNTIL>

                <SERVICEPROVIDER/>
            </CCLIST>
            <INVOICEHOLDER-LIST>
                <INVOICEHOLDER>
                    <PAYMENT-INST>0</PAYMENT-INST>
                    <GUEST-TYPE>1</GUEST-TYPE>
                    <MATCHCODE>AchAlt4711</MATCHCODE>
                    <SERVICE-LIST>
                        <SERVICEID>MB</SERVICEID>
                        <SERVICEID>AEG</SERVICEID>
                        <SERVICEID>HB</SERVICEID>
                    </SERVICE-LIST>
                    <SERVICETYPE-LIST>
                        <SERVICETYPE>DI</SERVICETYPE>
                        <SERVICETYPE>AU</SERVICETYPE>
                    </SERVICETYPE-LIST>
                </INVOICEHOLDER>
            </INVOICEHOLDER-LIST>
            <CITY>Neunkirchen</CITY>
            <DEP>2004-09-18</DEP>
            <COMPANY/>
            <NOROOMS>8</NOROOMS>
            <ARR>2004-09-14</ARR>
            <ZIP>D-67786</ZIP>
            <RT>1</RT>
            <ALLOTMENT-NO>5</ALLOTMENT-NO>
            <ALLOTMENT-EXT-NO>223</ALLOTMENT-EXT-NO>
            <PHONE1>345676778</PHONE1>
            <FAX1>4357897865</FAX1>
            <CENTRAL-RESERVATION-ID>30045</CENTRAL-RESERVATION-ID>
            <CURRENCY>EUR</CURRENCY>
            <FIDELITY-NO>4236834FID</FIDELITY-NO>
            <PRE-AMOUNT/>
            <PRE-DETAILS/>
            <PRE-TYPE/>
            <SOURCE/>
            <DISCOUNT-GROUP>RG1</DISCOUNT-GROUP>
            <RATE-SEGMENT>K</RATE-SEGMENT>
            <VOUCHERNUMBER>123</VOUCHERNUMBER>
            <KTGEXTKEY/>
            <KTGSAISON/>
            <KTGSUBTYPE/>
            <OPTIONUNTIL/>
            <PAYID/>
            <DEFAULTPAYMENTTYPE>
                <PAYMENTTYPE>VI</PAYMENTTYPE>
                <BANK>
                    <BANKNAME/>
                    <BANKCODE/>
                    <ACCOUNTNUMBER/>
                </BANK>
                <CCLIST>
                    <CCVAL>2009-09-30</CCVAL>
                    <CCNO>4111111111111111</CCNO>
                    <CVC>2323</CVC>
                    <CCTYPE>VI</CCTYPE>
                    <HOLDER-NAME/>
                    <CCHANDLE/>
                    <CCHANDLEVALIDUNTIL/>
                </CCLIST>
            </DEFAULTPAYMENTTYPE>
            <MODIFYDATE/>
            <PROMOCODE/>
            <AGIFTVOUCHERLIST>
                <GIFTVOUCHER>
                    <GV-TYPE>PMS</GV-TYPE>
                    <GV-REF>036E-29ª4-DE4A-49B1</GV-REF>
                </GIFTVOUCHER>
                <GIFTVOUCHER>
                    <GV-TYPE>PMS</GV-TYPE>
                    <GV-REF>A1EC-9B83-F947-467C</GV-REF>
                </GIFTVOUCHER>
            </AGIFTVOUCHERLIST>
            <PAYMENT-INST>0</PAYMENT-INST>
        </RESERVATION>
    </ARESLIST>
</SIHOT-DOCUMENT>

Note: If is not set, the rate with hotel currency will be applied.

Elements/Attributes

contains any number of reservation elements . Every reservation has up to four scopes. All reservations inside are imported with the same reservation number and client.

1st scope: Reservation data

In the first scope are the attributes, which describe the client and the data of the reserved rooms. The following is to be considered:

Attribute Description Data type Usage
RESERVATION Block containing all reservation data Mandatory
RT
1 Reservation
2 Reservation not guaranteed
S cancellation
E Error reservation, availability is not updated.
K allotment
Char Optional
GUEST-ID If set, COMPANY and NAME will be ignored and the person or company with this unique SIHOT.PMS ID will be used. Unsigned long see note below
COMPANY If set, the client is a company and NAME must be empty. String Mandatory, if the client is a company, see note below
NAME If set, the client is an individual guest and COMPANY must be empty. String Mandatory, if the client is an individual person, see note below
NAME1X Second Surname ( Spain) String Optional
NAME2 First name of the client String Optional
ADDRESS

Address, e.g.:

0 Company
1 Mr
2 Mrs

This address is equal in SIHOT.WEB and SIHOT.PMS. They should by equal in external systems, too.

Short Optional
SEX M->male and F->female Char Optional
STREET Road of the client String Optional
CITY Town of the client String Optional
COUNTRY Country string which is the concatenation of COUNTRY-CODE, STATE and POST-AREA. String Optional
COUNTRY-CODE Country of the client (ISO 3166 (A2) coded) String Optional
STATE State String Optional
POST-AREA Region String Optional
NATION Nation String Optional
ZIP Postal code String Optional
PHONE1 Phone number String Optional
PHONE2 Alternative phone number String Optional
FAX1 Fax number String Optional
FAX2 Alternative fax number String Optional
EMAIL1 e-mail String Optional
EMAIL2 Alternative e-mail String Optional
MOBIL1 Cell phone number String Optional
INVOICE-EMAIL The email address for invoices String Optional
MOBIL2 Alternative cell phone number String Optional
MATCHCODE SIHOT.PMS matchcode of the client String See note below
VIP VIP code String Optional
VIP2 Alternative VIP code String Optional
DOCUMENT-TYPE String Optional
DOCUMENT-NUMBER String Optional
DOCUMENT-EXPEDITIONCOUNTRY String Optional
DOCUMENT-EXPEDITIONDATE Date Optional
DOCUMENT-EXPIREDATE Date Optional
DOCUMENT-SUBNR String Optional
DOCUMENT-SUBNR2 String Optional
PWD Internet password String Optional
ARR Arrival date Date Mandatory
DEP Departure date Date Mandatory
NOROOMS Number of rooms Integer Mandatory
NOPAX Number of adults Integer Mandatory
NOCHILDS Number of childs (additional to NOPAX) Integer Optional
CAT Room category String Mandatory, but could be empty->PMS fallback
PCAT

Price category (could differ from CAT)

If <PCAT> field will not be passed in, the value of the reservation will be kept. If there is no value in the reservation or the reservation has not been created yet, the rate category will be default to the value of the room category in the reservation. If this value is also empty it will be defaulted to the <CAT> field if the value is valid. If the value is still empty the price calculation will probably fail.

The rate category will be cleared out in a reservation modification and creation if a manual rate will be sent in. Even you pass a rate category together with a manual rate in the interface will clear the rate category due to the manual rate.

String Optional
EXT-REFERENCE External reference String Optional
OBJID ObjID of the reservation. For reservation changes only Unsigned long Optional
GDSNO Unique number for this reservation String Mandatory
CCLIST

The <CCLIST> block contains all information about one credit card.

There can be several <CCLIST> blocks.

See table below for more details

Optional
COMMENT Simple comments as plain text, short notes. String Optional
FIDELITY-TYPE Hotel short form of a fidelity card type (of SOL Melia, Miles&More, SIHOT.WEB) (not required). String Optional
FIDELITY-NO Number of the fidelity card of the guest (not required). Unsigned long Optional
PERS-TYPE Guests person types String Optional
ALLOTMENT-NO If there is a ALLOTMENT-NO set, the reservation is settled in this allotment Unsigned long Optional
ALLOTMENT-EXT-NO If there is a ALLOTMENT-EXT-NO set, the reservation is settled in this allotment Unsigned long Optional
MARKETCODE-NO Market code String Optional
TITLE Title of the client Char Optional
LANG Language of the client (ISO 639 coded). String Optional
DOB Date-of-birth Date Optional
CCREFNO Reference number for the credit card String Optional
DISCOUNT-GROUP Discount group String Optional
EXT-KEY External key for the reservation String Optional
DEPOSIT-DATE(i) Up to 3 (i=1,2,3) different deposit dates could be set. Can be deleted in combination with the OVERWRITE-DEPOSIT flag Date Optional
DEPOSIT-AMOUNT(i) Up to 3 deposit Amounts for the given DEPOSIT-DATEs. Can be deleted in combination with the OVERWRITE-DEPOSIT flag Decimal Optional
DEPOSIT-CURRENCY Deposit currency String Optional
CENTRALGUEST-ID Central guest ID of the client Unsigned long Optional
CENTRAL-RESERVATION-ID Central reservation ID of the reservation in a HQ system Unsigned long Optional
RATE-SEGMENT Segment for the rate String Optional
LOCK Flag if this reservation is locked Char Optional
MEDIA Reservation medium String Optional
SOURCE The ID of the source system Optional
CHANNEL Reservation channel ID String Optional
NN Not named String Optional
NN2 Not named String Optional
ARR-TIME Arrival time Time Optional
DEP-TIME Departure time Time Optional
T-POST-COMMISSION Commission booked Char Optional
T-CALC-COMMISSION Commission calculated Char Optional
ASSIGNED-TO Assignment information String Optional
DISABLE-DEPOSIT Flag if deposit is disabled Char Optional
POBOX Postal code of the client String Optional
FLAGS Flags influence the reservation import. See table below. Values are separated by a semicolon (;) String Optional
PRE-AMOUNT Prepayment amount, already paid Decimal Optional
PRE-TYPE Type of the prepayment. This has to be a valid payment type in SIHOT.PMS String Optional
PRE-DETAILS Details for the prepayment String Optional
TEC-COMMENT Technical comment for the reservation. String Optional
GUEST-TYPE Guests person types String Optional
EXCLUSIVE-USE In case that a room type is "Bed", if the room is solely used by this reservation. Mostly used for hostels. Char Optional
OPTIMISATION-TYPE Type of the optimization of beds. Mostly used for hostels. Char Optional
EXTERNAL-SYSTEM-ID ID of the external system String Optional
CURRENCY Currency used String Optional
EXTERNAL-SYSTEM-GUESTID Object ID of the external systems guest profile in SIHOT.PMS Unsigned Long Optional
CANCELLATIONINFOS Block with cancellation information Optional
PAYMENT-INST Payment instructions Char Optional
VOUCHERNUMBER The number of a voucher. String Optional
KTGEXTKEY The external key of an allotment. String Optional
KTGSAISON The seasonal information that can be a part of the external key. String Optional
KTGSUBTYP The subcategory of an allotment determines the uniqueness of the external key. The external key may require the seasonal information to be unique. String Optional
OPTIONUNTIL The option until date can be set manually. Otherwise it will be calculated if the reservation type is optional. Date Optional
PAYID The transaction number of a credit card payment. String Optional
AUTHAMOUNT Amount already authorized Decimal Optional
EXTCOMMENT-C External central comments String Optional
OUTPUTCOUNTER Counter for outputs Short Optional
DEFAULTPAYMENTTYPE Block with information about a default payment type Optional
MODIFYUSER Code if the user who modified the reservation String Optional
IATA IATA code for the travel agency String Optional
RATE Blocks with several rates belonging to the reservation, see table below Optional
CURRENCY The currency of the rate String Optional
CREATION-DATE The creation date of the reservation Date Optional
SALES-DATE Sales date of the reservation, if not set it will be the current date Date Optional
REASONFORCANCELLATION Reason for cancellation String Mandatory, if a cancellation reason need is configured as compulsory
APERS-TYPE-LIST List with person types used for this reservation (person types per room) Optional
RESCHANNELLIST List with reservation channels Optional
PROMOCODE Promo-Code String Optional
WEB-PRE-CHECKIN Enables Reservation Flag Char Optional
PICKUP-TYPE-ARRIVAL Pickup type e.g.: car, bus String Optional
PICKUP-TIME-ARRIVAL time Time Optional
PICKUP-COMMENT-ARRIVAL comment ( Length 10) for information like flight number String Optional
PICKUP-TYPE-DEPARTURE Pickup type e.g.: car, bus String Optional
PICKUP-TIME-DEPARTURE time Time Optional
PICKUP-COMMENT-DEPARTURE comment ( Length 10) for information like flight number String Optional
AUTOCANCEL Indicates if reservation is in autocancel-mode String Optional
GUARANTEE-TYPE

Guarantee type:

  • PP for PrePaid

  • CC for Credit Card

If the Guarantee type is PrePaid the external system should ensure that the reservations is Pre Paid. The payment details need to be included in the reservation message.

In case of a Credit Card Guarantee the Credit Card should be transferred to SIHOT as a Token.

Char 2 Optional
CANCELLATION-POLICY Char 2 Optional
INVOICEHOLDER-LIST List with payment instruction Optional
NOTIFICATION Block with Trace/Trail information Optional
A-USERFIELD-LIST List with data for user defined database fields Optional
COMMISSION Block with commission information Optional
POINTS-LIST Block with bonus points information (e.g. Melia Rewards) Optional
RES-NR Reservation number Long Optional and only for modification
SUB-NR Sub-reservation number Short Optional and only for modification
CREDITALLOWED Person on rooming list is credit-worthy String Optional
GUEST-IDS List of GUEST-IDS for person on rooming list represented by CARDs
CARD Guest identification card for person on rooming list
TYPE Type of guest identification card String Mandatory for CARD
NUMBER Number of guest identification card String Mandatory for CARD
PAYMENT-INST

Account type:
0 = Guest Account
1 = Group Account

3 = Orderer Account

Short Optional

Note: The elements MATCHCODE, NAME/COMPANY and GUEST-ID are mutually exclusive.

Elements in CANCELLATIONINFOS:

Element Description Data type Usage
AUTHCODE The value of the AUTHCODE has been got in a previous SS-Request. The AUTHCODE is used in order to ensure that the cancellation-conditions according the rule-handling weren’t changed between the two calls. This attribute is only relevant for cancellations to test it with the newest authcode. If the attribute is set and don’t match with the newest authcode, the cancellation is rejected. String Optional

Elements in DEFAULTPAYMENTTYPE:

Element Description Data type
PAYMENTTYPE Block with payment type information Optional
CCLIST Block with detailed credit card data, see table below Optional
BANK Block with bank data Optional

Elements in BANK:

Element Description Data type Usage
BANKNAME Name of the bank String Optional
BANKCODE Code of the bank String Optional
ACCOUNTNUMBER Account number of the bank Long Optional

Elements of CCLIST:

Element Description Data type
CCVAL Expire date of the credit card, format yyyy-mm-dd Date
CCNO Credit card number String
CVC Card validation code String
CCTYPE Credit card type String
HOLDER-NAME Name of the credit card owner String
CCHANDLE Credit card handle/token/key/pseudo card number String
CCHANDLEVALIDUNTIL Handle is valid until this date Date
CCREFNO External reference String
SERVICEPROVIDER

Name of the provider for the handle:

  • Adyen

  • Adyen_tokenizer

  • Conexflow

  • Datatrans

  • Datatrans_tokenizer

  • ElPay

  • Novainfo

  • Global

  • Flexicom

  • Hotel-O-Mat

  • ZVT

  • Bancomer

  • Paymentech

  • NetAcquirer

  • 3C

  • XML-CC

  • Sermepa

  • WBI

  • SIX

  • CompuTop

  • viaConex

  • SiPay

  • SaferPay

  • Web2Pay

  • MerchantLink

  • Tyro

  • PayPlace

If you are connected to a provider which is not listed, keep the element empty.

String
EXT-ADD-REF Additional field to store information from payment provider String
EXT-ADD-REF-TYPE Additional field to store information from payment provider String

Elements of RATE

Element Description Data type
R Package code String
ISDEFAULT Flag, if this is the default rate, at least 1 RATE-Element needs to have a "Y" Char
PRICE Price for this rate Decimal
QUANTITY Number of times the rate is used Decimal
DAYS Block with daily rates
DAYS/D Date Date
DAYS/PRICE Price for this date Decimal
DAYS/FROM From date, when time span is used. Either from and to date or date can be sent Date
DAYS/TO to date, when time span is used Date
CURRENCY Currency used (default: Hotel currency) String
RATE-SEGMENT Rate segment of the rate String

Elements in CHECKLIST

Element Description Data type
CHECKLISTENTRY Check list for one user
TYPE Type String
DATE Date Date
USER User ID String

Elements in APERS-TYPE-LIST

Element Description Data type Usage
PERS-TYPE One Block for each guest type used Mandatory
PERS-TYPE/TYPE Guest type String Mandatory
PERS-TYPE/NO Number of guests with this type Short Mandatory

Elements in FLAGS

Flag Description
UPDATE-ORDERER-PROFILE If the client profile already exists, it will be updated
UPDATE-CONTACT-PROFILE The contact profile is not updated by default
IGNORE-OVERBOOKING Availability is ignored during reservation import
NO-FALLBACK-TO-ERRONEOUS Erroneous reservations aren’t imported, but an error is returned.
DELETE-EMPTY-VALUES Empty XML Tags will delete the corresponding value, see hints below.
IGNORE-EMPTY-VALUES Empty XML Tags are not evaluated, see hints below.
NO-AUTO-EMAIL If the flag "NO-AUTO-EMAIL" is set no automatic email will be triggered.
APPLY-RATES-TO-PERSONS If the flag "APPLY-RATES-TO-PERSONS" is set the blog <PERS-RATE> will be ignored and apply the rate from the reservation to the rooming list.
OVERWRITE-DEPOSIT This flag allows overwriting the deposit data even to wipe it out.
ENABLE-AUTOMATIC-PROCESSING This flags enables the reservation for automatic processing of task e.g. post.
ACTIVATE-GROUP If set, the reservations are imported as one group reservation.
DO-NOT-UPDATE-RESDATA This flag stops the reservation from being updated except for cancellations
WITHROOMINGLISTCHECK this flag matches the new rooming list into the old one instead of just overwriting it with the new information
KEEP-PROTECTED-SERVICES if set, old protected services will not be deleted if the new ones doesn't contain a matching one
OVERWRITE-DEPOSIT if set, the deposit can be overwritten or even deleted

Elements in RESCHANNELLIST

Element Description Data type Usage
RESCHANNEL One Block for each reservation channel Mandatory
IDX Index of the reservation channel (0=client, 1 = travel agency, 2 = travel point) Short Mandatory
ISPRICEOWNER Flag, if this res channel is the price owner of the reservation Char Optional
MATCHCODE Matchcode for this channel String Optional
CENTRALGUEST-ID Central guest ID for this channel Unsigned long Optional
CONTACT-ID ID of the contact person Unsigned long Optional
CONTACT-MATCHCODE-SM MATCHCODE-SM of the contact person String Optional
CONTACT-EMAIL e-mail of the contact person String Optional
IATA IATA code for travel agencies String Optional
COMMISSION Block with commission data for this channel, only one of the following fields should be filled Optional
COMMISSION/PC Percentage Decimal Optional
COMMISSION/TOTAL Total amount Decimal Optional
MATCHCODE-SM Matchcode-SM String Optional
GUEST-TYPE

Guests Type, e.g.:

1 Guest
2 Company
3 Agency
Short Optional

Elements in INVOICEHOLDER-LIST

Element Description Data type Usage
INVOICEHOLDER One Block for each Account Type Mandatory
PAYMENT-INST

Account type:
0 = Guest Account
1 = Group Account

3 = Orderer Account

Short Mandatory
OBJID Number of guests with this type Short Optional
CENTRALGUEST-ID Central guest ID for this invoice holder Unsigned long Optional
IATA IATA code for travel agencies String Optional
MATCHCODE Matchcode String Optional
MATCHCODE-SM Matchcode-SM String Optional
GUEST-TYPE

Guests Type, e.g.:

1 Guest
2 Company
3 Agency
Short Optional
NAME Sure name String Optional
NAME2 First name String Optional
ADDRESS

Address, e.g.:

0 Company
1 Mr
2 Mrs

This address is equal in SIHOT.WEB and SIHOT.PMS. They should by equal in external systems, too.

Short Optional
STREET Road of the client String Optional
ZIP Postal code String Optional
CITY Town of the client String Optional
EMAIL1 e-mail String Optional
EMAIL2 Alternative e-mail String Optional
INVOICE-EMAIL The email address for invoices String Optional
PHONE1 Phone number String Optional
PHONE2 Alternative phone number String Optional
FAX1 Fax number String Optional
FAX2 Alternative fax number String Optional
MOBIL1 Cell phone number String Optional
MOBIL2 Alternative cell phone number String Optional
COUNTRY Country string which is the concatenation of COUNTRY-CODE, STATE and POST-AREA. String Optional
COUNTRY-CODE Country of the client (ISO 3166 (A2) coded) String Optional
STATE State String Optional
POST-AREA Region String Optional
LANG Language String Optional
SERVICE-LIST List of SERVICEIDs SERVICE-LIST Optional
SERVICETYPE-LIST List of SERVICETYPEs SERVICETYPE-LIST Optional

Elements in Block PREPAYMENT

Element Description Data type Usage
TRANSID Transaction ID of the payment String Mandatory
AMOUNT Deposit amount Decimal Mandatory
CURRENCY Deposit currency String Optional
CCTYPE Credit card type String Mandatory
CCTERMINAL-ID The terminal ID String Optional
CCAPPROVAL-NO The approval number of the transaction String Optional
PROCESSING-DATE The processing date of the transaction Date Optional
REFERENCE Reference of the payment String Optional
INVOICE-EMAIL The email address for sending the pre-payment invoice. This email address is only used for this transaction String Optional

Elements in Block NOTIFICATION

Element Description Data type Usage
DATE Trace Date Date Mandatory
TIME Trace Time Time Optional
COMMENT Trace Comment String Mandatory
STATUS Trace Status String Optional
USER Trace User String Optional
LOCATION Trace Location String Optional
DESC Trace Description String Optional
TYPE Trace SubType String Mandatory

Elements in Block A-USERFIELD-LIST

Element Description Data type Usage
USERFIELD One Block for each field is used Mandatory
FIELD User Table field name String Mandatory
VALUE User Table field value String Optional

Elements in Block COMMISSION

Element Description Data type Usage
PC Percentage Decimal Optional
SID Service String Optional
TOTAL Total Amount Decimal Optional

Elements in Block POINTS-LIST

Element Description Data type Usage
POINTS One Block for each field is used Mandatory
VALUE Value of 1 point (default 1) Decimal Optional
AMOUNT Amount of points ( e.g. in Euro) Decimal Mandatory
DESCRIPTION Information (e.g. card level) String Optional
REFERENCE Information (e.g. card holder) String Optional

Elements in Block SERVICE-LIST

Element Description Data type Usage
SERVICEID The ID of the service. String Mandatory

Elements in Block SERVICETYPE-LIST

Element Description Data type Usage
SERVICETYPE The ID of the service type. String Mandatory

Elements in Block GUESTPROGRAM

Element Description Data type Usage
GUESTPROGRAM-OBJID Identification of the guestprogram for adding a membership of a guest (Either ObjID or CentralID must be set) Unsigned Long Mandatory
CENTRAL-GUESTPROGRAM-ID Identification of the guestprogram for adding a membership of a guest (Either ObjID or CentralID must be set) Unsigned Long Mandatory
STATE State of the membership: DEFINITIVE, CANCELED or WAITINGLIST String Mandatory

Empty XML Tags

As there are several fields mandatory in our PMS which should not be deleted or modified in any dangerous way, the flag DELETE-EMPTY-VALUES does not work with every field. Here’s the list of fields which are generally not deleted and to which these flags have influence:

ADDRESS ARR-TIME ASSIGNED-TO
CCREFNO CREATION-DATE CVC
DEP-TIME DEPOSIT-AMOUNT(i) DEPOSIT-DATE(i)
DISABLE-DEPOSIT
EXCLUSIVE-USE EXTCOMMENT-C EXTERNAL-SYSTEM-ID
IATA
LANG
MARKETCODE-NO MEDIA MODIFYUSER
OPTIMISATION-TYPE
PAYMENT-INST PCAT PERS-TYPE
POBOX PRE-DETAILS PRE-TYPE
RATE-SEGMENT PWD
SALES-DATE SOURCE
TITLE
VIP VIP2 VOUCHERNUMBER

Comments:
Short and simple comments such as "breakfast included", "smoker", etc. could be transmitted in the field <COMMENT>. Large comments, such as the entire reservation data from external channels, guest comments from web pages, etc. should be transferred inside <TEC-COMMENT>. As XML does not support line breaks, they could be forced with "|CR|", for example: <TEC-COMMENT>line1|CR|line2<TEC-COMMENT>
Country settings:
There are two ways to set up the country specifics for the reservation. You have the possibility to set the entire configuration over the <COUNTRY> tag.

The format you have to use is the following: <COUNTRY>\[COUNTRY CODE\] \[STATE\] \[POST AREA/REGION\]</COUNTRY>

  • [COUNTRY CODE] maximum 3 characters
  • [STATE] maximum 3 characters
  • [POST AREA/REGION] maximum 3 characters

For instance: <COUNTRY>AU QLD OOL</COUNTRY>

Furthermore you have the possibility to set each value separately with the following tags:

  • <COUNTRY-CODE> - maximum 3 characters
  • <STATE> - maximum 3 characters
  • <POST-AREA> - maximum 3 characters

We are recommending either to use the <COUNTRY> tag or the single tags to set it. If you use both simultaneously the values from the <COUNTRY> tag will be overwritten by the single tags.

Mandatory fields
The first scope contains the following mandatory fields for all external systems and for SIHOT.PMS: <GDSNO>, <ARR>, <DEP>, <CAT>, <NOPAX>, <NOROOMS>, <NAME> or <COMPANY>.

With reservations from external systems is <PRICE-TOTAL> a mandatory field. With reservations for SIHOT.PMS, <MATCHCODE> and <PWD> are mandatory fields. In the second scope is to be differentiated between the transmission of SIHOT.WEB on SIHOT.PMS and an external system and SIHOT.WEB as follows:

2nd scope: reservation direction

For each reservation send from SIHOT.WEB to SIHOT.PMS, the second scope has to contain the reserved service (<RATE> ). At least one <RATE> block is needed, since otherwise no service would be reserved. <ISDEFAULT> = Y means, that this is the reservation’s standard arrangement. <DAYS> contains the number of days, for which the service will be booked. If this element contains a tag <PRICE>, the service will be booked at that price. Otherwise the default price of the SIHOT master data is used. If the <RATE> element contains a tag <CURRENCY>, the price of the rate will be calculated in this currency.

3rd scope: Contact

The third scope transmits the contact persons (<CONTACT>). Only one contact person is allowed. The optional declaration of a contact person is allowed, if the client is a company. Only <NAME> or <EMAIL1> has to be set in the element <CONTACT>.

Element Description Data type
NAME1 Last name String
NAME2 First name String
ADDRESS Salutation (for Germans: NOT Addresse!) Char
STREET Road String
ZIP Postal code String
CITY Town String
EMAIL1 e-mail String
EMAIL2 Alternative e-mail String
INVOICE-EMAIL The email address for invoices String
PHONE2 Alternative phone number String
FAX1 Fax number String
FAX2 Alternative fax number String
MOBIL1 Cell phone number String
MOBIL2 Alternative cell phone number String
PERS-TYPE Type of person String
MATCHCODE Matchcode String
MATCHCODE-SM Matchcode-SM String
VIP VIP code String
VIP2 Alternative VIP Code String
GUEST-ID OBJID of the contract profile Unsigned long
CENTRAL-CONTACT-ID Central ID of the contact profile Unsigned long

4rd scope: Persons

The fourth scope contains the persons of the name list (). As this element is an optional element, too. Only or has to be set in . contains the sex: 1 = female, 0 = male. and are used to assign the persons into rooms. Please note that the counter starts with zero. Example: = 0, = 1 means: 1. Room, 2. Person Within the scope of the person, there can be a definition of the rates and prices to be applied to the guest. With this function the system could apply, e.g. room only on the first person, a breakfast for the second person and a massage for the 3rd person in the room. The structure is equal to on the level of the person. Here we have . Both structures should be filled. Elements in PERSON:

Attribute Description Data type
ROOM-SEQ Sequence number for the persons room Short
ROOM-PERS-SEQ Sequence number of the person in its room Short
GUEST-ID If set, all other input will be ignored and the guest with this unique SIHOT.PMS ID will be used. Unsigned long
NAME Last name String
NAME1X Second Surname ( Spain) String
NAME2 First name String
STREET street String
ZIP Postal code String
CITY Town of the person String
CITY2 Additional information about the town String
DOB Date of birth Date
AGE Age of the person Short [0 – 130]
COUNTRY Country string which is the concatenation of COUNTRY-CODE, STATE and POST-AREA String
COUNTRY-CODE Country of the client (ISO 3166 (A2) coded) String
STATE State where the person lives String
POST-AREA Region where the person lives String
NATION Nation String
TITLE Code for title, e.g. "0"=Dr. Char
ADDRESS Code for salutation Char
PERS-ADDRESS or
P-ADDRESS

Personal Address, e.g.:

0 Dear Sir or Madam,
1 Dear Mr
2 Dear Ms

This personal address is equal in SIHOT.WEB and SIHOT.PMS. They should by equal in external systems, too.

Char
SEX M->male and F->female Char
PHONE Phone number String
FAX Fax number String
EMAIL e-mail String
COMMENT Short comment String
FB-COMMENT Food & Beverage comment String
KITCHEN-COMMENT Kitchen comment String
PO-BOX (obsolete: POBOX) Postal code String
ARR The guests’ arrival date. If not set, the arrival date from the reservation is used Date
DEP The guests departure date Date
PERS-TYPE Guest type String
SEX Gender Char
CAT Room type (could differ from the one set in the reservation data) String
PCAT Room type for rate calculation String
MULTOC Flag if multiple categories are supported Char
LANG The guests language String
INTERNET-PWD The guests internet password String
MATCHCODE Matchcode String
DISCOUNT-GROUP Discount group String
CENTRALGUEST-ID Central guest ID Unsigned long
ARR-TIME Arrival time of the guest Time
DEP-TIME Departure time of the guest Time
RN Room number String
STATUS Status of the person String
VIP VIP code String
VIP2 Alternative VIP code String
ADDRESS-CORRESPONDENCE The guests address for correspondence String
NAME-CORRESPONDENCE The guests name for correspondence String
PERS-RATE Block with the guests rates
R Package/service code String
ISDEFAULT Flag if it is the default rate Char
QUANTITY Number of times this package is booked Short
DAYS Block with day and price information
D Day Date
PRICE Amount Decimal
DOCUMENT-TYPE String
DOCUMENT-NUMBER String
DOCUMENT-EXPEDITIONCOUNTRY String
DOCUMENT-EXPEDITIONDATE Date
DOCUMENT-EXPIREDATE Date
AUTO-GENERATED Unknown guest won’t be stored in DB Char
T-SPECIAL-MEAL ID for a special meal, by example for allergic persons String

Answer OC:RES

If an error occurs during the transmission, an error message is sent to SIHOT.WEB:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
<OC>RES</OC>
<ID>1</ID>
<TN>1</TN>
<RC>1</RC>
<MSG>Error Message</MSG>
</SIHOT-DOCUMENT>

The answer from SIHOT.PMS to SIHOT.WEB or from SIHOT.WEB to an external system can look e. g. in such a way, if the transmission was successful:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-Document>
<SIHOT-Version>
<Version>9.0.0.0000</Version>
<EXE>D:\\sihot\\sinetres.exe</EXE>
</SIHOT-Version>
<TN>1</TN>
<ID>1</ID>
<OC>RES</OC>
<RC>0</RC>
<OBJID>4711</OBJID>
<GDSNO>UNIQUEGDSNUMBER</GDSNO>
<RESERVATIONACCOUNT-ID>1234</RESERVATIONACCOUNT-ID>
</SIHOT-Document>
Element Description Data type
OBJID Unique ID for this reservation Unsigned long
GDSNO Same GDS number as transferred in the request String
RESERVATIONACCOUNT-ID Account id for the reservation account, if a reservation account exists Unsigned long

Error Messages

The following error messages are possible:

RC MSG Description
1 PROCESSING OF THIS MESSAGE FAILED An unexpected error occurred during the search for the reservations. For further information check the log file named “SIHOTTOWEB.log”.
23 FAULT DURING READING RESERVATIONS FROM DATABASE An error occurred during the reading of the reservation from the database.
24 GUEST DATA OF RESERVATION WITH SIHOT.WEB RES. NO. –XY- COULD NOT TRANSFORMED TO XML The data of the client and/or the future elements under <RESERVATION> could not be converted to XML. The reservation number is the internal reservation number of SIHOT.WEB.
25 SERVICES FROM RESERVATION WITH SIHOT.WEB RES. NO. –XY- COULD NOT TRANSFORMED TO XML The services and/or arrangements under the future elements <RATE> could not be converted to XML. The reservation number is the internal reservation number of SIHOT.WEB.
26 GUEST GROUPS FROM RESERVATION WITH SIHOT.WEB RES. NO. –XY- COULD NOT TRANSFORMED TO XML The person groups under the future elements <APERS-TYPE-LIST> could not be converted to XML. The reservation number is the internal reservation number of SIHOT.WEB.
27 CONTACT PERSON FROM RESERVATION WITH SIHOT.WEB RES. NO. -$- COULD NOT TRANSFORMED TO XML The contact person, under the future element <CONTACT> could not be converted to XML. The reservation number is the internal reservation number of SIHOT.WEB.
28 NAMELIST FROM RESERVATION WITH SIHOT.WEB RES. NO. -$- COULD NOT TRANSFORMED TO XML The persons of the name list, under the future elements <PERSON> could not be converted to XML. The reservation number is the internal reservation number of SIHOT.WEB.
29 NO RESERVATIONS FOUND No reservations were found.
30 RESERVATION TRANSMISSION WAS NOT SUCCESSFUL Transmission of reservations to SIHOT.PMS failed.

Transmission of encrypted reservations

In order to save secure data from foreign access, SIHOT.WEB can send reservations with encrypted data to SIHOT.PMS. This is done with the AES algorithm.

Direction

SIHOT.PMS ← SIHOT.WEB

Message OC: RES_AES

<?xml version="1.0"
encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
  <OC>RES_AES</OC>
  <ID>1</ID>
  <TN>1</TN>
  <RC>0</RC>
  <MSG>OK</MSG>
  <CONTENT>ME/DkcvfruqcF0Dz1A/5yihG+RHNwRbj8WifySLq9T/t8sJUtcMhAGJ1fFAC6AL+wm0LmqMjIuLgMI+KsbLkCAVWjSeze9lq6LaiP3jwWZzKiwGNlKxJAIjWx5aMN2ITJTk1EK9PMJdJ8rFFQZqOdTGVhMxZt3okl3uNDg2V/ySiVOZ9khVMbO9hHS6vR5Dih9RklSb1E/VIRIdEce/7E0PXj/5vRy0UTLjwZh8x8xbTSlS8umn0e9Z5Cdb6B0DLLR6DIV1uKuNXng/IlgDiNXP0BWng2Lb+iATGgfTxNiknbjRTwAr1+K/6mwEVvt2PE7UtOzpONaGdhZzGQNBDdX1zqb1Wlhl1SV3xAVcX8uQYqwKMCusufL4VD/XaUiExXAaGUsTxmdh9Lx1S1q+EwwazRcHY6US4zs9bf9XqqiKDdLBe4uVRYNu38jo2LNWOHCOiOn0Jvici0TFlULP2n7Z9PXnMtSgu+GpyFvXe1r5AuHLusqaACKqBYZrlfy2Slkakh8u5FodAkWjN3KqfrxILUIozgS66HR2TyPsMY90/yuQM7t9pU+ZchhJL6AuUXT2RON0UFQobbwBwDbpg2IsKIfn+8Y5ud1MDS6S4AMncofKJBUdWx09o4w+nT00O6C3UbrngpMZpG5gHoh1NcNwH9vdwYJJ5PXeRsYJHmbND3GI9HxCUx4N+7NLPcjEeYHnHIzGn5FauGscXktgv4xaSqYu0WNtNosbBORv7QloCfq4cs4RFAaY5i6Uz0uC3gE2Mfmo9Ut+IOZd6P1SdtX4Uzb33lEUjr1AaVnAaLdUwjPwBGd0yoPXcY/ewEyizug7OEgEIA9TMI+LlTXsScYz+0WrbXaT1VyvZTxAohKgBCoU8iOnPEH9G1AGvTGSuhSoKq3vkr7sO7bLdavGHY9hnP5upQ2sb7D7Fq1hXX5E=
  </CONTENT>
</SIHOT-DOCUMENT>

The attribute contains the element . was AES (128 Bit) encrypted first and then Base64 coded. To decode the content of , you have to decode it by Base64 and decrypt it by AES. Therefore you need a private key, which has to be on the SIHOT.WEB and SIHOT.PMS side. The private key has to be allocated during the configuration. SIHOT.WEB only sends reservations from type RES_AES, if SIHOT.PMS supports the function AES (see Transmission of supported functions).

Request for reservations by SIHOT.PMS

With a loss, or purpose adjustment, SIHOT.PMS can request the transmission of reservations from SIHOT.WEB. SIHOT.WEB can also request a specific reservation.

Direction

SIHOT.PMS → SIHOT.WEB (only S) SIHOT.PMS ← SIHOT.WEB (only SS)

Message OC:S

SIHOT.PMS requests the reservations not transferred yet (S) of SIHOT.WEB.
This function is deprecated and should not be used any more.

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
  <OC>S</OC>
  <ID>1</ID>
  <TN>1</TN>
</SIHOT-DOCUMENT>

The answer is a structure of the type RES.

Message OC: SS

SIHOT.WEB requests a specific reservation (SS) from SIHOT.PMS. The purpose is to verify that the reservation in both systems is equal even when the reservation has changed within SIHOT.PMS.

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
  <OC>SS</OC>
  <ID>1</ID>
  <TN>1</TN>
  <GDSNO>4711<GDSNO>
  <CENTRAL-RESERVATION-ID><CENTRAL-RESERVATION-ID>
  <SCOPE>scope1;scope2;…</SCOPE>
</SIHOT-DOCUMENT>
Elements Description Data type
GDSNO Unique GDS number of this reservation String
CENTRAL-RESERVATION-ID Unique central ID of this reservation in a HQ system Unsigned long
SCOPE See table below String
RES-NR Reservation number Long
SUB-NR Reservation sub number Short
TN Transaction number String
OBJID Unique ID of the reservation in SIHOT.PMS Unsigned long

Regarding to the attribute SCOPE the request returns additional information. Following scopes are handled:

SCOPE Description
BASICDATAONLY Only basic reservation data is returned
CALCTOTALPRICE Information about the total rates are returned, see table below
RETURNRESERVATIONACCOUNT-ID Returns RESERVATIONACCOUNT-ID if a reservation account exists
RETURNCOMPONENTS Adds A-COMPONENT-LIST-PMS to the answer
RETURNCANCELLATIONINFOS Adds CANCELLATIONINFOS to the answer, if rule handling is activated.
RETURNRULEINFOS Adds RULE Blocks to every RATE Block
FORCECALCDAYPRICE Adds DAY-PRICE to every RATE Block
CALCSUMDAYPRICE Adds SUM_DAY_PRICE to every RATE Block
SENDONLYMAINCATEGORY Returns the main category if the reservation category is a sub category
DONTSENDIDS Removes CENTRALGUEST-ID, RES-HOTEL, RES-NR, SUB-NR, OBJID, CENTRAL-RESERVATION-ID from the response
DONTSENDPOINTRATES Removes point rates from the response
ONLYRATESFORHOTEL Checks the booking code of the package and returns only those that are available for the hotel
DONTSENDPRICES Removes daily rates from the response
USEISODATE Returns dates in iso code (instead hotel specific day format)
NORATES Removes all rates from the response
NOPERSONS Removes guests from the response
NORESCHANNELS Removes reservation channels from the response
NOPERSTYPES Removes APERS-TYPE-LIST from the response
NOCCLIST Removes CCLIST from the response
NOFIDELITY Removes FIDELITYLIST from the response
NOFIDELITYORDERER Removes FIDELITYORDERERLIST inside ORDERER Block
NOTIMESHARE Removes TIMESHARE-DETAILS
NOKTG Removes KTG fields from the response
NOORDERER Removes the orderer from the response
NODEPOSIT Removes DEPOSIT-DATE(i) and DEPOSIT-AMOUNT(i) from the response
EXPORTEXTENDEDCOMMENT Adds extended comments to COMMENT Element
DONTSENDCENTRALCOMMENT Removes EXTCOMMENT-C
CONVERTRESTYPESFORPMS Converts timeshare reservation types to standard PMS reservation types (Hapimag only)
CUTOFFRESMOVETAGFROMGDSNO Removes res move data from GDS number (Hapimag only)
TIMESHAREDETAILS Adds TIMESHARE-DETAIL to the response
CALCSUMROOMPRICE Sums are calculated for each room
CALCLOSTPOINTS Adds LOST_POINT_INFO to the answer (Hapimag only)
EXPORTPREFERABLYLASTREALUSER LAST-MOD and LAST-MOD-BY uses real user data only
NODAYPRICE Removes day prices from the response
CALCEXCLUDEDREVENUE Adds the total excluded revenue price. If this scope is set, the TOTAL-PRICE includes the excluded revenues.
RETURNGUESTPROGRAMINFOS In RES-SEARCH request, information about guestprograms will be returned
GETRELATEDINVOICES This flag returns all related invoices to the returned reservation back. Considered are invoices from reservation, guest, client and misc. folios.

Answer

The answer is a structure of the type RES, and additionally it includes the following elements (depending on the scope):

Element Description Data type
PRICE_TOTAL Total price for the package/service Decimal
PRICE_CUR Total rate in exchange currency Decimal
SUM_DAY_PRICE Sum of all rates Decimal
SUM_DAY_PRICE_TOTAL Total sum of all rates Decimal
SUM_DAY_CURRENCY Currency for the sum String
CREATION-DATE Day of creation Date
CREATION-TIME Time of creation Time
CREATED-BY User code String
INSURANCETYPE Type of insurance String

Additional elements with scope CALCTOTALPRICE

Element Description Data type
TOTAL-PRICE Total rate gross or net Decimal
TOTAL-PRICE-GROSS Total rate gross Decimal
TOTAL-PRICE-NET Total rate net Decimal
TOTAL-UNDISCOUNTED-PRICE Without discount Decimal
TOTAL-UNDISCOUNTED-PRICE-GROSS Without discount gross Decimal
TOTAL-UNDISCOUNTED-PRICE-NET Without discount net Decimal

Additional elements with scope CALCEXCLUDEDREVENUE

Element Description Data type
TOTAL-EXCLUDED-REVENUE Total excluded revenue Decimal
TOTAL-WITHOUT-EXCLUDED-REVENUE Total without excluded revenue Decimal

Additional elements with scope A-COMPONENT-LIST-PMS

Element Description Data type
COMPONENT Block with a single component
SID Service code String
PRICE Sales with this component Decimal
NUM-POSTINGS Number of postings of this component Long

Additional elements with scope CANCELLATIONINFOS:

Element Description Data type
RULECOST Block with single rule costs
AMOUNT Costs Decimal
RULEID ID of this rule String
RULENAME Name of the rule String
DATE Date Date
TYPE Type of the rule String
CURRENCY Currency for the amount String

Beside the RULECOST Blocks, following elements are returned inside Block CANCELLATIONINFOS:

Element Description Data type
SUMFEE Sum of SUMHANDLINGFEE and SUMDAILYFEE Decimal
SUMHANDLINGFEE Service charge cost Decimal
SUMDAILYFEE Daily cost Decimal
SUM_CURRENCY Block with rulecost data for different currencies
CURRENCY Currency used String

Additional elements with scope RETURNRULEINFOS:

Element Description Data type
RULE Block with single rule information
RULEID ID of the given rule String
RULENAME Name of the given rule String
L-COMMENTS List of comments for this rule
VALIDASOF Rule is valid from Date
CURRENCY Currency used for this rule String
NOTOLERANCEDAYS Number of tolerance days Long
USAGETYPE Usage description for this rule Long
CALCOPT Options for this rule Long
OLDRESTYPE Old reservation type Char
NEWRESTYPE New reservation type Char
TIMEENTRY Block with single time entry information
DAYBEFOREARR Number of days before arrival Long
CHARGEFACTOR Charge percentage Decimal
MINPERDAY Minimum amount per day Decimal
MAXPERDAY Maximum amount per day Decimal
NOMAXDAYS Maximum Number of days Long
HANDLINGFEE Service charges Decimal

Additional elements with scope TIMESHARE-DETAIL:

Element Description Data type
SERIALNR Serial number for this timeshare String
REFNR Reference number String
SAISON Saison code String
POINTS Number of points Decimal
WEEKS-OR-ROOMS Number of weeks and rooms Short
TYPE Timeshare type String
Element Description Data type
INVOICE Block with a single invoice information
HOTEL-NO Hotel number where the invoice was issued long
INVOICE-NO Invoice number long
INVOICE-NUMBERSET The invoice number set where the invoice was created in String
EXTERNAL-INVOICE-NO The external invoice number, if configured String

Answer OC:RES

If no reservations could be found after a S request, SIHOT.WEB sends the following answer to SIHOT.PMS:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
    <OC>RES</OC>
    <ID>1</ID>
    <TN>1</TN>
    <RC>29</RC>
</SIHOT-DOCUMENT>

For error messages see chapter RES. If an error occurs during the S or SA request, an error message is sent to SIHOT.PMS. An error code “0” means that no error occurred.

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
    <OC>RES</OC>
    <ID>1</ID>
    <TN>1</TN>
    <RC>1</RC>
    <MSG>error message</MSG>
</SIHOT-DOCUMENT>

If the scope contains CALCTOTALPRICE following additional information is returned in the RESERVATION-Block:

<RESERVATION>
    …
    <TOTAL-PRICE>20</TOTAL-PRICE>
    <TOTAL-HSP>104</TOTAL-HSP>
    <!-- if Main-season points exists -->
    <TOTAL-NSP>84</TOTAL-NSP>
    <!-- if Low-season points exists ->configured -->
    …
</RESERVATION>
Attribute Description Data type
TOTAL-PRICE total price Decimal
TOTAL-HSP total Main-season points (if configured and exists) Integer
TOTAL-NSP total Low-season points (if configured and exists) Integer

If the scope contains RETURNCANCELLATIONINFOS following additional information is returned in the RESERVATION-Block:

<RESERVATION>
…
    <CANCELLATIONINFOS>
        <RC>0</RC>
        <ERRMSG/>
        <AUTHCODE>1567902572</AUTHCODE>
        <RULECOST>
            <AMOUNT>15</AMOUNT>
            <RULEID>R1</RULEID>
            <RULENAME>Rule 1</RULENAME>
            <DATE/>
            <TYP>0</TYP>
            <CURRENCY/>
        </RULECOST>
        <RULECOST>
            <AMOUNT>20</AMOUNT>
            <RULEID>R1</RULEID>
            <RULENAME>Rule 1</RULENAME>
            <DATE>2008-10-23</DATE>
            <TYP>1</TYP>
            <CURRENCY>USD</CURRENCY>
        </RULECOST>
…
        <SUMFEE>678.50</SUMFEE>
        <SUMHANDLINGFEE>15.50</SUMHANDLINGFEE>
        <SUMDAILYFEE>663</SUMDAILYFEE>
        <SUM_CURRENCY>
            <CURRENCY>USD</CURRENCY>
            <SUMFEE>100.0</SUMFEE>
            <SUMHANDLINGFEE>80.00</SUMHANDLINGFEE>
            <SUMDAILYFEE>20.00</SUMDAILYFEE>
        </SUM_CURRENCY>
    </CANCELLATIONINFOS>
…
</RESERVATION>
Attribute Description Data type
CANCELLATIONINFOS
RC
0 get-cancellationinfos succeed
1 get-cancellationinfos failed
ERRMSG Error-message, if RC = 1 String
AUTHCODE The AUTHCODE is used in order to ensure that the cancellation-conditions according the rule-handling didn’t be changed between this SS-request and a subsequent RES-request (see RES-request). String
SUMFEE Sum of all fees (no foreign currencies). Decimal
SUMHANDLINGFEE Sum of all handling fees (no foreign currencies). Decimal
SUMDAILYFEE Sum of all daily fees (no foreign currencies). Decimal
RULECOST Block for information about a separate rule cost. String
AMOUNT amount Decimal
RULEID ID of the rule String
RULENAME Name of the rule String
DATE The date for the daily fee Date
TYP
0 Handling fee
1 Daily fee
Char
CURRENCY Currency of the rule cost or empty, if no foreign currency. String
SUM_CURRENCY Block for information about sums of rule costs for foreign currencies.
CURRENCY The foreign currency for the block SUM_CURRENCY String
SUMFEE Sum of all fees for the foreign currency. Decimal
SUMHANDLINGFEE Sum of all handling fees for the foreign currency. Decimal
SUMDAILYFEE Sum of all daily fees for foreign currency. Decimal

If the scope contains RETURNRULEINFOS following additional information is returned in the RATE-Block:

<RATE>
…
    <RULE>
        <RULEID>R1</RULEID>
        <RULENAME>Rule 1</RULENAME>
        <L-COMMENTS>
            <COMMENT>
                <LANG>DE</LANG>
                <T>…</T>
            </COMMENT>
            <COMMENT>
                <LANG>EN</LANG>
                <T>…</T>
            </COMMENT>
        </L-COMMENTS>
        <VALIDASOF>2008-10-23</VALIDASOF>
        <CURRENCY>EUR</CURRENCY>
        <NOTOLERANCEDAYS>2</NOTOLERANCEDAYS>
        <USAGETYPE>1</USAGETYPE>
        <USAGETYPE>2</USAGETYPE>
…
        <CALCOPT>1</CALCOPT>
        <CALCOPT>2</CALCOPT>
…
        <OLDRESTYPE>1</OLDRESTYPE>
        <OLDRESTYPE>2</OLDRESTYPE>
        <NEWRESTYPE>S</NEWRESTYPE>
        <TIMEENTRY>
            <DAYBEFOREARR>50</DAYBEFOREARR>
            <CHARGEFACTOR>100</CHARGEFACTOR>
            <MINPERDAY>0</MINPERDAY>
            <MAXPERDAY>10000</MAXPERDAY>
            <NOMAXDAYS>0</NOMAXDAYS>
            <HANDLINGFEE>15</HANDLINGFEE>
        </TIMEENTRY>
        <TIMEENTRY>
…
        </TIMEENTRY>
    </RULE>
    <RULE>
…
    </RULE>
…
</RATE>
Attribute Description Data type
RULE
RULEID ID of the rule String
RULENAME Name of the rule String
L-COMMENTS Description of the rule in all languages
VALIDASOF Valid as of Date
CURRENCY Currency of the rule String
NOTOLERANCEDAYS Number of tolerance days Integer
CALCOPT
1 Calculate handling fees only once per day/reservation no
2 Calculate daily fees only once per day/reservation no
4 Do not apply handling fees on the day of entering the reservation
8 Do not apply daily fees on the day of entering the reservation
16 Calculate ‘days before arrival’ every day for daily fees
32 Calculate daily fees only for logis-costs
64 Apply rule also after arrival
Integer
USAGETYPE
1 Reservation cancellation
2 Shorten period
4 Extend period
8 Move period
16 Upgrade category
32 Downgrade category
Integer
TIMEENTRY Block for information of an entry in the time scale

Transmission of cancelled reservations

SIHOT.WEB can directly transmit cancelled reservations, if the reservation already exists in the PMS.

Direction

SIHOT.PMS ← SIHOT.WEB

Message OC:RES-CANCEL

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
  <OC>RES-CANCEL</OC>
  <ID>1</ID>
  <TN>1</TN>
  <ARESLIST>
    <RESERVATION>
      <RT>S</RT>
      <GDSNO>67890</GDSNO>
      <CENTRAL-RESERVATION-ID>12345</CENTRAL-RESERVATION-ID>
    </RESERVATION>
  </ARESLIST>
</SIHOT-DOCUMENT>

Elements/Attributes

Elements Description Data type Usage
RT Type of reservation, needs to be a cancellation type Char Mandatory
GDSNO Unique GDS number of the reservation to be cancelled String

Both fields are mutually

Exclusive mandatory

CENTRAL-RESERVATION-ID Unique central ID of the reservation in a HQ system Unsigned long
REASONFORCANCELLATION Reason for cancellation String Mandatory, if a cancellation reason need is configured as compulsory
CREATE-AUTOTRAIL-INTR Flag if a trail is set. By example an e-mail is sent to the reservation client Char Optional

Answer OC:RES-CANCEL

Successful cancellation: 0

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-Document>
    <SIHOT-Version>
        <Version>9.0.0.0</Version>
        <EXE>D:\\sihot\\sinetres.exe</EXE>
    </SIHOT-Version>
    <TN>1</TN>
    <ID>1</ID>
    <OC>RES-CANCEL</OC>
    <RC>0</RC>
    <MSG>reservation with GDSNO: 123456789 successfully cancelled</MSG>
    <MSG-LIST></MSG-LIST>
</SIHOT-Document>

Unsuccessful cancellation

When an error occurs, the return code ( ) contains a non-zero value: 1. The message tag () contains further information. Samples:

Error message Possible reasons
invalid reservation type given The element in the cancel-request <RT> contains a wring reservation type which does not indicate a cancelled reservation.
Reservation with GDSNO: ABC not successfully cancelled The reservation with the given GDS number does not exist
no gdsno or central-reservation-id given One if the required fields <GDSNO> or <CENTRAL-RESERVATION-ID> is given or both values are empty.

Transmission of reservation notifications

SIHOT.WEB can directly transmit notifications as reservation “traces/trail”, if the reservation already exists in the PMS.

Direction

SIHOT.PMS ← SIHOT.WEB

Message OC RES-NOTIFICATION

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
    <OC>RES-NOTIFICATION</OC>
    <TN>1</TN>
    <GDSNO>20160102</GDSNO>
    <NOTIFICATION>
        <STATUS>0</STATUS>
        <COMMENT>comment</COMMENT>
        <DESC>desc</DESC>
        <USER>AES</USER>
        <TYPE>2</TYPE>
        <TIME>11:11:00</TIME>
        <DATE>2016-01-02</DATE>
        <LOCATION>BAR</LOCATION>
    </NOTIFICATION>
</SIHOT-DOCUMENT>

Elements/Attributes

Elements Description Data type Mandatory
NOTIFICATION Block for the trace elements Mandatory
GDSNO Unique GDS number of the reservation String *Mandatory
CENTRAL-RESERVATION-ID Unique central ID of the reservation in a HQ system Unsigned Long *
RES-NR Number Signed INT *
SUB-NR Subnumber Signed INT
DATE Trace Date Date Mandatory
TIME Trace Time Time Optional
COMMENT Trace Comment String Mandatory
STATUS Trace Status String Optional
USER Trace User String Optional
LOCATION Trace Location String Optional
DESC Trace Description String Optional
TYPE Trace Sub Type String Mandatory

Answer OC RES-NOTIFICATION

Successful cancellation: 0

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-Document>
    <SIHOT-Version>
        <Version>9.0.0.0</Version>
        <EXE>D:\\sihot\\sinetres.exe</EXE>
    </SIHOT-Version>
    <OC>RES-NOTIFICATION</OC>
    <TN>1</TN>
    <ID>754</ID>
    <RC>0</RC>
    <MSG>OK</MSG>
</SIHOT-Document>

Unsuccessful cancellation

When an error occurs, the return code ( ) contains a non-zero value: 1. The message tag () contains further information.

Request for guest reservations by SIHOT.PMS

This request returns reservations for a certain guest profile. The returned information is reduced to basic information of reservation and rooming list data. The request is highly optimized for SQL and ISAM database and performs very fast in order to display an overview of all bookings. Detailed information of a booking can be requested by SS requests.

Direction

SIHOT.PMS → SIHOT.WEB SIHOT.PMS ← SIHOT.WEB

Message OC GET-GUEST-RESERVATIONS

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
    <VER>1.0</VER>
    <OC>GET-GUEST-RESERVATIONS</OC>
    <ID/>
    <TN>10711222</TN>
    <SCOPE>PIPELINES;PERSONS</SCOPE>
    <PIPELINE>4</PIPELINE>
    <RT>1;2;S</RT>
    <GUEST-OBJID>64</GUEST-OBJID>
    <CENTRAL-GUEST-ID>123</CENTRAL-GUEST-ID>
    <FROM>2010-08-01</FROM>
    <TO>2017-01-25</TO>
    <HOTEL>1</HOTEL>
    <FLAGS>ALL-HOTELS;WITH-PERSONS</FLAGS>
</SIHOT-DOCUMENT>
Attribute Description Data type Usage
OC GET-GUEST-RESERVATIONS String Mandatory
ID Hotel ID Integer Mandatory
TN Transaction number Unsigned Long Optional
SCOPE Defines the search scope. At least one scope is needed. See further below String Mandatory
PIPELINE

Possible values are:

‘0’ = orderer,

‘1’ = travel agency,

‘2’ = travel point,

‘3’ = contact person,

‘4’ = all pipelines

The default value is ‘0’

Char Mandatory, if scope PIPELINES is used
RT

Multiple reservation type separated by ;

Some examples for reservation type. Full list needs to be requested from the customer

1 Reservation guaranteed
2 Reservation not guaranteed
S cancellation
E Error reservation, availability is not updated.
K allotment
Char Optional
GUEST-OBJID OBJID from guest Unsigned long Mandatory, if CENTRAL-GUEST-ID not set
CENTRAL-GUEST-ID Central ID from guest Unsigned long Mandatory, if GUEST-OBJID not set
FROM From date of the requested reservations Date Optional
TO To date of the requested reservations Date Optional
HOTEL Reservations only from this hotel are returned. Only needed if the flag ALL-HOTELS is not given. Integer Mandatory, if flag ALL-HOTELS is not used. One of the fields HOTEL, REGION, BRAND or HOTEL-CRITERIA has to be set.
REGION A hotel region can be provided, which will determine all hotels of a region. String Mandatory, if flag ALL-HOTELS is not used. One of the fields HOTEL, REGION, BRAND or HOTEL-CRITERIA has to be set.
BRAND A hotel brand can be provided, which will determine all hotels of a brand. String Mandatory, if flag ALL-HOTELS is not used. One of the fields HOTEL, REGION, BRAND or HOTEL-CRITERIA has to be set.
HOTEL-CRITERIA Hotel criteria can be provided, which will determine all hotels of a criteria. String Mandatory, if flag ALL-HOTELS is not used. One of the fields HOTEL, REGION, BRAND or HOTEL-CRITERIA has to be set.
ROOMING-LIST-FREE-TEXT-SEARCH

The field searches on the rooming list only for the given string in the following field:

First-, Middle-, Lastname, Street, ZIP, City, Voucher Number, Reference Number, E-Mail Address, E-Mail Address for billing, Mobile Number and Comment

String Optional
FLAGS See table below, values are semicolon(;)-separated String Optional
SCOPE Description
PIPELINES This option defines which reservation pipeline will be searched for the given guest profile. If this option is send it also requires the element <PIPELINE/> to be passed in.
PERSONS This option enables the search for the given guest profile on the rooming list. It only searches within the rooming list, but without the flag WITH-PERSONS, no information about the guests will be returned
FLAGS Description
ALL-HOTELS Searches reservations over all hotels. If this FLAGS is passed in, the element <HOTEL/> is not needed
WITH-PERSONS This flag is used, if the rooming list is required within the answer. If there is a rooming list, the <APERSONLIST/> will be included into the answer
RC MSG Description
0 OK the request was processed correctly
1010 No GUEST-OBJID given! No or an invalid GUEST-OBJID was sent in
1011 No CENTRAL-GUEST-ID or GUEST-OBJID given! Nor an valid GUEST-OBJID, neither an valid CENTRAL-GUEST-ID was sent in
1025 Invalid SCOPE given! Must be PIPELINES or PERSONS or PIPELINES;PERSONS One scope needs to be used. Either PIPELINES or PERSONS or PIPELINES;PERSONS must be used
1030 Invalid PIPELINE given! Must be: 0 orderer, 1 travel office, 2 travel agency, 3 contact person, 4 all Please use as value for the PIPELINE element 0 for orderer, 1 for travel office, 2 for travel agency, 3 for contact person, 4 for all pipeline
1040 No PIPELINE given! Must be: 0 orderer, 1 travel office, 2 travel agency, 3 contact person, 4 all Please use as value for the PIPELINE element 0 for orderer, 1 for travel office, 2 for travel agency, 3 for contact person, 4 for all pipeline, or do not use the scope PIPELINES
1050 No HOTEL given! Please use a valid hotel number in element HOTEL or use the flag ALL-HOTELS
1060 Invalid reservation types given! Must be res_type1;res_type2; ... Please use a valid reservation type or valid combination or reservation type.
2010 Res search failed: (ERROR MESSAGE) The reservation search was not successful, please contact the SIHOT support

Answer OC GET-GUEST-RESERVATION

<?xml version="1.0" encoding="ISO-8859-1"?>
<SIHOT-DOCUMENT>
    <SIHOT-Version>
        <Version>v9.0.0.0787.CO.101</Version>
        <EXE>sinetres.exe</EXE>
    </SIHOT-Version>
    <OC>GET-GUEST-RESERVATIONS</OC>
    <RC>0</RC>
    <TN>157</TN>
    <MSG/>
    <ARESLIST>
        <RESERVATION>
            <OBJID>967</OBJID>
            <CENTRAL-RESERVATION-ID>2345</CENTRAL-RESERVATION-ID>
            <FROM>2011-08-15</FROM>
            <TO>2011-08-18</TO>
            <RES-HOTEL>1</RES-HOTEL>
            <RES-NR>55</RES-NR>
            <SUB-NR>2</SUB-NR>
            <GDSNO/>
            <RT>1</RT>
            <TOTAL-PRICE>50</TOTAL-PRICE>
            <MARKETCODE/>
            <MEDIA/>
            <SOURCE/>
            <CHANNEL/>
            <NN/>
            <ORDERER>
                <NAME>AMEROPA</NAME>
                <NAME1X/>
                <NAME2/>
            </ORDERER>
            <APERSONLIST>
                <PERSON>
                    <NAME>Berger</NAME>
                    <NAME1X/>
                    <NAME2>Jens</NAME2>
                    <ROOM-SEQ>0</ROOM-SEQ>
                    <ROOM-PERS-SEQ>0</ROOM-PERS-SEQ>
                </PERSON>
            </APERSONLIST>
        </RESERVATION>
    </ARESLIST>
</SIHOT-Document>
Attribute Description Data type
OC GET-GUEST-RESERVATIONS String
ID Hotel ID Integer
TN Transaction number Unsigned Long
OBJID Internal reservation ID, unique within a database Unsigned Long
CENTRAL-RESERVATION-ID Central ID of the reservation Unsigned Long
FROM Arrival date of this reservation Date
TO Departure date of this reservation Date
RES-HOTEL Hotel where this reservation is made Integer
RES-NR Reservation number Long
SUB-NR Reservation sub number Short
GDSNO GDS number String
RT

Reservation type

Some examples for reservation type. Full list needs to be requested from the customer

1 Reservation guaranteed
2 Reservation not guaranteed
S cancellation
E Error reservation, availability is not updated.
K allotment
Char
TOTAL-PRICE The forecasted price of the entire reservation Decimal
MARKETCODE Market code String
MEDIA Reservation medium String
SOURCE The ID of the source system String
CHANNEL Reservation channel ID String
NN Not named String
ORDERER Represents the orderer of the reservation BLOCK
APERSONLIST Representing the rooming list of the reservation Contains a list of PERSONS BLOCK

Block Orderer

Attribute Description Data type
NAME Last name of the orderer guest profile String
NAME1X Second last name of the orderer guest profile String
NAME2 First name of the orderer guest profile String

Block PERSONS

Attribute Description Data type
NAME Last name of the orderer guest profile String
NAME1X Second last name of the orderer guest profile String
NAME2 First name of the orderer guest profile String
ROOM-SEQ Sequence number of this room. All persons with the same ROOM-SEQ number share a room Short
ROOM-PERS-SEQ Sequence number of persons that share this room Short