SMARTicket V5 (ST5) CTS SOAP API Specification

Version: 1.5.0

Last Modified: 21 Apr 2025

Status: Beta

Introduction

The CTS SOAP API is exposed at /v3_ws_cts.svc. It includes the shared ticketing operations plus CTS-specific response formats and additional operations for destination lookup, trip lookup, ticket rescheduling, and reschedule seat confirmation.

Base URL

Demo URL: https://test-api.smarticket.my/{tenant}/v3_ws_cts.svc
Live URL: https://api.smarticket.my/{tenant}/v3_ws_cts.svc

Communication Requirements

Item Description
Protocol SOAP over HTTP
Binding BasicHttpBinding
Message Format XML
Contract Name TicketService
Header Value
Content-Type text/xml; charset=utf-8
Signature MD5(Operator Code + Date + Secret Key)
WSDL /v3_ws_cts.svc?wsdl

Authentication Signature Format:

MD5(Operator Code + Request Date + Secret Key)

current_date is used for queryDestination, while depart_date is used for the other date-based operations.

Supported Operations

Operation Available on CTS Remarks
querySeatYesCTS-specific response includes bus layout and seat coordinates
seatBlockYesBlocks selected seats and returns a block identifier
seatConfirmYesCTS-specific response groups tickets by trip
seatCancelYesCancels seats or tickets using cancellation detail items
queryTicketYesReturns passenger, trip, fare, and seat details for one ticket
collectTicketYesMarks a ticket as collected
transReleaseYesReleases a queue transaction by queue id
queryManifestYesReturns passenger totals grouped by destination
queryDestinationYesReturns available counters and supported origin-destination pairs for the operator
queryTripYesReturns available trips, seat counts, and fare details for a selected route and date
queryRescheduleTicketYesValidates tickets for rescheduling and returns fee and eligibility details
rescheduleSeatConfirmYesCreates the replacement booking and returns the new trip and ticket mapping

CTS-Specific API Specification

SOAP querySeat

Query seat availability with CTS layout details

Returns standard seat availability plus bus layout, deck information, seat coordinates, and price per seat type.

Request Parameters

NameRequiredDescription
signature, operator_codeYAuthentication fields
route_id, trip_no, depart_dateYTrip identification
counter_from, counter_toYTravel counters
bus_typeYBus type
origin_trip_dateConditionalRequired for specific sales channels

Response Parameters

NameDescription
querySeat_status@code, msg, depart_time, coach_categoryStatus and trip header
busLayout/deck@deck_noDeck number
busLayout/deck@total_col, total_rowTotal layout dimensions
details/detail@seat_noSeat number
details/detail@col, row, deck_noSeat coordinates and deck
details/detail@availableSeat availability
details/detail@price_adult, price_child, price_senior, price_othersSeat fares

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <querySeat signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <route_id>SHAHGM01</route_id>
      <trip_no>3F</trip_no>
      <depart_date>08/05/2025</depart_date>
      <counter_from>SHA</counter_from>
      <counter_to>HGM</counter_to>
      <bus_type>EXP</bus_type>
      <origin_trip_date>08/05/2025</origin_trip_date>
    </querySeat>
  </soapenv:Body>
</soapenv:Envelope>

Sample Response

<querySeat_status code="200" msg="Success" depart_time="103500" coach_category="SVIP">
  <busLayout>
    <deck deck_no="1" total_col="5" total_row="10" />
    <deck deck_no="2" total_col="5" total_row="10" />
  </busLayout>
  <details>
    <detail seat_no="1A" col="1" row="1" deck_no="1" available="Y" price_adult="37.30" price_child="37.30" price_senior="37.30" price_others="37.30" />
  </details>
</querySeat_status>

SOAP seatConfirm

Confirm seats with CTS trip response

Confirms blocked seats and returns a CTS response grouped by trip and ticket.

Request Parameters

NameRequiredDescription
signatureYMD5 signature
operator_code, route_id, trip_no, depart_dateYTrip identification
counter_from, counter_toYTravel counters
block_id, queue_idYBooking references
confirm_detailsYPassenger and seat detail list
origin_trip_date, depart_timeConditionalAdditional trip fields

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <seatConfirm signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <route_id>SHAHGM01</route_id>
      <trip_no>3F</trip_no>
      <depart_date>08/05/2025</depart_date>
      <counter_from>SHA</counter_from>
      <counter_to>HGM</counter_to>
      <block_id>TSL25050000080</block_id>
      <queue_id>283941</queue_id>
      <confirm_details>
        <details>
          <detail seat_no="1A" seat_type="A" selling_price="38.00" cust_name="Ahmad" contact="01234456" ic="900101015555" email="[email protected]" />
        </details>
      </confirm_details>
      <origin_trip_date>08/05/2025</origin_trip_date>
      <depart_time>103500</depart_time>
    </seatConfirm>
  </soapenv:Body>
</soapenv:Envelope>

Response Parameters

NameDescription
seatConfirm_status@code, msgStatus information
trip@route_id, trip_no, date, boarding_codeConfirmed trip information
trip@coach_categoryCoach category
ticket@ticket_noGenerated ticket number
ticket@seat_noConfirmed seat number

SOAP queryDestination

Query counters and destinations

Request Parameters

NameRequiredDescription
signatureYMD5 signature using current_date
operator_codeYOperator code
current_dateYCurrent date

Response Parameters

NameDescription
queryDestination_status@code, msgStatus information
counters/counter@codeCounter code
counters/counter@descCounter description
counters/counter@landmark, address, latitude, longitudeCounter location details
destinations/destination@from, toOrigin and destination pairing

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <queryDestination signature="md5(operator_code + current_date + secret_key)">
      <operator_code>BAYU</operator_code>
      <current_date>08/05/2025</current_date>
    </queryDestination>
  </soapenv:Body>
</soapenv:Envelope>

Sample Response

<queryDestination_status code="200" msg="Success">
  <counters>
    <counter code="SHA" desc="Shah Alam" landmark="Terminal" address="Section 13" latitude="3.07" longitude="101.51" />
  </counters>
  <destinations>
    <destination from="SHA" to="HGM" />
  </destinations>
</queryDestination_status>

SOAP queryTrip

Query available trips

Request Parameters

NameRequiredDescription
signatureYMD5 signature
operator_codeYOperator code
counter_fromYOrigin counter
counter_toYDestination counter
depart_dateYDeparture date

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <queryTrip signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <counter_from>SHA</counter_from>
      <counter_to>HGM</counter_to>
      <depart_date>08/05/2025</depart_date>
    </queryTrip>
  </soapenv:Body>
</soapenv:Envelope>

Response Parameters

NameDescription
queryTrip_status@code, msgStatus information
trip@route_idRoute id
trip@origin_trip_dateOriginal trip date
trip@trip_time, trip_no, bus_typeTrip schedule details
trip@seat_availableAvailable seat count
trip@coach_categoryCoach category
price_details/price@seat_type, seat_priceFare by seat type

SOAP queryRescheduleTicket

Validate tickets for rescheduling

Request Parameters

NameRequiredDescription
signatureYMD5 signature
operator_codeYOperator code
depart_dateYDeparture date
reschedule_tickets/ticket@ticket_noYTicket number list to validate

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <queryRescheduleTicket signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <depart_date>08/05/2025</depart_date>
      <reschedule_tickets>
        <ticket ticket_no="BYU25050000039" />
        <ticket ticket_no="BYU25050000040" />
      </reschedule_tickets>
    </queryRescheduleTicket>
  </soapenv:Body>
</soapenv:Envelope>

Response Parameters

NameDescription
queryRescheduleTicket_status@code, msgStatus information
queryRescheduleTicket_status@reschedule_feeApplicable reschedule fee
ticket_details@tickpInternal ticket pointer
ticket_details@ticket_noTicket number
ticket_details@status, status_textReschedule eligibility status
ticket_details@price, is_collectedFare and collection state

SOAP rescheduleSeatConfirm

Confirm a ticket reschedule

Creates the replacement booking for tickets previously validated through queryRescheduleTicket.

The CTS contract operation name is rescheduleSeatConfirm, while the request body element remains rescheduleConfirm.

Request Parameters

NameRequiredDescription
signatureYMD5 signature
operator_code, route_id, trip_no, depart_dateYTrip identification
counter_from, counter_toYTravel counters
block_id, queue_idYBooking references
origin_trip_date, depart_timeYTrip schedule values
reschedule_feeYApplicable fee
reschedule_confirm_details/detail@old_ticket_noYOriginal ticket number
reschedule_confirm_details/detail@seat_noYNew seat number
reschedule_confirm_details/detail@seat_typeYSeat type
reschedule_confirm_details/detail@selling_priceYNew selling price
reschedule_confirm_details/detail@cust_name, contact, ic, emailOptionalPassenger detail

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <rescheduleConfirm signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <route_id>SHAHGM01</route_id>
      <trip_no>3F</trip_no>
      <depart_date>08/05/2025</depart_date>
      <counter_from>SHA</counter_from>
      <counter_to>HGM</counter_to>
      <block_id>TSL25050000081</block_id>
      <queue_id>293001</queue_id>
      <origin_trip_date>08/05/2025</origin_trip_date>
      <depart_time>103500</depart_time>
      <reschedule_fee>5.00</reschedule_fee>
      <reschedule_confirm_details>
        <detail old_ticket_no="BYU25050000039" seat_no="2A" seat_type="A" selling_price="38.00" cust_name="Ahmad" contact="01234456" ic="900101015555" email="[email protected]" />
      </reschedule_confirm_details>
    </rescheduleConfirm>
  </soapenv:Body>
</soapenv:Envelope>

Response Parameters

NameDescription
rescheduleConfirm_status@code, msgStatus information
trip@route_id, trip_no, date, boarding_codeNew confirmed trip details
ticket@ticket_no, seat_noNew ticket number and seat mapping

Additional CTS Ticketing Operations

SOAP seatBlock

Block seats

Temporarily blocks one or more seats and returns a block identifier for later confirmation.

Request Parameters

NameRequiredDescription
signatureYMD5 signature
operator_code, route_id, trip_no, depart_dateYTrip identification
counter_from, counter_toYTravel counters
block_details/details/detail@seat_noYSeat number
block_details/details/detail@seat_typeYSeat type
block_details/details/detail@selling_priceYSelling price
origin_trip_dateConditionalOriginal trip date when required by sales channel
depart_timeOptionalDeparture time

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <seatBlock signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <route_id>SHAHGM01</route_id>
      <trip_no>3F</trip_no>
      <depart_date>08/05/2025</depart_date>
      <counter_from>SHA</counter_from>
      <counter_to>HGM</counter_to>
      <block_details>
        <details>
          <detail seat_no="1A" seat_type="A" selling_price="38.00" />
        </details>
      </block_details>
      <origin_trip_date>08/05/2025</origin_trip_date>
      <depart_time>103500</depart_time>
    </seatBlock>
  </soapenv:Body>
</soapenv:Envelope>

Response Parameters

NameDescription
seatBlock_status@codeStatus code
seatBlock_status@msgStatus message
seatBlock_status@block_idBlock reference id

SOAP seatCancel

Cancel seats or tickets

Cancels one or more seats or ticket references for a selected trip.

Request Parameters

NameRequiredDescription
signatureYMD5 signature
operator_code, route_id, trip_no, depart_dateYTrip identification
counter_from, counter_toYTravel counters
canceltypeYCancellation type
cancel_details/details/detail@seat_noYSeat number
cancel_details/details/detail@ticknOptionalTerminal ticket number
cancel_details/details/detail@refnOptionalSmarticket ticket number

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <seatCancel signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <route_id>SHAHGM01</route_id>
      <trip_no>3F</trip_no>
      <depart_date>08/05/2025</depart_date>
      <counter_from>SHA</counter_from>
      <counter_to>HGM</counter_to>
      <canceltype>C</canceltype>
      <cancel_details>
        <details>
          <detail seat_no="1A" tickn="TERM0001" refn="BYU25050000039" />
        </details>
      </cancel_details>
    </seatCancel>
  </soapenv:Body>
</soapenv:Envelope>

Response Parameters

NameDescription
seatCancel_status@codeStatus code
seatCancel_status@msgStatus message

SOAP queryTicket

Query ticket details

Returns passenger, trip, fare, and seat information for a single ticket number.

Request Parameters

NameRequiredDescription
signatureYMD5 signature
operator_codeYOperator code
ticket_noYTicket number
depart_dateYDeparture date

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <queryTicket signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <ticket_no>BYU25050000039</ticket_no>
      <depart_date>08/05/2025</depart_date>
    </queryTicket>
  </soapenv:Body>
</soapenv:Envelope>

Response Parameters

NameDescription
queryTicket_status@code, msgStatus information
queryTicket_status@cust_name, contactPassenger details
queryTicket_status@route_id, trip_no, trip_dateTrip details
queryTicket_status@counter_from, counter_toCounter details
queryTicket_status@selling_price, seat_no, seat_type, coach_categoryFare and seat information

SOAP collectTicket

Collect ticket

Marks a ticket as collected on the CTS endpoint.

Request Parameters

NameRequiredDescription
signatureYMD5 signature
operator_codeYOperator code
ticket_noYTicket number
depart_dateYDeparture date

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <collectTicket signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <ticket_no>BYU25050000039</ticket_no>
      <depart_date>08/05/2025</depart_date>
    </collectTicket>
  </soapenv:Body>
</soapenv:Envelope>

Response Parameters

NameDescription
collectTicket_status@codeStatus code
collectTicket_status@msgStatus message

SOAP transRelease

Release transaction

Releases a pending queue transaction using the queue identifier.

Request Parameters

NameRequiredDescription
signatureYMD5 signature
operator_codeYOperator code
depart_dateYDeparture date
queue_idYQueue id

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <transRelease signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <depart_date>08/05/2025</depart_date>
      <queue_id>283941</queue_id>
    </transRelease>
  </soapenv:Body>
</soapenv:Envelope>

Response Parameters

NameDescription
transRelease_status@codeStatus code
transRelease_status@msgStatus message

SOAP queryManifest

Query manifest summary

Returns passenger totals grouped by destination for a selected trip.

Request Parameters

NameRequiredDescription
signatureYMD5 signature
operator_codeYOperator code
route_idYRoute id
trip_noYTrip number
depart_dateYDeparture date

Sample Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <queryManifest signature="9428aa99eae6cd4e753fd850f58ee241">
      <operator_code>BAYU</operator_code>
      <route_id>SHAHGM01</route_id>
      <trip_no>3F</trip_no>
      <depart_date>08/05/2025</depart_date>
    </queryManifest>
  </soapenv:Body>
</soapenv:Envelope>

Response Parameters

NameDescription
queryManifest_status@codeStatus code
queryManifest_status@msgStatus message
queryManifest_details/detail@desnDestination description
queryManifest_details/detail@qtyPassenger quantity