Endpoints.

All XML messages within the Smarthotel specifications require a REST Request POST method to an endpoint. Also a HTTP header is required. Name and value can be found below. (Please note that these credentials are only valid for the testing environment.) For testing purposes we advise to use for example the RESTClient plug in for Firefox or something alike.

The endpoints for our testing environment are:

Availability Rates, Inventory, and the PMS OTA_ReadRQ:

https://acceptance.smarthotel.nl/API/API.aspx

Header:
WhiteLabelID: 1020 (only applicapble for OTA & OBE connetions)
For testing purposes, this WhiteLabelID is 1020, in production, this number is variable per hotel.

Availability Rates, Inventory, and the PMS OTA_ReadRQ for SmartCONNECT

https://acceptance.smarthotel.nl/Connect/API/API

no header is required.

OTA Reservations:

These endpoints are for the OTA & OBE connections only.

New reservations: https://acceptance.smarthotel.nl/Reservations/OTA_HotelResNotifRQ.aspx

Modifications: https://acceptance.smarthotel.nl/Reservations/OTA_HotelResModifyNotifRQ.aspx

Cancellations: https://acceptance.smarthotel.nl/Reservations/OTA_CancelRQ.aspx

WhitelabelID header is required.

Extranet Access:

https://acceptance.smarthotel.nl/Connect/UI/login

Please note that above mentioned endpoints are not valid for our production environment and can be used for testing purposes only. You will receive the endpoints for our production environment after a succesfull certification.

Failed messages:

When any XML message pushed to the Smarthotel production or testing endpoints fails, make sure you log the errors, get notified for this, and have retry mechanisms in place.

Request – POS.

In addition, each request message, with the exception of OTA_PingRQ, requires a POS element with validation information directly under the root element.

The authentication of your messages should be done by an Apikey and a message password. Both will be handed out to you by the Smarthotel team. Both attributes should be entered in the POS element of the message. During Development of the connection, your Apikey and password will give you access to the Sandbox environment only. Only after certification, an Apikey will be handed out for the production environment.

Element / @AttributeParentInfoValuesOccurrence
POSRootPoint of sale object. Point of Sale (POS) identifies the party or connection channel making the request.1
SourcePOSThis holds the details about the requestor. It may be repeated to also accommodate the delivery systems. Provides information on the source of a request.1
RequestorIDSourceAn identifier of the entity making the request.1
@IDRequestorIDA unique identifying value assigned by the creating system.APIKEY (Guid)1
@MessagePassword  RequestorIDThis password provides an additional level of security that the recipient should use to validate the sending party's authority to use the message.[string]1
<POS>
  <Source>
    <RequestorID ID="APIKEY" MessagePassword="Password"/>
  </Source>
</POS>

 

Responses
Success, warnings, and errors.

Each response message will indicate whether the request has been handled successfully. Therefore, directly underneath the root node, either one of the following two blocks can be found.

Success

Element / @AttributeParentInfoValuesOccurrence
SuccessRootThe presence of the empty Success element explicitly indicates that the request message was successful. Returning an empty element of this type indicates the successful processing of an OpenTravel message. This is used in conjunction with the Warning Type to report any warnings or business errors.0..1 (either Success or Errors is present)
WarningsRootUsed in conjunction with the Success element to define one or more business errors. Collection of warnings.0..1
WarningWarningsUsed when a message has been successfully processed to report any warnings or business errors that occurred.1..n
@TypeWarningThe Warning element MUST contain the Type attribute that uses a recommended set of values to indicate the warning type. The validating XSD can expect to accept values that it has NOT been explicitly coded for and process them by using Type ="Unknown".Refer to ‘Error & warning types’ code list1
@CodeWarningIf present, this refers to a table of coded values exchanged between applications to identify errors or warnings.Refer to ‘Error & warning codes’ code list1
<Success />
<Warnings>
  <Warning Type="1" Code="1"> The message was redundant. </Warning>
</Warnings>

 

Error

Element / @AttributeParentInfoValuesOccurrence
ErrorsRootErrors are returned if the request was unable to be processed. A collection of errors that occurred during the processing of a message.0..1
(either Success or Errors is present)
ErrorErrorsAn error that occurred during the processing of a message. Standard way to indicate that an error occurred during the processing of an OpenTravel message. If the message successfully processes, but there are business errors, those errors should be passed in the warning element.1..n
@TypeErrorThe Error element MUST contain the Type attribute that uses a recommended set of values to indicate the error type.Refer to ‘Error & warning types’ code list1
@CodeErrorIf present, this refers to a table of coded values exchanged between applications to identify errors or warnings.Refer to ‘Error & warning codes’ code list0..1
<Errors>
  <Error Type="1" Code="1"> Something went wrong! </Error>
</Errors>

 

Occurrence.

The occurrence column in the specifications determines which information is mandatory or optional. The possible values and their description can be found in the table below.

Occurrence IndicatorDescriptionMandatory / Optional
1One elementMandatory
1..nOne or multiple elementsMandatory
0..1Zero or one elementOptional
0..nZero or one or multiple elementsOptional

Code lists.

On this page, you will find all code lists as mentioned in the specifications.

Languages

The following languages are supported by the API:

IDLanguage
1Dutch
2English UK
3German
4French
5Spanish
6English US

Error & Warning types (EWT)

The following errors and warnings will be sent by the API:

ValueDescriptionUsed for
1Unknown
2No implementationNot implemented messages
3Biz ruleIncorrect values (e.g. MaxLOS > 30, Comments.length > 255) or inactive items (hotel offline)
4AuthenticationIncorrect API key and password
7Protocol violationSending two or more XML elements where only one is allowed
10Required field missingElement or attribute not provided
11AdvisoryWarnings (e.g. redundant messages, non-existing room/rate combination)
12Processing exceptionParsing errors, non-existing IDs (e.g. hotel/room/rate/reservation), empty strings where non-empty strings required
13Application errorTime out of other services (e.g. data service) or databases

Error & Warning Codes (ERR)

The following errors and warnings will be sent by the API:

ValueDescription
15Invalid date
19Name is missing or incomplete
26At least one adult must be included
28No more accommodation available
34Requested accommodation is occupied
61Invalid currency code
69Minimum stay criteria not fulfilled
70Maximum stay criteria not fulfilled
87Booking reference invalid
98Accommodation not found in booking
99Booking not owned by requester
104Accommodation - no availability
106Too many rooms/units
107Cannot book - too far in advance
110Accommodation closed at this time
111Booking invalid
112Too many nights
113Mandatory booking details missing
115Board basis/meal plan invalid
116Category of room/unit invalid
118Booking Status invalid
119Too many people in room/unit
122End date has passed
123Too many children
124Too many babies
125Room/unit not offered
127Reservation already exists
131Room/unit type invalid
132Room/unit type - no availability
135End date is invalid
136Start date is invalid
137Adult numbers/occupancy mismatch
138Child numbers/occupancy mismatch
141Room/unit code incorrect
142Occupancy rules not fulfilled
143Proice incorrect for room/unit
145Duration period or dates incorrect
146Service requested incorrect
147Taxes incorrect
155Accommodation details not complete
160Minimum one room/unit or service
161Search criteria invalid
163Payment type invalid
168Agent not recognised
169Agent code invalid
171Booking not made by this agent
172Requested action not possible
173Agency code required
175Password invalid
181Invalid country code
182Password required
184Language code invalid
240Credit card has expired
241Expiration date is invalid
242Credit card number is invalid or missing
249Invalid rate code
285Invalid first name
286First name contains invalid characters
287Invalid last name
288Last name contains invalid characters
290Invalid state/province/territory code
291Invalid zip/postal code
292Country in address is invalid
298City in address is required
310Required data missing: last name
311Required data missing: first name
313Required data missing: credit card type
315Required data missing: confirmation number
316Required data missing: phone number
319Required data missing: address
320Invalid value
321Required field missing
322No availability
346Closed to arrivals
351Credit card guarantee not accepted at hotel
352Invalid credit card type
353Departure date is past dated
361Invalid hotel
362Invalid number of nights
363Invalid number of rooms
365Error credit card
366Error during processing, please retry
367Invalid format
375Hotel not active
377Invalid - max number of nights exceeded
378Invalid - max number of rooms exceeded
385Invalid confirmation or cancellation number
386Invalid fax number
389Invalid guarantee type
392Invalid hotel code
395Invalid message text
396Invalid name
397Invalid number of adults
398invalid number specified
402Invalid room type
404invalid start/end date combination
407Item too long
409Maximum length of stay restriction
410Minimum length of stay error
411Minimum length of stay restriction
414More days were specified than exist in inventory
418Name/address missing
420Need e-mail address
424No hotels found which match this input
425No match found
427No rooms available for requested dates
435Property name required
436Rate does not exist
439Reenter (message is redundant)
448System error
450Unable to process
506Credit card not accepted at property
523Surname too long
524Given name/title too long
527Invalid number of inventory adjustments
563Closed to departure
575Closed restriction
635Data not found
727Maximum length of stay error
730Invalid room type for requested hotel
732Invalid room type for rate requested
743Invalid message length
744Invalid field length
745Invalid field ID
767Invalid room stay index
773Invalid length of parameter for search by address
775Nothing found for requested criteria
776Invalid length of parameter for search by availability status
777Invalid format for search on availability status
779No available rooms found use search on all availability status
783Room or rate not found
784Time out
848Invalid type of access requested

Room Amenity Type (RMA)

The following Room Amenity Types are supported by the API:

List will follow asap

HotelStatusCode  (HST)

The following Hotel Status Codes are supported by the API:

Value DescriptionExplanation
1OpenShown as live in the extranet
5TestShown as Ready to check in the extranet
3Pre OpeningShown as Setup in the extranet
6InactiveShown as Offline in the extranet

Hotel Amenity Code (HAC)

The following Hotel Amenity Code are supported by the API:

List will follow asap

Meal Plan Type (MPT)

The following Meal PLan Types are supported by the API:

IDLanguage
1All inclusive
2American
3Breakfast
4Buffet breakfast
5Caribbean breakfast
6Continental breakfast
7English breakfast
8European plan
9Family plan
10Full Board
11Full breakfast
12Half Board
13As brochured
14Room only
15Self catering
16Bermuda
17Dinner bed and breakfast plan
18Family American
19Breakfast
20¾ Board
21Lunch
22Dinner
23Breakfast & lunch

Age Qualifying Code (AQC)

The following Age Qualifying Codes are supported by the API:

CodeDescription
7Infant
8Child
10Adult

Phone Technology Type (PTT)

The following Phone technology Types are supported by the API:

ValueDescription
1Voice
2Fax

Unique ID Type (UIT)

The following Unique ID Types are supported by the API:

ValueDescription
14Reservation
15Cancellation
18Other
21Profile

Policy Codes

The following Policy Codes are supported by the API:

Codedescription
0None
1Non-Cancellable
2Time Pre-arrival day
3Time Arrival Day
4Days before arrival day
5UVH

Service Charge Types

The following Service Charge Types are supported by the API:

TypeDescription
0None
1Per Stay
2Per Night
3Per Adult per stay
4Per adult per night
5Selected dates
6Selected dates per adult
9Per piece
10Per piece per night
11Per piece per adult
12Per piece per adult per night
15Per child per stay
16Per child per night

Profile Types (PRT)

The following Profile Types are supported by the API:

Value Description
1Customer
3Corporation
4Travel Agent
18Billing Contact

Creator ID

In the OTA_ResRetrieveRS the attribute CreatorID gives an ID for the originator of the reservation. Please find below the list of Creator IDs and the OTA they represent:

IDCodeDescription
2BOOBooking.com
6HCOHoteliers.com
11HSPHotelspecials.nl
14SPHSpecialHotels.nl
15EXPExpedia/Hotels.com
16AMEVVV Ameland
17TORVVV Texel
21TERVVV Terschelling
23ZWGZoweg.nl
24HRSHRS.de
25BEDHotelbeds.com
27LMILastminute.com
28BNGBongo
30MXMMaxMind
33BONHotelbon
36WMSWorldmeetings
40UNIUnister
41HTWHotwire
44STCSTC
45RECReconline
46OSTOstrovok
49GTAGTA Travel
50GARGetaroom
51HOTHotusa
53VASVashOtel
54ONE101Hotels.ru
56BCMBookit.com
57BNLBookit.nl
58JACJacTravel
59TRRTravel Republic
61TBHTablet Hotels
63NTBNetbooking
64FERFeratel
65PREPrestigia
67MMSMr and Mrs Smith
68HDRHotelDirect
69INHInhores
71PBBPacific BedBank
72NBBNZ BedBank
73ABBAustralia BedBank
74OKTOktoGo
79TOMTomas Travel
84HAMTomas Hamburg Travel
85VBETomas Visit Berlin
89MHSMyHotelShop.de
95HSWHostelworld
97VTRViato Travel
100AGAAgoda
101OXIOpera XChange Interface
102KTLKeytel
103RTLRestel
104HREHotelREZ
107HIHHostelling International
108HCMRevato by HotelsCombined
109DERDerbysoft
110WKDWeekendesk
111BASBookassist
112CTRCtrip
113METMetglobal
114CUBCubilis
115KM2Kurz Mal Weg
116SBOSimpleBooking
118WBDWebBeds
119KURKurzurlaub
120SMOVVV Schiermonnikoog
121REXRoomex
122VOYVoyage Prive
124WATVVV Waterland van Friesland
125ODIOdigeo
126WB2WebBeds (new)
20003NTFNet Affinity
20008NSTNustay
20009RVDReservado
20011SSCShort Stay Citizens
20013OSWOnsweb
20014FSTFastbooking
20016FRBFreebooking
20018TRBTravelbird
20019RYARyanair
20020JZTJazzTour
20021TL2TravelLine
20023OPLOffPeakLuxury
20026ODAOdamax
20029PWNPowernapp
20035HBOHotel Bonanza
20036BAKBakuun
20038OZOOzon Travel
20040GVBGoedverblijf
20048SMASmartbox
20049DBRDayBreakHotels
20050SHRSHR/Windsurfer
20052HCNHotelbank
20054OTEOtelz.com
20055BARBarboon
20056DIBDIB Hotel
20057TRATravelanium
20059SEMSembo
20063BIDBidroom
20067AOVAovo Reisen
20070HH2H-Hotels.com
20071SNASnapiLABS
20072CA2Caesar Data
20073DORDorms.com
20074EXRHotel Spider
20075OGDOpenGDS
20076VO2Voordeeluitjes
20078VGRBookVisit
20080AERAeroGuest
20081LOGLogitravel
20085CB2Citybreak
20086CH2Charmant Hotel
20087C24Check24
20089SKHSK Hotel Management
20091TPRTouristPro
20092NWENuweg Exclusief
20096HNSHotelNetSolutions
20097DIGDigibreaks
20098DVPDVP
20099OLYOlympia Europe
20101CMACMAC Group
20104W4TWeekend4Two
20106AMDAmadeus
20108NA2Net Affinity (new)
20109MIKMiki Travel
20112HOPHopper