Transfer

Using this API

The transfer service can be used to reserve vehicles that will serve as transportation to the user, so you can take it between places more easily.

Use the SOAP Transfer API to search, verify policies, and book vehicles to transport the customer to places already registered in Cangooroo.

The Transfer SOAP API has the following methods to use in this order:

  • SearchAvailability: Used to define the date of service, number of passengers, languages available for the service, place of departure and place of delivery of the passenger.

  • GetPaymentPolicies: Used to verify the Cancellation Policies of the chosen vehicle chosen.

  • GetBookingHotelLIst:

  • DoBooking: Used to confirm a reservation, it sends the information of the passenger (s), payment information, the vehicle chosen, the date of service and the places where the passenger wishes to be transported.

  • CancelBooking: used to cancel a reservation.

Below you will find more information on the most important rules, possibilities, points of attention and properties to use for each method.

Transfer API endpoint

Each Operator will have its own instance of the Cangooroo Booking Engine and, with that, each will have its own endpoint. Unless specified otherwise, your Operator's endpoint will curently be:

  • https://ws-[OPERATOR].cangooroo.net/ws/2013/transfer_b.asmx

Please note the words in BOLD on the example above since those will vary depending on the Operator you're integrating against.

Search Availability

This is where everything begins. The Search Request is where you will pass your credentials, identification of the place of departure and destination, the list of passengers (where each passenger will be separated by age) and a similar list for children, also must be informed the language along with the date of the service to show the vehicles available on the day.

To see all of the properties contained in the search availability request and response, see this reference page.

Credentials

The credentials tag is fairly simple and only has the UserName and the Password as shown below:

<ws:credential>

<ws1:UserName>?</ws1:UserName>

<ws1:Password>?</ws1:Password>

</ws:credential>

Tag is where you're supposed to put in the UserName given you by the Operator. While the Password is where you're supposed to insert the Password given you by the Operator.

Cri

The crit section will be used for the specifications of your search, in it you will inform the date of the service, the number of adults, the age of the children, the places of pick up and drop off together with the description of each one and the language for the service.

ServiceDate

Here you will be informed the date and time of the service to be used, the user will inform the date in the format YYYY / MM / DD h: m: s as can be seen in the example below.

<can:ServiceDate>2019-05-03</can:ServiceDate>

NumberOfAdults

Here will be informed the amount of adults that will be transported in the vehicle, this tag is mandatory and can not be 0 or null.

<can:NumberOfAdults>1</can:NumberOfAdults>

Children

Here you will be informed of the age of the children that will be transported, where for each child a new tag will be used, as can be seen in the example below (if this property is null, the tag can be deleted).

<can:Children>

<!--Zero or more repetitions:-->

<can:int>?</can:int>

</can:Children>

PickUpLocationDescription and PickupCode

Here you will be informed the pick up location code along with its description, it is important to remember that the description field can have between 4 different values that specify the type of location, they can be Airport, Accomodation, Port, Station or Other.

<can:PickupCode>39262</can:PickupCode>

<can:PickUpLocationDescription>Accomodation</can:PickUpLocationDescription>

DropOffLocationDescription and DropOffCode

Similar to the previous tags, here is informed the location code of drop off together with its description, it is important to remember that the description field can have between 4 different values that specify the type of location, they can be Airport, Accomodation, Port, Station or Other.

<can:DropOffLocationDescription>Accomodation</can:DropOffLocationDescription>

<can:DropoffCode>47512</can:DropoffCode>

Language

Here the language of the service will be informed. If the user chooses to search for a service with a specific language, he / she must enter the language below (if the user does not want to search for a specific language, he / she can fill that tag with "all" that will return all vehicles language).

<can:Language>all</can:Language>

Search availability response

Our Search Search Response will return all results based on your Provided Criteria, returning a list of vehicles that are available on the searched day for the routes. Below you will find the most important sections and properties and to see all the properties and what each one of them means, please see our reference page.

Token and information about the number of results

The <Token> tag is extremely important, as explained on our Services page. You will need this token to confirm the reservation of the chosen transport vehicle and this information must be carried on each subsequent request.

A Token will always be unique and the combination of Token + Credentials + expiration ensures that we will never have matching results stored on our servers.

The TransferTotalResult field provides information about the total number of results found and, finally, the number of results in this unique response.

When your search provides larger sets of results, those that affect the performance of your application and on those occasions, you will have to work with filters and paginate our results.

GetCancellationPolicies

GetPaymentPolicies is the method to which you should call as soon as you receive the survey response, and then select the transfer service you want to reserve. This is a mandatory step for our booking process, which means you must make this call before attempting to confirm your reservation.

It is important to be aware that many vendors work with cached information to decrease response time when responding to availability requests. Therefore, some values can be changed from Search Availability Response to Payment Policy Response, such as price, rate information, and other properties. That is why it is important to compare, verify and update your information and properly notify the user in case of changes.

To see all the properties contained in the Cancellation Policy Request, please see our reference page.

Get Cancellation Policies Request

The GetCancellationPolicies Request is pretty direct and simple and below you will find the most Frequently Asked Questions we have about it.

Credentials

The credentials tag is the same as required on the SearchAvailability with a UserName and a Password as shown below:


<ws:credential>

<ws1:UserName>?</ws1:UserName>

<ws1:Password>?</ws1:Password>

</ws:credential>

The UserName tag is where you're supposed to put in the UserName given you by the Operator. While the Password is where you're supposed to insert the Password given you by the Operator.

Token

As stated before, the Token you received on the SearchAvailability Response is extremely important because it is this information that binds the booking process together. To learn more about the Token, you can check our Services page.

You must pass the Token in the <Token> tag as shown below, since the combination of your Token + Credentials + expiration time will ensure that you have access to the transfer services returned to you in the Search SearchResponse.

<ws:token>9658675f-f1e7-4596-9b59-7ad155ae7b9a</ws:token>

TransferIds

Here you will be informed the ids of the transfer services chosen by the client, this field can receive a list of Ids (all being integer), where each id corresponds to a different vehicle offered in SearchResponse.

<ws:transferIds>

<ws:int>26301</ws:int>

</ws:transferIds>

Get Cancellation Policies Response

In response, in addition to showing the information of the chosen transfer service with the updated data, will also be returned the cancellation policies.

CancelationPolicies

In addition to the information updated by the supplier, the user will also see the cancellation policies of the chosen Transfer service, in these tags it is possible to observe the deadline for service cancellation (<StartDate>) after being hired without having to pay the fine of the fine along with the payment currency can be seen in the <Price> tags).

<CancellationPolicy>

<StartDate xmlns="WS_2013.Common">2019-05-01T00:00:00</StartDate>

<EndDate xmlns="WS_2013.Common">2019-05-03T12:26:00</EndDate>

<Price xmlns="WS_2013.Common">

<Currency xmlns="WS_2013">BRL</Currency>

<Value xmlns="WS_2013">55.76</Value>

</Price>

</CancellationPolicy>


doBooking

The DoBooking method is used to make the reservation of the Transfer that was chosen in SearchAvaliability and dealt with in GetCancellationPolices, this is another simple but very important step, since in this method the passenger data will be informed to the main passenger (Usually the first informed passenger is considered the principal), in addition to the type of payment to be used in this reserve.

To see all the properties contained in the Request and Answer from doBooking, see our reference page.

doBooking Request

below will explain the need for each tag to fill in the Booking.

Credential

The credentials tag is the same as required on the SearchAvailability and GetCancellationPolicies Request with a UserName and a Password.

<ws:credential>

<ws1:UserName>?</ws1:UserName>

<ws1:Password>?</ws1:Password>

</ws:credential>

The UserName tag is where you're supposed to put in the UserName given you by the Operator. While the Password is where you're supposed to insert the Password given you by the Operator.

bookingRequest

here you will be informed of the response id that will be informed in SearchAvaliability.

<ResponseId xmlns="Cangooroo.WS_2013.Transfer">503</ResponseId>

Paxs

Here is where the passenger data will be informed, each passenger will fill a pax object, the amount of that object will appear to be filled will depend on the amount of passengers who were informed.

<Pax>

<DocumentId xmlns="WS_2013.Common">CPF</DocumentId>

<AddressNumber xmlns="WS_2013.Common">51</AddressNumber>

<CEPAddress xmlns="WS_2013.Common">04552000</CEPAddress>

<DDI xmlns="WS_2013.Common">551</DDI>

<DDD xmlns="WS_2013.Common">12</DDD>

<PhoneNumber xmlns="WS_2013.Common">9164457</PhoneNumber>

<Birthday xmlns="WS_2013.Common">0001-01-01T00:00:00</Birthday>

<Name xmlns="WS_2013.Common">TestReservation</Name>

<LastName xmlns="WS_2013.Common">noBook</LastName>

<Age xmlns="WS_2013.Common">21</Age>

<CPF xmlns="WS_2013.Common">400.289.220-51</CPF>

<Address xmlns="WS_2013.Common">Rua do Rocio</Address>

<ZIPcode xmlns="WS_2013.Common">04552000</ZIPcode>

<EnumTitle xmlns="WS_2013.Common">Mr</EnumTitle>

<EnumPaxType xmlns="WS_2013.Common">Main</EnumPaxType>

<PassengerEmail xmlns="ws_2013.common">test@test.com</PassengerEmail>

</Pax>

BookingTransfer

in the property below the places of origin and destination of the passenger will be specified.

Pickup and DropOff

Both objects are very similar, in them you will be informed if the passenger will wait for the transfer service in a Hotel, Airport or other point of interest and if you wish to be transported to a Hotel, Airport or point of interest.

it is worth mentioning that both the points where the passenger wishes to wait for the service and to be transported must be registered in Cangooroo.

<BookingTransfer xmlns="Cangooroo.WS_2013.Transfer">

<Pickup>

<AirportCodeArrival>1606944</AirportCodeArrival>

<AirportCodeDeparture>1602474</AirportCodeDeparture>

<HotelId>0</HotelId>

<PointOfInterestId>0</PointOfInterestId>

<FlightNumber>123456</FlightNumber>

<FlightCompanyName>LATAM Airlines Brasil</FlightCompanyName>

<FlightHours>12</FlightHours>

<FlightMinutes>0</FlightMinutes>

<CityName/>

<AddressComplement/>

<LocationName/>

<LocationAddress/>

<ZipCodeAddress/>

<AddressNumber>0</AddressNumber>

</Pickup>

<DropOff>

<AirportCodeArrival/>

<AirportCodeDeparture/>

<HotelId>11807</HotelId>

<PointOfInterestId>0</PointOfInterestId>

<FlightNumber/>

<FlightCompanyName/>

<FlightHours>0</FlightHours>

<FlightMinutes>0</FlightMinutes>

<CityName/>

<AddressComplement/>

<LocationName/>

<LocationAddress/>

<ZipCodeAddress/>

<AddressNumber>0</AddressNumber>

</DropOff>

</BookingTransfer>

Token

After informing the passenger data and the places of origin and destination, the token that was generated in SearchAvaliability must be informed so that the reservation of the transfer service can be made.

<token>137bd1a2-f101-4a57-b92f-a81ad99e7161</token>

bookingRequest

After sending all the information requested in the request, the booking webservice will return the result of your reservation, where it can be seen in the StatusTurGw tag if it has been confirmed along with other details of your reservation such as cancellation policies, deadline for payment, method of payment among others.

CancelBooking

This method is very simple, you will inform, in addition to the credentials of the customer, the id(ExternalReservationCode) of your reservation made in the previous method.

Cancel Request

in the request it will be necessary to inform only 3 parameters, below you can see which parameters are these.

for more information about the request and response fields of this method, please visit our reference page.

Credential

The credentials tag is the same as required on the SearchAvailability, GetCancellationPolicies and doBooking Request with a UserName and a Password as shown below:

<ws:credential>

<ws1:UserName>?</ws1:UserName>

<ws1:Password>?</ws1:Password>

</ws:credential>

After you enter the credentials of the user, the ServiceId of a reservation that was made with the credentials informed must be passed.

<ws:serviceId>858</ws:serviceId>

Cancel Response

When you inform about the reservation to be canceled, the reservation data will be returned so that it can be checked by the client.