In order to understand the JP WebService work flow, we've prepated a flow chart that outlines and simplies all of the steps that need to be taken through the booking process. We will refer to this flow chart as we advance further on 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 visa static data transactions. In the availability process there will be fields like the destination code that you will need to fulfill, all of this information is to be obtained through the use of these transactions.
It will be neccesary for you to retrieve the available destination codes through the ZoneList request (sending the VIS @ProductType) and, depending on the products of your Juniper supplier (as this is only available for the direct products), it may also be possible for you to retrieve other static data information through the following transactions:
It is the availability request. The mandatory information to search for availability is:
It will return all available visas for the search criteria. This request returns basic information regarding each visa product, such as the name and a small description. To obtain full info and other data you should use the transaction VisaBookingRules
Once the search is made and before completing the booking you should validate the selected option. We may do it in two ways:
You may only book with the returned code VisaBookingRules transaction, (BookingCode), therefore, it is indispensable to go through this transaction.
If the booking has correctly been made you will obtain a code or booking code uniquely identifying the booking. You may review and cancel the booking with this same code.
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.
Having detailed all of the hotel integration process, here we supply you with a series of resources which, along the use of test environment XML credentials, will let you experience the hotel integration process first hand.
On this section we have a Postman example that embraces all of the hotel integration process.
On this section we have a series of code samples that will let you understand how to implement and use one of the transactions from our API.
For the methods to retrieve the static information such as areas and visas complete information. Take into account that the information varies between the test environment and the production environment.
Important note: The maximum frequency allowed for downloading the static data (if you use them), is two weeks. This is a mandatory condition aimed to keep the static data always updated.
With this message, you will be able to retrieve all of the available visa static data.
These values will allow you to filter the availability.
Request
<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">
<soapenv:Header/>
<soapenv:Body>
<VisaCatalogueData>
<VisaCatalogueDataRQ Version="1.1" Language="en">
<Login Email="user@mydomain.com" Password="pass"/>
</VisaCatalogueDataRQ>
</VisaCatalogueData>
</soapenv:Body>
</soapenv:Envelope>
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. Note: some suppliers only support one language. If your language is not supported, default language is returned. |
{Login} | N | - | Customer login to access the Web Service |
Response
<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>
<VisaCatalogueDataResponse xmlns="http://www.juniper.es/webservice/2007/">
<CatalogueDataRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-09-24T12:14:28.2630101+02:00" IntCode="hBGv5SSEJfnDOT5L5m78L7FzCBnneOBBKiZwb7aVNCI=">
<VisaStaticData>
<VisaTypeList>
<ServiceType Code="38">
<Name>Visados</Name>
</ServiceType>
<ServiceType Code="44" ParentCode="38">
<Name>Visados hijo2</Name>
</ServiceType>
<ServiceType Code="48" ParentCode="38">
<Name>Tarificación Vehículo</Name>
</ServiceType>
<ServiceType Code="114">
<Name>test</Name>
</ServiceType>
</VisaTypeList>
</VisaStaticData>
</CatalogueDataRS>
</VisaCatalogueDataResponse>
</soap:Body>
</soap: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. |
CatalogueDataRS | N | - | Results. |
./CatalogueDataRS/VisaStaticData | N | - | Static information. |
./VisaStaticData/VisaTypeList | N | - | List of visas types. |
./VisaTypeListServiceType | Y | - | Service type |
./Service type/@Code | N | Integer | Service type code. |
./Service type/@ParentCode | Y | Integer | Parent code of the service type. |
./Service type/Name | N | String | Name of the service type. |
With this message, you can retrieve a paginated list that amounts up to all of your visa portfolio.
It is important to keep in mind that you have to compare the Page attribute from the request with the TotalPage attribute from the response (increasing the page one by one until you reach the TotalPage) to retrieve the whole portfolio. In this process, the RecordPerPage attribute should not be modified.
Request
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<VisaPortfolio>
<VisaPortfolioRQ Version="1.1" Language="en" Page="1" RecordsPerPage="100">
<Login Password="Password" Email="username@mydomain.com"/>
</VisaPortfolioRQ>
</VisaPortfolio>
</soapenv:Body>
</soapenv:Envelope>
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. |
@Page | Y | Integer | Page requested |
@RecordsPerPage | Y | Integer | Records to be shown per pag |
{Login} | N | - | Customer login to access the Web Service |
Response:
<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>
<VisaPortfolioResponse xmlns="http://www.juniper.es/webservice/2007/">
<VisaPortfolioRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-08-04T10:24:39.9465367+02:00" IntCode="953vCRC6vo95Y9QGs+eMAYAj3QGSwnzStRcS84NhgNc=">
<ServicePortfolio Page="1" RecordsPerPage="56" TotalPages="1" TotalRecords="56">
<Service Code="BGBzIIpLvgQjLt8y6AtYJw==" IntCode="21" ServiceTypeCode="38" >
<Name>Basic London Visa</Name>
<Options>
<ServiceOption Code="898">
<Name>Option 1</Name>
</ServiceOption>
<ServiceOption Code="899">
<Name>Option 2</Name>
</ServiceOption>
</Options>
</Service>
<Service Code="ZXCZq2f/CjGvI8FFjXZ/wg==" IntCode="22">
<Name>Premium Visa</Name>
<Options>
<ServiceOption Code="254">
<Name>Option 1</Name>
</ServiceOption>
<ServiceOption Code="255">
<Name>Option 2</Name>
</ServiceOption>
</Options>
<Zones>
<Zone Code="17852"/>
<Zone Code="36161"/>
</Zones>
</Service>
</ServicePortfolio>
</VisaPortfolioRS>
</VisaPortfolioResponse>
</soap:Body>
</soap: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. |
ServicePortfolio | N | - | - |
ServicePortfolio/@Page | N | Integer | Page number returned in the response |
ServicePortfolio/@RecordsPerPage | N | Integer | Number of services shown in the response |
ServicePortfolio/@TotalPages | N | Integer | Total pages of the full service portfolio |
ServicePortfolio/@TotalRecords | N | String | Total number of services for the full service portfolio. |
ServicePortfolio/Service | N | - | - |
./Service/@Code | N | String | Service code |
./Service/@IntCode | Y | String | Service internal code |
./Service/@ProductGroup | Y | Integer | Product group identificator. This is internal information that is only available through a specific permission. |
./Service/@ProductType | Y | String | Product group type. This is internal information that is only available through a specific permission. |
./Service/@ProductTypeBreakdown | Y | String | Product group type breakdown. This is internal information that is only available through a specific permission. |
./Service/@ServiceTypeCode | Y | Integer | Internal service type code. |
./Service/Name | N | String | Service name |
./Service/Options | N | - | - |
./Options/ServiceOption | N | String | Service Option |
./Options/@Code | N | String | Service Option Code |
./Options/@Order | N | String | Service option order |
./Options/@NumberOfDays | Y | String | Service option number of days |
./Options/Name | N | String | Service Option Name |
./Service/Zones | N | - | - |
./Zones/Zone | N | String | Zone |
./Zone/@Code | N | String | Zone Code |
./Service/Origins | N | - | - |
./Origins/Origin | N | String | Origin |
./Origin/@Code | N | String | Origin Code |
./Service/Destinations | N | - | - |
./Destinations/Destination | N | String | Destination |
./Destination/@Code | N | String | Destination Code |
./Service/ServiceType | Y | - | Service type. This is internal information that is only available through a specific permission. |
./ServiceType/@Code | N | String | Service type identificator |
./Service/Contracts | Y | - | Contracts of the service. This is internal information that is only available through a specific permission. |
./Contracts/Contract | N | - | Contract |
./Contract/@Type | N | String | Contract type. Possible values: - C: Cost contract - S: Sales contract |
./Contract/@Code | N | String | Contract identificator |
./Contract/@AllowZeroCost | N | Boolean | Indicates if the contract allow cost = 0 |
./Contract/Name | N | String | Contract name |
./Contract/Supplier | Y | - | Contract supplier |
./Supplier/@Code | N | String | Contract supplier identificator |
Request to search for a visa product for a specific destination. The following information is mandatory:
Request
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<VisaAvail>
<VisaAvailRQ Version="1.1" Language="es">
<Login Password="pass" Email="user@mydomain.com"/>
<Paxes>
<Pax IdPax="1">
<Age>30</Age>
</Pax>
</Paxes>
<VisaRequest>
<SearchSegmentsVisa>
<SearchSegmenVisa Start="2019-09-19" End="2019-09-19" DestinationZone="17852"/>
</SearchSegmentsVisa>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax="1"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
</VisaRequest>
</VisaAvailRQ>
</VisaAvail>
</soapenv:Body>
</soapenv:Envelope>
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. Note: some suppliers only support one language. If your language is not supported, default language is returned. |
{Login} | N | - | Customer login to access the Web Service |
{Paxes} | N | - | Indicates the passenger information. Array of passengers. Fieldsnecessary for this transaction: - @IdPax (Required). - Age (Optional for adults). |
VisaRequest | N | - | - |
./VisaRequest/SearchSegmentsVisa | N | - | Search properties. |
./SearchSegmentsVisa/SearchSegmentVisa | N | - | Basic seach properties. |
./SeachSegmentVisa/@Start | N | Date | Start date range. Format: yyyy-MM-dd |
./SeachSegmentVisa/@End | N | Date | End date range. Format: yyyy-MM-dd |
./SeachSegmentVisa/@DestinationZone | N | Integer | Juniper code of the destination zone. |
./SeachSegmentVisa/@Type | Y | Integer | Visa type ID. Retrieved from the VisaCatalogueData request. |
./SeachSegmentVisa/RelPaxesDist | - | - | Passengers' distribution you wish to request. |
./RelPaxesDist/RelPaxDist | - | - | Distribution list. |
./RelPaxDist/RelPaxes | - | - | Passengers list of this distribution. |
./RelPaxes/RelPax | - | - | Passenger. |
./RelPax/@IdPax | - | Integer | Passenger identifer. It should match with a {Pax@IdPax} |
./SearchSegmentVisa/AdvancedOptions | - | - | 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. |
Response
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<VisaAvailResponse xmlns="http://www.juniper.es/webservice/2007/">
<VisaAvailResult Url="http://xml-uat.bookingengine.es" TimeStamp="2019-07-18T13:39:46.8947930+02:00" IntCode="pCzds/7edy8wT16OLA7vNYMtQj56mKZp10ke5hlKWRk=">
<Results>
<VisaResult>
<Visa Start="2019-07-19" End="2019-07-19" DestinationZone="17852" Code="qZFWAak+fHxtnJYsV6cyfA==" Status="OK">
<VisaInfo>
<Name>Visado mundo</Name>
<Description>Visados para cualquier parte del mundo</Description>
<Images>
<Image>/visa.jpg</Image>
</Images>
</VisaInfo>
<VisaOptions>
<VisaOption>
<Name>Visa model 1</Name>
<Description>Visa model 1</Description>
<Images>
<Image>/visa1.jpg</Image>
</Images>
<Dates>
<Date Start="2019-07-18" RatePlanCode="0GsSNw+ZsevVqdIeOvpdT2SmbTlBLR....................+dx9XoNl83CK4ClKRkxlp7J+k/BL4nA==">
<Prices>
<Price Type="S" Currency="EUR">
<TotalFixAmounts Recommended="0" Gross="150" Nett="150">
<Service Amount="150"/>
<ServiceTaxes Included="true" Amount="0.0"/>
<Commissions Included="true" Amount="0.0"/>
<HandlingFees Included="true" Amount="0.0"/>
</TotalFixAmounts>
</Price>
</Prices>
</Date>
</Dates>
</VisaOption>
</VisaOptions>
</Visa>
</VisaResult>
</Results>
</VisaAvailResult>
</VisaAvailResponse>
</soap:Body>
</soap: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. |
Results | N | - | List of cruise results. |
./Result/VisaResult | N | - | Item cruise. |
./VisaResult/@Start | N | Date | Start date range. Format: yyyy-MM-dd |
./VisaResult/@End | Y | Date | End date range. Format: yyyy-MM-dd |
./VisaResult/@DestinationZone | N | Integer | Juniper code of the destination zone. |
./VisaResult/@Code | N | String | Visa code. |
./VisaResult/@Status | N | String | Visa status: - OK: Available. - RQ: On request. |
./VisaResult/VisaInfo | - | - | Visa basic information. |
./VisaInfo/Name | N | String | Visa name. |
./VisaInfo/{Images} | Y | String | Image URL. |
./VisaInfo/Description | Y | String | Visa description. |
./VisaResult/VisaOptions | N | - | Visa options container. |
./VisaOptions/VIsaOption | N | - | Visa option. Contains basic information like names of the zones, name of the option, prices ... |
./VisaResult/Name | N | String | Visa option name. |
./VisaResult/Description | N | String | Visa option description. |
./VisaResult/{Images} | Y | String | Visa option images |
./VisaResult/Dates | N | - | Visa option dates. |
./Dates/Date | N | - | Visa option date. Contains the dates and prices for that date of the option. |
./VisaResult/@Start | N | Date | Start date range. Format: yyyy-MM-dd |
./VisaResult/@RatePlanCode | N | String | Code that identifies the visa option. |
./VisaResult/{Prices} | N | - | Prices. |
This is an optional request and lets us check the visa availability before sending a VisaBookingRules request.
Therefore, to send this request we need a RatePlanCode obtained from the availability response or after a product change.
Request
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns="http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<VisaCheckAvail>
<VisaCheckAvailRQ Version="1.1" Language="es">
<Login Email="user@mydomain.com" Password="pass"/>
<VisaCheckAvailRequest>
<VisaOption RatePlanCode="smHlCB+Z/QxfeBpTbXkBO....................dBsMZ+9moJl25oJUAe0+Lk" />
</VisaCheckAvailRequest>
</VisaCheckAvailRQ>
</VisaCheckAvail>
</soap:Body>
</soap:Envelope>
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. Note: some suppliers only support one language. If your language is not supported, default language is returned. |
{Login} | N | - | Customer login to access the Web Service |
VisaCheckAvailRequest | N | - | Search properties. |
./VisaCheckAvailRequest/VisaOption | N | - | - |
./VisaOption/@RatePlanCode | N | String | Code that identifies the visa option. |
AdvancedOptions | - | - | 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. |
Response
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<VisaAvailResponse xmlns="http://www.juniper.es/webservice/2007/">
<VisaAvailResult Url="http://xml-uat.bookingengine.es" TimeStamp="2019-07-18T13:39:46.8947930+02:00" IntCode="pCzds/7edy8wT16OLA7vNYMtQj56mKZp10ke5hlKWRk=">
<Warnings>
<Warning Code="warnPriceChanged">Price changed. Use the new RatePlanCode or BookingCode</Warning>
</Warnings>
<Results>
<VisaResult>
<Visa Start="2019-07-19" End="2019-07-19" DestinationZone="17852" Code="qZFWAak+fHxtnJYsV6cyfA==" Status="OK">
<VisaInfo>
<Name>Visado mundo</Name>
<Description>Visados para cualquier parte del mundo</Description>
<Images>
<Image>/visa.jpg</Image>
</Images>
</VisaInfo>
<VisaOptions>
<VisaOption>
<Name>Visa model 1</Name>
<Description>Visa model 1</Description>
<Images>
<Image>/visa1.jpg</Image>
</Images>
<Dates>
<Date Start="2019-07-18" RatePlanCode="0GsSNw+ZsevVqdIeOvpdT2SmbT........................x9XoNl83CK4ClKRkxlp7J+k/BL4nA==">
<Prices>
<Price Type="S" Currency="EUR">
<TotalFixAmounts Recommended="0" Gross="150" Nett="150">
<Service Amount="150"/>
<ServiceTaxes Included="true" Amount="0.0"/>
<Commissions Included="true" Amount="0.0"/>
<HandlingFees Included="true" Amount="0.0"/>
</TotalFixAmounts>
</Price>
</Prices>
</Date>
</Dates>
</VisaOption>
</VisaOptions>
</Visa>
</VisaResult>
</Results>
</VisaAvailResult>
</VisaAvailResponse>
</soap:Body>
</soap: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. |
Results | N | - | List of cruise results. |
./Result/VisaResult | N | - | Item cruise. |
./VisaResult/@Start | N | Date | Start date range. Format: yyyy-MM-dd |
./VisaResult/@End | Y | Date | End date range. Format: yyyy-MM-dd |
./VisaResult/@DestinationZone | N | Integer | Juniper code of the destination zone. |
./VisaResult/@Code | N | String | Visa code. |
./VisaResult/@Status | N | String | Visa status: - OK: Available. - RQ: On request. |
./VisaResult/VisaInfo | - | - | Visa basic information. |
./VisaInfo/Name | N | String | Visa name. |
./VisaInfo/{Images} | Y | String | Image URL. |
./VisaInfo/Description | Y | String | Visa description. |
./VisaResult/VisaOptions | N | - | Visa options container. |
./VisaOptions/VIsaOption | N | - | Visa option. Contains basic information like names of the zones, name of the option, prices ... |
./VisaResult/Name | N | String | Visa option name. |
./VisaResult/Description | N | String | Visa option description. |
./VisaResult/{Images} | Y | String | Visa option images |
./VisaResult/Dates | N | - | Visa option dates. |
./Dates/Date | N | - | Visa option date. Contains the dates and prices for that date of the option. |
./VisaResult/@Start | N | Date | Start date range. Format: yyyy-MM-dd |
./VisaResult/@RatePlanCode | N | String | Code that identifies the visa option. |
./VisaResult/{Prices} | N | - | Prices. |
This transaction is based on the RatePlanCode. It validates the visa starting from the specified RatePlanCode and returns a new code called "BookingCode" with which it is possible to book the visa or finish its configuration with other VisaBookingRules transactions.
Besides the BookingCode needed to confirm the booking, this transaction will return:
Request
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns="http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<VisaBookingRules>
<VisaBookingRulesRQ Version="1.1" Language="es">
<Login Email="user@mydomain.com" Password="pass"/>
<VisaBookingRuleRequest>
<VisaOption RatePlanCode="l25oJUAe0+Lky8A8TqmgD....................T9CxtJ24CAa/k8+PMKWtofe5fpGeL/f" />
</VisaBookingRuleRequest>
</VisaBookingRulesRQ>
</VisaBookingRules>
</soap:Body>
</soap:Envelope>
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. Note: some suppliers only support one language. If your language is not supported, default language is returned. |
{Login} | N | - | Customer login to access the Web Service |
VisaBookingRulesRequest | N | - | Search properties. |
./VisaBookingRulesRequest/VisaOption | N | - | - |
./VisaOption/@RatePlanCode | N | String | Code that identifies the visa option. |
./VisaBookingRulesRequest/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. |
./AdvancedOptions/PromoCode | Y | String | Promotional code that you would like to apply to the combination. • If found and applied, the promotion will not be included within the HotelResult price and, instead, be returned through its own AdjustmentElement. • If unsuccessful, the response will include a warnPromoNotApply warning. |
./PromoCode/@BinCode | Y | String | BinCode for which you would like to search for an applicable promotion. May be sent along with a PromoCode, case on which the system will look for the best possible promotion available within the two. |
Response
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<VisaBookingRulesResponse xmlns="http://www.juniper.es/webservice/2007/">
<BookingRulesRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-07-18T13:39:46.8947930+02:00" IntCode="pCzds/7edy8wT16OLA7vNYMtQj56mKZp10ke5hlKWRk=">
<Warnings>
<Warning Code="warnPriceChanged">Price changed. Use the new RatePlanCode or BookingCode</Warning>
</Warnings>
<Results>
<VisaResult>
<Visa Start="2019-07-18" End="2019-07-19" DestinationZone="17852" Code="qZFWAak+fHxtnJYsV6cyfA==" Status="OK">
<BookingCode ExpirationDate="2019-07-18T09:55:03.6761260+02:00">ceRRpe6J+Xd9M4MpuPuDvoaP.....................FnoyR09gMyCEl/SnH5/5Ij5</BookingCode>
<CancellationPolicies>
<CancellationPolicy Code="1050" Priority="5" OnlyEarlyBooking="false">
<Name>Cancellation policy Test</Name>
<Description> CANCELLATION FEES </Description>
<BookingDate/>
<Rules>
<Rule From="4" Type="V" ApplicationTypeNights="Average" Nights="0"/>
<Rule From="0" To="3" Type="V" Fixed="3" ApplicationTypeNights="Average"/>
<Rule Type="S" PercentPrice="100" ApplicationTypeNights="Average"/>
</Rules>
</CancellationPolicy>
</CancellationPolicies>
<VisaInfo>
<Name>Visado mundo</Name>
<Description>Visados para cualquier parte del mundo</Description>
<Images>
<Image>http://bookingengine.es/visa.jpg</Image>
</Images>
</VisaInfo>
<VisaOptions>
<VisaOption>
<Name>Visa model 1</Name>
<Description>Visa model 1</Description>
<Images>
<Image>http://bookingengine.es/visa1.jpg</Image>
</Images>
<Dates>
<Date Start="2019-07-18" RatePlanCode="0GsSNw+ZsevVqdIeOvpdT2SmbTlB...................oNl83CK4ClKRkxlp7J+k/BL4nA==">
<Prices>
<Price Type="S" Currency="EUR">
<TotalFixAmounts Recommended="0" Gross="150" Nett="150">
<Service Amount="150"/>
<ServiceTaxes Included="true" Amount="0.0"/>
<Commissions Included="true" Amount="0.0"/>
<HandlingFees Included="true" Amount="0.0"/>
</TotalFixAmounts>
</Price>
</Prices>
</Date>
</Dates>
</VisaOption>
</VisaOptions>
</Visa>
</VisaResult>
</Results>
</BookingRulesRS>
</VisaBookingRulesResponse>
</soap:Body>
</soap: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. |
Results | N | - | Result container. |
./Results/VisaResult | N | - | Element containing the visa information |
./VisaResult/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./VisaResult/@End | Y | Date | End date range Format: yyyy-MM-dd |
./VisaResult/@DestinationZone | N | Integer | Juniper code of the destination zone. |
./VisaResult/@Code | N | String | Service code |
./VisaResult/@Status | N | String | Service status: - OK: Available - RQ: On Request |
./VisaResult/BookingCode | N | String | Encrypted code that identifies the package with selected products and options |
./BookingCode/@ExpirationDate | N | DateTime | Shows the expiration date of the generated BookingCode. Format: yyyy-MM-ddThh:mm:ss (UTC) |
./VisaResult/{VisaRequiredFields} | N | - | Required fields for the booking process. The structure matches with a VisaBooking request. Only the nodes and attributes that are returned in this structure will be mandatory, the rest of the information will be considered as optional. |
./VisaResult/{CancellationPolicy} | Y | - | List of cancellation policies |
./VisaResult/{CancellationPolicyCost} | Y | - | List of cancellation policies. Resticted information, contract with Juniper for more information. |
./VisaResult/PriceInformation | N | - | Information of the visa combination. |
./PriceInformation/VisaInfo | - | - | - |
./VisaInfo/Name | N | String | Visa name |
./VisaInfo/Description | Y | String | Visa description |
./VisaInfo/{Images} | Y | String | Images URL |
./VisaInfo/VisaOptions | N | - | Visa options container. |
./VisaOptions/VisaOption | N | - | Visa option. Contains basic information like names of the zones, name of the option, prices... |
./VisaOption/Name | N | String | Visa option name |
./VisaOption/Description | N | String | Visa option description |
./VisaOption/{Images} | Y | String | Visa option images |
./VisaOption/Dates | N | - | Visa option dates container. |
./Dates/Date | N | - | Visa option date. Contains the date and prices for that date of the option. |
./Dates/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./Dates/@RatePlanCode | N | String | Code that identifies the visa option. |
./Dates/{Prices} | N | - | Prices |
./PriceInformation/BillingOrganization | Y | String | Billing organization name. This information is restricted and will not be available by default. |
./BillingOrganization/@Code | Y | String | Billing organization code. |
./Results/{AdjustmentResult} | Y | - | Additional adjustment result. It will be available if, for example, you've manually added a PromoCode by using the AdvancedOption found within this same transaction request. |
Request
We book a visa by BookingCode which we got in the BookingRules Response:
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<VisaBooking xmlns="http://www.juniper.es/webservice/2007/">
<VisaBookingRQ>
<Login Email="user@mydomain.com" Password="pass"/>
<Paxes>
<Pax IdPax="1">
<Name>Jose</Name>
<Surname>García Perez</Surname>
<Email>jose@mydomain.com</Email>
<PhoneNumbers>
<PhoneNumber Type="GEN">+34 617884410</PhoneNumber>
</PhoneNumbers>
<BornDate>18/05/1977</BornDate>
<Age>35</Age>
<Document Type="DNI">24516757Y</Document>
<Address>Calle Aragón 232</Address>
<City>Palma de Mallorca</City>
<Country>Spain</Country>
<PostalCode>00000</PostalCode>
<Nationality>ES</Nationality>
</Pax>
</Paxes>
<Holder>
<RelPax IdPax="1"/>
</Holder>
<ExternalBookingReference>EXT_REFERENCE_123</ExternalBookingReference>
<Comments>
<Comment Type="RES">General booking comments</Comment>
</Comments>
<Elements>
<VisaElement>
<BookingCode>ceRRpe6J+Xd9M4MpuPuDvo...............09gMyCEl/SnH5/5Ij5</BookingCode>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax="1"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
<VisaBookingInfo>
<VisaCode>LzRWPvN2Ds+R3Cf</VisaCode>
<Price>
<PriceRange Minimum="0" Maximum="200" Currency="EUR"/>
</Price>
</VisaBookingInfo>
</VisaElement>
</Elements>
</VisaBookingRQ>
</VisaBooking>
</soap:Body>
</soap:Envelope>
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. Note: some suppliers only support one language. If your language is not supported, default language is returned. |
@TimeStamp | Y | DateTime | This is an optional field that allows for you to send your own time stamp. Format: yyyy-MM-ddThh:mm:ss (UTC) |
{Login} | N | - | Customer login to access the Web Service |
{Paxes} | N | Indicates the passenger information. Array of passangers. Fields necessary for this transaction: • @IdPax(Required) • Age (Optional for adults |
|
ReservationLocator | Y | String | You may indicate an existing booking code to add a package to it. Remarcable points: • If no data of the main pax is sent, current data of the booking holder will be taken. • If some data of the main pax is sent, name and surname should match to the current booking holder. The rest of the info will be updated. |
ExternalBookingReference | Y | String | Free text that may indicate its agency reference, booking code or any code you wish to identify the booking. It will not exceed 50 characters. |
PlatformBookingReference | Y | String | Free text field through which you may send the reference of your platform (ideally you should always prioritize the ExternalBookingReference but, if you would like to differentiate between your platform and the agency's final booking reference, send the agency one on ExternalBookingReference and yours here). Right now this is mainly a referential purposes, and cannot be used in order to search and/or identify bookings. |
FileNumber | Y | String | File No. |
Agent | Y | - | If you are interested you may modify the name and email of the user that is making the booking. By default, the ones that are configured are used in the user. |
./Agent/@Name | Y | String | Agent name |
./Agent/@Email | Y | String | Agent email |
Holder | N | - | Main passenger |
./Holder/@IdPax | N | Integer | Main passenger identifier |
Comments | Y | - | List of comments |
./Comments/Comment | N | String | Comment |
./Comment/@Type | Y | String | Comment type. Possible values: • RES: General booking comments • INT: Internal booking comments. Kindly note that these comments are restricted, contact with Juniper for more information. Note that it is important to set the proper @Type or the comment won’t be properly saved. |
Elements | N | - | List of visa elements |
./Elements/VisaElement | N | - | Visa element |
./VisaElement/BookingCode | N | String | Encrypted code which identifies the package you want to book |
./VisaElement/RelPaxesDist | N | - | Passengers’ distribution you wish to request. |
./RelPaxesDistRelPaxDist | N | - | Distribution list. |
./RelPaxDist/RelPaxes | N | - | Passengers list of this distribution. |
./RelPaxes/RelPax | N | - | Passenger |
./RelPax/@IdPax | N | Integer | Passenger Identifier. It should match with a {Pax@IdPax} |
./VisaElement/Comments | Y | - | List of comments |
./Comments/Comment | N | String | Comment |
./Comment/@Type | N | String | Comment type. Possible values: • ELE: Booking element comments Note that it is important to set the proper @Type or the comment won’t be properly saved. |
./VisaElement/VisaBookingInfo | N | - | Basic information of the service |
./VisaBookingInfo/VisaCode | N | String | Code of the visa to book |
./VisaBookingInfo/FlightInfoOrigin | Y | - | The information of the arrival flight |
./FlightInfoOrigin/FlightDate | Y | String | The flight date |
./FlightInfoOrigin/Time | Y | String | The flight hour |
./FlightInfoOrigin/Value | Y | String | The flight number |
./FlightInfoOrigin/Airport | Y | String | The origin airport |
./VisaBookingInfo/FlightInfoDestination | Y | - | The information of the leaving flight |
./FlightInfoDestination/FlightDate | Y | String | The flight date |
./FlightInfoDestination/Time | Y | String | The flight hour |
./FlightInfoDestination/Value | Y | String | The flight number |
./FlightInfoDestination/Airport | Y | String | The origin airport |
./VisaBookingInfo/MeetingPointInfo | Y | - | Information about the meeting point. It contains data of the transfer type of zone |
./MeetingPointInfo/@Code | N | String | Meeting point code. It is mandatory if the client is using groundhandling. If not, it accepts ‘000’. These codes may be retrieved from the MeetingPointList transaction. |
./MeetingPointInfo/@MeetingTime | N | Time | Pickup time at the meeting point |
./MeetingPointInfo/Name | Y | String | Name of the hotel or zone of the meeting point |
./MeetingPointInfo/Address | Y | String | Meeting point address |
./MeetingPointInfo/PostalCode | Y | String | Post code of the zone in whihc the meeting point is located |
./VisaBookingInfo/Price | N | - | Price information |
./Price/PriceRange | N | - | Price information |
./PriceRange/@Minimum | N | - | Minimum price of the reservation. If when booking, the price is lower, the booking will be cancelled automatically. |
./PriceRange/@Maximum | N | - | Maximum price of the reservation. If when booking, the price is higher, the booking will be cancelled automatically. |
./PriceRange/@Currency | N | - | Currency |
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. |
./AdvancedOptions/SendMailTo | Y | String | If included with the ALL value a booking confirmation email will be sent to your email account. |
./AdvancedOptions/BookingPaid | Y | String | Parameter meant for internal use only. |
Response
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<VisaBookingResponse xmlns="http://www.juniper.es/webservice/2007/">
<VisaBookingRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-07-17T16:11:25.9486386+02:00" IntCode="kTxZHdib80J0ixrvXMti2ujN5f9cBEMfZTkQQ2dvAos=">
<Reservations>
<Reservation Locator="CV6QJV" Status="PAG">
<ExternalBookingReference>CE3XX-MN</ExternalBookingReference>
<Holder>
<RelPax IdPax="1"/>
</Holder>
<Paxes>
<Pax IdPax="1">
<Name>Jose</Name>
<Surname>Garcia Perez</Surname>
<Email>jose@mydomain.com</Email>
<PhoneNumbers>
<PhoneNumber Type="GEN" >+34 617884410</PhoneNumber>
</PhoneNumbers>
<BornDate>18/05/1977</BornDate>
<Age>35</Age>
<Document Type="DNI" Number="44509777X">
<DocumentDateExpired>18/10/2020</DocumentDateExpired>
<DocumentNationality>ES</DocumentNationality>
</Document>
<Address>Calle Aragon 232</Address>
<City>Palma de Mallorca</City>
<Country>Spain</Country>
<PostalCode>00000</PostalCode>
<Nationality>ES</Nationality>
</Pax>
</Paxes>
<Comments>
<Comment Type="RES">General booking comments</Comment>
</Comments>
<Items>
<VisaItem ItemId="102514" Code="qZFWAak+fHxtnJYsV6cyfA==" Status="OK" Start="2019-07-18" End="2019-07-18">
<Prices>
<Price Type="S" Currency="EUR">
<TotalFixAmounts Recommended="0" Gross="150" Nett="150">
<Service Amount="150"/>
<ServiceTaxes Included="true" Amount="0.0"/>
<Commissions Included="true" Amount="0.0"/>
<HandlingFees Included="true" Amount="0.0"/>
</TotalFixAmounts>
</Price>
</Prices>
<CancellationPolicies>
<CancellationPolicy Code="1050" Priority="5" OnlyEarlyBooking="false">
<Name>Cancellation policy Test</Name>
<Description> CANCELLATION FEES </Description>
<BookingDate/>
<Rules>
<Rule From="4" Type="V" ApplicationTypeNights="Average" Nights="0"/>
<Rule From="0" To="3" Type="V" Fixed="3" ApplicationTypeNights="Average"/>
<Rule Type="S" PercentPrice="100" ApplicationTypeNights="Average"/>
</Rules>
</CancellationPolicy>
</CancellationPolicies>
<VisaBookingInfo>
<Name>Visado mundo</Name>
<Description>Visados para cualquier parte del mundo</Description>
<Images>
<Image>/visa.jpg</Image>
</Images>
</VisaBookingInfo>
<RelPaxes>
<RelPax IdPax="1"/>
</RelPaxes>
</VisaItem>
</Items>
</Reservation>
</Reservations>
</VisaBookingRS>
</VisaBookingResponse>
</soap:Body>
</soap: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. |
Reservations | - | - | List of reservations |
./Reservations/Reservation | N | - | Reservation item |
./Reservation/@Locator | N | String | Booking locator |
./Reservation/@Status | N | String | Booking status |
./Reservation/ExternalBookingReference | N | String | Free text that may indicate its agency reference, booking code or any code you wish to identify the booking. It will not exceed 50 characters. |
./Reservation/Holder | - | - | Booking holder or mail passenger |
./Holder/RelPax | - | - | - |
./RelPax/@IdPax | N | Integer | Holder ID |
./Reservation/{Paxes} | N | - | Passenger data. Mandatory passenger data will be filled in with random data |
./Reservation/Comments | Y | - | List of comments |
./Comments/Comment | N | String | Comment |
./Comment/@Type | Y | String | Comment type. Possible values: • RES: General booking comments • INT: Internal booking comments |
./Reservation/Payment | Y | - | Payment information. |
./Payment/@Type | N | String | Payment type code. Possivle values: •C: Credit •B: Bank •T: POS (Point of sale) |
./Reservation/Items | - | - | List of items |
./Items/VisaItem | - | - | Visa ítem |
./VisaItem/@ItemId | N | Integer | ID of the booking Element |
./VisaItem/@Code | N | String | Transfer code |
./VisaItem/@Status | N | String | Transfer status |
./VisaItem/@Start | N | Date | Starting date of the visa Format: yyyy-MM-dd |
./VisaItem/@End | N | Date | Ending date of the visa Format: yyyy-MM-dd |
./VisaItem/{Prices} | N | - | Price |
./VisaItem/CancellationPolicy | N | - | Cancellation policies |
./CancellationPolicy/Description | N | String | Cancellation policies description |
Reservations/VisaBookingInfo | N | - | Basic information of the service |
./VisaBookingInfo/RelPaxes | N | - | - |
./RelPaxes/RelPax | N | - | - |
./RelPax/@IdPax | N | Integer | It focuses on the passenger it refers to. |
./Items/{AdjustmentItem} | Y | - | Additional adjustment item. It will be available if, for example, you've manually added a PromoCode on the previous BookingRules step. |
This is to obtain a booking by its reference code. The returned information is the same as in {VisaBooking}. Please see section InsuranceBooking or further information.
<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>
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. |
ReadRequest | N | - | - |
./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. |
It returns the same information as the response of VisaBooking. For further information regarding the parameters, please review the section related to the response of the VisaBooking transaction.
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 canceled.
In the following example, we cancel the whole booking.
<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 = "CSY243"/>
</CancelRQ>
</CancelBooking>
</soapenv:Body>
</soapenv:Envelope>
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 | - | Booking code. |
./CancelRequest/@ItemId | Y | - | Item identifier. |
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. |
It returns the same information as the response of VisaBooking. For further details regarding the parameters, please review the section related to the response of {VisaBooking} transaction.
Example of obtaining the cancellation charges. This option does not cancel the booking.
<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 = "CSY243">
<AdvancedOptions>
<OnlyCancellationFees>true</OnlyCancellationFees>
</AdvancedOptions>
</CancelRequest>
</CancelRQ>
</CancelBooking>
</soapenv:Body>
</soapenv:Envelope>
<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 = "2019-12-27T14:48:45.0326528+01:00" IntCode = "s+4sOTN3Hx0l/7Vc/Y5qqrv+FENED1aFnZKFpM7GLlg=">
<Warnings>
<Warning Code = "warnCancellationCostRetrieved" Text = "Cancellation cost retrieved. Reservation was not cancelled."/>
<CancelInfo>
<BookingCodeState>Pag</BookingCodeState>
<BookingCancelCost>50</BookingCancelCost>
<BookingCancelCostCurrency>USD</BookingCancelCostCurrency>
</CancelInfo>
</Warnings>
</BookingRS>
</CancelBookingResponse>
</soap:Body>
</soap:Envelope>
When it has not been possible to calculate the cancellation charges, the message returned is the following:
<Warnings>
<Warning Code = "warnCancellationNotCalculated" Text = "Cancellation cost could not be calculated. Reservation was not cancelled."/>
</Warnings>
Should this happen, please, contact your partner.
The modification transactions allow you to modify visa bookings without the need of cancelling and creating them again. You will be able to modify the following information:
At a booking level:
At a visa level (VisaItem):
Important note:
It is important to keep in mind that you will not always be able to modify all of this information. This will depend on the visa itself as they may only allow some of these modifications, or even it will not be allowed.
The bookings that have cancellation charges cannot be modified. In order to modify them you will have to cancel them, assume the cancellation charges and create a new one on your end.
The modification process consists of two steps:
VisaModify: This transaction allows you to check if the modifications that you want to perform are possible without the need of actually performing them in the process. In the transaction you will have to indicate the information that you want to modify so that on the response you will get:
VisaConfirmModify: After checking that the modifications are possible with the VisaModify transaction, this transaction will allow you to actually confirm such modifications. If the VisaModify transaction gave you one or more @ModifyCode you will have to choose and send one in this transaction.
In this first step you will have to specify the information you wish to modify.
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 |
ReservationLocator | N | String | Reservation locator |
./ReservationLocator/@ItemId | N | String | Hotel item Id |
{Paxes} | Y | - | Allows you to modify the passenger information or the occupancy of the rooms of the booking. |
Holder | N | - | Allows you to modify the lead passenger information. |
./Holder/RelPax | N | - | - |
./RelPax/@IdPax | N | Integer | Booking passenger Id. It should match with a Pax@IdPax |
ExternalBookingReference | Y | String | Allows you to modify the external booking reference. |
Comments | Y | - | Allows you to modify the booking comments. |
./Comments/Comment | Y | String | - |
./Comment/@Type | Y | String | RES |
SearchSegmentVisas | Y | - | |
./SearchSegmentVisas/@Start | Y | Date | Allows you to modify the start date. |
./SearchSegmentVisas/@End | Y | Date | Allows you to modify the end date. |
./SearchSegmentVisas/@Code | Y | String | Allows you to modify the visa |
./SearchSegmentVisas/@OptionCode | Y | String | Allows you to modify the visa option |
RelPaxesDist | Y | - | Allows you to modify the passenger distribution. |
./RelPaxesDist/RelPaxDist | N | - | Distribution list. |
./RelPaxDist/RelPaxes | N | - | Passengers list of this distribution |
./RelPaxes/RelPax | N | Passenger | |
./RelPax/@IdPax | N | Integer | Passenger Identifier. It should match with a Pax@IdPax |
VisaBookingInfo | N | - | Basic information of the visa |
./VisaBookingInfo/FlightInfoOrigin | Y | - | The information of the arrival flight |
./FlightInfoOrigin/Value | Y | String | The flight number |
./VisaBookingInfo/FlightInfoDestination | Y | - | The information of the leaving flight |
./FlightInfoDestination/Value | Y | String | The flight number |
./VisaBookingInfo/MeetingPointInfo | Y | - | Information about the meeting point. It contains data of the transfer type of zone |
./MeetingPointInfo/@Code | N | String | Meeting point code. It is mandatory if the client is using groundhandling. If not, it accepts ‘000’. These codes may be retrieved from the MeetingPointList transaction. |
./MeetingPointInfo/Name | Y | String | Name of the hotel or zone of the meeting point |
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. |
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. |
Results | N | - | List of results |
./Results/VisaModifyResult | Y | - | Only if the price will be modified (new visa, option, date). |
./VisaModifyResult/@Start | N | Date | Start |
./VisaModifyResult/@End | N | Date | End |
./VisaModifyResult/@Code | N | String | Code |
./VisaModifyResult/@Status | N | String | Visa status: OK: Available RQ: On Request |
./VisaModifyResult/VisaInfo | Y | - | Visa basic information. |
./VisaInfo/Name | Y | String | Visa name |
./VisaInfo/Description | Y | String | Visa description |
./VisaInfo/Images | Y | - | List of images |
./Images/Image | Y | String | URL image |
./VisaModifyResult/VisaOptions | N | - | List of options |
./VisaOptions/VisaOption | N | - | Option |
./VisaOption/@Code | N | String | Option Code |
./VisaOption/Name | Y | String | Option name |
./VisaOption/Description | Y | String | Visa option description. |
./VisaOption/Dates | N | - | List of dates |
./Dates/Date | N | - | Room |
./Date/@Start | N | Date | Start date |
./Date/ModifyCode | N | String | Code that identifies the combination that will be used on the modification. |
./ModifyCode/@ExpirationDate | N | DateTime | Expiration Date of the modify Code, will appear just for the option send in the request in case we get a result available Format: yyyy-MM-ddThh:mm:ss (UTC) |
./Date/{Prices} | N | - | Prices |
Request
We request to modify the booking comments.
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns = "http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<VisaModify>
<VisaModifyRQ Version = "1.1" Language = "en">
<Login Email = "user@mydomain.com" Password = "pass"/>
<ReservationLocator ItemId = "123456">XXXXXX</ReservationLocator>
<Comments>
<Comment Type = "RES">Modify general booking comments</Comment>
</Comments>
</VisaModifyRQ>
</VisaModify>
</soapenv:Body>
</soapenv:Envelope>
Response
The response will simply confirm that the modification will be done changing the comment from "1234" to "Modify general booking 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>
<VisaModifyResponse xmlns = "http://www.juniper.es/webservice/2007/">
<ModifyRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2020-01-01T16:27:41.3001568+01:00" IntCode = "O5RVrr8NMek65UvsA+dY0M5pwiRypS5qImg0BsPrgzE=">
<Warnings>
<Warning Code = "warnModifyBookingComments" Text = "The booking comments will be modified. Before: [1234] After: [Modify general booking comments]"/>
</Warnings>
<Results/>
</ModifyRS>
</VisaModifyResponse>
</soap:Body>
</soap:Envelope>
Request
We request to modify the booking dates. In this case the Origin/Destination information is required.
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns = "http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<VisaModify>
<VisaModifyRQ Version = "1.1" Language = "es">
<Login Email = "user@mydomain.com" Password = "pass"/>
<ReservationLocator ItemId = "123456">XXXXXX</ReservationLocator>
<SearchSegmentVisas Start = "2020-06-25" End = "2020-06-25"/>
</VisaModifyRQ>
</VisaModify>
</soapenv:Body>
</soapenv:Envelope>
Response
We have to select an option and send its related @ModifyCode in the TransferConfirmModify petition.
<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>
<VisaModifyResponse xmlns = "http://www.juniper.es/webservice/2007/">
<ModifyRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2020-01-01T08:23:37.1376464+01:00" IntCode = "iwUJW71oLNcnd2XGr98HG6cXOUxHwx26PKPeYW11+LI=">
<Warnings>
<Warning Code = "warnModifyDates" Text = "The dates will be modified. Before: [24/06/2020 00:00-24/06/2020 00:00] After: [25/06/2020 00:00-25/06/2020 00:00]"/>
</Warnings>
<Results>
<VisaModifyResult Start = "2020-06-25" End = "2020-06-25" Code = "fv19DV+fUfTtNpw5rm1eCQ==" Status = "OK">
<VisaInfo>
<Name>Test Visa</Name>
<Description>Visa description</Description>
</VisaInfo>
<VisaOptions>
<VisaOption Code = "4584">
<Name>Visa Name</Name>
<OccupancyAllowed Children = "false"/>
<Description>Option description</Description>
<Dates>
<Date Start = "2020-06-25T00:00:00">
<ModifyCode ExpirationDate = "2020-01-01T08:33:37.044361+01:00">5t6hcIgKWBXmYmeupEaisiKKihPUzaQye/siQgFePI5VXsRn3dnyqNH08Oz+sOyp7k8DHnl1H7nLNWTP07XeYbBJ5dOPYj292GihLwrCnnV3aVg4xJ5YXCw9cyQuLBroqevYddopU0zu96G4EPBcEtOMJPCoMTIe3HSUAZC+0r6FhOYZ5bg17KFklD7brg5ElZA33dKYjXamBody5miv63i/WofuXUP37U2UUGFeb/kwYmpNzufeo+JC8uFG1PD13NVgptYowR7a8lFPyoeR76v5/kN/owO+LPMZxCdWN0s=</ModifyCode>
<Prices>
<Price Type = "S" Currency = "EUR">
<TotalFixAmounts Gross = "45" Nett = "45">
<Service Amount = "45"/>
</TotalFixAmounts>
</Price>
</Prices>
</Date>
</Dates>
</VisaOption>
</VisaOptions>
</VisaModifyResult>
</Results>
</ModifyRS>
</VisaModifyResponse>
</soap:Body>
</soap:Envelope>
Once you confirm that the modification can be made through the VisaModify petition you can proceed to make such modifications through this petition. For this end, you will have to specify all the information that you want to modify along with the @ModifyCode if it is necessary.
The response will always return a warning with the changes that have been made along with the booking information.
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 |
ReservationLocator | N | String | Reservation locator |
./ReservationLocator/@ItemId | N | Integer | Visa item Id |
{Paxes} | Y | - | Allows you to modify the passenger information or the occupancy of the rooms of the booking. |
Holder | Y | - | Allows you to modify the lead passenger information. |
./Holder/RelPax | N | - | - |
./RelPax/@IdPax | N | Integer | Booking passenger Id. It should match with a Pax@IdPax |
ExternalBookingReference | Y | String | Allows you to modify the external booking reference. |
Comments | Y | - | Allows you to modify the booking comments. |
./Comments/Comment | N | String | - |
./Comment/@Type | N | String | RES |
VisaElement | Y | ||
./VisaElement/ModifyCode | N | String | Code that identifies the combination. Obtained from the VisaModify petition. |
./VisaElement/RelPaxesDist | N | - | Allows you to modify the passenger distribution. |
./RelPaxesDist/RelPaxDist | N | - | Distribution list. Each one them corresponds to a room. |
./RelPaxDist/RelPaxes | N | - | Passengers list of this distribution/room. |
./RelPaxes/RelPax | N | - | Passenger |
./RelPax/@IdPax | N | Integer | Passenger Identifier. It should match with a Pax@IdPax |
VisaBookingInfo | N | - | Basic information of the visa |
./VisaBookingInfo/FlightInfoOrigin | Y | - | The information of the arrival flight |
./FlightInfoOrigin/Value | Y | String | The flight number |
./VisaBookingInfo/FlightInfoDestination | Y | - | The information of the leaving flight |
./FlightInfoDestination/Value | Y | String | The flight number |
./VisaBookingInfo/MeetingPointInfo | Y | - | Information about the meeting point. It contains data of the transfer type of zone |
./MeetingPointInfo/@Code | N | String | Meeting point code. It is mandatory if the client is using groundhandling. If not, it accepts ‘000’. These codes may be retrieved from the MeetingPointList transaction. |
./MeetingPointInfo/Name | Y | String | Name of the hotel or zone of the meeting point |
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. |
It returns the same information as the VisaBooking response. If you wish to know the specifications of this petition, please review the section related to the VisaBooking response.
Please check the Appendix: Warnings section (concretely Modification warnings) to see the warning list.
Request
We modify the booking comments.
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns = "http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<VisaConfirmModify>
<VisaConfirmModifyRQ Version = "1.1" Language = "en">
<Login Email = "user@mydomain.com" Password = "pass"/>
<ReservationLocator ItemId = "123456">XXXXXX</ReservationLocator>
<Comments>
<Comment Type = "RES">Modify general booking comments</Comment>
</Comments>
</VisaConfirmModifyRQ>
</VisaConfirmModify>
</soapenv:Body>
</soapenv:Envelope>
Request
We modify the booking dates. In the previous step we've selected a combination (@ModifyCode) that we are now sending through this petition. In this case, there’s no need for more information to be sent as the @ModifyCode contains all of the necessary information.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<VisaConfirmModify>
<VisaConfirmModifyRQ Version="1.1" Language="es">
<Login Email="user@mydomain.com" Password="pass"/>
<ReservationLocator ItemId="123456">XXXXXX</ReservationLocator>
<VisaElement>
<ModifyCode> WKGyylPuDlgu3AyyHMNxUO+Q3bbaSuK6M4OEnT/pPLw2sIvFzOdodksSQAJ+YK2rwZGawL3ATkt8cAR5lMy1IrdWNqNvQLTYc/1Oqmta87hxQfDRCyoNqlJPnsVozcpVln50p2xNW6Ch8cTCFKFfRN6skpOBD95eXgToy6Prja4HSJvXFb5IAFxh0erHIVFiuUTc7oJRFF08WJeHqvEDm2PJAGeM0K8pIFueHkM2gv3t4721TnGQRJYD4DAjo+T22KNzmi0m/IQ9U11J6QFTBDPHZ1xJYY9t4t9mXI4CAzE=</ModifyCode>
</VisaElement>
</VisaConfirmModifyRQ>
</VisaConfirmModify>
</soapenv:Body>
</soapenv:Envelope>