Partner XML API
For brokers, aggregators and travel partners: search, book, change and cancel S.S. Travels rental cars with OpenTravel (OTA 2015B) XML messages.
Live inventory
Availability and prices come from the same engine as our website, so partners always see the same rental cars and the same totals.
Your own API key
Each partner gets a private key. Bookings are tagged to your account and can only be read, changed or cancelled by you.
Pay at the desk
Partner bookings are confirmed straight away. The customer pays at the rental desk. Commission terms are agreed with each partner.
SOAP or REST? How our XML API works
New to travel APIs? You don’t need to be a developer to follow this. Here is what the two common styles mean, why the travel industry uses XML, and exactly how our API works.
SOAP: a fixed envelope
SOAP is a protocol. Every request is wrapped in a fixed XML “envelope” with a header part for things like security and reliable delivery, and a body part with the actual message. It has long been the standard in large enterprise and airline systems.
REST: plain web requests
REST is an architectural style, not a protocol. It uses ordinary web (HTTP) methods such as GET to read and POST to send, and the data can be XML or JSON. REST with JSON is lighter and works well for simple data.
Why travel uses XML
Travel data is deeply nested: one booking holds the rental car, pick-up and return places and times, the drivers, insurance and extras. The OpenTravel Alliance (OTA) chose XML because it describes this structure clearly, and a strict schema (XSD) lets both sides check a message before it reaches a booking system, so mistakes are caught early. For simple data, JSON is lighter; for complex travel transactions, XML’s structure wins.
What OTA messages are
OTA messages are SOAP-style XML sent over HTTP: each request is one XML document with a known root element (for example OTA_VehAvailRateRQ) and each reply is a matching XML response (OTA_VehAvailRateRS).
How our API works, in four steps
- Send:
POSTyour OTA XML message tohttps://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/ota, or to its own per-message URL (see Messages). Use the headerContent-Type: application/xml. - Identify yourself: put your API key in the
X-API-Keyheader, or in the message’sPOS/RequestorID(see Authentication). - Get XML back: we reply with the matching OTA response in XML: rental cars and prices, a confirmed booking, or clear error codes.
- Already use SOAP? You can wrap your message in a SOAP envelope; we accept it and read the message inside. Our replies are plain OTA XML.
The location list is a simple GET request with no key: https://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/locations.xml.
Endpoint
POSThttps://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/ota
One URL for every message: we read the root element. Header Content-Type: application/xml. A SOAP envelope around the message is also accepted.
Per-message URLs work too, for example https://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/ota/OTA_VehAvailRateRQ or the short forms in the table below.
GEThttps://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/locations.xml public list of locations (no key). Filter with ?city=Hyderabad or ?code=HYD.
GEThttps://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/ota service description.
Authentication
Send your API key in either place:
- HTTP header
X-API-Key: sstp_…(recommended), or - inside the message:
<POS><Source><RequestorID Type="22" ID="YOURCODE" MessagePassword="sstp_…"/></Source></POS>. With this form,IDmust be your partner code.
Keys are issued by S.S. Travels and shown once. We store only a hash; if a key is lost or exposed we issue a new one and the old one stops working at once. Each key is limited to 60 requests per minute unless agreed otherwise.
To become a partner, contact us or apply for a business account.
Messages
| Request | Response | Short URL | What it does |
|---|---|---|---|
| OTA_VehAvailRateRQ | OTA_VehAvailRateRS | /api/partner/ota/avail | Availability and rates for a pick-up location and dates, cheapest first. Same prices as the website. |
| OTA_VehResRQ | OTA_VehResRS | /api/partner/ota/book | Create a booking. Returns our reference (ConfID Type 14) and your reference (ConfID Type 16). |
| OTA_VehRetResRQ | OTA_VehRetResRS | /api/partner/ota/retrieve | Read a booking you made, with status, car, prices and driver. |
| OTA_VehModifyRQ | OTA_VehModifyRS | /api/partner/ota/modify | Change dates, locations, car class, extras, protection or driver details. Repriced and availability checked. |
| OTA_VehCancelRQ | OTA_VehCancelRS | /api/partner/ota/cancel | Cancel a booking (CancelType="Book") or preview the charge (CancelType="Quote"). |
| OTA_VehLocSearchRQ | OTA_VehLocSearchRS | /api/partner/ota/locations | Pick-up and return locations: airports and hotel pick-up points. |
Codes and conventions
Dates and times
XML uses the OpenTravel format YYYY-MM-DDThh:mm:ss in local branch time (India, IST). For example, a pick-up on 10-12-2026 at 10:00 is sent as 2026-12-10T10:00:00. Any time-zone offset you add is ignored, so the time on the voucher is the time you sent.
Locations
Airport codes such as HYD, BLR, DEL, BOM, MAA, GOI, GOX, JAI, COK, plus hotel pick-up points served from their airport. Get the full list from locations.xml.
Car classes (Vehicle/@Code)
MINI, ECON, COMP, SUVC, SUVL, MPV7, VAN, LUX. The ACRISS code is in VehMakeModel/@Code.
Extras and protection
Extras (SpecialEquipPref/@Code): CHILD_SEAT, GPS, ADD_DRIVER, WIFI, ROOF_CARRIER, FASTAG. Protection (CoveragePref/@Code): BASIC (included), CDW, FULL. Promotion codes go in RateQualifier/@PromotionCode.
Prices
All amounts are in INR. RateTotalAmount is the car rental only; EstimatedTotalAmount is the full price including fees, extras, protection, discount and tax. Results are sorted cheapest first.
Booking references
Our reference is ConfID Type="14" (for example SSAB12CD). Send yours in TPA_Extensions/PartnerReference; it is returned as ConfID Type="16" and the same reference cannot be booked twice.
HTTP status codes
| 200 | Success (search, retrieve, modify, cancel) |
| 201 | Booking created |
| 400 | Malformed XML, missing required element, unsupported message |
| 401 | Missing or invalid API key |
| 403 | Partner deactivated, or RequestorID does not match the key |
| 404 | Unknown location or booking reference |
| 409 | Car class no longer available, duplicate partner reference, booking already cancelled or started |
| 413 / 415 | Body over 256 KB / Content-Type is not XML |
| 422 | Business rule: dates in the past, return before pick-up, minimum or maximum rental days, unknown extra |
| 429 | Rate limit reached (Retry-After: 60) |
| 500 | Unexpected error. Retry with the same PartnerReference: duplicates are refused, so retries are safe |
OTA error codes
| Type | Code | Meaning |
|---|---|---|
| 4 | 497 | Authentication: missing or invalid API key |
| 6 | 497 | Authorisation: partner deactivated or RequestorID mismatch |
| 7 | 448 | Protocol: malformed XML, DOCTYPE not allowed, wrong Content-Type |
| 10 | 321 | Required field missing |
| 3 | 15 | Invalid or past date, return before pick-up, rental length |
| 3 | 361 | Unknown or inactive location |
| 3 | 182 | Unknown vehicle class |
| 3 | 322 | No availability |
| 3 | 320 | Unknown extra or protection plan |
| 3 | 95 | Booking already cancelled, started, or reference already used |
| 3 | 97 | Booking reference not found for your account |
| 12 | 448 | Rate limit or internal error |
Errors come back as the matching response element (for example OTA_VehResRS) with an <Errors> block. Non-blocking notes, such as an expired promotion code, come in <Warnings> next to <Success/>.
Check your request logs
See your own recent calls (time in IST, message, HTTP status, error, duration and booking reference) from the command line. Your API key only ever shows your requests. Up to 30 log requests per minute.
GEThttps://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/logs?format=text filters: from and to (DD-MM-YYYY, IST days, default last 7 days), errors=1, limit (default 50, max 1000), format=text or xml.
GEThttps://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/logs/<id> the stored request and response XML for one call (the ID column). Stored for 30 days, with API keys and drivers' personal details (names, email, phone, address, date of birth, licence) masked.
curl (macOS, Linux, Windows 10+)
curl -H "X-API-Key: sstp_…" "https://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/logs?format=text&errors=1&from=01-11-2026&to=07-11-2026" curl -H "X-API-Key: sstp_…" "https://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/logs/<id>"
PowerShell
$h = @{ "X-API-Key" = "sstp_…" }
(Invoke-WebRequest -UseBasicParsing -Headers $h `
"https://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/logs?format=text&errors=1").Content
(Invoke-WebRequest -UseBasicParsing -Headers $h `
"https://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/logs/<id>").ContentReady-made scripts: partner-logs.sh (bash) and partner-logs.ps1 (PowerShell). Set SST_API_KEY first, then run for example ./partner-logs.sh --errors or .\partner-logs.ps1 -Errors.
Try it
curl -X POST https://client18-sstravels-hyderabad-india.panyacomputech.com/api/partner/ota \
-H "Content-Type: application/xml" \
-H "X-API-Key: $SST_API_KEY" \
--data-binary @OTA_VehAvailRateRQ.xmlSample messages
Responses below are real responses from the API with test data. Schema: ss-travels-ota-2015B.xsd (profile of the OpenTravel 2015B vehicle messages).
<?xml version="1.0" encoding="UTF-8"?>
<OTA_VehAvailRateRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" EchoToken="avail-001" PrimaryLangID="en">
<POS>
<Source>
<RequestorID Type="22" ID="YOURCODE" MessagePassword="YOUR_API_KEY"/>
</Source>
</POS>
<VehAvailRQCore Status="Available">
<VehRentalCore PickUpDateTime="2026-12-10T10:00:00" ReturnDateTime="2026-12-13T10:00:00">
<PickUpLocation LocationCode="HYD"/>
<ReturnLocation LocationCode="HYD"/>
</VehRentalCore>
<!-- Optional: only these classes. Omit VehPrefs to get every available class. -->
<!-- <VehPrefs><VehPref Code="ECON"/><VehPref Code="SUVC"/></VehPrefs> -->
<!-- Optional promotion code, priced exactly as on the website -->
<!-- <RateQualifier PromotionCode="SS10"/> -->
<DriverType Age="30"/>
</VehAvailRQCore>
<VehAvailRQInfo>
<!-- Optional protection plan: BASIC (default), CDW or FULL -->
<CoveragePrefs><CoveragePref Code="BASIC"/></CoveragePrefs>
</VehAvailRQInfo>
</OTA_VehAvailRateRQ>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_VehAvailRateRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2026-10-29T06:55:32Z" EchoToken="avail" Target="Production" PrimaryLangID="en">
<Success/>
<VehAvailRSCore>
<VehRentalCore PickUpDateTime="2026-12-10T10:00:00" ReturnDateTime="2026-12-13T10:00:00">
<PickUpLocation LocationCode="HYD" CodeContext="SSTravels"/>
<ReturnLocation LocationCode="HYD" CodeContext="SSTravels"/>
</VehRentalCore>
<VehVendorAvails>
<VehVendorAvail>
<Vendor Code="SST" CompanyShortName="S.S. Travels"/>
<VehAvails>
<VehAvail>
<VehAvailCore Status="Available" RPH="1">
<Vehicle PassengerQuantity="4" BaggageQuantity="1" AirConditionInd="true" TransmissionType="Manual" FuelType="Petrol" DriveType="Unspecified" Code="MINI" CodeContext="SSTravels">
<VehType VehicleCategory="1" DoorCount="5"/>
<VehClass Size="1"/>
<VehMakeModel Name="Renault Kwid or similar" Code="MBMR"/>
<PictureURL>https://client18-sstravels-hyderabad-india.panyacomputech.com/cars/mini.svg</PictureURL>
</Vehicle>
<RentalRate>
<RateDistance Unlimited="true" DistUnitName="Km" VehiclePeriodUnitName="RentalPeriod"/>
<VehicleCharges>
<VehicleCharge Purpose="1" Description="Car rental" Amount="4200" CurrencyCode="INR" TaxInclusive="false" GuaranteedInd="true" IncludedInRate="true">
<Calculation UnitCharge="1400" UnitName="Day" Quantity="3"/>
</VehicleCharge>
</VehicleCharges>
<RateQualifier RateQualifier="SSWEB" RateCategory="3"/>
</RentalRate>
<TotalCharge RateTotalAmount="4200" EstimatedTotalAmount="5251" CurrencyCode="INR"/>
<Fees>
<Fee Purpose="5" Code="AIRPORT_FEE" Description="Airport service fee" Amount="250" CurrencyCode="INR" TaxInclusive="false" IncludedInRate="false"/>
<Fee Purpose="7" Code="TAX" Description="Tax 18%" Amount="801" CurrencyCode="INR" IncludedInRate="false"/>
</Fees>
<Reference Type="16" ID="own:MINI:HYD" ID_Context="SSTravels"/>
<TPA_Extensions>
<Availability Count="1"/>
<Deposit Amount="5000" CurrencyCode="INR"/>
<FreeCancellation Hours="48"/>
</TPA_Extensions>
</VehAvailCore>
<VehAvailInfo>
<PaymentRules>
<PaymentRule RuleType="2" Amount="5251" CurrencyCode="INR">Pay at the rental desk</PaymentRule>
</PaymentRules>
</VehAvailInfo>
</VehAvail>
<!-- … more VehAvail elements, cheapest first … -->
</VehAvails>
<Info>
<LocationDetails Code="HYD" Name="Rajiv Gandhi International Airport (HYD)" CodeContext="SSTravels" AtAirport="true">
<Address>
<AddressLine>Rajiv Gandhi International Airport, Shamshabad, Hyderabad 500409</AddressLine>
<CityName>Hyderabad</CityName>
<CountryName Code="IN">India</CountryName>
</Address>
<Position Latitude="17.2403" Longitude="78.4294"/>
<AdditionalInfo>
<OperationSchedules>
<OperationSchedule>
<OperationTimes>
<OperationTime Text="mon_fri: 00:00-23:59"/>
<OperationTime Text="sat: 00:00-23:59"/>
<OperationTime Text="sun: 00:00-23:59"/>
</OperationTimes>
</OperationSchedule>
</OperationSchedules>
</AdditionalInfo>
</LocationDetails>
</Info>
</VehVendorAvail>
</VehVendorAvails>
</VehAvailRSCore>
</OTA_VehAvailRateRS>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_VehResRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" EchoToken="book-001">
<POS>
<Source>
<RequestorID Type="22" ID="YOURCODE" MessagePassword="YOUR_API_KEY"/>
</Source>
</POS>
<VehResRQCore Status="Available">
<VehRentalCore PickUpDateTime="2026-12-10T10:00:00" ReturnDateTime="2026-12-13T10:00:00">
<PickUpLocation LocationCode="HYD"/>
<ReturnLocation LocationCode="HYD"/>
</VehRentalCore>
<Customer>
<Primary BirthDate="1990-05-14">
<PersonName>
<GivenName>Ravi</GivenName>
<Surname>Kumar</Surname>
</PersonName>
<Telephone PhoneTechType="1" PhoneNumber="+919876543210"/>
<Email>ravi.kumar@example.com</Email>
<Address>
<AddressLine>12 MG Road</AddressLine>
<CityName>Hyderabad</CityName>
<CountryName Code="IN">India</CountryName>
</Address>
<!-- Driving licence: DocType 4 -->
<Document DocType="4" DocID="TS0920190012345" DocIssueCountry="IN" ExpireDate="2031-05-13"/>
</Primary>
</Customer>
<!-- Vehicle class code from the availability response (Vehicle/@Code) -->
<VehPref Code="ECON" CodeContext="SSTravels"/>
<DriverType Age="35"/>
<!-- Optional extras: CHILD_SEAT, GPS, ADD_DRIVER, WIFI, ROOF_CARRIER, FASTAG -->
<SpecialEquipPrefs>
<SpecialEquipPref Code="GPS" Quantity="1"/>
</SpecialEquipPrefs>
<!-- <RateQualifier PromotionCode="SS10"/> -->
</VehResRQCore>
<VehResRQInfo>
<SpecialReqPref>Flight AI 544 lands 09:30</SpecialReqPref>
<CoveragePrefs><CoveragePref Code="CDW"/></CoveragePrefs>
<!-- Optional: the offer reference returned by OTA_VehAvailRateRS -->
<Reference Type="16" ID="own:ECON:HYD"/>
</VehResRQInfo>
<TPA_Extensions>
<!-- Your own booking reference; returned as ConfID Type 16 and blocked from being booked twice -->
<PartnerReference>BRK-100245</PartnerReference>
</TPA_Extensions>
</OTA_VehResRQ>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_VehResRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2026-10-29T06:55:32Z" EchoToken="book" Target="Production" PrimaryLangID="en">
<Success/>
<VehResRSCore ReservationStatus="Reserved">
<VehReservation CreateDateTime="2026-10-29T06:55:32" LastModifyDateTime="2026-10-29T06:55:32" ReservationStatus="Reserved">
<Customer>
<Primary BirthDate="1990-05-14">
<PersonName>
<GivenName>Ravi</GivenName>
<Surname>Kumar</Surname>
</PersonName>
<Telephone PhoneNumber="+919876543210" PhoneTechType="1"/>
<Email>ravi.kumar@example.com</Email>
<Document DocID="TS0920190012345" DocType="4" ExpireDate="2031-05-13" DocIssueCountry="IN"/>
</Primary>
</Customer>
<VehSegmentCore>
<ConfID Type="14" ID="SSAB12CD" ID_Context="SSTravels"/>
<ConfID Type="16" ID="BRK-100245" ID_Context="Partner"/>
<Vendor Code="SST">S.S. Travels</Vendor>
<VehRentalCore PickUpDateTime="2026-12-10T10:00:00" ReturnDateTime="2026-12-13T10:00:00">
<PickUpLocation LocationCode="HYD" CodeContext="SSTravels"/>
<ReturnLocation LocationCode="HYD" CodeContext="SSTravels"/>
</VehRentalCore>
<Vehicle PassengerQuantity="5" BaggageQuantity="2" AirConditionInd="true" TransmissionType="Manual" FuelType="Petrol" DriveType="Unspecified" Code="ECON" CodeContext="SSTravels">
<VehType VehicleCategory="1" DoorCount="5"/>
<VehClass Size="3"/>
<VehMakeModel Name="Maruti Suzuki Swift or similar" Code="EDMR"/>
<PictureURL>https://client18-sstravels-hyderabad-india.panyacomputech.com/cars/econ.svg</PictureURL>
</Vehicle>
<RentalRate>
<RateDistance Unlimited="true" DistUnitName="Km" VehiclePeriodUnitName="RentalPeriod"/>
<VehicleCharges>
<VehicleCharge Purpose="1" Description="Car rental" Amount="6150" CurrencyCode="INR" TaxInclusive="false" GuaranteedInd="true" IncludedInRate="true">
<Calculation UnitCharge="2050" UnitName="Day" Quantity="3"/>
</VehicleCharge>
</VehicleCharges>
<RateQualifier RateQualifier="SSWEB" RateCategory="3"/>
</RentalRate>
<PricedEquips>
<PricedEquip>
<Equipment EquipType="0" Code="GPS" Quantity="1">
<Description>GPS navigation</Description>
</Equipment>
<Charge Amount="600" CurrencyCode="INR" IncludedInRate="false" TaxInclusive="false">
<Calculation UnitCharge="200" Quantity="3"/>
</Charge>
</PricedEquip>
</PricedEquips>
<Fees>
<Fee Purpose="5" Code="AIRPORT_FEE" Description="Airport service fee" Amount="250" CurrencyCode="INR" TaxInclusive="false" IncludedInRate="false"/>
<Fee Purpose="7" Code="TAX" Description="Tax 18%" Amount="1449" CurrencyCode="INR" IncludedInRate="false"/>
</Fees>
<TotalCharge RateTotalAmount="6150" EstimatedTotalAmount="9499" CurrencyCode="INR"/>
</VehSegmentCore>
<VehSegmentInfo>
<PaymentRules>
<PaymentRule RuleType="2" Amount="9499" CurrencyCode="INR">Pay at the rental desk</PaymentRule>
</PaymentRules>
<PricedCoverages>
<PricedCoverage>
<Coverage CoverageType="7" Code="CDW">
<Details CoverageTextType="Description">Standard cover (CDW + theft)</Details>
</Coverage>
<Charge Amount="1050" CurrencyCode="INR" IncludedInRate="false" TaxInclusive="false">
<Calculation UnitCharge="350" UnitName="Day" Quantity="3"/>
</Charge>
</PricedCoverage>
</PricedCoverages>
<LocationDetails Code="HYD" Name="Rajiv Gandhi International Airport (HYD)" CodeContext="SSTravels" AtAirport="true">
<Address>
<AddressLine>Rajiv Gandhi International Airport, Shamshabad, Hyderabad 500409</AddressLine>
<CityName>Hyderabad</CityName>
<CountryName Code="IN">India</CountryName>
</Address>
<Position Latitude="17.2403" Longitude="78.4294"/>
<AdditionalInfo>
<OperationSchedules>
<OperationSchedule>
<OperationTimes>
<OperationTime Text="mon_fri: 00:00-23:59"/>
<OperationTime Text="sat: 00:00-23:59"/>
<OperationTime Text="sun: 00:00-23:59"/>
</OperationTimes>
</OperationSchedule>
</OperationSchedules>
</AdditionalInfo>
</LocationDetails>
</VehSegmentInfo>
</VehReservation>
</VehResRSCore>
</OTA_VehResRS>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_VehRetResRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" EchoToken="ret-001">
<POS>
<Source>
<RequestorID Type="22" ID="YOURCODE" MessagePassword="YOUR_API_KEY"/>
</Source>
</POS>
<VehRetResRQCore>
<UniqueID Type="14" ID="SSAB12CD"/>
<!-- Optional extra check -->
<PersonName><Surname>Kumar</Surname></PersonName>
</VehRetResRQCore>
</OTA_VehRetResRQ>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_VehModifyRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" EchoToken="mod-001">
<POS>
<Source>
<RequestorID Type="22" ID="YOURCODE" MessagePassword="YOUR_API_KEY"/>
</Source>
</POS>
<VehModifyRQCore Status="Available" ModifyType="Modify">
<UniqueID Type="14" ID="SSAB12CD"/>
<!-- Send only what changes. Dates/locations: -->
<VehRentalCore PickUpDateTime="2026-12-10T10:00:00" ReturnDateTime="2026-12-15T10:00:00">
<PickUpLocation LocationCode="HYD"/>
<ReturnLocation LocationCode="HYD"/>
</VehRentalCore>
<!-- Change class: <VehPref Code="COMP"/> -->
<!-- Replace extras (send an empty SpecialEquipPrefs to remove all): -->
<SpecialEquipPrefs>
<SpecialEquipPref Code="GPS" Quantity="1"/>
<SpecialEquipPref Code="CHILD_SEAT" Quantity="1"/>
</SpecialEquipPrefs>
<!-- Update driver details: -->
<Customer><Primary><Telephone PhoneNumber="+919800000000"/></Primary></Customer>
</VehModifyRQCore>
</OTA_VehModifyRQ>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_VehModifyRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2026-10-29T06:55:32Z" EchoToken="mod" Target="Production" PrimaryLangID="en">
<Success/>
<VehModifyRSCore ModifyStatus="Modified">
<VehReservation CreateDateTime="2026-10-29T06:55:32" LastModifyDateTime="2026-10-29T06:55:32" ReservationStatus="Reserved">
<Customer>
<Primary BirthDate="1990-05-14">
<PersonName>
<GivenName>Ravi</GivenName>
<Surname>Kumar</Surname>
</PersonName>
<Telephone PhoneNumber="+919800000000" PhoneTechType="1"/>
<Email>ravi.kumar@example.com</Email>
<Document DocID="TS0920190012345" DocType="4" ExpireDate="2031-05-13" DocIssueCountry="IN"/>
</Primary>
</Customer>
<VehSegmentCore>
<ConfID Type="14" ID="SSAB12CD" ID_Context="SSTravels"/>
<ConfID Type="16" ID="BRK-100245" ID_Context="Partner"/>
<Vendor Code="SST">S.S. Travels</Vendor>
<VehRentalCore PickUpDateTime="2026-12-10T10:00:00" ReturnDateTime="2026-12-15T10:00:00">
<PickUpLocation LocationCode="HYD" CodeContext="SSTravels"/>
<ReturnLocation LocationCode="HYD" CodeContext="SSTravels"/>
</VehRentalCore>
<Vehicle PassengerQuantity="5" BaggageQuantity="2" AirConditionInd="true" TransmissionType="Manual" FuelType="Petrol" DriveType="Unspecified" Code="ECON" CodeContext="SSTravels">
<VehType VehicleCategory="1" DoorCount="5"/>
<VehClass Size="3"/>
<VehMakeModel Name="Maruti Suzuki Swift or similar" Code="EDMR"/>
<PictureURL>https://client18-sstravels-hyderabad-india.panyacomputech.com/cars/econ.svg</PictureURL>
</Vehicle>
<RentalRate>
<RateDistance Unlimited="true" DistUnitName="Km" VehiclePeriodUnitName="RentalPeriod"/>
<VehicleCharges>
<VehicleCharge Purpose="1" Description="Car rental" Amount="10250" CurrencyCode="INR" TaxInclusive="false" GuaranteedInd="true" IncludedInRate="true">
<Calculation UnitCharge="2050" UnitName="Day" Quantity="5"/>
</VehicleCharge>
</VehicleCharges>
<RateQualifier RateQualifier="SSWEB" RateCategory="3"/>
</RentalRate>
<PricedEquips>
<PricedEquip>
<Equipment EquipType="0" Code="GPS" Quantity="1">
<Description>GPS navigation</Description>
</Equipment>
<Charge Amount="1000" CurrencyCode="INR" IncludedInRate="false" TaxInclusive="false">
<Calculation UnitCharge="200" Quantity="5"/>
</Charge>
</PricedEquip>
<PricedEquip>
<Equipment EquipType="0" Code="CHILD_SEAT" Quantity="1">
<Description>Child seat</Description>
</Equipment>
<Charge Amount="1250" CurrencyCode="INR" IncludedInRate="false" TaxInclusive="false">
<Calculation UnitCharge="250" Quantity="5"/>
</Charge>
</PricedEquip>
</PricedEquips>
<Fees>
<Fee Purpose="5" Code="AIRPORT_FEE" Description="Airport service fee" Amount="250" CurrencyCode="INR" TaxInclusive="false" IncludedInRate="false"/>
<Fee Purpose="7" Code="TAX" Description="Tax 18%" Amount="2610" CurrencyCode="INR" IncludedInRate="false"/>
</Fees>
<TotalCharge RateTotalAmount="10250" EstimatedTotalAmount="17110" CurrencyCode="INR"/>
</VehSegmentCore>
<VehSegmentInfo>
<PaymentRules>
<PaymentRule RuleType="2" Amount="17110" CurrencyCode="INR">Pay at the rental desk</PaymentRule>
</PaymentRules>
<PricedCoverages>
<PricedCoverage>
<Coverage CoverageType="7" Code="CDW">
<Details CoverageTextType="Description">Standard cover (CDW + theft)</Details>
</Coverage>
<Charge Amount="1750" CurrencyCode="INR" IncludedInRate="false" TaxInclusive="false">
<Calculation UnitCharge="350" UnitName="Day" Quantity="5"/>
</Charge>
</PricedCoverage>
</PricedCoverages>
<LocationDetails Code="HYD" Name="Rajiv Gandhi International Airport (HYD)" CodeContext="SSTravels" AtAirport="true">
<Address>
<AddressLine>Rajiv Gandhi International Airport, Shamshabad, Hyderabad 500409</AddressLine>
<CityName>Hyderabad</CityName>
<CountryName Code="IN">India</CountryName>
</Address>
<Position Latitude="17.2403" Longitude="78.4294"/>
<AdditionalInfo>
<OperationSchedules>
<OperationSchedule>
<OperationTimes>
<OperationTime Text="mon_fri: 00:00-23:59"/>
<OperationTime Text="sat: 00:00-23:59"/>
<OperationTime Text="sun: 00:00-23:59"/>
</OperationTimes>
</OperationSchedule>
</OperationSchedules>
</AdditionalInfo>
</LocationDetails>
</VehSegmentInfo>
</VehReservation>
</VehModifyRSCore>
</OTA_VehModifyRS>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_VehCancelRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" EchoToken="cxl-001">
<POS>
<Source>
<RequestorID Type="22" ID="YOURCODE" MessagePassword="YOUR_API_KEY"/>
</Source>
</POS>
<!-- CancelType="Book" cancels. CancelType="Quote" only shows the cancellation charge. -->
<VehCancelRQCore CancelType="Book">
<UniqueID Type="14" ID="SSAB12CD"/>
<PersonName><Surname>Kumar</Surname></PersonName>
</VehCancelRQCore>
</OTA_VehCancelRQ>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_VehCancelRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2026-10-29T06:55:32Z" EchoToken="cxl" Target="Production" PrimaryLangID="en">
<Success/>
<VehCancelRSCore CancelStatus="Cancelled">
<UniqueID Type="14" ID="SSAB12CD"/>
<CancelRules>
<CancelRule Amount="0" CurrencyCode="INR">Free cancellation: no charge</CancelRule>
</CancelRules>
</VehCancelRSCore>
<VehCancelRSInfo>
<VehReservation CreateDateTime="2026-10-29T06:55:32" LastModifyDateTime="2026-10-29T06:55:32" ReservationStatus="Cancelled">
<Customer>
<Primary BirthDate="1990-05-14">
<PersonName>
<GivenName>Ravi</GivenName>
<Surname>Kumar</Surname>
</PersonName>
<Telephone PhoneNumber="+919800000000" PhoneTechType="1"/>
<Email>ravi.kumar@example.com</Email>
<Document DocID="TS0920190012345" DocType="4" ExpireDate="2031-05-13" DocIssueCountry="IN"/>
</Primary>
</Customer>
<VehSegmentCore>
<ConfID Type="14" ID="SSAB12CD" ID_Context="SSTravels"/>
<ConfID Type="16" ID="BRK-100245" ID_Context="Partner"/>
<Vendor Code="SST">S.S. Travels</Vendor>
<VehRentalCore PickUpDateTime="2026-12-10T10:00:00" ReturnDateTime="2026-12-15T10:00:00">
<PickUpLocation LocationCode="HYD" CodeContext="SSTravels"/>
<ReturnLocation LocationCode="HYD" CodeContext="SSTravels"/>
</VehRentalCore>
<Vehicle PassengerQuantity="5" BaggageQuantity="2" AirConditionInd="true" TransmissionType="Manual" FuelType="Petrol" DriveType="Unspecified" Code="ECON" CodeContext="SSTravels">
<VehType VehicleCategory="1" DoorCount="5"/>
<VehClass Size="3"/>
<VehMakeModel Name="Maruti Suzuki Swift or similar" Code="EDMR"/>
<PictureURL>https://client18-sstravels-hyderabad-india.panyacomputech.com/cars/econ.svg</PictureURL>
</Vehicle>
<RentalRate>
<RateDistance Unlimited="true" DistUnitName="Km" VehiclePeriodUnitName="RentalPeriod"/>
<VehicleCharges>
<VehicleCharge Purpose="1" Description="Car rental" Amount="10250" CurrencyCode="INR" TaxInclusive="false" GuaranteedInd="true" IncludedInRate="true">
<Calculation UnitCharge="2050" UnitName="Day" Quantity="5"/>
</VehicleCharge>
</VehicleCharges>
<RateQualifier RateQualifier="SSWEB" RateCategory="3"/>
</RentalRate>
<PricedEquips>
<PricedEquip>
<Equipment EquipType="0" Code="GPS" Quantity="1">
<Description>GPS navigation</Description>
</Equipment>
<Charge Amount="1000" CurrencyCode="INR" IncludedInRate="false" TaxInclusive="false">
<Calculation UnitCharge="200" Quantity="5"/>
</Charge>
</PricedEquip>
<PricedEquip>
<Equipment EquipType="0" Code="CHILD_SEAT" Quantity="1">
<Description>Child seat</Description>
</Equipment>
<Charge Amount="1250" CurrencyCode="INR" IncludedInRate="false" TaxInclusive="false">
<Calculation UnitCharge="250" Quantity="5"/>
</Charge>
</PricedEquip>
</PricedEquips>
<Fees>
<Fee Purpose="5" Code="AIRPORT_FEE" Description="Airport service fee" Amount="250" CurrencyCode="INR" TaxInclusive="false" IncludedInRate="false"/>
<Fee Purpose="7" Code="TAX" Description="Tax 18%" Amount="2610" CurrencyCode="INR" IncludedInRate="false"/>
</Fees>
<TotalCharge RateTotalAmount="10250" EstimatedTotalAmount="17110" CurrencyCode="INR"/>
</VehSegmentCore>
<VehSegmentInfo>
<PaymentRules>
<PaymentRule RuleType="2" Amount="17110" CurrencyCode="INR">Pay at the rental desk</PaymentRule>
</PaymentRules>
<PricedCoverages>
<PricedCoverage>
<Coverage CoverageType="7" Code="CDW">
<Details CoverageTextType="Description">Standard cover (CDW + theft)</Details>
</Coverage>
<Charge Amount="1750" CurrencyCode="INR" IncludedInRate="false" TaxInclusive="false">
<Calculation UnitCharge="350" UnitName="Day" Quantity="5"/>
</Charge>
</PricedCoverage>
</PricedCoverages>
<LocationDetails Code="HYD" Name="Rajiv Gandhi International Airport (HYD)" CodeContext="SSTravels" AtAirport="true">
<Address>
<AddressLine>Rajiv Gandhi International Airport, Shamshabad, Hyderabad 500409</AddressLine>
<CityName>Hyderabad</CityName>
<CountryName Code="IN">India</CountryName>
</Address>
<Position Latitude="17.2403" Longitude="78.4294"/>
<AdditionalInfo>
<OperationSchedules>
<OperationSchedule>
<OperationTimes>
<OperationTime Text="mon_fri: 00:00-23:59"/>
<OperationTime Text="sat: 00:00-23:59"/>
<OperationTime Text="sun: 00:00-23:59"/>
</OperationTimes>
</OperationSchedule>
</OperationSchedules>
</AdditionalInfo>
</LocationDetails>
</VehSegmentInfo>
</VehReservation>
</VehCancelRSInfo>
</OTA_VehCancelRS>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_VehLocSearchRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" EchoToken="loc-001">
<POS>
<Source>
<RequestorID Type="22" ID="YOURCODE" MessagePassword="YOUR_API_KEY"/>
</Source>
</POS>
<!-- Optional filter by city or location code. Omit VehLocSearchCriterion for all locations. -->
<VehLocSearchCriterion>
<Address><CityName>Hyderabad</CityName></Address>
</VehLocSearchCriterion>
<Vendor Code="SST"/>
</OTA_VehLocSearchRQ>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ErrorRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2026-10-29T06:55:32Z" Target="Production" PrimaryLangID="en">
<Errors>
<Error Type="7" Code="448" ShortText="Malformed XML: Expected closing tag 'VehAvailRQCore' (opened in ">Malformed XML: Expected closing tag 'VehAvailRQCore' (opened in line 1, col 21) instead of closing tag 'OTA_VehAvailRateRQ'. (line 1, column 37)</Error>
</Errors>
</OTA_ErrorRS>
