The best way to understand our API's workflow process is through a graphical example, therefore, we have created a diagram that outlines and simplifies the steps to follow through the booking process. We will refer to this diagram as we advance further on in our explanation.
As you may have observed, this booking process is divided in four differentiated steps. We will proceed to describe each of these steps in detail:
This is the step that embraces all of the static data information that you will need to retrieve prior to overtaking the booking flow process. In the availability process there are multiple fields that you will need to fulfill, all of this information is to be obtained through the use of these transactions.
Kindly refer to examples of the same:
Refer to the API specs of each product as per additional information in this regard as, for example, depending on the product that you will be implementing, it could also be possible for you to retrieve allotment and/or rate information in order to store the same on your end. Kindly refer to the Hotel Inventory API specs as a form of example.
The availability process is the first step to create a new booking. As we have indicated in the previous point, you may narrow your availability search through various parameters, all of which will be explained in each product respective Availability sections. The most common use is to search for a specific destination code but you may also search by a specific product code.
Once you have the availability response, you will be capable of continuing the integration process by selecting the combination that you wish to book. This is done through the use of the RatePlanCode, a property that contains a unique code that will identify the same exact combination on further requests. It is very important to note that this code may be quite lenghtly and that, if you plan on storing the same on your end, you may need to configure the lenght of the field accordingly. Let’s see the following example of a response (from the Hotel API):
<HotelResult Code="JP046300" JPCode="JP046300" JPDCode="JPD086855" BestDeal="false" DestinationZone="49435">
<HotelOptions>
<HotelOption RatePlanCode="ya79dM4dS6R6EywV4XhfEgw02I3W2LBoo1m2kLpMntlD3MCM705Mp/F0FegJNOmpnp4q+rnlPTKwA+X1P0V49QjxrBmwRIC2qODc..." Status="OK" NonRefundable="true" PackageContract="false">
At this step, on which we've already performed the availability request and selected a combination through a RatePlanCode from its response, we will validate that the mentioned is still effective and that there has been no change on the same.
In order to do so we have the following transactions available:
If you use this transaction, it will be then neccesary for you to use the new RatePlanCode supplied to you through its response on subsequent requests as the mentioned will take into account any changed that could have been applied to the same.
Apart from giving us all the necessary information in order to book, it adds a key variable that will be used in the booking process. This key variable called BookingCode is the booking creation method’s feed parameter. It is important to point out that the BookingCode has an expiry and if in between this process of BookingRules and the creation of the booking the maximum BookingCode established time line is no longer valid and therefore require another BookingRules to update the BookingCode. The ExpirationDate attribute indicates the date in which the BookingCode will no longer be valid. To continue, you may see an example of a BookingCode.
<BookingCode ExpirationDate="2019-10-03T10:04:26.8377656+02:00">ya79dM4dS6R6EywV4XhfEvwItLN5sfa4xcKoRWYtG4b/utM1C8FoU7wtvxeqXKhz2utopk4+5bpJX0EGM8YWSGAwgLA0lkvt/PLN1rsHUrCU.....</BookingCode>
Once you retrieve the BookingCode of the combination that you wish to confirm through the BookingRules response, you may then send the booking confirmation request along all of the data that is requested for on the RequiredFields node from the aforementioned transaction.
The response will return a booking code (@Locator) that will identify the booking in a unique way and let you read and/or cancel the same if you ever wish to do the same.
Moving on, once the booking has been created, successfully confirmed and you've been able to retrieve its @Locator, there are two additional actions that you may take in this regard:
Kindly refer to the ReadBooking section for more information.
Kindly refer to the CancelBooking section for more information.
Depending on the configuration of your account, the system could require you to fully pay the booking through the API prior to fully confirming the same, case on which the booking will be confirmed along the QUO status (quote) and on which you will be expected to perform a credit card payment through the appropiate transactions.
Once the payment is successful and if the combination is still available, the system will then update the mentioned booking along with a fully confirmed status (PAG).
Important note:
It is very important to understand that this process will only be possible and/or required on accounts that are configured accordingly (point of sale accounts) and that, otherwise, if you're for example working with a credit and/or pre-payment account, the booking will get fully confirmed without the need of performing any kind of payment through the API. Kindly contact with your Juniper supplier if you have any doubt in regards of what kind of account will you be working with.
Kindly refer to the Payment Process section on which you will be able to find all of the neccesary information regarding this process.
Important note:
When using this API, it will be mandatory for your requests to allow for compressed responses. Additionally, it will also be strongly recommended for you to include the Content-Type: text/xml;charset=UTF-8 HTTP header on all of your requests as to avoid problems in this regard.
Kindly refer to the Frequently Asked Questions section for further information in this regard.
First of all, we would like to supply you with a brief table that includes most of the common formats that you will be able to find through this document:
Format | Type | Short Description |
---|---|---|
[Text] | String | Any characted or number (NVarchar) |
n[0..9] | Integer | 1...N recurrences of number. i.e.: 1, 60, 41050… |
n[0..9], 2[0..9] | Double | Number with decimals separated by coma. Integer part: 1...N recurrences of number. Decimal part: 2 recurrences of number. i.e.: 1,00; 100,02; 300,99, … |
true / false | Boolean | Boolean value. |
yyyy-MM-ddThh:mm:ss | DateTime | Specifies date and time |
hh:mm:ss | Time | Specifies time |
yyyy-MM-dd | Date | Specifies date |
PnYnMnDTnHnMnS | String | Specifies duration |
Then, you will be able to find all of the generic types found within this document:
It refers to the object that contains specific data to do the system login. We refer to this object as {Login}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
N | String | Email provided by Juniper or the customer. | |
@Password | N | String | Password provided by Juniper or the customer. |
It refers to the object that contains specific errors that may be returned on a response. We refer to this object as {Errors}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Error | Y | - | Specific error |
./Error/@Text | Y | String | Error text description. |
./Error/@Code | Y | String | Typified error code. Kindly refer to the Exceptions section of the API if you would like for more information in this regard. |
It refers to the object that contains specific warnings that may be returned on a response. We refer to this object as {Warnings}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Warning | Y | - | Specific warning |
./Warning/@Code | Y | String | Typified warning code. Kindly refer to the Warnings section of the API if you would like for more information in this regard. |
./Warning/@Text | Y | String | Warning description. |
It refers to the object that contains specific data about passengers (paxes). We refer to this object as {Paxes}
Node / Attribute(@) | Opt | Type | Description |
---|---|---|---|
Pax | N | - | Passenger information |
./Pax/@IdPax | N | Integer | Pax id. Passenger identification. It should start from 1 and in ascending order |
./Pax/@Gender | Y | String | Pax gender. Possible values: • M: Male • F: Female |
./Pax/Title | Y | String | Pax title. Examples: • MR • MRS • MISS • MSTR • INF_F • INF_M |
./Pax/Name | Y | String | Pax name |
./Pax/Surname | Y | String | Pax surname |
./Pax/Age | Y | Integer | Passenger age. It can be null for adults. Guests older than 18 will be considered adults If no data is sent in this node, it will be considered as a 30 years old adult. |
./Pax/Email | Y | String | Pax email |
./Pax/Document | Y | String | Identification document |
./Document/@Type | Y | String | Document type. Possible values: • PAS: Passport • NIF: Tax Identification Number • NIE: Foreigners Identification Number • DNI: National Identity Card • CIF: Fiscal Identification Code • CPF: Cadastro de Pessoas Físicas |
./Document/@ExpeditionDate | Y | Date | Document expedition date |
./Document/@Country | Y | String | Document country (ISO2). For example: ES |
./Document/@City | Y | String | Document city |
./Document/@Mrz | Y | String | Used in passports only, this is the machine-readable code usually in the bottom of the passport. Only needed in some visa requests |
./Pax/PhoneNumbers | Y | - | List of phone numbers |
./PhoneNumbers/PhoneNumber | Y | String | Pax phone number |
./Pax/BornDate | Y | Date | Pax born date Format: yyyy-MM-dd |
./Pax/CityOfBirth | Y | String | Pax born city |
./Pax/CountryOfBirth | Y | String | Pax born country (ISO2) |
./Pax/Address | Y | String | Pax address |
./Pax/City | Y | String | Pax city |
./Pax/Country | Y | String | Pax country |
./Pax/PostalCode | Y | String | Pax postal code. This field has a maximum length of 12 characters |
./Pax/Nationality | Y | String | Nationality code of the holder of the booking. Please note that the nationality of the holder will have to be consistent between all of the steps of the booking flow. This code follows the ISO-3166-1 standard, you may refer to the FAQ section for further information. |
./Pax/TicketNumber | Y | String | Pax ticket number |
./Pax/Attendant | Y | String | - |
./Attendant/@IdPax | N | Integer | The Pax id of the attendant of this pax. For example, the legal tutor. Only used in some cases for visa request. |
./Pax/ImageData | Y | Binary | The binary of the pax image. |
./Pax/ResidentDiscount | Y | - | Pax resident discount for flight. Is required when score this discount in FlightAvail |
./ResidentDiscount/@Type | N | String | Possible values to be sent: • RC: Canary Resident • BP: Balearic Resident • RM: Ceuta and Melilla Resident • DC: Canary inter-island Resident • BI: Balearic inter-island Resident |
./ResidentDiscount/@Municipality | N | String | Municipality code of the passenger. You may refer to the FAQ section for further information. |
./Pax/LargeFamilyDiscount | Y | - | Pax large family discount for flight. Is required when score this discount in FlightAvail |
./LargeFamilyDiscount/@Type | N | String | Possible values to be sent: • F1: General Category • F2: Special Category |
./LargeFamilyDiscount/@AutonomousCommunity | N | String | Autonomous community code of the passenger. You may refer to the FAQ section for further information. |
./LargeFamilyDiscount/@Code | N | String | Large family discount code |
<Pax IdPax="1" Gender="M">
<Title>MR</Title>
<Name>Test Name</Name>
<Surname>Test Surname</Surname>
<Age>30</Age>
<Email>Noreply@ejuniper.com</Email>
<Document Type="DNI" ExpeditionDate="1999-10-15" Country="ES" City="MDR" Mrz="?">123456789</Document>
<PhoneNumbers>
<PhoneNumber>(123)123456789</PhoneNumber>
</PhoneNumbers>
<BornDate>1999-10-05</BornDate>
<CityOfBirth>España</CityOfBirth>
<CountryOfBirth>Madrid</CountryOfBirth>
<Address>Calle del Dr. Mariano Alcaraz, s/n, 28222 Majadahonda, Madrid, España</Address>
<City>Madrid</City>
<Country>España</Country>
<PostalCode>28005</PostalCode>
<Nationality>ES</Nationality>
<TicketNumber>123456789</TicketNumber>
<Attendant IdPax="1">MR. Test Name</Attendant>
<ImageData>cid:803738586327</ImageData>
<ResidentDiscount Type="RC" Municipality="070064">123456</ResidentDiscount>
<LargeFamilyDiscount Type="F1" Code="123456" AutonomousCommunity="280796">12345</LargeFamilyDiscount>
</Pax>
Object used to return all information about product price. We refer to this object as {Prices}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Price | Y | - | Price. Depending on your permissions, you may find up to two price nodes, one for the sales price and one for the cost price. |
./Price/@Type | Y | String | Identifies if the node is a sales or cost price. By default, cost prices will be restricted and unavailable, kindly contact Juniper if you would like this information. Possible values: • S: Sales • C: Cost |
./Price/@Currency | Y | String | Currency of all object amounts. The sales currency and the cost currency may differ. |
./Price/TotalFixAmounts | Y | - | Total price amounts. |
./TotalFixAmounts/@Recommended | Y | Double | Recommended sales price. This is optional information that is only returned when the product has a recommended sales price established on their end. It will only be available on sales prices (@Type S ones). |
./TotalFixAmounts/@Gross | Y | Double | Total gross amount of the combination. This will be the amount that you will need to use in the booking transaction (along with the minimum and maximum margin that you would accept on the reservation). It will stand for the Service@Amount, the Commissions@Amount and, if applicable (on sales prices), the HandlingFees@Amount. |
./TotalFixAmounts/@Nett | Y | Double | Total nett amount of the combination, this amount excludes any applicable commission. This will be the amount that you will need to use in the payment transaction (if you plan on paying through the API). It will stand for the Service@Amount and, if applicable (on sales prices), the HandlingFees@Amount. |
./TotalFixAmounts/Service | Y | - | Service amount. Supplements, discounts and (@Included true) taxes are included. |
./Service/@Amount | Y | Double | Amount = Base Price |
./TotalFixAmounts/ServiceTaxes | Y | - | Total tax amount of the price object. |
./ServiceTaxes/@Included | N | Boolean | Indicates if tax price is already included in the product price. • False: Tax price not included |
./ServiceTaxes/@Amount | N | Double | Amount = ServiceTaxes@Amount (not included service taxes) |
./TotalFixAmounts/Loyalty | Y | - | Total loyalty amount. Requires for the loyalty module in order to function, contact with Juniper if you would like for more information. |
./Loyalty/@Amount | N | Double | Loyalty program points amount. Represents the conversion to points of the total price of the reservation. |
./TotalFixAmounts/Commissions | Y | - | Total amount corresponding to the applied commissions and included in the ServiceAmount and the Nett. |
./Commissions/@Included | Y | Boolean | Indicates if tax price is already included in the product price. • True: Commission price included • False: Commission price not included |
./Commissions/@Amount | N | Double | Total commissions amount value |
./TotalFixAmounts/HandlingFees | Y | - | Total amount of handlingfee applied and included to the ServiceAmount and to the Nett. |
./HandlingFees/@Included | N | Boolean | Indicates if handlingFees is already included in product price. • True: HandlingFees price included • False: HandlingFees price not included |
./HandlingFees/@Amount | N | Double | Total handlingfees amount value |
./TotalFixAmounts/Discount | Y | - | Total amount of the applied discounts included in the ServiceAmount and the Nett. |
./Discount/@Amount | N | Double | Total discount value |
./Price/Breakdown | - | - | Price breakdown. By default it will not be returned. In order to return this information please, use the AdvancedOptions ShowBreakdownPrice. |
./Breakdown/Concepts | Y | - | List of available concepts. |
./Concepts/Concept | Y | - | Specific concept. The may be multiple Concept. |
./Concept/@Type | N | String | Concept type. Possible values: • BAS: Base type concept • SUP: Supplement type concept • OFE: Offer type concept • HFE: Handling Fee type concept • TAS: Tax type concept • PRO: Promo type concept • DTO: Discount type concept • OTH: Other non-defined type concept |
./Concept/@Name | Y | String | Reference name |
./Concept/@Code | Y | String | Only for packages, hotel supplements and offers and cost prices. If it is a package, indicates the code of the package products to which the item will be associated. If it is a hotel and a supplement or offer concept, indicates the supplement/offer type: Supplements: • BSUP: Basic supplement • SHTSTA: Short stay • PICKUP: Pick-up point Offers: • BDISC: Basic discount • LOWPR: Lower prices • PCxMP: Mealplan change • UPGRRM: Room type upgrade • FREEN: Free nights • FREEP: Free passengers • SOFFER: Offer on short stay supplement • EARLYB: Early booking |
./Concept/@RelationalCode | Y | String | Internal code that identifies the {AdditionalElement} @Code from which this concept originates from |
./Concept/Items | Y | - | Subnodes that define the items that will form the reference that is being defined. |
./Items/Item | Y | - | Concept item. Each item node corresponds to a price per day or a price mode |
./Item/@Amount | Y | Double | Sales amount based on the concept |
./Item/@Date | Y | Date | Application date for which the item will apply Format: yyyy-MM-dd |
./Item/@Quantity | Y | Integer | Quantity application indicator for this concept |
./Item/@Days | Y | Integer | Indicator of the number of days for which the item will apply |
./Item/@PaxType | Y | String | Indicates the type of pax to which the item will be associate it with. Some examples are: • ADT: Adult • ADU: Adult • CHD: Child • INF: Infacnt |
./Item/@SupplierAmount | Y | Double | Only for packages and cost prices. If specified, it indicates the cost price currency of the corresponding supplier. In packages, the amount and cost price currency are unified with the sales currency. |
./Item/@SupplierCurrency | Y | String | Only for packages and cost prices. If specified, it indicates the currency of the supplier. In packages, the amount and cost price currency are unified with the sales currency |
./Item/@Source | Y | String | Room identifier within the list. For example, if you had two rooms “1” would identify the first room while “2” would identify the second room. |
./Concept/Taxes | Y | - | Taxes that apply to the concept |
./Taxes/{Tax} | N | - | Tax |
./Breakdown/Taxes | Y | - | Taxes applied to all of the concepts |
./Taxes/{Tax} | N | - | Tax |
./Breakdown/Commissions | Y | - | Subnode of concepts in which the commissions are configured. These may be from an Agency or a Supplier. |
./Commissions/{Commission} | N | - | Commission |
./Breakdown/Discounts | Y | - | Sales early booking discount subnode or promocodes that only apply to sales. |
./Discounts/{Discount} | N | - | Discount. |
./Price/Cancellation | Y | - | Cancellation charges. If missing on an already cancelled booking, it will imply that the cancellation charges are pending of being defined on the booking (as always, you can expect for them to be the same ones specified on the cancellation policies). |
./Cancellation/@Amount | N | Double | Cancellation charges amount. |
We refer to this object as {Tax}, {Commission} or {Discount}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Type | Y | String | Only for commissions and discounts. If it is a commission: • A – Agency commission • P – Supplier commission If it’s a discount: • P – Promocode • V – Early booking • C - Campaign |
@Name | Y | String | Name |
@Value | Y | Double | Price or value |
@IsFix | Y | Boolean | Indicates if the Value attribute is a fixed tax/commission/discount |
@TaxAAmount | Y | Double | Tax A Commission amount. Only for commissions. |
@TaxBAmount | Y | Double | Tax B commission amount. Only for commissions |
@ByNight | Y | Boolean | Indicates if it is a tax per night. Only for taxes. |
@Commissionable | Y | Boolean | Indicates if the tax is commissionable. Only for taxes |
@Included | Y | Boolean | Indicates if the element (tax, commissión, discount, etc...) is already included within the price. |
Total | Y | - | Tax/commission/discount total value. |
./Total/@Base | Y | Double | Indicator of the base amount to which it applied. |
./Total/@Amount | Y | Double | Indicator of the amount obtained on the Base amount. The amount is calculated |
Commission | Y | - | Commission on tax. Only for taxes. |
./Commission/@Base | Y | Double | Commission base amount of the tax. |
./Commission/@Amount | Y | Double | Commission amount obtained on the commission Base amount |
Object that identifies the cancellation policies of a combination. We refer to this object as {CancellationPolicy}
We may also refer to this object as {CancellationPolicyCost}, case on which, it will stand for the cost cancellation policies of the combination. This is restricted information that is not returned by default, if you would like to retrieve the mentioned contact with Juniper for further information.
Important note:
Keep in mind that the hours found on these policies cannot be ensured to be on the destination TimeZone. In addition, its important to keep in mind that these policies are calculated and applied by taking into account the TimeZone of the Juniper Client System.
You will be able to find the TimeZone of the Juniper Client System on the TimeStamp from the response of any transaction.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@CurrencyCode | Y | String | Currency code of the cancellation policies. |
@Type | Y | Boolean | Cancellation policy type. Possible values: • S: Sales • C: Cost If unavailable, the cancellation policies will stand for the sales or cost cancellation policies of the combination depending on if they're located on the {CancellationPolicy} or {CancellationPolicyCost} node. |
FirstDayCostCancellation | Y | Date | If available, this date indicates the moment when the booking would start incurring into cancellation costs. Please, note that sometimes this date cannot be calculated automatically. Format: yyyy-MM-dd |
./FirstDayCostCancellation/@Hour | Y | String | Indicates the time of the day referred by the FirstDateCostCancellation value. Format: hh:mm |
Description | Y | String | If available, some comments from the hotel or supplier are shown here |
PolicyRules | Y | - | Policy rules that describe the available cancellation policies. Take into account that they are not always returned. Should this happen, a plain text will be returned in the Description field. |
./PolicyRules/Rule | N | - | Specific rule. A PolicyRules may contain multiple Rule. |
./Rule/@From | Y | Integer | Optional attribute. Indicates the number of days before the check-in date |
./Rule/@To | Y | Integer | Optional attribute. Indicates the number of days before the check-in date (or after the confirmation date). |
./Rule/@DateFrom | Y | Date | Optional attribute. Indicates the date from which the rule applies. Format: yyyy-MM-dd |
./Rule/@DateFromHour | Y | String | Indicates the time of the day referred by the DateFrom value. Format: hh:mm |
./Rule/@DateTo | Y | Date | Optional attribute. Indicates the date to which the rule applies. Format: yyyy-MM-dd |
./Rule/@DateToHour | Y | String | Indicates the time of the day referred by the DateTo value. Format: hh:mm |
./Rule/@Type | Y | String | The type of rule that will be used. • V: Before the check-in date. • R: After the booking confirmation date • S: No Show |
./Rule/@FixedPrice | Y | Double | Price value of the rule. Will use the currency specified on @CurrencyCode. |
./Rule/@PercentPrice | Y | Double | Price percentage of the rule. |
./Rule/@MostExpensiveNightPrice | Y | Double | Price value of the most expensive night. Only available for rules with a MostExpensiveNight application (@ApplycationTypeNights). |
./Rule/@Nights | Y | Integer | Number of nights of penalty. |
./Rule/@StayLengthFrom | Y | Integer | Indicates the stay length or number of nights from which the cancellation rule applies. |
./Rule/@StayLengthTo | Y | Integer | Indicates the stay length or number of nights to which the cancellation rule applies. If StayLengthFrom is informed but StayLenghtTo is not, the rule applies to all bookings longer than StayLengthFrom value. |
./Rule/@ApplicationTypeNights | Y | String | If we have any night type cancellation charge configuration, it will indicate how the price per night will be calculated. The possible night type values are: • Average: This is the average price of all nights • FirstNight: The price of first night • MostExpensiveNight: The price of the most expensive night Blank or empty field. If we don’t have night penalty |
./Rule/@FirstNightPrice | Y | Double | Price value of the first night. Only available for rules with a FirstNight application (@ApplycationTypeNights). |
Object to receive images. We refer to this object as {Images}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Image | N | String | Image. The Images node may contain multiple Image. |
./Image/@Type | N | String | Image type. Possible values: • BIG - Big • THB - Thumb • PAN - Panoramic (360º) |
./Image/@Featured | Y | Boolean | Indicates whether the image is the main image or not |
./Image/FileName | N | String | File name or URL |
Object to receive descriptions. We refer to this object as {Descriptions}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Description | N | String | Description. The Descriptions node may contain multiple Description. |
./Description/@Type | N | String | Description type. Possible values: • SHT - Short • LNG - Long • ROO - Room • SPT - Sport • ZNE – Zone (Deprecated) • OTH - Other |
This node is located within all request and is meant for internal use only.
Additional policies are the ones that complete the ones in {CancellationPolicy}. For instance, they can describe the penalties applied after changes (or cancellation) on flight tickets. We refer to this object as {AdditionalPolicies}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
AdditionalPoliciesGroup | Y | - | Groups additional policies by amount type and currency. |
./AdditionalPoliciesGroup/@Type | Y | String | Amount type for the prices in Rule elements. • C: Cost. • S: Sell. By default C groups will not be returned. If you need this information, please contact Juniper. |
./AdditionalPoliciesGroup/@CurrencyCode | Y | String | Currency code. |
./AdditionalPoliciesGroup/AdditionalPolicy | Y | - | Additional policy main element. |
./AdditionalPolicy/@PolicyType | Y | String | Defines which action will trigger the policy. • ModifyTicket: Flight changes after ticket issuance. • RefundTicket: Flight cancel after ticket issuance. |
./AdditionalPolicy/@Allowed | N | Boolean | Indicates if the action defined in @PolicyType is allowed. |
./AdditionalPolicy/Description | Y | String | Describes the additional policy. |
./AdditionalPolicy/PolicyRules | Y | - | Rules list that describe the additional policy. Take into account that they are not always returned. In that case, a plain text will be returned in the Description field. |
./PolicyRules/Rule | Y | - | Rule element. |
./Rule/@DateFrom | Y | Date | Optional attribute. Indicates the date from which the rule applies. Format: yyyy-MM-dd |
./Rule/@DateFromHour | Y | String | Indicates the time of the day referred by the DateFrom value. Format: hh:mm |
./Rule/@DateTo | Y | Date | Optional attribute. Indicates the date to which the rule applies. Format: yyyy-MM-dd |
./Rule/@DateToHour | Y | String | Indicates the time of the day referred by the DateTo value. Format: hh:mm |
./Rule/@Type | Y | String | Type based on the time period which the Rule applies. • V: Before service starts. • S: After service starts. |
Object that identifies the additional elements that will be applied to the reservation while not being included within the product price (like, for example, the adjustment made by a PromoCode). We refer to this object as {AdjustmentResult}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
PriceInformation | N | - | General information of the adjustment |
./PriceInformation/Promotions | N | - | Applicable promotions |
./Promotions/Promotion | N | - | Specific promotion |
./Promotion/Name | N | String | Promotion name. On PromoCode adjustments, it will include the promotional code that is being applied. |
./PriceInformation/{Prices} | N | - | Adjustment price. |
RelPaxesDist | Y | - | Distribution of passengers to which the proomotion applies. If empty, it will imply that the distribution is unknown or that it does not apply to the entirety of the distribution of the reservation. |
./RelPaxesDist/RelPaxDist | Y | - | Distribution list. Each one them corresponds to a room. |
./RelPaxDist/RelPaxes | Y | - | Passengers list of this distribution/room. |
./RelPaxes/RelPax | N | - | Passenger. |
./RelPax/@IdPax | N | Integer | Passenger Identifier. It should match with a Pax@IdPax. |
Object that identifies the additional elements that have been applied to the reservation and that are not being included within the product price (like, for example, the adjustment made by a PromoCode). We refer to this object as {AdjustmentItem}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@ItemId | N | String | Item identifier |
@Status | N | String | Item status. Possible values are: •OK or AV - Available •RQ - On request •CA - Cancelled |
@Start | N | Date | Item start date |
@End | N | Date | Item end date |
{Prices} | N | - | Adjustment price. |
AdjustmentInfo | N | - | General information of the adjustment. |
./AdjustmentInfo/Name | N | String | Adjustment name. |
Object that identifies the additional required fields that might be required in order to be able to complete the booking flow of a product. We refer to this object as {AdditionalRequiredFields}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
AdditionalRequiredField | Y | - | Specific additional required field. |
./AdditionalRequiredField/@Code | N | Integer | Code that identifies the additional required field in question. |
./AdditionalRequiredField/@Mandatory | Y | Boolean | Indicates if the required field will be mandatory in order to be able to continue. |
./AdditionalRequiredField/@RelPax | Y | Integer | Indicates the passenger to which the additional required field applies to (only if it applies to any passenger in specific, otherwise the property will not be available and the require field will apply to all of them). |
./AdditionalRequiredField/@Type | Y | Enum | Required field data type. Possible values: • String • CheckBox • Enum |
./AdditionalRequiredField/@Size | Y | Integer | Size available for the value/response (for example, for String fields). |
./AdditionalRequiredField/Name | Y | String | Name of the required field. |
./AdditionalRequiredField/Value | Y | String | Value/response for the required field. |
./AdditionalRequiredField/Values | Y | - | List of possible values of an Enum @Type additional required field. Unnecessary for the booking confirmation request, as the selected value from the list must be instead specified on the Value node instead. |
./Values/Value | N | String | Name/description of a specific value. There may be multiple instances of this node (to represent the multiple possible options). |
./Value/@Code | N | String | Code that represents the value in question and that should be used in order to select the same on the confirmation request. |
Next, we would like to provide you with a usage example:
<AdditionalRequiredFields>
<AdditionalRequiredField Code = "1" Mandatory = "true" Type = "String" Size = "20">
<Name>Mandatory field 1</Name>
</AdditionalRequiredField>
<AdditionalRequiredField Code = "2" Mandatory = "false" Type = "String" Size = "20">
<Name>Optional field 2</Name>
</AdditionalRequiredField>
<AdditionalRequiredField Code = "3" Mandatory = "false" Type = "CheckBox">
<Name>Optional field 3</Name>
</AdditionalRequiredField>
<AdditionalRequiredField Code = "4" Mandatory = "true" Type = "Enum">
<Name>Select "Immediate issue and payment"</Name>
<Values>
<Value Code = "92">Immediate issue and payment</Value>
</Values>
</AdditionalRequiredField>
</AdditionalRequiredFields>
<AdditionalRequiredFields>
<AdditionalRequiredField Code = "1">
<Value>Mandatory value</Value>
</AdditionalRequiredField>
<AdditionalRequiredField Code = "4">
<Value>92</Value>
</AdditionalRequiredField>
</AdditionalRequiredFields>
There are some common transactions used in all API products.
This method allows to retrieve a generic data catalogue within a generic format. In the request, it is mandatory to set the authentication information and the catalogue type. You can choose which of the implemented catalogues you want to retrieve with the attribute Type in the request. As the response is multilanguage, the language code is not mandatory in the request and does not have any effect into de response.
You must cache these generic data catalogues in a data base, and update it weekly. By now you can get a currency list, and in the future there will be other generic lists also implemented. This currency list returns all available ISO 4217 currency codes in the system. The currency codes are used in the availability, check and book requests.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Email provided by Juniper or the customer |
{Login} | N | - | Customer login to access the Web Service |
GenericDataCatalogueRequest | N | - | - |
./GenericDataCatalogueRequest/@Type | N | String | Catalogue type. Possible values: • LANGUAGES: list of available languages • COUNTRIES: list of available ISO 3166-1 alpha-2 country codes • CURRENCY: list of available currencies NOTE: Please note that this information represents the list of all of the available elements (languages, currencies, etc..) that your supplier may have on their system and that if your supplier restricts your account to only be able to use a specific set of them (for example, if your supplier restricted your account so that you could only use 2 country codes), the results won't reflect the same (as per the example, it would still supply you with all of the available country codes instead of only the 2 available ones). |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<GenericDataCatalogue>
<GenericDataCatalogueRQ Version="1.1" Language="es">
<Login Password="pass" Email="user@mydomain.com"/>
<GenericDataCatalogueRequest Type="CURRENCY"/>
</GenericDataCatalogueRQ>
</GenericDataCatalogue>
</soapenv:Body>
</soapenv:Envelope>
Node/Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
GenericDataCatalogueRS | N | - | - |
./GenericDataCatalogueRS/GenericDataCatalogue | N | - | - |
./GenericDataCatalogue/CatalogueItem | Y | - | List of elements of the catalogue |
./CatalogueItem/@Code | N | String | Item code |
./CatalogueItem/ItemContentList | Y | - | List of contents of the item |
./ItemContentList/ItemContent | N | - | Content of the item in a language. |
./ItemContent/@Language | N | String | Language of the content |
./ItemContent/Name | Y | String | Name of the content in the language defined in @Language |
./ItemContent/Description | Y | String | Description of the content in the language defined in @Language |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GenericDataCatalogueResponse>
<GenericDataCatalogueRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-09-23T14:52:56.3719805+02:00" IntCode="kmJ1bL08d6WgEzLsGf/6CHdfmSwwjFc9XTcvC2+BUT0=">
<GenericDataCatalogue>
<CatalogueItem Code="EUR">
<ItemContentList>
<ItemContent Language="ES">
<Name>Euro</Name>
</ItemContent>
<ItemContent Language="EN">
<Name>Euro</Name>
</ItemContent>
</ItemContentList>
</CatalogueItem>
<CatalogueItem Code="GBP">
<ItemContentList>
<ItemContent Language="ES">
<Name>Libra Esterlina</Name>
</ItemContent>
<ItemContent Language="EN">
<Name>Pound Sterling</Name>
</ItemContent>
</ItemContentList>
</CatalogueItem>
<CatalogueItem Code="USD">
<ItemContentList>
<ItemContent Language="ES">
<Name>Dolar Americano</Name>
</ItemContent>
<ItemContent Language="EN">
<Name>American Dollar</Name>
</ItemContent>
</ItemContentList>
</CatalogueItem>
<CatalogueItem Code="RUB">
<ItemContentList>
<ItemContent Language="ES">
<Name>Rublo Ruso</Name>
</ItemContent>
<ItemContent Language="EN">
<Name>Russian Ruble</Name>
</ItemContent>
</ItemContentList>
</CatalogueItem>
<CatalogueItem Code="JPY">
<ItemContentList>
<ItemContent Language="ES">
<Name>Yen Japonés</Name>
</ItemContent>
<ItemContent Language="EN">
<Name>Japanese Yen</Name>
</ItemContent>
</ItemContentList>
</CatalogueItem>
</GenericDataCatalogue>
</GenericDataCatalogueRS>
</GenericDataCatalogueResponse>
</soap:Body>
</soap:Envelope>
Through the use of this transaction, you will be capable of retrieving all of the available destination codes for a specific product. These destination codes would later be used on the availability request of the specified product.
There are mainly two ways to use this request:
You must organize and cache these zones in a database in order for you to later be capable of requesting availability for them and/or simply identifying the destination of a specific product (for example, if you wish to identify the destination of a hotel that you retrieved through the HotelPortfolio response).
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
ZoneListRequest | Y | - | - |
./ZoneListRequest/@ProductType | Y | String | It is an optional attribute. If you specify it, the response will return all searchable zones for this product. Product type values: • HOT - Hotel • CAR - Car • TKT - Ticket • TRF - Transfer • VSD - Visa • PCK - Package • FLH - Flight • INS - Insurance • CRU - Cruise |
./ZoneListRequest/@ShowIATA | Y | Boolean | Optional attribute to return the IATA codes (if available). |
./ZoneListRequest/@MaxLevel | Y | Integer | Optional attribute that allows for you to filter the number of destination levels that will be supplied on the response. It is only recommended to be used (along a @MaxLevel of 3) on those cases on which your system only maps cities and does not care for any kind of destination beyond that. |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<ZoneList>
<ZoneListRQ Version="1.1" Language="en">
<Login Password="pass" Email="user@mydomain.com"/>
<ZoneListRequest ProductType="HOT"/>
</ZoneListRQ>
</ZoneList>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
ZoneList | N | - | Zonelist information. |
./ZoneList/Zone | Y | - | Zone node, one for every available zone. |
./Zone/@JPDCode | N | String | Shared zone identificator between all Juniper clients. JPDCodes can be presented in two ways: • JPDXXXXXX: This code implies that this is a shared zone and serves as an identifier on all Juniper clients. • CUDXXXXXX: This code implies that this is a zone created by your supplier and will not be shared between Juniper clients. |
./Zone/@ParentJPDCode | N | String | Parent JPDCode. If not available, the zone has no parent. |
./Zone/@AreaType | Y | String | Indicates the type of the zone, if available (as this is an optional property, it is not recommended to base the mapping on this value and instead, should be simply used as additional information to improve the mapping when available) Possible values: • ARP: Airport • BAR: Neighborhood • COL: Colony • CTY: City • EST: Train station • LOC: Location • PAS: Country • PRT: Port • PTI: Point of interest • REG: Region • SKI: Ski resort • TUR: Tourist area • ALO: Accommodation • OTR: Other |
./Zone/@IATA | N | String | If available, indicates the IATA code for this zone. |
./Zone/@Searchable | N | Boolean | Indicates if you can search with this zone |
./Zone/@Code | N | String | Zone code |
./Zone/@ParentCode | Y | String | Parent zone code. If not available, the zone has no parent |
./Zone/Name | N | String | Zone name |
./Zone/Synonyms | Y | - | Applicable synonyms of the zone that your supplier may have established. Currently, up to one synonym may be returned |
./Synonyms/Synonym | Y | String | Zone synonym |
<soap:Envelope xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ZoneListResponse xmlns = "http://www.juniper.es/webservice/2007/">
<ZoneListRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2022-06-30T16:26:05.5387408+02:00" IntCode = "ZqyWDDFmyWLCTurEngyKL7rAgg981IXm1rxX5GZGs7Q=">
<ZoneList>
<Zone JPDCode = "JPD054557" ParentJPDCode = "JPD036705" AreaType = "CTY" Searchable = "true" Code = "15011" ParentCode = "1953">
<Name>Palma de Mallorca</Name>
<Synonyms>
<Synonym>Palma</Synonym>
</Synonyms>
</Zone>
<Zone JPDCode = "JPD036705" ParentJPDCode = "JPD034804" AreaType = "REG" Searchable = "true" Code = "1953" ParentCode = "118">
<Name>Majorca</Name>
</Zone>
<Zone JPDCode = "JPD034804" AreaType = "PAS" Searchable = "true" Code = "118">
<Name>Spain</Name>
</Zone>
</ZoneList>
</ZoneListRS>
</ZoneListResponse>
</soap:Body>
</soap:Envelope>
Through the use of this transaction, you will be capable of retrieving all of the available city codes (in other words, the 3rd level destination of the zone tree) within the system. This transaction will also supply you with the region (2nd level destination of the zone tree) and country (highest level destination of the zone tree) of each city.
Important note:
It is very important to understand that this transaction is simply a reorganized ZoneList (as it is based on the information from this transaction) meant to ease the mapping process of integrators that have a destination structure on their system similar to that of this transaction.
It is also important to understand that this transaction may be used as to ease the mapping process but that, for the identification of specific destinations (for example, as to have a database capable of identifying any of the destination codes available from the system) the ZoneList request must still be used.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages |
{Login} | N | - | Customer login to access the Web Service |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<CityList>
<CityListRQ Version="1.1" Language="en">
<Login Password="pass" Email="user@mydomain.com"/>
</CityListRQ>
</CityList>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
CityList | N | String | Email provided by Juniper or the customer |
./CityList/City | Y | - | - |
./City/@Id | N | String | City id |
./City/Name | N | String | City name |
./City/Country | N | - | - |
./Country/@Id | N | String | Country id |
./Country/Name | N | String | Country name |
./City/Region | N | - | - |
./Region/@Id | N | String | Region id |
./Region/Name | N | String | Region name |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CityListResponse>
<CityListRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-09-23T15:18:34.0711369+01:00"
IntCode="aftGYWTDmonDa9D/ceiA9/u4qVeGRdJzOX+Mb1IRIk8=">
<CityList>
<City Id="1">
<Name>Can Pastilla</Name>
<Country Id="122">
<Name>Spain</Name>
</Country>
<Region Id="1964">
<Name>Majorca</Name>
</Region>
</City>
<City Id="3">
<Name>El Arenal</Name>
<Country Id="122">
<Name>Spain</Name>
</Country>
<Region Id="1964">
<Name>Majorca</Name>
</Region>
</City>
<City Id="4">
<Name>Cala D'or</Name>
<Country Id="122">
<Name>Spain</Name>
</Country>
<Region Id="1964">
<Name>Majorca</Name>
</Region>
</City>
<City Id="5">
<Name>Porto Colom</Name>
<Country Id="122">
<Name>Spain</Name>
</Country>
<Region Id="1964">
<Name>Majorca</Name>
</Region>
</City>
<City Id="6">
<Name>Calas De Mallorca</Name>
<Country Id="122">
<Name>Spain</Name>
</Country>
<Region Id="1964">
<Name>Majorca</Name>
</Region>
</City>
</CityList>
</CityListRS>
</CityListResponse>
</soap:Body>
</soap:Envelope>
With this transaction, you will be able to search for previously existing bookings on the system following a list of possible date-based search filters. This transaction is helpful for those partners that wish to implement some kind of booking conciliation process.
In order to use request, along a set of valid credentials, you will be required to choose one or more of the following date-based search filters:
Additionally (a date-based search filter will still be required), you may also search by:
If you're looking for any specific booking following your own reference.
Kindly note that this transaction is only meant for the conciliation of confirmed bookings and that, in short, it will only supply you with bookings that are on the PAG status (confirmed and paid).
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages |
{Login} | N | - | Customer login to access the Web Service |
BookingListRequest | N | - | Basic search properties |
./BookingListRequest/StartingBookingDate | Y | - | Booking starting date. |
./StartingBookingDate/@From | Y | Date | From date of the starting booking date that you would like to filter, format: yyyy-MM-dd |
./StartingBookingDate/@To | Y | Date | To date of the starting booking date that you would like to filter, format: yyyy-MM-dd |
./BookingListRequest/EndingBookingDate | Y | - | Booking ending date. |
./EndingBookingDate/@From | Y | Date | From date of the ending booking date that you would like to filter, format: yyyy-MM-dd |
./EndingBookingDate/@To | Y | Date | To date of the ending booking date that you would like to filter, format: yyyy-MM-dd |
./BookingListRequest/CancellationBookingDate | Y | - | Cancellation date container |
./CancellationBookingDate/@From | Y | Date | (From date) of the cancellation date of the booking, Format: yyyy-MM-dd |
./CancellationBookingDate/@To | Y | Date | (To date) of the cancellation date of the booking, Format: yyyy-MM-dd |
./BookingListRequest/ModificationBookingDate | Y | - | Cancellation date container |
./ModificationBookingDate/@From | Y | Date | (From date) of the modification date of the booking, Format: yyyy-MM-dd |
./ModificationBookingDate/@To | Y | Date | (To date) of the modification date of the booking, Format: yyyy-MM-dd |
./BookingListRequest/BookingDate | Y | - | Booking creation date container |
./BookingDate/@From | Y | Date | (From date) of the creation date of the booking, Format:yyyy-MM-dd |
./BookingDate/@To | Y | Date | (To date) of the creation date of the booking, Format: yyyyMM-dd |
./BookingListRequest/ExternalBookingReference | Y | String | External booking reference. You may use this node in order to retrieve bookings on which you didn't manage to get a locator from. This will require, of course, for you to have first set the requested ExternalBookingReference on those booking confirmation requests. Note that if you plan on using this request in order to search for bookings that ended on a timeout on your own booking confirmation process, you will need to have waited at least 180 seconds (the booking confirmation timeout of our system) since you first sent the booking confirmation request as, otherwise, you could be sending this request while the booking is still in the process of being confirmed. |
Here we search for a single booking that was requested earlier that day (using the external reference that was sent on its booking confirmation request and the booking dates on which the actual request was sent):
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns = "http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<BookingList>
<BookingListRQ Version = "1.1" Language = "en">
<Login Email = "user@mydomain.com" Password = "pass"/>
<BookingListRequest>
<BookingDate From = "2024-04-24" To = "2024-04-24"/>
<ExternalBookingReference>6DA17DHF184AJDUE9</ExternalBookingReference>
</BookingListRequest>
</BookingListRQ>
</BookingList>
</soapenv:Body>
</soapenv:Envelope>
In order to verify if it ended up getting confirmed on the supplier system (and on such case retrieve the supplier reference).
Here we search for all of the bookings whose check in starts on April 24:
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns = "http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<BookingList>
<BookingListRQ Version = "1.1" Language = "en">
<Login Email = "user@mydomain.com" Password = "pass"/>
<BookingListRequest>
<StartingBookingDate From = "2024-04-01" To = "2024-04-30"/>
</BookingListRequest>
</BookingListRQ>
</BookingList>
</soapenv:Body>
</soapenv:Envelope>
In order to compare them with those that you have in your system as to crosscheck that everything is in order (that every booking is confirmed and taken into account).
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
Reservations | N | - | Reservations container |
./Reservations/Reservation | N | - | Reservation container |
./Reservation/@Locator | N | String | Booking code. |
./Reservation/BookingDate | N | Date | Creation date of the booking, Format: yyyy-MM-dd |
<soap:Envelope xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<BookingListResponse xmlns = "http://www.juniper.es/webservice/2007/">
<BookingListRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2019-09-23T16:05:42.5863008+01:00" IntCode = "r220QMEGXEhmIchE4+/3VLECdbxycI6XXVkgu0AQVD4=">
<Reservations>
<Reservation Locator = "DN6X21">
<BookingDate>2018-12-20</BookingDate>
</Reservation>
<Reservation Locator = "5TGVOE">
<BookingDate>2018-12-23</BookingDate>
</Reservation>
<Reservation Locator = "F12CB3">
<BookingDate>2018-12-23</BookingDate>
</Reservation>
<Reservation Locator = "TGTGNP">
<BookingDate>2018-12-24</BookingDate>
</Reservation>
<Reservation Locator = "WITB1I">
<BookingDate>2018-12-24</BookingDate>
</Reservation>
</Reservations>
</BookingListRS>
</BookingListResponse>
</soap:Body>
</soap:Envelope>
This transaction allows for the retrieval of the booking information of a specific booking through the use of its booking code.
The returned information is the same as in the booking response from the different products, refer to any of the product's API specs for further information on its specifications.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
ReadBooking | N | - | - |
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages |
{Login} | N | - | Customer login to access the Web Service |
ReadRequest | - | - | - |
./ReadRequest/@ReservationLocator | N | - | Booking code |
AdvancedOptions | Y | - | Optional information |
./AdvancedOptions/ShowBreakdownPrice | Y | Boolean | If the value is True, it will show the full price object with all the information about the prices. If not specified, False is assumed by default. |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<ReadBooking>
<ReadRQ Version="1.1" Language="en">
<Login Email="user@mydomain.com" Password="pass"/>
<ReadRequest ReservationLocator="CSY243"/>
</ReadRQ>
</ReadBooking>
</soapenv:Body>
</soapenv:Envelope>
The returned information is the same as in the booking response from the different products, refer to any of the product's API specs for further information on its specifications.
For example, on the JP Hotel API, you will be able to find these specs on the HotelBooking response.
It allows you to cancel the total booking or of one of its services / items. It will also allow you to learn about the cancellation charges that you would incur if the booking is cancelled. In the following example we cancel a complete booking.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version, |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages, |
{Login} | N | - | Customer login to access the Web Service, |
CancelRequest | N | - | - |
./CancelRequest/@ReservationLocator | N | String | Booking code. If not used along an @ItemId will allow for the cancellation of the booking as a whole. |
./CancelRequest/@ItemId | Y | Integer | Booking line (service item) identifier. If it is the only/latest available item of a booking, canceling the locator as a whole will be necessary. |
./CancelRequest/@OnlyCancellationFees | Y | Boolean | Allows for the retrieval of the available cancellation costs of the booking. If included, the booking will not be cancelled. |
AdvancedOptions | Y | - | Optional parameters. |
./AdvancedOptions/SendMailTo | Y | String | If included with the ALL value, a booking confirmation email will be sent to your email account. |
./AdvancedOptions/ShowBreakdownPrice | Y | Boolean | If the value is true, it will show the full price object with all the information about the prices. If not specified, false is assumed by default. |
./AdvancedOptions/ShowCancelBreakdown | Y | Boolean | If the value is true and if the information is available, it will include the cancellation cost breakdown. |
Booking locator cancellation
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns = "http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<CancelBooking>
<CancelRQ Version = "1.1" Language = "en">
<Login Email = "user@mydomain.com" Password = "pass"/>
<CancelRequest ReservationLocator = "WZS1N6"/>
</CancelRQ>
</CancelBooking>
</soapenv:Body>
</soapenv:Envelope>
Retrieval of cancellation costs
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns = "http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<CancelBooking>
<CancelRQ Version = "1.1" Language = "en">
<Login Email = "user@mydomain.com" Password = "pass"/>
<CancelRequest ReservationLocator = "WZS1N6" OnlyCancellationFees = "true"/>
</CancelRQ>
</CancelBooking>
</soapenv:Body>
</soapenv:Envelope>
Aside from the CancelInfo object (which we detail below), if the cancellation request is successful, this response will return the same structure that the response of the booking confirmation request has. Kindly refer to the booking confirmation request if the appropriate product/module (hotels, flights, transfers, etc...) for the specifications of the nodes and properties from this transaction.
For example, on the JP Hotel API, you will be able to find these specs on the HotelBooking response.
In addition to this, it is very important to focus on the warnings from the response of this transaction, as they will tell you if the cancellation cost could or could not be retrieved and if the reservation was or was not canceled, as in the below list of examples:
Important
In the event of canceling the reservation but getting a response on which the cancellation cost could not be calculated (warnCancelledAndCancellationNotCalculated), it is important to never assume that this reservation will not involve any costs and contacting with your Juniper supplier will be necessary.
Object that details the cancellation costs of a reservations, if any. We may refer to this object as: {CancelInfo}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
BookingCodeState | Y | String | Status on which the booking has been left. Refer to the booking confirmation, for a list of all of the possible statuses. |
BookingCancelCost | Y | Double | Cancellation cost of the reservation. |
BookingCancelCostCurrency | Y | String | Cancellation cost currency of the reservation. |
BreakDown | Y | - | Cancellation cost breakdown of the reservation. Refer to the breakdown node from the {Prices} object, for further information on its specification. |
Actual booking cancellation
<soap:Envelope xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CancelBookingResponse xmlns = "http://www.juniper.es/webservice/2007/">
<BookingRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2022-11-30T11:45:24.7817582+01:00" IntCode = "JObE7JM8D9DJtKzKcFWsGf8a6DLVaQ+5cwGmNKAYuc0=">
<Warnings>
<Warning Code = "warnCancelledAndCancellationCostRetrieved" Text = "Cancellation cost retrieved. Reservation was cancelled."/>
<CancelInfo>
<BookingCodeState>CaC</BookingCodeState>
<BookingCancelCost>0</BookingCancelCost>
<BookingCancelCostCurrency>EUR</BookingCancelCostCurrency>
</CancelInfo>
</Warnings>
<Reservations>
<Reservation Locator = "WZS1N6" Status = "CAC" Language = "en">
<ExternalBookingReference>YOUR_OWN_REFERENCE</ExternalBookingReference>
<Holder>
<RelPax IdPax = "4"/>
</Holder>
<Paxes>
<Pax IdPax = "2">
<Name>Passenger Name</Name>
<Surname>Passenger Surname</Surname>
<Age>30</Age>
</Pax>
<Pax IdPax = "3">
<Name>Passenger Name 2</Name>
<Surname>Passenger Surname 2</Surname>
<Age>30</Age>
</Pax>
<Pax IdPax = "4">
<Name>Holder Name</Name>
<Surname>Holder Surname</Surname>
<Age>30</Age>
<Nationality>ES</Nationality>
</Pax>
</Paxes>
<Comments>
<Comment Type = "RES">GENERAL BOOKING COMMENTS</Comment>
</Comments>
<AgenciesData>
<AgencyData>
<ReferencedAgency>false</ReferencedAgency>
<AgencyCode>280</AgencyCode>
<AgencyName>Juniper (Integrador)</AgencyName>
<AgencyHandledBy>Agente XML</AgencyHandledBy>
<AgencyEmail>replacement@test.com</AgencyEmail>
<AgencyReference>YOUR_OWN_REFERENCE</AgencyReference>
</AgencyData>
<AgencyData>
<ReferencedAgency>true</ReferencedAgency>
<AgencyCode>0</AgencyCode>
</AgencyData>
</AgenciesData>
<Items>
<HotelItem ItemId = "368017" Status = "CA" Start = "2023-09-03" End = "2023-09-05">...</HotelItem>
</Items>
<Payment Type = "C"/>
</Reservation>
</Reservations>
</BookingRS>
</CancelBookingResponse>
</soap:Body>
</soap:Envelope>
Cancellation cost retrieval
<soap:Envelope xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CancelBookingResponse xmlns = "http://www.juniper.es/webservice/2007/">
<BookingRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2022-11-30T11:36:47.3924763+01:00" IntCode = "dyPTSrKuEYclahby39DdPTgHCqIuVWcSjmp8IrvX2c4=">
<Warnings>
<Warning Code = "warnCancellationCostRetrieved" Text = "Cancellation cost retrieved. Reservation was not cancelled."/>
<CancelInfo>
<BookingCodeState>Pag</BookingCodeState>
<BookingCancelCost>0</BookingCancelCost>
<BookingCancelCostCurrency>EUR</BookingCancelCostCurrency>
<BreakDown>
<Concepts>
<Concept Name = "Apartamentos Allsun Pil-lari Play-a (03/09/2023 - 05/09/2023)">
<Items>
<Item Amount = "0"/>
</Items>
</Concept>
</Concepts>
</BreakDown>
</CancelInfo>
</Warnings>
</BookingRS>
</CancelBookingResponse>
</soap:Body>
</soap:Envelope>
It allows for you to get all of the available meeting point codes of a destination. You can obtain all of the available destination codes by using the ZoneList request.
Important note:
The use of this transaction requires for the groundhandling module, contact with your Juniper supplier for more information.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | Y | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages |
{Login} | N | - | Customer login to access the Web Service |
MeetingPointListRequest | N | - | |
./MeetingPointListRequest/@ZoneCode | N | String | Zone code. Mandatory. |
./MeetingPointListRequest/@ProductType | N | String | Product type. Possible values: • TRF: Transfer • TKT: Ticket |
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns = "http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<MeetingPointList>
<MeetingPointListRQ Version = "1.1" Language = "en">
<Login Password = "pass" Email = "username@mydomain.com"/>
<MeetingPointListRequest ZoneCode = "15011" ProductType = "TRF"/>
</MeetingPointListRQ>
</MeetingPointList>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
MeetingPointList | N | - | Meeting point list container |
./MeetingPointList/MeetingPointZones | N | - | Meeting point zones container |
./MeetingPointZones/MeetingPointZone | Y | - | Meeting point zone |
./MeetingPointZone/@Name | N | String | Meeting point zone name |
./MeetingPointZone/MeetingPoint | N | - | Meeting point |
./MeetingPoint/@Code | N | Integer | Meeting point code |
./MeetingPoint/@Latitude | N | String | Meeting point latitude |
./MeetingPoint/@Longitude | N | String | Meeting point longitude |
./MeetingPoint/Name | N | String | Meeting point name |
<soap:Envelope xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<MeetingPointListResponse xmlns = "http://www.juniper.es/webservice/2007/">
<MeetingPointListRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2021-09-08T11:26:28.6400623+02:00" IntCode = "WK0u2LpOFdTkDW52XYcqsUorcxo7YvGVeO2gThNUmhM=">
<MeetingPointList>
<MeetingPointZones>
<MeetingPointZone Name = "Aeropuerto Palma">
<MeetingPoint Code = "150" DestinationCode = "40233" Latitude = "0" Longitude = "0">
<Name>Terminal 1</Name>
</MeetingPoint>
</MeetingPointZone>
<MeetingPointZone Name = "Palma de Mallorca">
<MeetingPoint Code = "149" DestinationCode = "15011" Latitude = "39,526624" Longitude = "2,7343799">
<Name>APARTAMENTOS ALLSUN PIL-LARI PLAYA</Name>
</MeetingPoint>
</MeetingPointZone>
</MeetingPointZones>
</MeetingPointList>
</MeetingPointListRS>
</MeetingPointListResponse>
</soap:Body>
</soap:Envelope>
With this transaction, the Final Customers visible by the user can be retrieved (please view FinalCustomerSave to store Final Customers). This is for internal use only and can’t be used by without a special permit which must be requested
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages |
{Login} | N | - | Customer login to access the Web Service |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<FinalCustomerRead>
<FinalCustomerReadRQ Version="1.1" Language="en">
<Login Password="pass" Email="user@mydomain.com"/>
</FinalCustomerReadRQ>
</FinalCustomerRead>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
FinalCustomerList | N | - | List of final customers |
./FinalCustomerList/FinalCustomer | Y | - | - |
./FinalCustomer/Code | N | String | Final customer code |
./FinalCustomer/RelatedAgency | Y | - | - |
./RelatedAgency/@Code | N | Integer | Agency Id |
./RelatedAgency/@Name | N | String | Agency name |
./FinalCustomer/Name | N | String | Final customer name |
./FinalCustomer/Surname | N | String | Final customer surname |
./FinalCustomer/ContactData | N | - | - |
./ContactData/Email | N | String | Final customer email |
./ContactData/PhoneNumbers | Y | - | - |
./PhoneNumbers/@Type | Y | String | Final customer phone number type Phone number type values: • MOB – Mobile phone • GEN – General phone |
./RelatedAgency/AddressData | Y | - | - |
./AddressData/City | N | String | Final customer city |
./RelatedAgency/Document | N | String | Final customer document |
./Document/@Type | Y | String | Final customer document type. Possible values: • PAS: Passport • DNI: National identification document • NIF: Fiscal identification number • CIF: Fiscal identification code • NIE: Foreign identification number • CPF: Cadastro de pessoas físicas |
./Document/@ExpirationDate | Y | String | Final customer document expiration date Format: yyyy-MM-ddThh:mm:ss (UTC) |
./FinalCustomer/Loyalty | Y | - | - |
./Loyalty/@TotalValue | Y | Decimal | Total customer available points |
./Loyalty/@Reference | Y | String | External Loyalty Reference. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<FinalCustomerReadResponse xmlns="http://www.juniper.es/webservice/2007/">
<FinalCustomerReadRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-09-23T17:53:44.5323141+01:00" IntCode="34m5m9YtB+60wVpQ6hUH/CasEvtvTg2OCnbWdcQn0Y4=">
<FinalCustomerList>
<FinalCustomer>
<Code>1</Code>
<RelatedAgency Code="529">
<Name>SuperAgencia</Name>
</RelatedAgency>
<Name>Name 1</Name>
<Surname>Surname 1</Surname>
<ContactData>
<Email>mail@mail.com</Email>
<PhoneNumbers>
<PhoneNumber>678678678</PhoneNumber>
</PhoneNumbers>
</ContactData>
<AddressData>
<City>City name</City>
</AddressData>
<Document>12345678A</Document>
</FinalCustomer>
<FinalCustomer>
<Code>2</Code>
<Name>Name 2</Name>
<Surname>Surname 2</Surname>
<ContactData>
<Email>mail@mail.com</Email>
<PhoneNumbers>
<PhoneNumber>678678678</PhoneNumber>
</PhoneNumbers>
</ContactData>
<AddressData>
<City>City name</City>
</AddressData>
<Document>12345678A</Document>
</FinalCustomer>
<FinalCustomer>
<Code>3</Code>
<Name>Name 3</Name>
<Surname>Surname 3</Surname>
<ContactData>
<Email>mail@mail.com</Email>
<PhoneNumbers>
<PhoneNumber>678678678</PhoneNumber>
</PhoneNumbers>
</ContactData>
<AddressData>
<City>City name</City>
</AddressData>
<Document>12345678A</Document>
<Loyalty TotalValue="10">
<Reference>T654654654</Reference>
</Loyalty>
</FinalCustomer>
</FinalCustomerList>
</FinalCustomerReadRS>
</FinalCustomerReadResponse>
</soap:Body>
</soap:Envelope>
With this transaction, you can save Final Customers. This is for internal use only and can’t be used by without a special permit which must be requested
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages |
{Login} | N | - | Customer login to access the Web Service |
FinalCustomer | N | - | - |
./FinalCustomer/Code | Y | String | Final customer code. If informed, the final customer with that code will be updated with the data informed in the request. |
./FinalCustomer/Name | N | String | Final customer name |
./FinalCustomer/Surname | N | String | Final customer surname |
./FinalCustomer/ContactData | N | - | - |
./ContactData/Email | N | String | Final customer email |
./ContactData/PhoneNumbers | N | - | - |
./PhoneNumbers/PhoneNumber | Y | String | Final customer phone numbe |
./PhoneNumber/@Type | Y | String | Final customer phone number type Phone number type values: • MOB – Mobile phone • GEN – General phone |
./FinalCustomer/AddressData | N | - | - |
./AddressData/Country | N | String | Final customer country |
./AddressData/State | N | String | Final customer state |
./AddressData/City | N | String | Final customer city |
./AddressData/PostalCode | N | String | Final customer postal code |
./AddressData/Address | N | String | Final customer address |
./FinalCustomer/Document | N | String | Final customer document |
./Document/@Type | Y | String | Final customer document type. Possible values: • PAS: Passport • DNI: National identification document • NIF: Fiscal identification number • CIF: Fiscal identification code • NIE: Foreign identification number • CPF: Cadastro de pessoas físicas |
./Document/@ExpirationDate | Y | Date | Final customer document expiration date Format: yyyy-MM-ddThh:mm:ss (UTC) |
./FinalCustomer/Password | N | String | Final customer password |
./FinalCustomer/Comments | N | - | - |
./Comments/Comment | Y | String | Final customer comments |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<FinalCustomerSave>
<FinalCustomerSaveRQ Version="1.1" Language="en">
<Login Password="pass" Email="user@mydomain.com"/>
<FinalCustomer IsCorporative="0" AcceptOfferMailing="0" Active="1">
<Name>testName</Name>
<Surname>testSurname</Surname>
<ContactData>
<Email>mail@mail.com</Email>
<PhoneNumbers>
<PhoneNumber Type="MOB">678678678</PhoneNumber>
</PhoneNumbers>
<AddressData>
<Country>Spain</Country>
<State>Illes Balears</State>
<City>Palma</City>
<PostalCode>07009</PostalCode>
<Address>Calle</Address>
</AddressData>
</ContactData>
<Document Type="DNI" ExpirationDate="2022-12-01">12345678A</Document>
<Password>password</Password>
<Comments>
<Comment>Notes</Comment>
</Comments>
</FinalCustomer>
</FinalCustomerSaveRQ>
</FinalCustomerSave>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
FinalCustomer | Y | - | - |
./FinalCustomer/Code | Y | String | Final customer code. If informed, the final customer with that code will be updated with the data informed in the request. |
./FinalCustomer/Name | N | String | Final customer name |
./FinalCustomer/Surname | N | String | Final customer surname |
./FinalCustomer/ContactData | N | - | - |
./ContactData/Email | N | String | Final customer email |
./ContactData/PhoneNumbers | N | - | - |
./PhoneNumbers/PhoneNumber | Y | String | Final customer phone numbe |
./PhoneNumber/@Type | Y | String | Final customer phone number type Phone number type values: • MOB – Mobile phone • GEN – General phone |
./FinalCustomer/AddressData | N | - | - |
./AddressData/Country | N | String | Final customer country |
./AddressData/State | N | String | Final customer state |
./AddressData/City | N | String | Final customer city |
./AddressData/PostalCode | N | String | Final customer postal code |
./AddressData/Address | N | String | Final customer address |
./FinalCustomer/Document | N | String | Final customer document |
./Document/@Type | Y | String | Final customer document type Document type values: • PAS – Passport • DNI – National Identification Document • NIF – Fiscal Identification Number • CIF – Fiscal Identification Code • NIE – Foreign Identification Number |
./Document/@ExpirationDate | Y | Date | Final customer document expiration date Format: yyyy-MM-ddThh:mm:ss (UTC) |
./FinalCustomer/Password | N | String | Final customer password |
./FinalCustomer/Comments | N | - | - |
./Comments/Comment | Y | String | Final customer comments |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<FinalCustomerSaveResponse xmlns="http://www.juniper.es/webservice/2007/">
<FinalCustomerSaveRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-09-23T15:26:58.0126044+01:00" IntCode="iDN0QXEJemi015+bZ5euF4A/ldq2VNNrzCGBn1e4qS0=">
<FinalCustomer IsCorporative="false" AcceptOfferMailing="false" Active="true">
<Code>5283</Code>
<Name>testName</Name>
<Surname>testSurname</Surname>
<ContactData>
<Email>mail@mail.com</Email>
<PhoneNumbers>
<PhoneNumber Type="MOB">678678678</PhoneNumber>
</PhoneNumbers>
<AddressData>
<Country>Spain</Country>
<State>Illes Balears</State>
<City>Palma</City>
<PostalCode>07009</PostalCode>
<Address>Calle</Address>
</AddressData>
</ContactData>
<Document Type="DNI" ExpirationDate="2022-12-01T00:00:00">12345678A</Document>
<Password>password</Password>
<Comments>
<Comment Type="HOT">Notes</Comment>
</Comments>
</FinalCustomer>
</FinalCustomerSaveRS>
</FinalCustomerSaveResponse>
</soap:Body>
</soap:Envelope>
With this transaction, the contents of a Shopping Basket can be retrieved (please view ShoppingBasketSave to store contents). This is for internal use only and can’t be used by without a special permit which must be requested
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
ShoppingBasketReadRQ | N | - | - |
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages |
{Login} | N | - | Customer login to access the Web Service |
ShoppingBasketReadRQ/ShoppingBasket | N | - | |
./ShoppingBasket/@Code | N | - | Code of the shopping basket that has to be retrieved |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<ShoppingBasketRead>
<ShoppingBasketReadRQ Version="1.1" Language="en">
<Login Password="pass" Email="user@mydomain.com"/>
<ShoppingBasket Code="31"/>
</ShoppingBasketReadRQ>
</ShoppingBasketRead>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
ShoppingBasket | N | - | |
./ShoppingBasket/@Code | N | Integer | Shopping basket code |
ShoppingBasketItems | N | - | |
./ShoppingBasketItems/Items | N | - | |
./Items/Item | N | String | Shopping basket item |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ShoppingBasketReadResponse xmlns="http://www.juniper.es/webservice/2007/">
<ShoppingBasketReadRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-09-23T16:53:00.4778805+01:00" IntCode="rpNWRRqwd82ZB1nsHag2+z92vn/SrHw6G7GOVDjbNbk=">
<ShoppingBasket Code="31"/>
<ShoppingBasketItems>
<Items>
<Item>CONTENT</Item>
</Items>
</ShoppingBasketItems>
</ShoppingBasketReadRS>
</ShoppingBasketReadResponse>
</soap:Body>
</soap:Envelope>
With this transaction, the contents of a Shopping Basket can be stored in the database for later usage. This is for internal use only and can’t be used by without a special permit which must be requested
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
ShoppingBasketSaveRQ | N | - | - |
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages |
{Login} | N | - | Customer login to access the Web Service |
ShoppingBasketSaveRQ /ShoppingBasket | N | - | |
./ShoppingBasket/@Code | N | - | Code of the shopping basket that has to be retrieved |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<ShoppingBasketSave>
<ShoppingBasketSaveRQ Language="1.1" Version="en">
<Login Password="pass" Email="user@mydomain.com"/>
<ShoppingBasketItems>
<Items>
<Item>
<Item>CONTENT</Item>
</Item>
</Items>
</ShoppingBasketItems>
</ShoppingBasketSaveRQ>
</ShoppingBasketSave>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
ShoppingBasket | N | - | |
./ShoppingBasket/@Code | N | Integer | Shopping basket code |
ShoppingBasketItems | N | - | |
./ShoppingBasketItems/Items | N | - | |
./Items/Item | N | String | Shopping basket item |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ShoppingBasketSaveResponse xmlns="http://www.juniper.es/webservice/2007/">
<ShoppingBasketSaveRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-09-23T16:50:19.4966729+01:00" IntCode="jkXF4fQJlGRBQnlgKQllizoaOh441k0qvQLlz+nQHik=">
<ShoppingBasket Code="31"/>
<ShoppingBasketItems>
<Items>
<Item>CONTENT</Item>
</Items>
</ShoppingBasketItems>
</ShoppingBasketSaveRS>
</ShoppingBasketSaveResponse>
</soap:Body>
</soap:Envelope>
With this message, all available Agencies visible by the user are returned.
Important note:
This is for internal use only and can’t be used by integrators. In the event you would like to use this functionality, a special permission must be requested
Node/Attribute(@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages |
{Login} | N | - | Customer login to access the Web Service |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<AgencyRead>
<AgencyReadRQ Version="1.1" Language="en">
<Login Password="pass" Email="user@mydomain.com"/>
</AgencyReadRQ>
</AgencyRead>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
AgencyList | N | - | List of agencie |
./AgencyList/AgencyData | N | - | - |
./AgencyData/Code | N | Integer | Agency code |
./AgencyData/Name | N | String | Agency name |
./AgencyData/Email | N | String | Agency email |
./AgencyData/PhoneNumber | N | String | Agency phone number |
./AgencyData/AgencyGroup | Y | - | - |
./AgencyGroup/Name | N | String | Agency group name |
./AgencyGroup/Market | N | String | Agency group market |
./AgencyData/Loyalty | Y | - | Loyalty information. |
./Loyalty/@TotalValue | N | Integer | Total loyalty points. |
./Loyalty/Reference | N | String | Loyalty external reference. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<AgencyReadResponse xmlns="http://www.juniper.es/webservice/2007/">
<AgencyReadRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-09-23T11:27:19.9884185+02:00" IntCode="5IkSDksLZbhuCu98YBMaU3gMCrTpYq2KZSBcFWWfIHA=">
<AgencyList>
<AgencyData>
<Code>1</Code>
<Name>AGENCY ONE</Name>
<Email>agency_one@ejuniper.com</Email>
<PhoneNumber>678678678</PhoneNumber>
<AgencyGroup>
<Name>AGENCY GROUP ONE</Name>
<Market>Spanish</Market>
</AgencyGroup>
</AgencyData>
<AgencyData>
<Code>2</Code>
<Name>AGENCY TWO</Name>
<Email>agency_two@ejuniper.com</Email>
<PhoneNumber>678678678</PhoneNumber>
<AgencyGroup>
<Name>AGENCY GROUP TWO</Name>
<Market>Spanish</Market>
</AgencyGroup>
</AgencyData>
</AgencyList>
</AgencyReadRS>
</AgencyReadResponse>
</soap:Body>
</soap:Envelope>
With this message, you will be able to retrieve all of the internal information of the agency from which your credentials originate. Please note that, given that this transaction returns internal information, it will be restricted under a specific permit.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
CustomerReadRQ | N | - | - |
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages |
{Login} | N | - | Customer login to access the Web Service |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<CustomerRead>
<CustomerReadRQ Version="1.1" Language="en">
<Login Password="pass" Email="user@mydomain.com"/>
</CustomerReadRQ>
</CustomerRead>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
CustomerData | N | - | - |
./CustomerData/@Id | N | String | Client id |
./CustomerData/@ClientTypeId | N | String | Client type. Possible values: • 1 - Agency • 4 - Guide |
./CustomerData/@RegistrationDate | N | Date | Registration date |
./CustomerData/@AcceptationDate | N | Date | Acceptation date |
./CustomerData/@ActivationDate | N | Date | Activation date |
./CustomerData/Name | N | String | Client name |
./CustomerData/Reference | N | String | Client reference |
./CustomerData/CompanyName | N | String | Company name |
./CustomerData/GuideType | Y | Enum | Guide type, only available on guide type clients. Possible values: • SERVICE • HOTEL • AIRPORT |
./CustomerData/Category | N | - | Client category |
./Category/@Id | N | Int | Client category id |
./Category/Name | N | String | Client category name |
./CustomerData/AgencyGroup | N | - | Client agency group |
./AgencyGroup/@Id | N | Int | Client agency group id |
./AgencyGroup/Name | N | String | Client agency group name |
./CustomerData/SalesOrganization | Y | - | Sales organization. Restricted node that requires the multicompany module in order to function. |
./SalesOrganization/@Id | N | Int | Sales organization id |
./SalesOrganization/Name | N | String | Sales organization name |
./CustomerData/SaleChannels | N | - | List of sales channels on which the client will be able to operate |
./SaleChannels/@DefaultCode | N | String | Defautl sales channel for the client |
./SaleChannels/Channel | N | - | Sales channe |
./Channel/@Code | N | String | Sales channel code |
./Channel/Name | N | String | Sales channel name |
./CustomerData/PaymentType | N | - | Client payment type |
./PaymentType/@Code | N | String | Client payment type code |
./PaymentType/Name | N | String | Client payment type name |
./CustomerData/AlternateReceiptTypes | Y | - | Alternative receipt type container |
./AlternateReceiptTypes/AlternateReceipt | N | - | Alternative receipt type |
./AlternateReceipt/@Id | N | Int | Alternative receipt type id |
./AlternateReceipt/Name | N | String | Alternative receipt type name |
./AlternateReceipt/UserFields | Y | - | Alternative receipt type user field container |
./UserFields/UserField | Y | - | User field |
./UserField/@Type | N | String | User field type. Possible values: • Unkown • Integer • String • Decimal • DateTime • Boolean • Enum |
./UserField/Name | N | String | User field name |
./CustomerData/ReferredClients | Y | - | Referred client container, only available on guide type clients |
./ReferredClients/ReferredClient | N | - | Referred client |
./ReferredClient/@Id | N | String | Referred client ID |
./ReferredClient/Name | N | Date | Referred client name |
./CustomerData/Departments | Y | - | Deparments, only available on guide type clients |
./Departments/@AllowALL | N | Boolean | Indicates if this client has access to all of the departments |
./Departments/Department | N | - | Department |
./Department/@Id | N | Int | Department id |
./Department/Name | N | String | Department name |
./CustomerData/Loyalty | Y | - | Loyalty information. |
./Loyalty/@TotalValue | N | Integer | Total loyalty points. |
./Loyalty/Reference | N | String | Loyalty external reference. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CustomerReadResponse xmlns="http://www.juniper.es/webservice/2007/">
<CustomerReadRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-09-23T11:54:55.2155425+02:00" IntCode="MjTRF/lqHNGftjTdcsV9sEVU8Y459OlslTiwfmQBDGM=">
<CustomerData Id="13521" ClientTypeId="4" RegistrationDate="01/10/2018 14:33" AcceptationDate="01/10/2018 14:33" ActivationDate="01/10/2018 14:33">
<Name>oscarguide</Name>
<Reference>oscarguide</Reference>
<CompanyName>oscarguide</CompanyName>
<Category Id="119">
<Name>aaaaaaaaaa</Name>
</Category>
<GuideType>SERVICE</GuideType>
<AgencyGroup Id="60">
<Name>111</Name>
</AgencyGroup>
<SalesChannels DefaultCode="Dbg ">
<Channel Code="AAAA">
<Name>Sistemas</Name>
</Channel>
<Channel Code="BRAS">
<Name>Test 1</Name>
</Channel>
<Channel Code="BRAT">
<Name>Test 2</Name>
</Channel>
<Channel Code="BRAX">
<Name>Test 3</Name>
</Channel>
<Channel Code="Dbg ">
<Name>Debug</Name>
</Channel>
<Channel Code="EUR ">
<Name>Euros Local WS</Name>
</Channel>
<Channel Code="Web ">
<Name>Página Web</Name>
</Channel>
</SalesChannels>
<PaymentType Code="B">
<Name>Pre-payment</Name>
</PaymentType>
<AlternateReceiptTypes>
<AlternateReceiptType Id="19">
<Name>TESTCC</Name>
<UserFields>
<UserField Type="Unknown">
<Name>TipoTarjeta</Name>
</UserField>
<UserField Type="Unknown">
<Name>NumeroTarjeta</Name>
</UserField>
<UserField Type="Unknown">
<Name>codCVV</Name>
</UserField>
<UserField Type="Unknown">
<Name>CreditCardExpiration</Name>
</UserField>
<UserField Type="Unknown">
<Name>Banco</Name>
</UserField>
<UserField Type="String">
<Name>lugar</Name>
</UserField>
<UserField Type="DateTime">
<Name>test</Name>
</UserField>
<UserField Type="Boolean">
<Name>test2</Name>
</UserField>
</UserFields>
</AlternateReceiptType>
</AlternateReceiptTypes>
<ReferredClients>
<ReferredClient Id="13263">
<Name>oscarTest1</Name>
</ReferredClient>
</ReferredClients>
<Departments>
<Department Id="23">
<Name>Del Miquel Test</Name>
</Department>
<Department Id="25">
<Name>Carmen Dele</Name>
</Department>
</Departments>
</CustomerData>
</CustomerReadRS>
</CustomerReadResponse>
</soap:Body>
</soap:Envelope>
Transaction that allows for the retrieval of external supplier codes that are available for the booking engine that you're connecting to.
This transaction is restricted by default, and can only be authorized for use to Juniper clients that connect to their own booking engine.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
SupplierListRequest | N | - | Request node container. |
./SupplierListRequest/@ProductType | N | String | Product type code, needed in order to retrieve the list of supplier codes that there are available for the same. Possible values: • HOT: Hotel • CAR: Car • PCK: Package • CRU: Cruise • INS: Insurance • TRF: Transfer • TKT: Ticket • VSD: Visa |
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns = "http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<SupplierList>
<SupplierListRQ Version = "en" Language = "1.1">
<Login Email = "user@mydomain.com" Password = "pass"/>
<SupplierListRequest ProductType = "HOT"/>
</SupplierListRQ>
</SupplierList>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
SupplierListRS | Y | - | Response node container. |
./SupplierListRS/Supplier | N | - | Specific supplier. |
./Supplier/@Code | N | String | Supplier code. |
./Supplier/@External | N | Boolean | If it is an external supplier. |
./Supplier/Name | N | String | Supplier name. |
<soap:Envelope xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SupplierListResponse xmlns = "http://www.juniper.es/webservice/2007/">
<SupplierListRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2025-02-17T13:53:37.1034951+01:00" IntCode = "h47InbdQ1pRei7jyc69197Xt48w19WV9Tjdvi1xbDNI=">
<SupplierListRS>
<Supplier Code = "HBE" External = "false">
<Name>Alojamiento</Name>
</Supplier>
<Supplier Code = "EXR" External = "true">
<Name>H2H - ******</Name>
</Supplier>
<Supplier Code = "HB2" External = "true">
<Name>H2H - ******</Name>
</Supplier>
</SupplierListRS>
</SupplierListRS>
</SupplierListResponse>
</soap:Body>
</soap:Envelope>