What is the process we need to go through so we can start selling in live environment?
How can we check API connectivity?
If you receive connection, timeout, or SSL/TLS errors while calling the API, you can use the following cURL commands to check whether the API endpoint is reachable.
curl -I https://apitest.biletbank.com/TrevooWS.svc?singleWsdl
curl -I https://api.biletbank.com/TrevooWS.svc?singleWsdl
This command checks if the service is accessible and returns the HTTP status code.
curl -v --tlsv1.3 https://apitest.biletbank.com/TrevooWS.svc?singleWsdl
curl -v --tlsv1.3 https://api.biletbank.com/TrevooWS.svc?singleWsdl
This command shows detailed connection and SSL/TLS information.
Notes: If these commands work, the API is reachable. If they fail, please check your network, firewall, or TLS settings.
Does Biletbank has any search rules?
Login.SearchOnly if your intention is only to retrieve and cache flight information.SearchAndBook if your intention is to proceed with reservation and ticketing.Login.1.SearchOnly Usage
Used for informational or caching purposes only. Do not proceed with booking actions. This parameter should be used when you want to make caching or if you make numerous search for testing purposes.
Login.<trev:ExtraParamList>
<trev:ExtendedData>
<trev:Name>SearchReason</trev:Name>
<trev:Value>SearchOnly</trev:Value>
</trev:ExtendedData>
</trev:ExtraParamList>
Allocate or any booking methods.2.SearchAndBook Usage
Used when the intention is to continue with booking and ticketing.
Login.<trev:ExtraParamList>
<trev:ExtendedData>
<trev:Name>SearchReason</trev:Name>
<trev:Value>SearchAndBook</trev:Value>
</trev:ExtendedData>
</trev:ExtraParamList>
Allocate and subsequent booking methods.Recommended Flow Diagram
(SearchOnly Usage)
Login
|
|---> Airsearch
Parameters:
SearchReason
SearchOnly
|
---> End (Do not proceed to Allocate)
(Need another Airsearch?)
|
---> Start new Login
-----------------------------
(SearchAndBook Usage)
Login
|
|---> Airsearch
Parameters:
SearchReason
SearchAndBook
|
---> Proceed to Allocate, MakePreBooking, etc.
(Need another Airsearch?)
|
---> Start new Login
Important Notes
SearchOnly and SearchAndBook flows must follow the rule of one Airsearch per Login.SearchOnly and SearchAndBook must be executed in separate sessions.SearchReason, will lead to system errors.What is the structure of a MakePrebooking request?
In some cases you may need to add 1 or 2 more fields in the request(like when there are more than 1 ProductId,or when there are some BrandedFareItemId fields) but here is the common sample of MakePrebooking request fields you need to write in the request.
In below code example request, you may see the Value field of IntendedShoppingFileId. You may find this field's guid value inside UpdatePassengers response. You need to map this Value field with The Id field of the ShoppingFile field.
Value(MakePrebooking request) = ShoppingFile.Id(UpdatePassengers response)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:tem="http://tempuri.org/" xmlns:trev="http://schemas.datacontract.org/2004/07/Trevoo.WS.Entities.Base" xmlns:trev1="http://schemas.datacontract.org/2004/07/Trevoo.WS.IO.Shopping" xmlns:trev2="http://schemas.datacontract.org/2004/07/Trevoo.WS.Entities.Transfer" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<soapenv:Header/>
<soapenv:Body>
<tem:MakePrebooking>
<tem:request>
<trev:AuthenticationHeader>
<trev:SessionId>7160861</trev:SessionId>
<trev:SessionToken>3c0f93c3-1edb-43a3-a744-da5c03724a54</trev:SessionToken>
</trev:AuthenticationHeader>
<trev:ExtraParamList>
<trev:ExtendedData>
<trev:Name>IntendedShoppingFileId</trev:Name>
<trev:Value>52c137c2-18ac-4e29-9f86-a814a4f0e37f</trev:Value>
</trev:ExtendedData>
<trev:ExtendedData>
<trev:Name>DoReservation</trev:Name>
<trev:Value>True</trev:Value>
</trev:ExtendedData>
</trev:ExtraParamList>
<trev1:Form>
<trev1:Branded>
<trev1:IO_Air_Branded_Form>
<trev1:BrandedFareItemId>1750d000-0d26-41ce-8adf-a368d12d294a</trev1:BrandedFareItemId>
<trev1:ProductId>08c98a90-ef84-4f2c-9cd8-50401cf4bcf3</trev1:ProductId>
</trev1:IO_Air_Branded_Form>
</trev1:Branded>
<trev1:CIPRequest/>
<trev1:ExtraForm>
<trev1:SelectedServiceFee>0</trev1:SelectedServiceFee>
</trev1:ExtraForm>
<trev1:ProductIds>
<arr:guid>08c98a90-ef84-4f2c-9cd8-50401cf4bcf3</arr:guid>
</trev1:ProductIds>
</trev1:Form>
</tem:request>
</tem:MakePrebooking>
</soapenv:Body>
</soapenv:Envelope>
There are also some things you need to pay attention in Makeprebooking method.First of all please do not forget to add the ExtraParamList fields.When you do not write these fields,the response may return Status = PreBookingReservation. If the Status = PreBookingReservation, then you cannot make any reservation or you cannot call some ancillary methods(you may get error in the response of a method like PokeShoppingFile).You have to move to payment methods after that.
However if you write ExtraParamList fields,then you may have the chance to have Status = Reservation,so that you can either call some ancillary methods(like PokeShoppingFile) and you may choose to make payment later.
Moreover when you write ExtraParamList fields in the request,it is still not guarantee that you may have Status = Reservation.Because before that,you need to make sure that you have either CanBeReserved = true or IsReservable = true fields for the Product/s you want to choose.These fields and their values can be seen in Airsearch method and in other main methods after Airsearch.
For a Turkish domestic flight,how to fill Updatepassengers for the following fields like CitizenNo,PassportNo,etc?
00000000000) if the actual ID number is not available."None"."TR"."TR".<a:CitizenNo>00000000000</a:CitizenNo>
<a:Nationality>TR</a:Nationality>
<a:PassportCountry>TR</a:PassportCountry>
<a:PassportNo>None</a:PassportNo>
00000000000)."None"."BG" for Bulgaria, "NL" for Netherlands)."BG", "NL").<a:CitizenNo>00000000000</a:CitizenNo>
<a:Nationality>BG</a:Nationality>
<a:PassportCountry>BG</a:PassportCountry>
<a:PassportNo>None</a:PassportNo>
I see the currency in TRY(Turkish Lira) only.But we are doing business in another currency.How can we display the prices of the currency we are dealing with to our clients?
You are right that our system shows the prices in Turkish Lira only.However you have the opportunity to convert the Turkish Lira to the desired currency.There are 2 ways to do this:
1) In the response in every method you can see 2 fields:
ExchangeCurrencyCode:This is the 3-letter code of the desired currency.(Example: USD, EUR)
ExchangeCurrencyRate:This is the ratio of the currency.(Example:USD/TRY=38,02)
Please note that these 2 fields will show you only the ratio of the currency that your account was first created. In the beginning of creating your account, if we created the account as USD by your request, then you will see USD conversion rates here.You will not see any other currencies in here.
2) You can get the conversion ratios by calling GetCurrentXRate method inside our web service. We can send a sample of this method if you contact us.Please note that you need to make conversions with the SellingRate field after you call this method.You can see most currencies by using this method.
Does your API support Change/Cancellation/Refund or any other requests for a PNR or Ticket?
For the moment our API does not support such transactions to be made if there is a Booking(If the Status=Booking, if there are tickets). You can use our Biletbank Portal for such requests. You can do these by following these steps:
Firstly in our portal from the top menu,hover over Transactions. In dropdown menu navigate to Sales and Reservations. By filling one or more of the textboxes(Name,Surname,Ticket Number,PNR,etc) in the opening page,find your reservation or ticket. After navigating to reservation or ticket details, you can see the buttons(inside red rectangle as in the image below). Via these buttons you can make requests by contacting our operation team.
Other than that, you can write to our operation team for such requests via this email [email protected]



What to do if we encounter a change in price,flight info,baggage,or any other information?
As Biletbank, we present airline and provider data in real time. When any airline or provider makes a change to their data, we immediately reflect the updated information to you. These changes may occur in any of our methods during your transactions. Unless an error is returned by our system, it is your responsibility to validate the response of each method. Upon detecting a change, it is at your discretion to either accept the updated data and continue with the remaining processes, or reject it and terminate the transaction.
How do we know if there is a price change during the process?
How do we know if there is a change in flight information during the process?
Selecting flights from the RecommendationBox in OW flights:
Entering incorrect FlightId value from the RecommendationBox in the Allocate method for RT flights:
What is the IsReservable parameter?
Error in using the IsCity parameter:
Using the IfRefundablesOnly parameter:
About the GetCurrentXRate method:
About the GetRules method:
About the MarketingAirline and OperatingAirline parameters:
About the use of ModifiedPassenger:
About the CombinablePrice parameter:
Selecting OW flights from FlightOption:
Selecting RT flights from FlightOption:
Airport list:
Airlines list:
About the number of adult passengers:
Entering mileage information:
Are passport details mandatory?
What should be done when “Unexpected provider error during the reservation process” is returned from MakePrebooking?