CiirusXMLAdditionalFunctions15025
Additional Functions 15.025
General
Welcome to The CiiRUS API. To begin, please thoroughly review this documentation, and please be sure to contact CiiRUS, Inc to begin step one of the Steps to Success (Click Here to Contact Us Now).
API Primary Fn(x)s
Integration WorkFlow
High-level overview of how the Integration process should go:
Click to View Full Size Diagram:
Common WorkFlows
On Demand Requests & Delta Options
Click to View Full Size Diagram:
Note: This is not the only acceptable work flow for implementation, but this outlines the process for several of the most common API implementations.
Bulk Data Caching
Click to View Full Size Diagram:
Note: Bulk data caching assumes that you preform the bulk transfer of data in fewer requests between 1 and 4 times per day. The ondemand data flow can be used for updating individual units as required with respect to delta options available.
General Related Help Articles
- The CiiRUS Network
- What is an API?
- What does an Arrival look like to a CiiRUS User?
- What does a Departure look like to a CiiRUS User?
- What do per property Terms and Conditions look like to a CiiRUS User?
- What Poolheat means to a CiiRUS User?
- What is the CiiRUS Client Relationship Manager (CRM) to a CiiRUS User?
- What is a Booking Fee to a CiiRUS User?
- What Reviews and Ratings to a CiiRUS User?
- What are the different tax rates to a CiiRUS User?
Terminology:
Property Manager (PM), is the same as Management Company (MC).Booking is the same as Reservation.
Property is the same as Unit. This differs slightly regarding AOA properties.
CalendarSync allows an account that distributes homes for another Property Manager to sync the calendars when a booking is placed.
- If you are not familiar with the Difference between SuperSite and CalendarSync, please take a moment to review this article: Click here to read this article.
- If you are using AOA properties, you will need to utilize other CiiRUS web service endpoints, please contact your CiiRUS technical point of contact for more information.
- Who is the beneficiary of the guest payment? This party is typically intended to then dispurse any commissions to respective parties?
- Definition: is the organization that is held financially liable by the acquiring bank (i.e., the financial institution that processes the customer's credit and/or debit card payments) for all full and partial returns to the customer's card as well as any chargebacks initiated by the customer.
- If you intend to submit CC details to CiiRUS, you will require an alternate enpoint for such requests. Please contact your CiiRUS technical point of contact for more information.
Note: ALL INPUT FIELDS MUST BE PASSED TO THE FUNCTION FOR EVERY REQUEST. - Optional Values have an optional value state that is required.
Note: - This means that this element/object is required
Note:
Steps to Success:
Please follow the following steps to Success in the order as numbered:
- Signed Mutual Non-Disclosure Agreement (NDA)
- You/Your company must designate to CiiRUS which party will be the merchant of record (MOR).
- You will be provided with a technical point of contact and an account and/or API credentials with access to test properties belonging to our sandbox user, Floriwood's, account.
- You/Your Company will need to speak to the CiiRUS Business Development Department for Commercial and Contracting Considerations.(Please Call: (+1)(321)251-8020)
- If you will be caching any data, you should speak with your CiiRUS technical Point of contact to establish a polling policy.
- One of Three Options:
- To use this API for calendar/rates data only, that is it. Let's do business together.
- To Use this API for Calendar data and the ability to place reservations into CiiRUS User's Inventory please be sure to place a booking into one of our test user's (Floriwood's - MCUserID: 11006) properties for each booking scenario you are expecting to encounter. Please provide these test BookingID's to your CiiRUS technical Point of Contact. If all data shows correct/as expected by both CiiRUS and you/your company, then that is it. Let's do business together.
- If neither of the two above or you do not see the functionality that you require to integrate with CiiRUS, the next steps will need to be discussed with The CiiRUS Business Development Department and your Technical Point of Contact.
Note: No need to delay, get started today!
Updates:
Please check this area regularly for news about updates, additions, new versions, and bug fixes. This section is intended to help existing integrations see at a glance what has changed.
CiiRUS uses semantic versioning to implement any breaking changes, so this should not present an issue; however, this section can also be used to determine if any future API changes coincide with any new errors.
- July 28, 2015 - Beta 1.0 of Additional Functions Version 15.021 Published
- July 28, 2015 - Only IP Addresses known by CiiRUS for your user will be able to receive or transmit data from/to this web service.
- July 28, 2015 - SSL security certificate added. HTTPS Required
- July 28, 2015 - Error responses and logging have been updated for all functions (Please check that you are handling all errors and exceptions).
- July 28, 2015 - Function "GetPropertyPermissions" is a duplicate function accross multiple enpoints. This has been added to this API. This can be used for troubleshooting access to properties in your feed.
- July 28, 2015 - Function "Ping" has been added to this API. This can be used to establish that your credentials work/your IP is accepted by the webservice/and that the webservice is not down.
- July 29, 2015 - Function "AvailabilityChangeLog" was updated to accept an array of PropertyIDs.
- July 29, 2015 - xmlMsg (String) input parameter added to following functions. Pass blank string unless otherwise discussed with your CiiRUS technical point of contact.
- July 29, 2015 - jSonMsg (String) input parameter added to following functions. Pass blank string unless otherwise discussed with your CiiRUS technical point of contact.
- July 29, 2015 - errorMsg (String) Output response parameter added to following functions.
- July 30, 2015 - API Updated to support CalendarSync Properties
- August 17, 2015 - API Updated to support AOA Properties
- August 19, 2015 - Error Response will no longer be returned from any function. Marked Obsolete as this feature is supported as of July 30, 2015
Warning - CalendarSync Bookings are not supported via the API. - August 20, 2015 - Permissions Policy Change (HomeOwners Access Rights Removed for all API Functions) - HomeOwners must integrate as a SuperSite User Agent Account.
- August 20, 2015 - Permissions Policy Change - AddBlackoutDates function access restricted to MC/PM/Native API users ONLY.
- August 20, 2015 - GetPropertyRatesAndRestrictions function Response node "DailyRate" replaced with "Rate". Also, new response node "RateType" appended to response objects.
- September 02, 2015 - API Beta Version "XMLadditionalfunctions15.021" deprecated.
- September 02, 2015 - API Beta Version "XMLadditionalfunctions15.025" Released to API Channel Partners.
- September 10, 2015 - The following functions were updated for an explicit response regarding Access to book via the supplier's account settings:
- September 15, 2015 - Function GetTermsAndConditions was updated to support the supplier's per channel designation of T&C's
- October 16, 2015 - API recompiled against CiiRUS version 15.031
- October 20, 2015 - Function GetPropertyPermissions updated to identify TimeShare Properties
- October 20, 2015 - Function GetAOATSPropertyNightlyRoomsToSell function added to webservice.
- October 21, 2015 - Function CancelBooking function permissions update for CalendarSync-SuperSite property scenarios.
- October 22, 2015 - Function CancelBooking function permissions update for CalendarSync-SuperSite property scenarios. The following error message was deemed obsolete:
CancelBooking: Error - You do not have access to this booking (4) - November 19, 2015 - API recompiled against CiiRUS version 15.039
- November 19, 2015 - Function validateDiscountCode released to partners. This can be used to determine how a discount code would apply to a reservation total prior to booking.
- December 03, 2015 - Function GetCleaningFee Updated to include boolean conditions representing which of the 3 possible tax bands apply to this item when calculating tax.
- December 04, 2015 - Function GetAllPropertyRatesAndRestrictionsPerMC has been added to the API. This should be used for Bulk rate updates.
- December 17, 2015 - API recompiled against CiiRUS version 15.042
- January 06, 2016 - GetPropertyPermissions Error Response message has changed.
- Previous message:
Error (9000) Too many records exist relating this Property to your user. Please contact Ciirus. - New message:
Error (9000) Too few records exist relating this Property to your user. Please contact the supplier to configure this property for your channel.
- Previous message:
- January 07, 2016 - GetPropertyPermissions Response node "OnlineBookingAllowed" was added. This value indicates if the property can accept online bookings. Some properties might be permitted to accept enquiries only.
- February 10, 2016 - AvailabilityChangeLog Server-side Function refactored. Client Schema unaltered. Latency reduced by between 40% to 50%.
- February 22, 2016 - GetPropertyRatesAndRestrictions and GetAllPropertyRatesAndRestrictionsPerMC New Error Responses Added:
GetPropertyRatesAndRestrictions: Validation Error 2 - Property has been deleted from the system. GetPropertyRatesAndRestrictions: Validation Error 3 - Property has been deleted from the system. - March 28, 2016 - API recompiled against CiiRUS version 16.014
- April 25, 2016 - GetPropertyRatesAndRestrictions and GetAllPropertyRatesAndRestrictionsPerMC New Error Message added
GetPropertyRates: Monthly Rates Not Supported via API. Monthly Rates Set By User. Please contact the Unit Supplier to configure a supported rate type for your channel.
- May 2, 2016 - AvailabilityChangeLog New Error Message added
AvailabilityChangeLog: The Availability Change Log Request must contain one or more PropertyIDs for which your user has access.
- September 19, 2016 - GetPropertyPermissions New Error Message added
Error (15000) The MC may have disabled the clone property from the feed. The MC user for this property has not enabled this property for your feed, but you have accepted this property in the SuperSites area of the CiiRUS windows application.
- June 02, 2017 - PropertyChangeLog was added for static content and rates delta determinations.
- June 02, 2017 - AvailabilityChangeLog Server-side Function refactored. Client Schema unaltered. Latency reduced.
- March 26, 2018 - API recompiled against CiiRUS version 18.004
- April 14, 2018 - Corrected Bug on the Add Booking function that caused the Cleaning commission percentage to owner to not be set correctly against added bookings
- August 14, 2018 - API recompiled against CiiRUS version 18.017
- August 22, 2018 - API recompiled against CiiRUS version 18.019
- June 5, 2019 - API recompiled against CiiRUS version 19.014
Note: Please check back regularly. We are adding new functions and functionality through non-breaking changes almost everyday. Developers, please stay informed on CiiRUS API updates.
Obtaining API Support
CiiRUS is happy to support and stand behind its products and services, but CiiRUS does not support third party software or integrations created by third parties. If you would like to report an error, bug, or have technical questions, unless otherwise instructed, please submit your requests to CiiRUS Technical Support.
Please be sure to include:
- Your Account Username or ID (MCUserID)
- Any Agent(s)/Suppliers(s) that you believe to be affected
- The Function that is presenting the issue
- The input parameters to the function required to replicate the issue
- If Possible, a sample of the raw XML request.
-You could use an HTTP debugging proxy server application such as Fiddler, NetTool, WebScarab, etc. - The exact response or error message that you receive
- If Possible, a sample of the raw XML response.
-You could use an HTTP debugging proxy server application such as Fiddler, NetTool, WebScarab, etc. - A brief but thorough explanation of the issue.
Note: Failure to present some or all of this requested information regarding any issue(s) will result in delayed responses, and may result in a request for further information. If it cannot be replicated by a CiiRUS representative, it cannot be debugged or resolved. Please help us help you as efficiently and completely as possible.
Function Definitions
The following operations are supported. For a formal definition, please review the Service Description.
-
AddBlackoutDates
Adds a Black Out Date for a given property and date range
Use this function to block off calendar days without placing a reservation. This holds no financials and schedules no cleans. This is only for a period of non-availability.
Note:This is ONLY an (MC/PM/Native) User accessable function.
Note: A Response of 0 would only occur if an unhanddled error occured.
Note: No date validation occurs as no responsability to a guest is implied by a blackout date. This can be added overlapping reservations already placed, but will prevent future reservations from being committed to a property's availability calendar.
Note: A Response of -1 would only occur if these dates have already been booked.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- MCUserID (Integer)
- PropertyID (Integer)
- GuestName (String)
- dteArrive (String - dd MMM yyyy)
- dteDepart (String - dd MMM yyyy)
Error Responses:- AddBlackoutDates: Validation Error 1
- AddBlackoutDates: Validation Error 2 - This is ONLY an (MC/PM/Native) User accessable function.
- AddBlackoutDates: Error - CS Relation could not be resolved.
- AddBlackoutDates: Error - Availability for this property could not be determined.
- AddBlackoutDates: Error - Could not resolve the MC for the property.
- AddBlackoutDates: Error - The Black Out Date was not added.
-
AddBooking
Adds a Booking for a given property and date range
Use this function to add a booking where by you (the 3rd Party) are responsable for calculating quotes/cost of bookings. Validation of rules for placing bookings into a property via this function are exclusively your responsability (the 3rd Party reservation supplier).
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- xmlMsg (String)
-Pass blank string unless otherwise discussed with your CiiRUS technical point of contact. - jSonMsg (String)
-Pass blank string unless otherwise discussed with your CiiRUS technical point of contact. - BookingParameters Class Object
- PropertyID (Integer)
- FirstName (String)
- LastName (String)
- EmailAddress (String)
- Address (String)
- Telephone (String)
- ArrivalDate (String, dd MMM yyyy)
- DepartureDate (String, dd MMM yyyy)
- AddAsTentative (Boolean)
-If True, this will block off availability for the period of the reservation up until the tentative booking is confirmed by the MC or via Payment or until the current date is greater than "TentativeExpiryDate". If not converted into a confirmed booking before either of these two cases, the reservation is automatically cancelled.
-If False, this booking will be added as a confirmed reservation. - TentativeExpiryDate (String, dd MMM yyyy)
If "AddAsTentative" is True the date value in this field will be set as the automatic expirey date for this reservation if it is not converted into a confirmed reservation.
-If "AddAsTentative" is False, this parameter is still required, but the value will be ignored (any date will do). - PoolHeat (Boolean)
-This denotes if the guests have or have not requested and are or are not going to pay for PoolHeat.
-If True, you will need to get the rules on how to charge PoolHeat from the function "GetPoolHeatSettings". - BaseRentalAmountToMCExTax (decimal)
-This is the amount of the Base Rental Rate Only that the MC should expect to recieve for this booking Exclusive of tax.
-If the merchant of record is the Agent, the Agent commission should be the "BaseRentalAmountToAgentExTax" minus the "BaseRentalAmountToMCExTax"
-If the merchant of record is the MC, the Agent commission should be the "BaseRentalAmountToMCExTax" minus the "BaseRentalAmountToAgentExTax"
- BaseRentalAmountToAgentExTax (decimal)
-This is the amount of the Base Rental Rate Only that the Agent should expect to recieve for this booking.
-If the merchant of record is the Agent, the Agent commission should be the "BaseRentalAmountToAgentExTax" minus the "BaseRentalAmountToMCExTax"
-If the merchant of record is the MC, the Agent commission should be the "BaseRentalAmountToMCExTax" minus the "BaseRentalAmountToAgentExTax" - BasePoolHeatAmountExTax (decimal)
-This is the cost of pool heat to be paid by the Guest exclusive of tax.
-If "PoolHeat" is True, you will need to get the rules on how to charge PoolHeat from the function "GetPoolHeatSettings"
-If "PoolHeat" is False, this value should be 0. - BaseBookingFeeAmountExTax (decimal)
-This is a fee to be collected by the MC for placing the booking. This could be a administration fee or a fee to cover the cost of processing payment via a merchant processor.
-You will need to use the function "GetBookingFee" to get the rules for this charge and calculate the value to pass as this parameter. This value is exclusive of any tax that may apply to this amount. - BaseCleaningFeeAmountExTax (decimal)
-This is a fee to be collected by the MC to cover the cost of cleaning the property. This fee may or may not apply.
-You will need to use the function "GetCleaningFee" to get the rules for this charge and calculate the value to pass as this parameter. This value is exclusive of any tax that may apply to this amount. - Tax1Percent (decimal)
-Three different tax rates can apply to a booking. Each sub-section of the booking is subject to taxation seperately. These tax settings are defined by the MC/inventory provider based on te taxes that they must pay on any reservation.
-You will need to use the function "GetTaxRates" to get the values of each of the 3 tax bands for this property.
-You will need to apply the respective tax band in any calculation warranting it. In this case "Tax1Percent" - Tax2Percent (decimal)
-Three different tax rates can apply to a booking. Each sub-section of the booking is subject to taxation seperately. These tax settings are defined by the MC/inventory provider based on te taxes that they must pay on any reservation.
-You will need to use the function "GetTaxRates" to get the values of each of the 3 tax bands for this property.
-You will need to apply the respective tax band in any calculation warranting it. In this case "Tax2Percent" - Tax3Percent (decimal)
-Three different tax rates can apply to a booking. Each sub-section of the booking is subject to taxation seperately. These tax settings are defined by the MC/inventory provider based on te taxes that they must pay on any reservation.
-You will need to use the function "GetTaxRates" to get the values of each of the 3 tax bands for this property.
-You will need to apply the respective tax band in any calculation warranting it. In this case "Tax3Percent" - ChargeTax1OnRental (Boolean)
-Reservations will always be taxable. You would always pass this value as True, unless otherwise specified/discussed with your CiiRUS technical point of contact. - ChargeTax2OnRental (Boolean)
-Reservations will always be taxable. You would always pass this value as True, unless otherwise specified/discussed with your CiiRUS technical point of contact. - ChargeTax3OnRental (Boolean)
-Reservations will always be taxable. You would always pass this value as True, unless otherwise specified/discussed with your CiiRUS technical point of contact. - ChargeTax1OnPoolHeat (Boolean)
-User the setting "ChargeTax1OnPoolHeat" returned by the function "GetPoolHeatSettings" for this value. - ChargeTax2OnPoolHeat (Boolean)
-User the setting "ChargeTax2OnPoolHeat" returned by the function "GetPoolHeatSettings" for this value. - ChargeTax3OnPoolHeat (Boolean)
-User the setting "ChargeTax3OnPoolHeat" returned by the function "GetPoolHeatSettings" for this value. - ChargeTax1OnBookingFee (Boolean)
-User the setting "ChargeTax1" returned by the function "GetBookingFee" for this value. - ChargeTax2OnBookingFee (Boolean)
-User the setting "ChargeTax2" returned by the function "GetBookingFee" for this value. - ChargeTax3OnBookingFee (Boolean)
-User the setting "ChargeTax3" returned by the function "GetBookingFee" for this value. - ChargeTax1OnCleaningFee (Boolean)
-User the setting "ChargeTax1" returned by the function "GetCleaningFee" for this value. - ChargeTax2OnCleaningFee (Boolean)
-User the setting "ChargeTax2" returned by the function "GetCleaningFee" for this value. - ChargeTax3OnCleaningFee (Boolean)
-User the setting "ChargeTax3" returned by the function "GetCleaningFee" for this value. - TaxExemptBooking (Boolean)
-This should always be false unless otherwise specified/discussed with your CiiRUS technical point of contact. - Comments (String)
-Pass any comments from the guest or from (you) the Agent that the MC should be notified of and is not otherwise catered for in the API. - PaymentTakenBy (Enum = MC (0) or Agent (1)) (Restricted - This value will be inherited from the CiiRUS Admin Panel unless otherwise agreed with the CiiRUS Business Development Department and your CiiRUS technical point of contact)
-This is integral to ensuring correct booking values. Who is the merchant of record?
-If this or the CiiRUS Admin setting for this is not set correctly and validated before moving into production, the merchant of record in this relationship risks owing more money to the non-merchant of record than the Merchant of record will have collected for the reservation.
Error Responses:- AddBooking: Validation Error 1
- AddBooking: Error 2 - This API User does not have permissions to use this function. Please contact your CiiRUS technical point of contact for more information.
- AddBooking: Error 3 - This API User does not have permissions to use this function. Please contact your CiiRUS technical point of contact for more information.
- AddBooking: Error - Property not enabled for online booking. Please contact the supplier to enable this property.
- AddBooking: Error - Arrival Date must be before Departure Date
- AddBooking: Error - Could not resolve the User's relationship to this Property.
- AddBooking: Error - It could not be determined if the property was deleted (2724368). Please contact CiiRUS.
- AddBooking: Error - It could not be determined if the property was deleted (277724368). Please contact CiiRUS.
- AddBooking: Error - Owners are not directly supported via the API. Please contact CiiRUS to configure a SuperSite Agent.
- AddBooking: Error - User has no Relation/permissions to this property.
- AddBooking: Error - User has unkonwn Relations/permissions to this property.
- AddBooking: Error - This property has been deleted by the MC.
- AddBooking: Error - Could not resolve Owner.
- AddBooking: Error - Could not resolve MC.
- AddBooking: Error - One or more bookings clash with this booking
- AddBooking: Error - Unable to get the new Booking ID
- AddBooking: Error - Clean Not added to Booking: (BookingID)
Note: (BookingID) = The BookingID stored in CiiRUS for this function call. - AddBooking: Error - Could not add booking action to booking:
Note: (BookingID) = The BookingID stored in CiiRUS for this function call. - AddBooking: Error - Unable to get the new Booking ID
- Error at AddBooking (Phase (i))
Note: (i) = integer representing phase in Booking function that an unknown exception occured
AddBooking Prerequisites
If you use this function, you will need to calculate the quote, and utilize all the following function as to obtain the settings and base values for which to base a quote upon:
- IsPropertyAvailable
- GetPropertyRatesAndRestrictions
- GetTaxRates
- GetCleaningFee
- GetBookingFee
- GetPoolHeatSettings
- GetExtras
After a confirmed booking, you will need to make the following additional calls to finalize the guestlist, credit card details, and extras (optional/manditory):
- AddGuests
- AddExtra
- If the MC is taking payment and you are passing Credit Card Details:
- getDownPayment
- GetCardTypes
- addCCPayment
Note: addCCPayment uses payments.ciirus.com, and not secure.ciirus.com
- If the Agent is taking payment and you are showing how much has been collected from the guest toward the reservation total:
How to Calculate Booking Totals
Please see the formula for calculating a quote:
Sub-Totals:
BaseRental = (DailyRate(s) * (number of nights in each respective rate band))
CleaningFee = (cleaning fee if applicable)
BookingFee = (booking fee amount if applicable)
ManditoryExtras = sum of all mandatory extras that apply
OptionalExtras = sum of all optional extras that apply
Sub-Total (ex tax) = BaseRental + CleaningFee + BookingFee + ManditoryExtras + OptionalExtras
Taxes:
BaseRental Tax = ((BaseRental)*(taxpercent1 if applicable for this item)) + ((BaseRental)*(taxpercent2 if applicable for this item)) + ((BaseRental)*(taxpercent3 if applicable for this item))
CleaningFee Tax = ((CleaningFee)*(taxpercent1 if applicable for this item)) + ((CleaningFee)*(taxpercent2 if applicable for this item)) + ((CleaningFee)*(taxpercent3 if applicable for this item))
BookingFee Tax = ((BookingFee)*(taxpercent1 if applicable for this item)) + ((BookingFee)*(taxpercent2 if applicable for this item)) + ((BookingFee)*(taxpercent3 if applicable for this item))
ManditoryExtras Tax (Sum of the following for each extra individually) = ((ManditoryExtra)*(taxpercent1 if applicable for this item)) + ((ManditoryExtra)*(taxpercent2 if applicable for this item)) + ((ManditoryExtra)*(taxpercent3 if applicable for this item))
OptionalExtras Tax (Sum of the following for each extra individually) = ((OptionalExtra)*(taxpercent1 if applicable for this item)) + ((OptionalExtra)*(taxpercent2 if applicable for this item)) + ((OptionalExtra)*(taxpercent3 if applicable for this item))
Tax-Total (Tax only) = BaseRental Tax + CleaningFee Tax + BookingFee Tax + ManditoryExtras Tax + OptionalExtras Tax
Reservation Total = Sub-Total + Tax-Total
The Agent commission is the difference between the BaseRental rate to the MC/PM vs the BaseRental to the Agent. The formula above applies in both cases, but the input values differ for the Base Rental amount.Testing & Validation
- The dates are not nothing.
- The dates are in the future.
- The departure date is at least 1 day after the arrival date.
- A booking is NOT added if the arrival date overlaps a period of non-availability.
- A booking is NOT added if the departure date overlaps a period of non-availability.
- A booking is NOT added if the entire booking range overlaps a period of non-availability.
- A booking is NOT added if no rates are defined for the specified date range.
- A booking is NOT added if the arrival day lands on a day of the week not allowed as an arrival day.
- A booking is NOT added if the departure day lands on a day of the week not allowed as an departure day.
- A booking is NOT added if the arrival and departure day lands on both a disallowed arrival and departure day.
- A booking is NOT added if the booking agent does not have permissions to the specified property.
- A booking is NOT added if the duration of the booking is less than the specified minimum night stay for the date range as specified by the arrival day date band in the RateSet for the respective property.
- A booking is NOT added if all required fields are not provided in the request.
- A booking is added only if the dates are available and rates are defined for the specified date range and all required fields have been supplied.
- The total value of the reservation matches in the Total Booking Summary (TBS) with the value you expect to pay to the inventory supplier for the respective reservation test.
- The tax sub-total values for each of the tax bands are of the correct calculated percentage for the respective bands specified by the inventory supplier.
- The Base Rental amount is the price expected based on the rates specified by the inventory supplier.
- The Cleaning Fee amount is the price expected based on the rates specified by the inventory supplier.
- The Booking Fee amount is the price expected based on the rates specified by the inventory supplier.
- When applied (and only when applied to the reservation as specified in the request) the pool heat amount is the price expected based on the rates specified by the inventory supplier.
- The Base Rental Tax amount is the price expected based on the rates specified by the inventory supplier.
- The Cleaning Fee Tax amount is the price expected based on the rates specified by the inventory supplier.
- The Booking Fee Tax amount is the price expected based on the rates specified by the inventory supplier.
- When applied (and only when applied to the reservation as specified in the request) the pool heat Tax amount is the price expected based on the rates specified by the inventory supplier.
- All mandatory extras are applied to the reservation with the correct pricing amount is the price expected based on the rates specified by the inventory supplier.
- All optional extras which selected by the guest are applied to the reservation with the correct pricing amount is the price expected based on the extras specified by the inventory supplier.
- All extras amounts (optional and mandatory) prices are applied to the reservation with the correct pricing amount is the price expected based on the extras specified by the inventory supplier.
- All extras tax amounts (optional and mandatory) prices are applied to the reservation with the correct pricing amount is the price expected based on the extras specified by the inventory supplier.
- All lead guest contact details are listed correctly against the booking’s guest contact record.
- All guests intended to be disclosed as part of the guest list are listed correctly against the reservation with ages of persons under 18 included (mandatory by law before guests can stay in the property in central florida).
- A second booking CANNOT be added overlapping the dates in any configuration of a booking that you have just placed.
- The Agent commission accurately reflects the amount intended to be disclosed/tracked as taken by the Agent against the booking. If not disclosed, value should be 0.
Additional Error Messages may be returned. If you recieve an alternate response, and are unsure why, or what it means, please contact your CiiRUS technical point of contact for more information.
-
AddExtra
This can be used to add an extra to an existing BookingID.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- BookingID (Integer)
- ItemCodeToAddToBooking (String)
Note: You will need to use the function "GetExtras" in order to determine valid Extra Codes.
Error Responses:- AddExtra: Validation Error 1
- AddExtra: Validation Error 2 - You do not have rights to this booking.
- AddExtra: Error - CS Relation could not be resolved.
- AddExtra: Validation Error 3 - You do not have access rights to this property.
- AddExtra: Error 1 - Could not determine MC from PropertyID.
- AddExtra: Error 2 - Could not determine MC from PropertyID.
- AddExtra: Invalid ItemCode
- AddExtra: Error 1 - Could not determine who the Payment was Taken By
- AddExtra: Error 2 - Could not determine who the Payment was Taken By
- AddExtra: Error 3 - Could not determine who the Payment was Taken By
- AddExtra: Error 4 - Could not determine who the Payment was Taken By
- AddExtra: Error 5 - Could not determine who the Payment was Taken By
- AddExtra: Error 1 - The Extra was not added.
- AddExtra: Error 2 - The Extra was not added.
-
AddGuestPayment
This can be used to add a record of payemnt to an existing BookingID.
Note: This is used when payment is taken external to any CiiRUS User.This allows users to track the balance due for a booking. If not paid in full, the user will not release arrival detail to the guest.
Note: For each payment you may wish to only report the percentage of the booking the user is expecting to recieve; otherwise, you will be showing the user the price you sold the reservation once paid in full. Any number of payments can be added to any given reservation as long as it falls within the guidelines of your contract with the user.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- BookingID (Integer)
- PaymentDate (String, dd MMM yyyy)
- PaymentAmount (decimal)
- Description (String)
Error Responses:- AddGuestPayment: Validation Error 1
- AddGuestPayment: Validation Error 2 - You do not have access to this booking
- AddGuestPayment: Error - Could not get Property ID from Booking ID
- AddGuestPayment: Error - Invalid payment date
- AddGuestPayment: Error - Payment amount must be greater than 0
- AddGuestPayment: Error adding guest payment
-
AddGuestReviews
This can be used to add Guest Review to the specified PropertyID
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
- FullGuestName (String)
- GuestEmail (String)
- StarRating (decimal)
- GuestReview (String)
- ShowGuestName (Boolean)
Error Responses:- AddGuestReviews: Validation Error 1
- AddGuestReviews: Validation Error 2
- AddGuestReviews: You must enter a valid PropertyID.
- AddGuestReviews: Invalid e-mail address.
- AddGuestReviews: The StarRating must be with in the range 0-5.
- AddGuestReviews: Error - The Guest review was not added.
-
AddGuests
This can be used to add guests to the guest list of an existing BookingID.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- Array of Guest Class Objects
- Name (String)
- Age (Integer)
Error Responses:- AddGuest: Validation Error 1
- AddGuest: You do not have access to this booking.
- AddGuest: Error - One or more Guests were NOT added to this Booking.
-
AddLockBoxCode
This can be used to establish that your credentials work/your IP is accepted by the webservice/and that the webservice is not down.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- BookingID (Integer)
- LockBoxCode (string - Max 20 chars)
Error Responses:- AddLockBoxCode: Validation Error 1
- AddLockBoxCode: Validation Error 2
- AddLockBoxCode: Your API user is not permitted to AddLockBoxCode. Please contact CiiRUS Support.
- AddLockBoxCode: The maximum length of a LockBoxCode is 20 chars.
Valid Response:- true (Boolean)
-
AvailabilityChangeLog
Returns the last Availability Change for the specified Property.
Use this function to check when the availability calendar last changed for each PropertyID passed in the Array of ID class Objects held in the PropertyIDs Class Object.
Note: This function caches responses for 30 seconds.
Note: This function returns dates in Calibrated to the EST (-5:00) Timezone
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- MCUserID (Integer)
- PropertyIDs (Class Object)
Note: Pass any number of PropertyIDs of the same MC user in a single call or pass one at a time.- Property (Array of ID Class Objects)
- ID (Class Object)
Note: Contains "<PropertyID>" Node as Integer- PropertyID (Integer)
- ID (Class Object)
- Property (Array of ID Class Objects)
Error Responses:- AvailabilityChangeLog: Validation Error 1
- AvailabilityChangeLog: The request must contain at least 1 PropertyID
- AvailabilityChangeLog: You do not have access rights to this MC.
- AvailabilityChangeLog: MCUserID must be greater than 0.
- AvailabilityChangeLog: Error - CS Relation could not be resolved.
- AvailabilityChangeLog: You do not have access rights to this MC (2724368).
- AvailabilityChangeLog: You do not have access rights to this MC.
- AvailabilityChangeLog: MCUserID must be greater than 0.
- AvailabilityChangeLog: You do not have access rights to this Property.
- AvailabilityChangeLog: The Availability Change Log Request could not be processed.
- AvailabilityChangeLog: No Date Could be determined.
- AvailabilityChangeLog: Unknown Error.
- AvailabilityChangeLog: The Availability Change Log Request must contain one or more PropertyIDs for which your user has access.
-
BookingHasPoolHeat
Returns the a Boolean Value of if an existing Booking Has PoolHeat.
This can be used to determine if an existing BookingID is a reservation that has been specified as PoolHeat requested by guest.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- BookingID (Integer)
Error Responses:- BookingHasPoolHeat: Validation Error 1
- BookingHasPoolHeat: This API user does not have access to this booking.
- BookingHasPoolHeat: The BookingID must be greater than 0.
- BookingHasPoolHeat: This query could not be resolved (1).
- BookingHasPoolHeat: This query could not be resolved (2).
- BookingHasPoolHeat: Unknown Error.
-
CRMAddLead
Adds a Guest Contact lead to the CiiRUS CRM.
This can be used to determine if an existing BookingID is a reservation that has been specified as PoolHeat requested by guest.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- FirstName (String)
-Blank string not accepted - LastName (String)
-Blank string not accepted - Address1 (String) Optional
-If not specified (optional value) should be passed as a blank string - Address2 (String) Optional
-If not specified (optional value) should be passed as a blank string - City (String) Optional
-If not specified (optional value) should be passed as a blank string - County (String) Optional
-If not specified (optional value) should be passed as a blank string - State (String) Optional
-If not specified (optional value) should be passed as a blank string - Country (String) Optional
-If not specified (optional value) should be passed as a blank string - Zip (String) Optional
-If not specified (optional value) should be passed as a blank string - Telephone (String) Optional
-If not specified (optional value) should be passed as a blank string - CellPhone (String) Optional
-If not specified (optional value) should be passed as a blank string - EmailAddress (String) Optional/
-Optional if the "SendEnquireyEmail" and "AddAsEnquirey" node values are false
- if the "SendEnquireyEmail" OR "AddAsEnquirey" node values are True - Comments (String) Optional
-If not specified (optional value) should be passed as a blank string - CombinedAddress (String) Optional
-If not specified (optional value) should be passed as a blank string - PartnerName (String) Optional
-If not specified (optional value) should be passed as a blank string - NamesOfFamilyMembers (String) Optional
-If not specified (optional value) should be passed as a blank string
-Please pass multiple values as a CSV rather than as an Array - Hobbies (String) Optional
-If not specified (optional value) should be passed as a blank string
-Please pass multiple values as a CSV rather than as an Array - FavoriteTravelDestinations (String) Optional
-If not specified (optional value) should be passed as a blank string
-Please pass multiple values as a CSV rather than as an Array - SpecialRequirements (String) Optional
-If not specified (optional value) should be passed as a blank string
-Please pass multiple values as a CSV rather than as an Array - PetDetails (String) Optional
-If not specified (optional value) should be passed as a blank string
-Please pass multiple values as a CSV rather than as an Array - Occupation (String) Optional
-If not specified (optional value) should be passed as a blank string - TypicalPartySize (Integer)
If no Typical party size is known pass 0 else pass the Typical Party Size for this Lead (this value is different to EnquiryPartySize) - Gender (String) Optional
-If not specified (optional value) should be passed as a blank string
-Accepted Values:- male
- female
- m
- f
- 0
-male - 1
-female
Note: This is a person's biological sex. This is not related to the gender to which they identify as being. - DateOfBirth (String, dd MMM yyyy) Optional
-If not specified (optional value) should be passed as a blank string - WeddingAnniversary (String, dd MMM yyyy) Optional
-If not specified (optional value) should be passed as a blank string - PortalActive (Boolean)
-Sets if the Guest is allowed access to the guest portal - AddressTidied (Boolean)
-True flags that the address passed to this function is verified as a valid address and is parsed into the component parts
Note: This is used when the address is split into the address component parts (in this case "CombinedAddress" is accepted, but not required)
-False flags that the address passed to this function has not been validated or an that the address has not been parsed into its component parts
Note: This is used when the "CombinedAddress" node is populated and not split into the address component parts - AllowMarketingEmails (Boolean)
-Sets if the user is allowed to be remarketed to or if they do not wish to be contacted with marketing materials - AddAsEnquirey (Boolean)
-Sets if a web Enquiry is added to the system - SendEnquireyEmail (Boolean)
-Determines if CiiRUS sends the Enquiry template e-mail for a property to the guest as defined by the User defined by the node "AgentAccountUserID" - AgentAccountUserID (Integer)
-This specifies the account that the enquiries are entered into and/or messages are sent from Use the function GetManagementCompanyList for the IDs accessible in the account. - PropertyID (Integer)
-If not specified, pass 0
-This integer is only Required if the nodes "SendEnquireyEmail" or "AddAsEnquirey" are True - EnquireyArrivalDate (Boolean)
-Only applicable if the nodes "SendEnquireyEmail" or "AddAsEnquirey" are True
-Note: Must pass a date, but only future dates are acceptable any past date will be inserted against the enquiry as now - EnquireyDepartureDate (Boolean)
-Only applicable if the nodes "SendEnquireyEmail" or "AddAsEnquirey" are True
-Note: Must pass a date, but only future dates are acceptable any past date will be inserted against the enquiry as now - EnquireyComments (String) Optional
-Only applicable if the nodes "SendEnquireyEmail" or "AddAsEnquirey" are True
-If not specified (optional value) should be passed as a blank string - EnquiryPartySize (Integer)
-If not specified, pass 0
-This integer is only applicable if the nodes "SendEnquireyEmail" or "AddAsEnquirey" are True - LeadSource (String, limited to 50 chars) Optional
-if no LeadSource pass empty string - leadID (Integer)
-At this time this value should always be bassed as 0
Note: Future updates to this API may include a means for predefining a lead source and grouping leads by this source
Error Responses:- CRMAddLead: Error - Validation Error 1
- CRMAddLead: Error - The First name, Last name, or both, MUST be entered.
- CRMAddLead: Error - The Agent Account UserID must be greater than or equal to Zero.
- CRMAddLead: Error - You do not have permissions to access the specified Agent/MC's Account.
- CRMAddLead: Error - In order to send an e-mail enquirey or Add an E-mail enquiry the PropertyID MUST be greater than Zero.
- CRMAddLead: Error - You do not have access rights to this property.
- CRMAddLead: Error - In order to send an e-mail enquirey or Add an E-mail enquiry the you MUST pass a valid E-mail address.
- CRMAddLead: Error - The first name must not exceed 100 chars.
- CRMAddLead: Error - The last name must not exceed 100 chars.
- CRMAddLead: Error - The Address1 must not exceed 50 chars.
- CRMAddLead: Error - The Address2 must not exceed 50 chars.
- CRMAddLead: Error - The City must not exceed 50 chars.
- CRMAddLead: Error - The County must not exceed 50 chars.
- CRMAddLead: Error - The State must not exceed 50 chars.
- CRMAddLead: Error - The Country must not exceed 30 chars.
- CRMAddLead: Error - The Zip must not exceed 20 chars.
- CRMAddLead: Error - The Telephone must not exceed 35 chars.
- CRMAddLead: Error - The CellPhone must not exceed 35 chars.
- CRMAddLead: Error - The EmailAddress must not exceed 50 chars.
- CRMAddLead: Error - The EmailAddress is not valid.
- CRMAddLead: Error - The Comments must not exceed 3900 chars.
- CRMAddLead: Error - The CombinedAddress must not exceed 350 chars.
- CRMAddLead: Error - The PartnerName must not exceed 200 chars.
- CRMAddLead: Error - The NamesOfFamilyMembers must not exceed 500 chars.
- CRMAddLead: Error - The Hobbies must not exceed 500 chars.
- CRMAddLead: Error - The FavoriteTravelDestinations must not exceed 500 chars.
- CRMAddLead: Error - The SpecialRequirements must not exceed 500 chars.
- CRMAddLead: Error - The PetDetails must not exceed 500 chars.
- CRMAddLead: Error - The Occupation must not exceed 50 chars.
- CRMAddLead: Error - This is not a valid parameter for Gender
- CRMAddLead: Error - If the gender is passed as an Integer value as a string, it must be either 0 for male or 1 for female
- CRMAddLead: Error - Invalid DateOfBirth
- CRMAddLead: Error - Invalid WeddingAnniversary
- CRMAddLead: Error - The LeadSource must not exceed 50 chars.
- CRMAddLead: Error - The leadID is not yet supported via the API. No value other than 0 is accepted for this function at this time.
- CRMAddLead: Error - Unkown error storing record (1).
- CRMAddLead: Error - Unkown error storing record (2).
- CRMAddLead: Error - Unknown error validating function input.
- CRMAddLead: Error - The Enquirey was not entered or e-mailed.
- CRMAddLead: Error - Unknown error adding WebsiteEnquirey.
-
CancelBooking
This can be used to CancelBooking an existing BookingID to which your user has access.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- BookingID (Integer)
Error Responses:- CancelBooking: Validation Error 1
- CancelBooking: Error - You do not have rights to cancel a booking. Please contact you CiiRUS technical point of contact for more information.
- CancelBooking: Error - It could not be determined if this booking has already been canceled (1).
- CancelBooking: Error - It could not be determined if this booking has already been canceled (2).
- CancelBooking: Error - It could not be determined if this booking has already been canceled (3).
- CancelBooking: Error - It could not be determined if this booking has already been canceled (4).
- CancelBooking: Error - This booking may no longer be active on the system. (1).
- CancelBooking: Error - This booking may no longer be active on the system. (2).
- CancelBooking: Error - This booking may no longer be active on the system. (3).
- CancelBooking: Error - You do not have access to this booking
- CancelBooking: Error - The propertyID of the specified booking could not be resolved.
- CancelBooking: Error - CS Relation could not be resolved.
- CancelBooking: Error - Could not resolve the User's relationship to this Property.
- CancelBooking: Error - You do not have rights to cancel a booking. This must be enabled by your CiiRUS technical point of contact for this Property Supplier.
- CancelBooking: Error - Booking not Cancelled.
- CancelBooking: Error - Unkown Error (1)
- CancelBooking: Error - Unkown Error (2)
-
GetAOATSPropertyNightlyRoomsToSell
Returns the number of rooms in the AOA category, the bookings placed, and the rooms available per day. Availability for Timeshare units is managed on a per channel basis, usually by the CiiRUS system.
Note: This function is limited to ranges of nights between 0 and 30 inclusive.Use this function to get quanitity of rooms to sell or sold per night for a specified date range
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (integer)
- MinimumDateInRange (String, dd MMM yyyy)
- MaximumDateInRange (String, dd MMM yyyy)
Error Responses:- GetAOATSPropertyNightlyRoomsToSell: Validation Error 1
- GetAOATSPropertyNightlyRoomsToSell: Validation Error 2 - Property has been deleted from the system.
- GetAOATSPropertyNightlyRoomsToSell: Validation Error 3 - Property has been deleted from the system.
- GetAOATSPropertyNightlyRoomsToSell: Validation Error 2
- GetAOATSPropertyNightlyRoomsToSell: Error - Unkown Error 2
- GetAOATSPropertyNightlyRoomsToSell: Error - Property not enabled for online booking. Please contact the supplier to enable this property.
- GetAOATSPropertyNightlyRoomsToSell: Error - Departure Date must be at least 1 night after the Minimum Date
- GetAOATSPropertyNightlyRoomsToSell: Error - Invalid days in range (AOA)
- GetAOATSPropertyNightlyRoomsToSell: Error - Departure Date must be at least 1 night after the Minimum Date, and Minimum Date must be greater than or equal to Today's date.
- GetAOATSPropertyNightlyRoomsToSell: Error - Requested Availability range too large. (Max Range: 30 nights)
- GetAOATSPropertyNightlyRoomsToSell: Error - This Function is only for use with AOA or TimeShare properties
- GetAOATSPropertyNightlyRoomsToSell: Error - DataSet not Populated(AOA)
- GetAOATSPropertyNightlyRoomsToSell: Error - DataSet not Populated (AOA - NumRoomsInCat)(1)
- GetAOATSPropertyNightlyRoomsToSell: Error - DataSet not Populated (AOA - NumRoomsInCat)(2)
- GetAOATSPropertyNightlyRoomsToSell: Error - invalid propertyID
-Convert integer to binary and trim first char if 0 and last chars of binary string if length of string is greater than nights in range by one. This is if the property has avialability per day starting at the 0 index night object (the StartDate value) forward in time to the end of the range. Note: Use StartDate to set the beginning date for your loop to the end of range. Use the DayOffset value of each night object to add that number of days to the StartDate to get the date for that night. (StartDate + DayOffset, interval in days)
-
GetAllPropertyRatesAndRestrictionsPerMC
Returns the daily rental rates for all propeties of a specified MCUserID (for date bands where the end date >= today)
Note: All daily and weekly rates set in the app are returned as a nightly rate.
Note: Monthly RateSets are NOT Supported via the API.
Note: If 0 rates, this is either defined/not defined by the supplier, or the supplier has selected/unselected use "nightly floor rate" (the wholesale rate)
Note: RateTypes are as follows:- 0 - Weekly Rate ((AKA Weekly Retail) rates based per 7 day date range)
- 1 - Daily ((AKA Nightly Retail) rates based per night)
- 2 - Floor ((AKA Wholesale) rates based per night)
**Zero rates should not be booked***
Note: This Function Caches for 6 hours. This should be used for bulk rate updates only. We encourage one or two times a day updating the cache of these values in your thrid party database, and all other updates be al a carte style as requested by the user.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- MCUserID (Integer)
Error Responses:- GetAllPropertyRatesAndRestrictionsPerMC: Validation Error 1
- GetPropertyRatesAndRestrictions: The MCUserID must be greater than 0.
- GetPropertyRatesAndRestrictions: Could not obtain list of MC Properties (1)
- GetPropertyRatesAndRestrictions: Could not obtain list of MC Properties (2)
- GetPropertyRatesAndRestrictions: Could not obtain list of MC Properties (3)
- GetPropertyRatesAndRestrictions: MC has No Configured Properties
- GetAllPropertyRatesAndRestrictionsPerMC: Error - CS Relation could not be resolved.
- GetAllPropertyRatesAndRestrictionsPerMC: Could not resolve MC.
- GetAllPropertyRatesAndRestrictionsPerMC: Could not resolve query (1)
- GetAllPropertyRatesAndRestrictionsPerMC: This User does not have permissions for this property.
- GetPropertyRatesAndRestrictions: Validation Error 2 - Property has been deleted from the system.
- GetAllPropertyRatesAndRestrictionsPerMC: Could not resolve query (2)
- GetAllPropertyRatesAndRestrictionsPerMC: Could not resolve query (3)
- GetAllPropertyRatesAndRestrictionsPerMC: Could not resolve query (4)
- GetAllPropertyRatesAndRestrictionsPerMC: Unknown Error
- GetPropertyRatesAndRestrictions: No response objects added to response object
-
GetAllReservations
This can be used to return all reservations stored for the property specified. This will include historic actrive reservations only. Cancelled bookings will not be returned.
This function "GetAllReservations" differs from the function "GetReservations" in other CiiRUS API Endpoints.
"GetReservations" - Returns a list of active reservations with depart date >= today for one specified property ONLY.
"GetAllReservations" - This can be used to return all reservations accessable to this API User for All Properties in the account. This will include active reservations with depart date >= today only. Cancelled bookings will not be returned.
Note: This function caches responses for 10 minutes.
-If you are trying to update future availability, you can get more upto date data with the function "GetReservations " offered in an alternate CiiRUS endpoint.
-If you need to verify availabilty for a specific date range, please use, "IsPropertyAvailable ".
Note: Any reservation returned with a BookingID of zero is a system calculated date range of non-availability. This is not a booking for a guest or a BlackOutDate.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- xmlMsg (String)
-Pass blank string unless otherwise discussed with your CiiRUS technical point of contact. - jSonMsg (String)
-Pass blank string unless otherwise discussed with your CiiRUS technical point of contact.
Error Responses:- CancelBooking: Validation Error 1
- GetAllReservations: Error - Could not resolve populate dataset
- GetAllReservations: Error - Could not resolve MinDaysBeforeArrival
- GetAllReservations: Error - Unknown Error
-
GetBookingFee
Returns the rules for calculating the Booking Fee on a per property basis.
Note: This function caches responses for 1 minute.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
Error Responses:- GetBookingFee: Validation Error 1
- GetBookingFee: Error - CS Relation could not be resolved.
- GetBookingFee: You do not have access rights to this Property (1).
- GetBookingFee: You do not have access rights to this Property (2).
- GetBookingFee: Error - Could not populate dataset.
- GetBookingFee: No Type could be determined for the booking fee set in this user's account.
- GetBookingFee: Unhandled error in determining the Booking Fee Type.
- GetBookingFee: Unhandled error in determining the BookingFeeAmount.
- GetBookingFee: Unhandled error in determining the ChargeBookingFeeOnlyWhenCC value to return.
- GetBookingFee: The dataset returned too many rows (1).
- GetBookingFee: The dataset returned too many rows (2).
- GetBookingFee: Unknown Error
-
GetCleaningFee
Returns the rules for calculating the Cleaning Fee on a per property basis.
Note: This function caches responses for 1 minute.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
Error Responses:- GetCleaningFee: Validation Error 1
- GetCleaningFee: Error - CS Relation could not be resolved.
- GetCleaningFee: You do not have access rights to this Property (1).
- GetCleaningFee: You do not have access rights to this Property (2).
- GetCleaningFee: Error - Could not populate dataset.
- GetCleaningFee: Unknown Error
-
GetExtras
Returns a list of both manditory and optional extras with the rules for calculating the extras cost. Extras apply on a per property basis.
-Manditory Extras are extras that are required by the MC with each booking for the specified property unless otherwise agreed/contracted. The "MakeBooking" function adds these automatically. The "AddBooking" function requires these are added using this function.
-Optional Extras are extras that are optional additions to each booking for the specified property unless otherwise agreed/contracted. The "MakeBooking" does not accept optional extras, but this function can be used after the reservation has been placed to add them by BookingID. The "AddBooking" function requires these are added using this function is specified by the guest.
Note: This function caches responses for 1 minute.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
Error Responses:- GetExtras: Validation Error 1
- GetExtras: Error - CS Relation could not be resolved.
- GetExtras: You do not have access rights to this Property (1).
- GetExtras: You do not have access rights to this Property (2).
- GetExtras: Error - Could not determine Host MC.
- GetExtras: This query could not be resolved.
- GetExtras: No Extras Configured for this Property.
- GetExtras: Unknown Error
-
GetGuestReviews
Returns a Guest reviews stored for the specified Property or all properties.
Note: This function caches responses for 1 minute.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
Note: If 0 is passed, returns all reviews available to your API User.
Error Responses:- GetGuestReviews: Validation Error 1
- GetGuestReviews: Please contact CiiRUS to learn more regarding this API functionality.
- GetGuestReviews: Error - CS Relation could not be resolved.
- GetGuestReviews: Error - You do not have access rights to this Property (1).
- GetGuestReviews: Error - You do not have access rights to this Property (2).
- GetGuestReviews: Error - Could not resolve property AverageStarRating.
- GetGuestReviews: Error - Could not resolve query.
- GetGuestReviews: Error - No Extras Configured for this Property.
- GetGuestReviews: Error - Unknown Error
-
GetPoolHeatSettings
Returns the rules for calculating the cost for PoolHeat on a per property basis.
Note: This function caches responses for 1 minute.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
Error Responses:- GetPoolHeatSettings: Validation Error 1
- GetPoolHeatSettings: Error - CS Relation could not be resolved.
- GetPoolHeatSettings: You do not have access rights to this Property (1).
- GetPoolHeatSettings: You do not have access rights to this Property (2).
- GetPoolHeatSettings: Could not resolve query.
- GetPoolHeatSettings: Unknown Error
-
GetPropertiesNightlyRoomsToSell
Returns the number of rooms (Always 1), the number of bookings placed, and the rooms available per day per PropertyID.
Note: This function is limited to ranges of nights between 0 and 31 inclusive.
Note: This function is limited an input of 20 properties per API call.Use this function to get quanitity of rooms to sell or sold per night for a specified date range for specific properties.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyIDs (array of type integer)
- MinimumDateInRange (String, dd MMM yyyy)
- MaximumDateInRange (String, dd MMM yyyy)
Exception Responses:- GetPropertiesNightlyRoomsToSell: Validation Error 1
- GetPropertiesNightlyRoomsToSell: Error - Maximum Date must be at least 1 night after the Minimum Date.
- GetPropertiesNightlyRoomsToSell: Error - Invalid days in range
- GetPropertiesNightlyRoomsToSell: Error - Requested Availability range too large. (Max Range: 31 nights)
- GetPropertiesNightlyRoomsToSell: Error - This function accepts 20 properties or fewer at a time.
Per Property Error Responses:- GetPropertiesNightlyRoomsToSell: Validation Error 2 - Property has been deleted from the system.
- GetPropertiesNightlyRoomsToSell: Validation Error 3 - Property has been deleted from the system.
- GetPropertiesNightlyRoomsToSell: Validation Error 2
- GetPropertiesNightlyRoomsToSell: Error - Unkown Error 2
- GetPropertiesNightlyRoomsToSell: Error - AOA properties are not supported via this function.
- GetPropertiesNightlyRoomsToSell: Error - TimeShare properties are not supported via this function.
- GetPropertiesNightlyRoomsToSell: Error - Could not Calculate Availability Signature.
-Convert integer to binary and trim first char if 0 and last chars of binary string if length of string is greater than nights in range by one. This is if the property has avialability per day starting at the 0 index night object (the StartDate value) forward in time to the end of the range.
Note: Use StartDate to set the beginning date for your loop to the end of range. Use the DayOffset value of each night object to add that number of days to the StartDate to get the date for that night. (StartDate + DayOffset, interval in days)
-
GetPropertyPermissions
Returns the PropertyPermissions of the propertyID passed tothis function relative to your API User.
Use this function to get the permissions and/or the relationship settings of this Property defined in the CiiRUS system relative to your API User.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
Error Responses:- GetPropertyPermissions: Validation Error 1
- Error - Invalid PropertyID
- Error (1000) The MC could not be determined for this property.
- Error (1001) This property has been orphaned, and does not have an MC.
- Error (1010) No agent relation is configured between the supplier and the agent. Please contact Ciirus.
- Error (1011) Could not resolve agent relation. Please contact Ciirus.
- Error (1012) This property has been deleted. Please contact the inventory supplier.
- Error (1012-CS) This property has been deleted. Please contact the inventory supplier.
- Error (1013) It could not be determined if this property is a CalendarSync Clone.
- Error (2000) It could not be determined if this property is a CalendarSync Clone.
- Warning - No AOA category has been assigned to this property. This inventory cannot not be booked. Please contact the supplier.
- Error (3000) It could not be determined if this property is a AOA Property.
- Error (4000) Home owner accounts are not directly supported by the API. Please contact CiiRUS to set up a SuperSite User.
- Error (5000) The Management Company has not enabled this property for your user.
- Error (6000) You have not enabled these properties to accept them into your feed. Please log into the Windows application to complete this action.
- Error (7000) The MC has enabled the property for this API User, but you have not accepted this property in the SuperSites area of the CiiRUS windows application.
- Error (8000) The MC may have disabled the property from the feed. The MC user for this property has not enabled this property for your feed, but you have accepted this property in the SuperSites area of the CiiRUS windows application.
- Error (9000) Too few records exist relating this Property to your user. Please contact the supplier to configure this property for your channel.
- Error (10,000) Error determining Agent Relationship.
- Error (11,000) Too many records exist relating this Property to your user. Please contact Ciirus.
- Error (12,000) This is a Clone of a CalendarSync TimeShare property, but this child is not set as a Timeshare Property.
- Error (13,000) Could not determine if Property is TimeShare unit.
- Error (14000) This is a Clone of a CalendarSync property, but this child is set as a Timeshare Property and not the Master.
- Error (15000) The MC may have disabled the clone property from the feed. The MC user for this property has not enabled this property for your feed, but you have accepted this property in the SuperSites area of the CiiRUS windows application.
-
GetPropertyRatesAndRestrictions
Returns the daily rental rates for specified property (for date bands where the end date >= today)
Note: All daily and weekly rates set in the app are returned as a nightly rate.
Note: Monthly RateSets are NOT Supported via the API.
Note: If 0 rates, this is either defined/not defined by the supplier, or the supplier has selected/unselected use "nightly floor rate" (the wholesale rate)
Note: RateTypes are as follows:- 0 - Weekly Rate ((AKA Weekly Retail) rates based per 7 day date range)
- 1 - Daily ((AKA Nightly Retail) rates based per night)
- 2 - Floor ((AKA Wholesale) rates based per night)
**Zero rates should not be booked***
Note: This should be used as getting values on an al a carte basis only. This should only be called to verrify rates at the time a guest visits this specific property/is about to book. All Bulk rate updates should use the function "GetAllPropertyRatesAndRestrictionsPerMC"
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
Error Responses:- GetPropertyRatesAndRestrictions: Validation Error 1
- GetPropertyRatesAndRestrictions: Validation Error 2
- GetPropertyRatesAndRestrictions: Validation Error 2 - Property has been deleted from the system.
- GetPropertyRatesAndRestrictions: Validation Error 3 - Property has been deleted from the system.
- GetPropertyRatesAndRestrictions: Error - CS Relation could not be resolved.
- GetPropertyRatesAndRestrictions: You do not have access rights to this Property (1).
- GetPropertyRatesAndRestrictions: You do not have access rights to this Property (2).
- GetPropertyRatesAndRestrictions: Could not resolve MC.
- GetPropertyRatesAndRestrictions: Could not resolve query (1)
- GetPropertyRatesAndRestrictions: This User does not have permissions for this property.
- GetPropertyRatesAndRestrictions: Could not resolve query (2)
- GetPropertyRatesAndRestrictions: Could not resolve query (3)
- GetPropertyRatesAndRestrictions: Could not resolve query (4)
- GetPropertyRatesAndRestrictions: Monthly Rates Not Supported via API. Monthly Rates Set By User. Please contact the Unit Supplier to configure a supported rate type for your channel.
- GetPropertyRatesAndRestrictions: Unknown Error
-
GetTaxRates
Returns the Tax rates on a per property basis.
Note: This function caches responses for 1 minute.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
Error Responses:- GetTaxRates: Validation Error 1
- GetTaxRates: Error - CS Relation could not be resolved.
- GetTaxRates: You do not have access rights to this Property (1).
- GetTaxRates: You do not have access rights to this Property (2).
- GetTaxRates: Could not resolve MC.
- GetTaxRates: Could not resolve query (1)
- GetTaxRates: Too many rows returned.
- GetTaxRates: Unknown Error
-
GetTaxRatesAndSettings
Returns the Tax rates on a per property basis.
Note: This function caches responses for 1 minute.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
Error Responses:- GetTaxRatesAndSettings: Validation Error 1
- GetTaxRatesAndSettings: Error - CS Relation could not be resolved.
- GetTaxRatesAndSettings: You do not have access rights to this Property (1).
- GetTaxRatesAndSettings: You do not have access rights to this Property (2).
- GetTaxRatesAndSettings: Could not resolve MC.
- GetTaxRatesAndSettings: Could not resolve query (1)
- GetTaxRatesAndSettings: Too many rows returned.
- GetTaxRatesAndSettings: Unknown Error
-
GetTermsAndConditions
Returns the Terms and Conditions on a per property basis.
Note: This function caches responses for 1 minute.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (Integer)
Error Responses:- GetTermsAndConditions: Validation Error 1
- GetTermsAndConditions: Error - CS Relation could not be resolved.
- GetTermsAndConditions: You do not have access rights to this Property (1).
- GetTermsAndConditions: You do not have access rights to this Property (2).
- GetTermsAndConditions: Could not resolve query (1).
- GetTermsAndConditions: Could not resolve query. No Terms have been defined for this Property.
- GetTermsAndConditions: Could not resolve query (2).
- GetTermsAndConditions: Non-Standard Data Response
- GetTermsAndConditions: Unknown Error
-
GetUserAPIPerFunctionUsage
-
IsPropertyAvailable
Check if stated property has availabilty for chosen dates. Returns True if there is availabity.
Use this function to do a real-time check if the specified property is available.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- PropertyID (integer)
- ArrivalDate (String, dd MMM yyyy)
- DepartureDate (String, dd MMM yyyy)
Error Responses:- IsPropertyAvailable: Validation Error 1
- IsPropertyAvailable: Validation Error 2 - Property has been deleted from the system.
- IsPropertyAvailable: Validation Error 3 - Property has been deleted from the system.
- IsPropertyAvailable: Validation Error 2
- IsPropertyAvailable: Error - Property not enabled for online booking. Please contact the supplier to enable this property.
- IsPropertyAvailable: Error - Invalid arrival or departure date.
- IsPropertyAvailable: Error - The minimum night stay could not be resolved for this date range.
- IsPropertyAvailable: Error - The AOA Property Status could not be resolved for this date range.
- IsPropertyAvailable: Error - DataSet not Populated(A)
- IsPropertyAvailable: Error - DataSet not Populated(AOA)
- IsPropertyAvailable: Error - DataSet not Populated
- IsPropertyAvailable: Error - Unkown Error 1
- IsPropertyAvailable: Error - Unkown Error 2
- IsPropertyAvailable: Error - The Allowed Arrival Days Could not be established.
- IsPropertyAvailable: Error - The Allowed Departure Days Could not be established.
-
PropertyChangeLog
Returns the last Property Change for the specified Property.
Use this function to check when the Property Static Content (Property features, Description, Terms, Rates) last changed for each PropertyID passed in the Array of ID class Objects held in the PropertyIDs Class Object.
Note: This function caches responses for 30 seconds.
Note: This function returns dates in Calibrated to the EST (-5:00) Timezone
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- MCUserID (Integer)
- PropertyIDs (Class Object)
Note: Pass any number of PropertyIDs of the same MC user in a single call or pass one at a time.- Property (Array of ID Class Objects)
- ID (Class Object)
Note: Contains "<PropertyID>" Node as Integer- PropertyID (Integer)
- ID (Class Object)
- Property (Array of ID Class Objects)
Error Responses:- PropertyChangeLog: Validation Error 1
- PropertyChangeLog: The request must contain at least 1 PropertyID
- PropertyChangeLog: You do not have access rights to this MC.
- PropertyChangeLog: MCUserID must be greater than 0.
- PropertyChangeLog: Error - CS Relation could not be resolved.
- PropertyChangeLog: You do not have access rights to this MC (2724368).
- PropertyChangeLog: You do not have access rights to this MC.
- PropertyChangeLog: MCUserID must be greater than 0.
- PropertyChangeLog: You do not have access rights to this Property.
- PropertyChangeLog: The Property Change Log Request could not be processed.
- PropertyChangeLog: No Date Could be determined.
- PropertyChangeLog: Unknown Error.
- PropertyChangeLog: The Property Change Log Request must contain one or more PropertyIDs for which your user has access.
-
UserFunctions
This is a general purpose function for one off additions to the API. The documentation on how to use this function varies per user. This usage and purpose of this function will be determined via correspondence between CiiRUS developers and this integration third party developers. Documentation on this function is provided on a per User basis.
Note: You MUST URL encode the XML string passed in the xmlMsg input string field.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- xmlMsg (String)
- returnRequestingXML (Boolean)
- Note:The parameter returnRequestingXML should be false at all times, unless you are debugging and would like to see what our server sees as your request. Your request XML will be returned in the nodes "<requestingXML>string</requestingXML>".
Error Responses:- Please check the error message in the response found at the nodes "<errorMessage>string</errorMessage>". If this error does not help, and the issue persists, please contact CiiRUS utilizing:
Obtaining API Support
Valid Response:- This will be defined specific to the function developed specifically for your user.
-
ping
This can be used to establish that your credentials work/your IP is accepted by the webservice/and that the webservice is not down.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
Error Responses:- ping: Validation Error 1
Valid Response:- Pong (String)
-
validateDiscountCode
Returns validation information regarding if a discount code will apply to a property if a reservation is made.
This would be used in conjunction with the base rental, stay durration, and user supplied code in order to validate a discount coupon code.
Pass the following parameters:- APIUsername (String)
- APIPassword (String)
- MCUserID (Integer)
- PropertyID (Integer)
- BookingArrivalDate (String - dd MMM yyyy)
- BookingDepartureDate (String - dd MMM yyyy)
- DiscountCode (String)
- RentalRate (Decimal)
Error Responses:- validateDiscountCode: Validation Error 1
- validateDiscountCode: A discount code cannot apply to a reservation with a negative night stay
- validateDiscountCode:The inventory manager was not defined.
- validateDiscountCode:The inventory unit was not defined.
- validateDiscountCode: Obtain DataSet Error.
- validateDiscountCode: Addition must be either a Flat Fee or a Mandatory charge
Note: Use other response objects to adjust the rate shown to the guest and/or to explain if the discount applies/how it applies.
Note: The "RentalRate" is the baseRental ONLY. Discounts only apply to the pre-tax renatal rate. This does NOT contain tax, extras, or fees. This is ONLY the sum of the per night rental rate.