NAV Navbar
cUrl
  • 1. Get Started
  • 2. Sales Flow API
  • 3. Release Notes
  • 1. Get Started

    1.1 Overview

    This STiX Cloud REST API Specification Document provides the API endpoints for accessing the resources and operations in the STiX Cloud Ticketing System for event booking flow.

    1.2 Authorization

    To authorize, use this code:

    # With shell, you can just pass the correct header with each request
    curl -u "<client_id>":"<client_secret>" -X POST 
    "https://auth.stixcloud.com/auth/v0/{tenant}/oauth/token?grant_type=client_credentials"
    

    The above command returns JSON structured like this:

    {
        "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9....",
        "token_type": "bearer",
        "expires_in": 3599,
        "scope": "sistic product cart payment patron package membership",
        "jti": "befa68ee-5355-4819-aef3-..."
    }
    

    The STiX Cloud REST API implements the OAuth 2.0 authorization protocol that gives an API client limited access to the resources on web server.

    OAuth 2.0 Endpoint :

    Env URL
    Staging https://auth.stixcloudtest.com/auth/v0/{tenant}/oauth/token
    Production https://auth.stixcloud.com/auth/v0/{tenant}/oauth/token

    To access the API, the clients need to first authenticate themselves using the client credential grant in exchange for an access token with the following parameters:

    1.3 Request Header

    The access token is then passed to each API request via the HTTP header.

    curl -H "Authorization: Bearer <accessToken>" <resourceURL>
    
    Key Value Description
    Content-Type application/json
    Authorization Bearer

    1.4 Staging/Production Environment

    Rest API Endpoint:

    Env URL
    Staging https://api.stixcloudtest.com/api/v0/{tenant}
    Production https://api.stixcloud.com/api/v0/{tenant}

    --

    Image Resource Endpoint:

    Env URL
    Staging https://api.stixcloudtest.com/{imagePath}
    Production https://api.stixcloud.com/{imagePath}

    You must replace imagePath with images retrieved from 2.1 Get Events, 2.2 Get Events Show Date & Time, and other endpoints that return images.

    Ex) https://api.stixcloudtest.com/public/SISTIC/SeatmapMapping/3744/esands1812142000_Faith-and-Freedom-(wif-grand-circle).jpg

    1.5 Sales Flow Diagram

    GA Flow

    RS Flow

    1.6 Postman Collection

    Import StixCloud Sales Flow API Postman Collection. Click the image below to download the collection.

    2. Sales Flow API

    This section contains a set of booking REST API endpoints that allow the API client to retrieve the event information such as available event timing, category, section, inventory status, pricing or even to commit an order.

    When deserializing API response to your POJO objects, remember to enable the option to ignore unknown json fields because based on event configuration, response can have additional information which is not used in your application

    Java Example: Some libraries like Gson ignore unknown fields when unmarshalling. To ignore unknown fields with Jackson, there are two ways to do it:

    - Add @JsonIgnoreProperties(ignoreUnknown = true) to POJO classes
    - Configure your ObjectMapper: objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

    2.1 Get Events

    Retrieve the list of active events available for sale. The list contains both current and future events.

    Sample request:

    curl --request GET \
      --url https://api.stixcloud.com/api/v0/{tenant}/icc \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    Status: 200. Retrieve the list of active events available for sale.

    {
        "content": [
            {
                "summaryImagePath": "/public/SISTIC/01-01-2018/1514769287351/238x94.jpg",
                "internetContentCode": "cbest0418",
                "title": "The Best Gift - Cross Talk Play &lt;&lt;最棒的礼物&gt;&gt; 青少年相声剧",
                "promoters": [
                    "&lt;a href =&#39;http://www.yppae.org/&#39;&gt;Young People&rsquo;s Performing ..;"
                ],
                "genre": [
                    "Theatre"
                ],
                "startDate": "2018-04-06T20:00:00+08:00",
                "endDate": "2018-04-07T20:00:00+08:00",
                "sellabilityStartDate": "2018-01-01T00:00:00+08:00",
                "sellabilityEndDate": "2018-04-08T00:00:00+08:00",
                "venue": "Drama Centre Theatre",
                "synopsis": "&lt;p&gt;Inspired by and adapted from Jean-Jacques Semp&eacute; and Ren&eacut#39..",
                "bookingUrl": "http://www.sistic.com.sg/events/cbest0418",
                "priceDescription": "&lt;p&gt;Standard: S$27, S$25&lt;/p&gt;\n",
                "duration": "&lt;p&gt;Approximately 1 hour 30 minutes&lt;br /&gt;\n(Inclusive of 15 minutes interval)&..",
                "admissionRules": "&lt;p&gt;&lt;strong&gt;Rating / Age Limit&lt;/strong&gt;&lt;/p&gt;\n\n&lt;ul&gt;...",
                "salesDateText": "&lt;p&gt;&lt;strong&gt;ALL Channel:&lt;/strong&gt;&lt;br /&gt;\n1 Jan 2018, ...",
                "languageTitle": "The Best Gift - Cross Talk Play <<最棒的礼物>> 青少年相声剧",
                "updateDate": "2018-01-01T09:14:47+08:00",
                "languageVenue": "&lt;p&gt;&lt;a href=&quot;http://www.sistic.com.sg/venues?id=196&quot;&gt..."
            },
            {
                "summaryImagePath": "/public/SISTIC/01-02-2018/1517453085160/238X94.jpg",
                "internetContentCode": "cescape2016aa",
                "title": "Captivate Escape Rooms Singapore",
                "promoters": [
                    "&lt;a href =&#39;http://www.admiralassociates.com/&#39;&gt;Admiral As..."
                ],
                "genre": [
                    "Lifestyle"
                ],
                "startDate": "2018-01-31T23:59:00+08:00",
                "endDate": "2018-12-31T23:59:00+08:00",
                "sellabilityStartDate": "2016-07-01T00:00:00+08:00",
                "sellabilityEndDate": "2019-01-01T00:00:00+08:00",
                "venue": "Singapore Shopping Centre, #06-28",
                "synopsis": "&lt;p&gt;Book tickets for the biggest new entertainment buzz since the ...",
                "priceDescription": "&lt;p&gt;Monday - Sunday: S$25 (min 2 pax)&lt;br /&gt;\n&lt;br /&gt;\n&lt;strong&g...",
                "duration": "&lt;p&gt;&lt;/p&gt;\n\n&lt;p&gt;&lt;/p&gt;\n\n&lt;p&gt;&lt;/p&gt;\n\n&l,,",
                "admissionRules": "&lt;p&gt;&lt;strong&gt;Rating / Age Limit&lt;/strong&gt;&lt;/p&gt...",
                "updateDate": "2018-02-01T10:44:45+08:00",
                "languageVenue": "&lt;p&gt;&lt;a href=&quot;http://www.sistic.com.sg/venues?id=955&quot..\n"
            }
        ],
        "totalPages": 103,
        "totalElements": 205,
        "last": false,
        "size": 2,
        "number": 0,
        "first": true,
        "numberOfElements": 2,
        "links": [
            {
                "rel": "self",
                "href": "http://api.stixcloud.com/api/v0/SISTIC/icc?page=0&size=2&lang=EN_SG"
            },
            {
                "rel": "next",
                "href": "http://api.stixcloud.com/api/v0/SISTIC/icc?lang=EN_SG&page=1&size=2"
            }
        ],
        "url": "http://api.stixcloud.com/api/v0/SISTIC/icc"
    }
    

    ICC Search Sample Request (Pass at least 3 characters for search criteria)

    curl --request GET \
      --url https://api.stixcloud.com/api/v0/{tenant}/icc?title=Natural History \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    {
      "content": [
        {
          "summaryImagePath": "/public/SISTIC/17-02-2019/1550383995701/Hydrangeas.jpg",
          "internetContentCode": "lkc2015",
          "title": "Lee Kong Chian Natural History Museum",
          "promoters": [
            "&lt;a href =&#39;http://www.nus.edu.sg/&#39;&gt;Lee Kong Chian Natural History Museum&lt;/a&gt;"
          ],
          "genre": [
            "Lifestyle"
          ],
          "startDate": "2034-06-01T10:00:00+08:00",
          "endDate": "2118-12-31T00:00:00+08:00",
          "sellabilityStartDate": "2015-03-30T10:00:00+08:00",
          "sellabilityEndDate": "2037-01-01T00:00:00+08:00",
          "venue": "Lee Kong Chian Natural History Museum",
          "language": "<ul>\n\t<li>English</li>\n</ul>\n",
          "synopsis": "&lt;p&gt;Get acquainted with the incredible world of biodiversity at Singapore&rsquo;s ..",
          "bookingUrl": "http://www.sistic.com.sg/events/lkc2015",
          "priceDescription": "&lt;p&gt;&lt;strong&gt;&lt;strong&gt;Singaporean / Permanent Resident (PR)... ",
          "admissionRules": "&lt;p&gt;&lt;u&gt;&lt;strong&gt;Terms and Conditions&lt;...",
          "salesDateText": "&lt;p&gt;All Channels:&lt;br /&gt;\n30 Mar 2015, 10am&lt;/p&gt;\n",
          "languageTitle": "Lee Kong Chian Natural History Museum",
          "updateDate": "2019-02-17T14:13:16+08:00",
          "languageVenue": "&lt;p&gt;&lt;a href=&quot;/venues?id=889&quot;&gt;Lee Kong Chian Natural History Museum&lt.."
        }
      ],
      "totalElements": 1,
      "totalPages": 1,
      "last": true,
      "first": true,
      "numberOfElements": 1,
      "size": 20,
      "number": 0,
      "links": [
        {
          "rel": "self",
          "href": "https://api.stixcloud.com/api/v0/SISTIC/icc?page=0&size=20&lang=EN_SG"
        }
      ],
      "url": "https://api.stixcloud.com/api/v0/SISTIC/icc"
    }
    

    ICC Sorting Request (Refer to section 2.1.3)

    curl --request GET \
      --url https://api.stixcloud.com/api/v0/{tenant}/icc?sort=sellabilityStartDate \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    {
      "content": [
        {
          "summaryImagePath": "/public/SISTIC/17-02-2019/1550383995701/Hydrangeas.jpg",
          "internetContentCode": "lkc2015",
          "title": "Lee Kong Chian Natural History Museum",
          "promoters": [
            "&lt;a href =&#39;http://www.nus.edu.sg/&#39;&gt;Lee Kong Chian Natural Hist..."
          ],
          "genre": [
            "Lifestyle"
          ],
          "startDate": "2034-06-01T10:00:00+08:00",
          "endDate": "2118-12-31T00:00:00+08:00",
          "sellabilityStartDate": "2015-03-30T10:00:00+08:00",
          "sellabilityEndDate": "2037-01-01T00:00:00+08:00",
          "venue": "Lee Kong Chian Natural History Museum",
          "language": "<ul>\n\t<li>English</li>\n</ul>\n",
          "synopsis": "&lt;p&gt;Get acquainted with the incredible world of biodiversity at Singapore&rsquo;s ...",
          "bookingUrl": "http://www.sistic.com.sg/events/lkc2015",
          "priceDescription": "&lt;p&gt;&lt;strong&gt;&lt;strong&gt;Singaporean / Permanent Re...",
          "admissionRules": "&lt;p&gt;&lt;u&gt;&lt;strong&gt;Terms and Conditions&lt;/strong&gt;&lt;..",
          "salesDateText": "&lt;p&gt;All Channels:&lt;br /&gt;\n30 Mar 2015, 10am&lt;/p&gt;\n",
          "languageTitle": "Lee Kong Chian Natural History Museum",
          "updateDate": "2019-02-17T14:13:16+08:00",
          "languageVenue": "&lt;p&gt;&lt;a href=&quot;/venues?id=889&quot;&gt;Lee Kong Chian Natural History M.."
        },
        {
          "summaryImagePath": "/public/SISTIC/17-01-2019/1547714720502/_ep.jpg",
          "internetContentCode": "ctest0615",
          "title": "(TEST) Esplanade-Presented GA",
          "promoters": [
            "The Esplanade Co Ltd"
          ],
          "genre": [
            "Concert"
          ],
          "startDate": "2020-06-30T09:00:00+08:00",
          "endDate": "2023-08-01T23:00:00+08:00",
          "sellabilityStartDate": "2015-04-30T10:00:00+08:00",
          "sellabilityEndDate": "2030-07-31T00:00:00+08:00",
          "venue": "Esplanade Recital Studio",
          "language": "English",
          "synopsis": "What happens in the jungle when the sun goes down?&lt;br /&gt;\nYou w...",
          "priceDescription": "Standard: S$100",
          "duration": "1 hour",
          "admissionRules": "Admission is subject to tickets produced at the entrance.&lt;br /&gt...",
          "salesDateText": "Internet : 4 May 2015, 9am&lt;br /&gt;\nOther Channels : 4 May 2015, 10am",
          "languageTitle": "(TEST) Esplanade-Presented GA",
          "updateDate": "2019-01-17T16:45:21+08:00"
        },
        {
          "summaryImagePath": "/public/SISTIC/17-01-2019/1547714720502/_ep.jpg",
          "internetContentCode": "ctest0615",
          "title": "(TEST) Esplanade-Presented GA",
          "promoters": [
            "The Esplanade Co Ltd"
          ],
          "genre": [
            "Concert"
          ],
          "startDate": "2025-06-30T08:00:00+08:00",
          "endDate": "2025-06-30T08:00:00+08:00",
          "sellabilityStartDate": "2015-04-30T10:00:00+08:00",
          "sellabilityEndDate": "2030-07-31T00:00:00+08:00",
          "venue": "Esplanade Recital Studio",
          "language": "English",
          "synopsis": "What happens in the jungle when the sun goes down?&lt;br /&gt;\...",
          "priceDescription": "Standard: S$100",
          "duration": "1 hour",
          "admissionRules": "Admission is subject to tickets produced at the entrance.&lt;br /&gt;...",
          "salesDateText": "Internet : 4 May 2015, 9am&lt;br /&gt;\nOther Channels : 4 May 2015, 10am",
          "languageTitle": "(TEST) Esplanade-Presented GA",
          "updateDate": "2019-01-17T16:45:21+08:00"
        }
      ],
      "totalElements": 162,
      "totalPages": 54,
      "last": false,
      "sort": [
        {
          "direction": "ASC",
          "property": "sellabilityStartDate",
          "ignoreCase": false,
          "nullHandling": "NATIVE",
          "ascending": true
        }
      ],
      "first": true,
      "numberOfElements": 3,
      "size": 3,
      "number": 0,
      "links": [
        {
          "rel": "self",
          "href": "https://api.stixcloud.com/api/v0/SISTIC/icc?page=0&size=3&lang=EN_SG"
        },
        {
          "rel": "next",
          "href": "https://api.stixcloud.com/api/v0/SISTIC/icc?lang=EN_SG&page=1&size=3"
        }
      ],
      "url": "https://api.stixcloud.com/api/v0/SISTIC/icc"
    }
    

    Errors:

    Http Code: 500. Internal Server Error

    {
     "httpStatus": "500", 
     "errorTime":"2017-07-01T16:53:26.535+08:00",
     "exceptionName": "java.lang.NullPointerException",
     "statusMessage": "NullPointerException: ",
     "url" : "https://api.stixcloud.com/api/v0/{tenant}/icc"
    }
    

    2.1.1 Request

    You must replace tenant with your tenant code.

    2.1.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] Tenant ID given
    page Number [optional] Page of record, default 0
    size Number [optional] Number of item per page, default 20
    lang String [optional] Language Code
    Defaults to EN_SG
    Below are the supported Locale ID:
    EN_SG English
    ZH_CN Simplified Chinese
    ZH_HK Traditional Chinese
    MS_MY Malay

    2.1.3 Searching and Sorting

    Name Type Sample Usage
    title String /api/v0/{tenant}/icc?q=The Best Gift
    promoter String /api/v0/{tenant}/icc?q=Young People
    genre String /api/v0/{tenant}/icc?q=Drama Chi
    venue String /api/v0/{tenant}/icc?q=Theatre
    synopsis String /api/v0/{tenant}/icc?q=Inspired by
    Name Type Sample Usage
    title String /api/v0/{tenant}/icc?title=The Best Gift
    internetContentCode String /api/v0/{tenant}/icc?internetContentCode=aladdin2019
    promoter String /api/v0/{tenant}/icc?promoter=Performing Arts Ensemble
    genre String /api/v0/{tenant}/icc?promoter=Arts
    venue String /api/v0/{tenant}/icc?venue=Theatre
    synopsis String /api/v0/{tenant}/icc?synopsis=Inspired by and adapted

    Sorting for ICC supports the follow attributes

    Name Type Sample Usage
    title String /api/v0/{tenant}/icc?sort=title
    promoter String /api/v0/{tenant}/icc?sort=promoter,desc (Descending sorting)*
    venue String /api/v0/{tenant}/icc?sort=venue
    synopsis String /api/v0/{tenant}/icc?sort=synopsis
    sellabilityStartDate String /api/v0/{tenant}/icc?sort=sellabilityStartDate

    2.1.4 Response

    Status Code Meaning
    200 Returns the available events
    500 Internal server error

    2.1.5 Additional Notes

    2.1.6 Data Model

    2.1.6.1 Response Object

    Name Description on attribute Data Type Length/Data Range Nullable
    content List of event details List of content object - Y
    links List of links for pagination

    Rules:
    1. Next page link will appear if have more record
    2. Previous page link will appear if it’s not in the first page
    3. Last page link will appear if there is more than 1 page
    List of link object - Y
    last Flag for last page Boolean 4 Y
    totalPages Total number of page Number 10 Y
    totalElements Total number of records Number 10 Y
    sort Sorting for elements Boolean 255 Y
    numberOfElements Number of record per page Number 10 Y
    first Flag for first page Boolean 4 Y
    size Number of element per page Number 10 Y
    httpStatus Service response code String 255 N
    statusMessage Service response status message String 255 Y
    url Service request url
    API endpoint
    String 255 Y
    exceptionName Exception class name String 255 Y
    exceptionCode defined exception code for multi-language purpose String 255 Y
    errorTime Exception datetime
    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    number Number of Page Integer - Y

    2.1.6.2 Content Object

    Name Description on attribute Data Type Length/Data Range Nullable
    summaryImagePath Image for the event. Please refer to 1.4 Image Resource Endpoint String 255 Y
    internetContentCode Event internet content code

    Unique code for event
    String 255 N
    title Event title

    Value is encoded using htmlEscape() for security purposes. The corresponding htmlUnescape() method must be invoked by client before usage
    String 255 Y
    genre List of available genre for Sistic Events

    Comedy
    Concert
    Dance
    Family Entertainment
    Film/Movies
    Food & Beverage
    Lifestyle/Leisure
    MICE
    Merchandise
    Musical
    Orchestra
    Seminar/Workshop
    Sports
    Theatre
    Array of String - Y
    promoters Event promoters

    Value is encoded using htmlEscape() for security purposes. The corresponding htmlUnescape() method must be invoked by client before usage
    Array of String - Y
    startDate Event start date

    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    endDate Event end date

    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    sellabilityStartDate Internet content start selling date

    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    sellabilityEndDate Internet content end selling date

    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    venue Venue String 255 Y
    language Event language String 255 Y
    synopsis Synopsis

    Description returned based on lang parameter
    Value is encoded using htmlEscape() for security purposes. The corresponding htmlUnescape() method must be invoked by client before usage
    String 255 Y
    bookingUrl URL to event booking page String 255 Y
    priceDescription Price description as in StixCloud configuration

    Description returned based on lang parameter
    Value is encoded using htmlEscape() for security purposes. The corresponding htmlUnescape() method must be invoked by client before usage
    String 1000 Y
    duration Show duration

    Description returned based on lang parameter
    Value is encoded using htmlEscape() for security purposes. The corresponding htmlUnescape() method must be invoked by client before usage
    String 1000 Y
    admissionRules Show admission rules

    Description returned based on lang parameter
    Value is encoded using htmlEscape() for security purposes. The corresponding htmlUnescape() method must be invoked by client before usage
    String 1000 Y
    salesDateText Sales date description

    Description returned based on lang parameter
    Value is encoded using htmlEscape() for security purposes. The corresponding htmlUnescape() method must be invoked by client before usage
    String 1000 -
    languageTitle Multi-language Title String 3000 Y
    updateDate Last changed date of internet content record

    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    languageVenue Venue description. String 4000 Y
    Name Description on attribute Data Type Length/Data Range Nullable
    rel Page id String 255 Y
    href Link to other page String 255 Y

    2.2 Get Event Show Date & Time

    Sample request:

    curl --request GET \
      --url https://api.stixcloud.com/api/v0/SISTIC/icc/lkc2015 \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    Status: 200. return list of available events info such as the exct event Show Date and Time as well as the availability status

    {
        "summaryImagePath": "/public/SISTIC/12-03-2018/1520849308453/Booking Summary.jpg",
        "sponsoredImagePath": "/public/SISTIC/12-03-2018/1520849308453/Sponsored imagepath.jpg",
        "icAttributesList": [
            "1",
            "2",
            "32",
            "512",
            "64"
        ],
        "promotionStatus": "0",
        "showTimingList": [
            {
                "productId": 270783,
                "showTitle": "Lee Kong Chian Natural History Museum (Jan20) (Group Ticket)",
                "showDate": "2020-01-01T20:00:00+08:00",
                "availabilityStatus": 16,
                "isPromo": false,
                "venue": "+博物馆Lee Kong Chian Natural History Museum",
                "ticketType": "GA"
            },
            {
                "productId": 270784,
                "showTitle": "Lee Kong Chian Natural History Museum (Jan20) (Normal Ticket)&",
                "showDate": "2020-01-02T20:00:00+08:00",
                "availabilityStatus": 19,
                "isPromo": false,
                "venue": "+博物馆Lee Kong Chian Natural History Museum",
                "ticketType": "GA"
            },
            {
                "productId": 270789,
                "showTitle": "Lee Kong Chian Natural History Museum (Jan20) (Group Ticket)",
                "showDate": "2020-01-03T20:00:00+08:00",
                "availabilityStatus": 19,
                "isPromo": false,
                "venue": "+博物馆Lee Kong Chian Natural History Museum",
                "ticketType": "GA"
            },
            {
                "productId": 270790,
                "showTitle": "Lee Kong Chian Natural History Museum (Jan20) (Normal Ticket)%",
                "showDate": "2020-01-04T20:00:00+08:00",
                "availabilityStatus": 19,
                "isPromo": false,
                "venue": "+博物馆Lee Kong Chian Natural History Museum",
                "ticketType": "GA"
            },
            {
                "productId": 268915,
                "showTitle": "M+ 博物馆",
                "showDate": "2038-06-22T00:00:00+08:00",
                "availabilityStatus": 19,
                "isPromo": false,
                "venue": "+博物馆Lee Kong Chian Natural History Museum",
                "ticketType": "GA"
            },
            {
                "productId": 254829,
                "showTitle": "Wonder Full – Light & Water Show",
                "showDate": "2052-10-30T12:00:00+08:00",
                "availabilityStatus": 19,
                "isPromo": false,
                "venue": "National Gallery Singapore",
                "ticketType": "GA"
            }
        ]
    }
    

    Errors

    Error: 400. This exception occurs when the Internet Content Code is invalid or expired.

    {
       "httpStatus":"400",
       "errorCode":" error.product.icc.invalid",
       "errorTime":"2017-07-01T16:53:26.535+08:00",
       "exceptionName":" com.stixcloud.common.exception.SisticApiException",
       "statusMessage":" Invalid Internet Content Code.",
       "url":"https://api.stixcloud.com/api/v0/SISTIC/icc/lkc20153"
    }
    

    Error: 500. Internal Server Error

    {
        "httpStatus": "500",
        "errorTime":"2017-07-01T16:53:26.535+08:00",
        "exceptionName":" java.lang.NullPointerException",
        "statusMessage": "NullPointerException.",
        "url" : "https://api.stixcloud.com/api/v0/SISTIC/icc/lkc20153"
    }
    

    For a given InternetContentCode, the API will return a list of available events info such as the exact event Show Date and Time as well as the availability status.

    2.2.1 Request

    You must replace tenant with your tenant code and internetContentCode retrieved from Get Events.

    2.2.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] Tenant ID given
    internetContentCode Number [required] internet content code selected from "get event list" endpoint
    startDate Number [optional] Show date, default to system date, format YYYYMMDD
    numOfDays String [optional] Shows availability for number of day. Default to 31 if you pass in the startDate
    promoCode String [optional] Use for Private Link purpose.
    Note: Not in used for this module.

    2.2.3 Data Model

    2.2.3.1 Response Object

    Name Description on attribute Data Type Length/Data Range Nullable
    httpStatus Service response code
    Rules

    200, 400 or 500
    String 255 N
    statusMessage Service response status message String 255 Y
    url Service request url

    API endpoint
    String 255 Y
    exceptionName Exception class name String 255 Y
    exceptionCode Sistic defined exception code for multi-language purpose String 255 Y
    errorTime Exception datetime
    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+ -hh:mm (24hours)
    String 25 Y
    summaryImagePath Image for event. Please refer to 1.4 Image Resource Endpoint String 255 Y
    icAttributesList Internet content attributes Array[String] 255 Y
    showTimingList List of product object List of Product JSON object - -
    advisory Advisory message for the event String Y
    promotionStatus To determine if private link is configured and to verify the validity of promocode if there is any.

    Note: Not in used for this module.

    Promo Status 0: Private Link is not being configured.

    Status 1:
    Valid PromoCode entered.
    Status 2:
    Invalid PromoCode entered.

    Status 3:
    Promo code is unavailable for the configured date range.
    String - -
    sponsoredImage Path Image of sponsored Note: Not in used for this module. Please refer to 1.4 Image Resource Endpoint String 255 Y

    2.2.3.1 Product Object

    Name Description on attribute Data Type Length/Data Range Nullable
    productId Product Id
    Unique key for product
    Number 10 N
    showTitle Show title String 255 N
    showDateTime Show starting date & time
    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 N
    endDateTime Show end date & time
    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 N
    availabilityStatus Show availability
    availabilityStatus:20 => COMING SOON

    availabilityStatus:16 => UNAVAILABLE/SOLD OUT

    availabilityStatus:17 => SINGLE SEATS

    availabilityStatus:18 => LIMITED SEATS (Front End shows SELLING FAST)

    availabilityStatus:19 => AVAILABLE

    availabilityStatus:-6 => SHOW RECONFIG

    availabilityStatus:-7 => SHOW CANCELLED

    availabilityStatus:-8 => SHOW POSTPONED

    availabilityStatus:-20 => SHOW SOLD OUT
    Number 10 Y
    ticketType Ticket type – GA or RS List of ticket Type Y
    venue Venue String 255 Y
    isPromo Is promo code valid or not
    Note: Not in used for this module.
    Boolean N
    evoucherValidYears indicate how many year does the evoucher valid.

    Note: this attribute is only use on evoucher event, currently not in used for this module.
    Number 10 N

    2.3 Get Event Overview Seat Map

    To retrieve the event overview seat map based on the product ID. API will return the information such as Overview Seat Map Image, Price Category, Seat Section and also the coodinates for each section.

    Note: (*) indicate the field is not being used for standard sales flow.

    Sample Request:

    curl --request GET \
      --url https://api.stixcloud.com/api/v0/{tenant}/products/{productId}/seatmap/overview \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    Status: 200. Retrieve the event overview seat map based on the product ID

    {   "isSocialDistancingEnabled":0,
        "hideStandardPrice": 0,
        "imageAvailable": 1,
        "interactive": 1,
        "mode": "SP",
        "imageURL": "/public/SISTIC/SeatmapMapping/3088/espl1805201930_Valentina_Lisitsa.jpg",
        "groupBookingMode": 0,
        "isMembership": 0,
        "isHidePrice": 0,
        "evoucherEvent": 0,
        "isEventWithSurvey": 0,
        "promoterNameList":["DT PRODUCTIONS (TEST)"]
        "seatSectionList": [
            {
                "priceCatAlias": "Cat 1",
                "priceCatAmount": {
                    "amount": 88,
                    "currency": "SGD",
                    "formatted": "$88.00"
                },
                "SeatLevel": [
                    {
                        "seatLevelAlias": "Foyer Stalls",
                        "seatSectionId": 128847,
                        "seatSectionAlias": "Foyer Stalls",
                        "seatSectionType": "RS",
                        "seatEntrance": "Door 2",
                        "priceCategoryNum": 1,
                        "priceCategoryId": 59158,
                        "price": {
                            "amount": 70.4,
                            "currency": "SGD",
                            "formatted": "$70.40"
                        },
                        "redeem": false,
                        "coordinatesList": [
    "564,874,565,862,573,851,589,842,609,836,627,834,649,834,669,838,670,849,662,855,655,866,642,864,627,863,604,869,592,879"
                        ]
                    },
                    {
                        "seatLevelAlias": "Foyer Stalls",
                        "seatSectionId": 128847,
                        "seatSectionAlias": "Foyer Stalls",
                        "seatSectionType": "RS",
                        "seatEntrance": "Door 1",
                        "priceCategoryNum": 1,
                        "priceCategoryId": 59158,
                        "price": {
                            "amount": 70.4,
                            "currency": "SGD",
                            "formatted": "$70.40"
                        },
                        "redeem": false,
                        "coordinatesList": [
    "564,874,565,862,573,851,589,842,609,836,627,834,649,834,669,838,670,849,662,855,655,866,642,864,627,863,604,869,592,879"
                        ]
                    }
                ]
            },
            {
                "priceCatAlias": "Cat 2",
                "priceCatAmount": {
                    "amount": 68,
                    "currency": "SGD",
                    "formatted": "$68.00"
                },
                "SeatLevel": [
                    {
                        "seatLevelAlias": "Circle 1",
                        "seatSectionId": 129804,
                        "seatSectionAlias": "Circle 1",
                        "seatSectionType": "RS",
                        "seatEntrance": "Door 3",
                        "priceCategoryNum": 2,
                        "priceCategoryId": 59159,
                        "price": {
                            "amount": 54.4,
                            "currency": "SGD",
                            "formatted": "$54.40"
                        },
                        "redeem": false,
                        "coordinatesList": [
    "532,549,551,554,552,542,564,529,576,522,590,516,601,513,619,512,631,513,645,516,658,520,660,507,638,503,620,502,601,502,586,504,574,507,562,511,551,517,541,527,534,537"
                        ]
                    },
                    {
                        "seatLevelAlias": "Circle 1",
                        "seatSectionId": 129804,
                        "seatSectionAlias": "Circle 1",
                        "seatSectionType": "RS",
                        "seatEntrance": "Door 4",
                        "priceCategoryNum": 2,
                        "priceCategoryId": 59159,
                        "price": {
                            "amount": 54.4,
                            "currency": "SGD",
                            "formatted": "$54.40"
                        },
                        "redeem": false,
                        "coordinatesList": [
    "532,549,551,554,552,542,564,529,576,522,590,516,601,513,619,512,631,513,645,516,658,520,660,507,638,503,620,502,601,502,586,504,574,507,562,511,551,517,541,527,534,537"
                        ]
                    }
                ]
            }
        ]
    }
    

    Errors:

    Http Code: 400. Error generating overview seatmap

    {
    "httpStatus": "400",
     "errorCode": "error.product.overview-seatmap.generation.fail",
     "errorTime":"2017-07-01T16:53:26.535+08:00",
     "exceptionName":"SisticApiInternalErrorException",
     "statusMessage": "Error generating overview seatmap.",
     "url" : "https://api.stixcloud.com/api/v0/SISTIC/products/973113/seatmap/overview"
    }
    

    Http Code: 500. Internal Server Error

    {
     "httpStatus": "500", 
     "errorTime":"2017-07-01T16:53:26.535+08:00",
     "exceptionName":" java.lang.NullPointerException",
     "statusMessage": "NullPointerException: ",
     "url" : "https://api.stixcloud.com/api/v0/SISTIC/icc"
    }
    

    2.3.1 Request

    You must replace tenant with your Tenant code and productId retrieved from Get Event Show Date & Time

    2.3.2 Data model

    2.3.2.1 Response object

    Name Description on attribute Data Type Length / Data Range Nullable
    httpStatus Service response code

    400 or 500
    String 255 N
    statusMessage Service response status message String 255 Y
    url Service request url

    API endpoint
    String 255 Y
    exceptionName Exception class name String 255 Y
    exceptionCode Sistic defined exception code for multi-language purpose String 255 Y
    errorTime Exception datetime

    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    isSocialDistancingEnabled Flag indicating if show is social distancing enabled/disabled

    0 for false, 1 for true
    Number 2 Y
    hideStandardPrice Flag to hide or show standard price

    0 for false, 1 for true
    Number 2 Y
    imageAvailable Flag to indicate the availability of seat map image

    0 for false, 1 for true
    Number 2 Y
    interactive Flag for Interactive mode for seat selection

    0 for false, 1 for true
    Number 2 Y
    mode Seat selection String 10 Y
    imageURL URL to seat map. Please refer to 1.4 Image Resource Endpoint String 100 Y
    seatSectionList List of Seat section object List of seatMap Json Object - Y
    promoterNameList List of promoter name that tie to the event List of String String - Y
    groupBookingMode (*) A configurable flag to indicate if users can reserve seats for friends. Default value is 0 which means feature is not enabled. Number 1 N
    isMembership (*) The flag to indicate event is selling membership. Default value is 0 for normal event. Number 1 N
    isHidePrice (*) A configurable flag to instruct client app to hide price value. Default value is 0 so no need to hide price value. Number 1 N
    evoucherEvent (*) The flag to indicate if this event is selling evoucher. Default value is 0 which means is a normal event. Number 1 N
    isEventWithSurvey (*) A configurable flag to indicate if event is configured with custom data form. Default value is 0 for no custom data form. Number 1 N

    2.3.2.2 SeatMap object

    Name Description on attribute Data Type Length / Data Range Nullable
    priceCatAlias Service response code String 100 Y
    seatLevel List of Seat level object List of seatLevel JSON object - -
    priceCatAmount Price category amount Monetary JSON object - -

    2.3.2.3 SeatLevel object

    Name Description on attribute Data Type Length / Data Range Nullable
    seatLevelAlias level code String 100 Y
    SeatSectionId section id

    Unique key for seat section
    Number 10 N
    seatSectionAlias section code String 100 Y
    seatSectionType Section type String 100 Y
    seatEntrance Entrance door number String 255 Y
    priceCategoryNum Price category number Number 10 Y
    priceCategoryId Price category id

    Unique key for seat section
    Number 10 N
    price Monetary JSON object Monetary JSON object - N
    redeem Flag for ticket redeem Boolean 5 Y
    coordinatesList Seat Section coordinates for mapping purpose.
    Note: Require backend configuration.
    List - Y

    2.3.2.3 Monetary Object

    Name Description on attribute Data Type Length / Data Range Nullable
    amount Amount Number 10 N
    currency Currency code

    Default to SGD for SISTIC Tenant.
    Number 3 N
    formatted Formatted amount String 100 Y

    2.3.3 Price Category Number Colors

    Map the following colors with the response value of priceCategoryNum in 2.3.2.2 SeatLevel Object

    priceCategoryNum Color
    1 #FECD84
    2 #A5C7F5
    3 #71BA64
    4 #D097F0
    5 #F7F19F
    6 #B5EDF3
    7 #D9C297
    8 #A6F0B9
    9 #FB9CC0
    10 #D6CC1B
    11 #929E92
    12 #4AD1B1
    13 #8C65A0
    14 #A80717
    15 #FF0049
    16 #D89D61
    17 #3D7717
    18 #AE9FD6
    19 #EC826A
    20 #FFC7CE

    2.4 Get Seat Section Availability

    Each event may consist of multiple seat section, this API endpoint will return the Availability Status on all section for a given product ID. Supported Seat Section Availability Status:

    Sample Request:

    curl --request GET \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/products/973113/seatmap/availability' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    Status: 200. Return the Availability Status on all section for a given product ID

    [
        {
            "seatSectionId": 129804,
            "priceCategoryId": 59165,
            "seatSectionAvailability": 0
        },
        {
            "seatSectionId": 129804,
            "priceCategoryId": 59164,
            "seatSectionAvailability": 0
        },
        {
            "seatSectionId": 129801,
            "priceCategoryId": 59160,
            "seatSectionAvailability": 2
        },
        {
            "seatSectionId": 128844,
            "priceCategoryId": 59158,
            "seatSectionAvailability": 1
    } 
    ]
    

    Errors

    Status: 500. Internal Server Error

    {
     "httpStatus": "500", 
     "errorTime":"2017-07-01T16:53:26.535+08:00",
     "exceptionName":" java.lang.NullPointerException",
     "statusMessage": "NullPointerException: ",
     "url" : "https://api.stixcloud.com/api/v0/SISTIC/icc"
    }
    

    2.4.1 Request

    You must replace {tenant} with your Tenant code and {productId} retrieved from Get Event Show Date & Time

    2.4.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] tenant id given
    productId Number [required] Unique identifier to identify each product.
    promoCode String [optional] Use for Private Link purpose. Note: Not in used for this module.

    2.4.3 Data model

    2.4.4.1 Response object

    Name Description on attribute Data Type Length / Data Range Nullable
    httpStatus Service response code

    500
    String 255 N
    statusMessage Service response status message String 255 Y
    url Service request url

    API endpoint
    String 255 Y
    exceptionName Exception class name String 255 Y
    exceptionCode Sistic defined exception code for multi-language purpose String 255 Y
    errorTime Exception datetime

    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    seatAvailibilityList List of seatAvailability object List of seatAvailibility JSON object - -

    2.4.4.2 Seat Section Availability object

    Name Description on attribute Data Type Length / Data Range Nullable
    seatSectionId Seat Section Details Number 10 N
    priceCategoryId Price Category Details Number 10 Y
    seatSectionAvailability Seat Availability Status code

    0 => Sold Out
    1 => Available
    2 => Limited Seats
    3 => Single Seat
    Number 10 N

    2.5 Seat Offer (Applicable for Reserved Seating Event Only)

    Seat Offer API supports the following two Seat Offer Mode:

    HS (Hot Show) Mode
    If you are looking for the exact Quantity of seat offer mechanism you may consider HS mode which offer you exactly 1 set of seat(s).

    BA (Best Avalaible) Mode
    If you are requesting for 2 seats (Quantity=2), system will assign 2 SET of Best Available seats based on ordered seat ranking defined backend, thus 4 Best Available seats will be returned.

    Do take note to call Release Seat API to release the unused seats.

    3D Seatmap Image
    By default system will return the 3D Seatmap image & seat coordinates, these info can be used to render the selected seats for HS/BA Seat Offer mode.

    2D Seatmap Image (Preferred option)

    If 2DSeatmap has value '1', 2D seatmap image will be rendered with seat number as an overlay, example as below.

    Social Distancing
    Due to COVID-19, we introduced new block seats feature to support social distancing. When the event is configured with Social Distancing Enabled and the user has selected 2 seats, the pre-configured surrounding seats will be blocked off so that there is no one else can purchase the block seats.

    Note: Do take note that the social distancing feature is in Beta version and currently is supporting Best Available(BA) or HS seat offer mode with 1 set of seat only.

    Sample Request BA (Best Available) Mode:

    curl --request GET \
      --url 'https://api.stixcloud.com/api/v0/{tenant}/products/{productId}/seatmap/availability?priceCatId={priceCatId}&seatSectionId={seatSectionId}&mode=BA&quantity=1' \
      --header 'authorization: Bearer <Acess-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    Status: 200. Seat Offer with BA Mode

    {
        "reservedTime": "2018-04-03T15:03:20.451+08:00",
        "expirationTime": "2018-11-08T14:42:03.237+08:00",
        "imageAvailable": 1,
        "viewFromSeatAvailable": 0,
        "seatSelectedType": "IO",
        "imageURL": "/public/SISTIC/SeatmapMapping/3088/EsplanadeConcertHall_FoyerStalls_Cat4.jpg",
        "overlayImagePath": "/SisticWebApp/images",
        "setsReservedList": [
            {
                "setsReserved": [
                    {
                        "inventoryId": 178886000,
                        "seatRowAlias": "DD",
                        "seatAlias": "46",
                        "seatType": 1,
                        "topLeftCoordinates": "645,310",
                        "seatAngle": "310",
                        "coordinates": "656,310,645,324,659,336,670,322",
                        "isGroupBookingReserved": false
                    }
                ]
            },
            {
                "setsReserved": [
                    {
                        "inventoryId": 178885981,
                        "seatRowAlias": "DD",
                        "seatAlias": "47",
                        "seatType": 1,
                        "topLeftCoordinates": "656,297",
                        "seatAngle": "310",
                        "coordinates": "667,297,656,310,670,322,681,309",
                        "isGroupBookingReserved": false
                    }
                ]
            }
        ],
        "seatsAvailableList": [],
        "seatsUnavailableList": [],
        "groupBookingSeatList": [],
        "sectionAlias": "Foyer Stalls"
    } 
    

    Sample Request HS (Hot Show) Mode:

    curl --request GET \
      --url 'https://api.stixcloud.com/api/v0/{tenant}/products/{productId}/seatmap/availability?priceCatId={priceCatId}&seatSectionId={seatSectionId}&mode=HS&quantity=1' \
      --header 'authorization: Bearer <Acess-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    Status: 200. Seat Offer with HS Mode

    {
        "reservedTime": "2018-04-03T15:03:20.451+08:00",
        "expirationTime": "2018-11-08T14:42:03.237+08:00",
        "imageAvailable": 1,
        "viewFromSeatAvailable": 0,
        "seatSelectedType": "IO",
        "imageURL": "/public/SISTIC/SeatmapMapping/3088/EsplanadeConcertHall_FoyerStalls_Cat4.jpg",
        "overlayImagePath": "/SisticWebApp/images",
        "setsReservedList": [
            {
                "setsReserved": [
                    {
                        "inventoryId": 178886000,
                        "seatRowAlias": "DD",
                        "seatAlias": "46",
                        "seatType": 1,
                        "topLeftCoordinates": "645,310",
                        "seatAngle": "310",
                        "coordinates": "656,310,645,324,659,336,670,322",
                        "isGroupBookingReserved": false
                    }
                ]
            }
        ],
        "seatsAvailableList": [],
        "seatsUnavailableList": [],
        "groupBookingSeatList": [],
        "sectionAlias": "Foyer Stalls"
    } 
    

    Sample Request BA (Best Available) 2DSeatmap Mode:

    curl --request GET \
      --url 'https://api.stixcloud.com/api/v0/{tenant}/products/{productId}/seatmap/availability?priceCatId={priceCatId}&seatSectionId={seatSectionId}&mode=BA&quantity=1&2DSeatmap=1' \
      --header 'authorization: Bearer <Acess-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    Status: 200. Seat Offer with BA 2DSeatmap Mode

    {
        "reservedTime": "2020-01-10T13:41:22+08:00",
        "imageAvailable": 1,
        "viewFromSeatAvailable": 0,
        "seatSelectedType": "IO",
        "imageURL": "/public/SISTIC/EventManagement/1153783/image_overview_29569460_307593690.jpg",
        "overlayImagePath": "/SisticWebApp/images",
        "setsReservedList": [
            {
                "setsReserved": [
                    {
                        "inventoryId": 307593690,
                        "seatRowAlias": "FF",
                        "seatAlias": "17",
                        "seatType": 1,
                        "topLeftCoordinates": "306,54",
                        "seatAngle": "0",
                        "coordinates": "306,54,323,72",
                        "isGroupBookingReserved": false
                    }
                ]
            },
            {
                "setsReserved": [
                    {
                        "inventoryId": 307593683,
                        "seatRowAlias": "GG",
                        "seatAlias": "16",
                        "seatType": 1,
                        "topLeftCoordinates": "299,77",
                        "seatAngle": "0",
                        "coordinates": "299,77,316,95",
                        "isGroupBookingReserved": false
                    }
                ]
            }
        ],
        "seatsAvailableList": [],
        "seatsUnavailableList": [],
        "groupBookingSeatList": [],
        "sectionAlias": "Circle 2"
    }
    

    Sample Request BA (Best Available) Mode when Social Distancing is enable

    curl --request GET \
      --url 'https://api.stixcloud.com/api/v0/{tenant}/products/{productId}/seatmap/availability?priceCatId={priceCatId}&seatSectionId={seatSectionId}&mode=BA&quantity=1' \
      --header 'authorization: Bearer <Acess-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    Status: 200. Seat Offer with BA Mode when Social Distancing is enabled

    {
        "timeLeftSeconds": 900,
        "detailSeatmapResponse": {
            "reservedTime": "2020-09-01T15:53:36+08:00",
            "imageAvailable": 1,
            "viewFromSeatAvailable": 0,
            "seatSelectedType": "IO",
            "imageURL": "/public/SISTIC/SeatmapMapping/7714/Stalls.jpg",
            "overlayImagePath": "/SisticWebApp/images",
            "setsReservedList": [
                {
                    "setsReserved": [
                        {
                            "inventoryId": 380220556,
                            "seatRowAlias": "A",
                            "seatAlias": "8",
                            "seatType": 1,
                            "topLeftCoordinates": "205,84",
                            "seatAngle": "5",
                            "coordinates": "205,84,223,84,223,102,205,101",
                            "isGroupBookingReserved": false
                        },
                        {
                            "inventoryId": 380220552,
                            "seatRowAlias": "A",
                            "seatAlias": "9",
                            "seatType": 1,
                            "topLeftCoordinates": "223,84",
                            "seatAngle": "0",
                            "coordinates": "223,84,232,84,241,84,241,102,223,103",
                            "isGroupBookingReserved": false
                        }
                    ],
                    "setsNeighbours": [
                        {
                            "inventoryId": 380220564,
                            "seatRowAlias": "A",
                            "seatAlias": "7",
                            "seatType": 1,
                            "topLeftCoordinates": "188,82",
                            "seatAngle": "5",
                            "coordinates": "189,82,206,83,204,101,188,100",
                            "isGroupBookingReserved": false
                        },
                        {
                            "inventoryId": 380220554,
                            "seatRowAlias": "A",
                            "seatAlias": "10",
                            "seatType": 1,
                            "topLeftCoordinates": "241,84",
                            "seatAngle": "355",
                            "coordinates": "241,84,258,84,259,101,241,102",
                            "isGroupBookingReserved": false
                        },
                        {
                            "inventoryId": 380220527,
                            "seatRowAlias": "B",
                            "seatAlias": "8",
                            "seatType": 1,
                            "topLeftCoordinates": "196,111",
                            "seatAngle": "5",
                            "coordinates": "196,111,214,112,214,131,196,130",
                            "isGroupBookingReserved": false
                        },
                        {
                            "inventoryId": 380220525,
                            "seatRowAlias": "B",
                            "seatAlias": "9",
                            "seatType": 1,
                            "topLeftCoordinates": "214,112",
                            "seatAngle": "0",
                            "coordinates": "214,112,232,113,232,131,214,131",
                            "isGroupBookingReserved": false
                        },
                        {
                            "inventoryId": 380220524,
                            "seatRowAlias": "B",
                            "seatAlias": "10",
                            "seatType": 1,
                            "topLeftCoordinates": "232,112",
                            "seatAngle": "0",
                            "coordinates": "232,113,250,112,249,131,232,131",
                            "isGroupBookingReserved": false
                        }
                    ]
                }
            ],
            "seatsAvailableList": [],
            "seatsUnavailableList": [],
            "groupBookingSeatList": [],
            "sectionAlias": "Stall"
        }
    }
    

    Errors

    Http Code: 400. Note: This exception occurs when system is busy allocating seat and hit the timeout ratio.

    {
    "httpStatus": "400",
     "errorCode": "error.product.detail-seatmap.system-allocation-busy",
     "errorTime":"2017-07-01T16:53:26.535+08:00",
     "exceptionName":"SisticApiInternalErrorException",
     "statusMessage": "System is busy allocating seat the seat please try again",
     "url" : "https://api.stixcloud.com/api/v0/SISTIC/products/973113/seatmap/availability"
    }
    

    Http Code: 400. Note: This exception occurs when system detects there is a missing coordinate due to config issue

    {
    "httpStatus": "400",
     "errorCode": "error.product.detail-seatmap.generation.coordinate.missing",
     "errorTime":"2017-07-01T16:53:26.535+08:00",
     "exceptionName":"SisticApiInternalErrorException",
     "statusMessage": "Missing seatmap properties - coordinates"
       "url" : "https://api.stixcloud.com/api/v0/SISTIC/products/973113/seatmap/availability"
    }
    

    Http Code: 400. Note: This exception occurs when system detects there is a missing SEAT ANGLE due to config issue.

    {
     "httpStatus": "400",
     "errorCode": "error.product.detail-seatmap.generation.seatangle.missing",
     "errorTime":"2017-07-01T16:53:26.535+08:00",
     "exceptionName":"SisticApiInternalErrorException",
     "statusMessage": "Missing seatmap properties - seat angles"
     "url" : "https://api.stixcloud.com/api/v0/SISTIC/products/973113/seatmap/availability"
    }
    

    Http Code: 500. Internal Server Issue

    {
     "httpStatus": "500", 
     "errorTime":"2017-07-01T16:53:26.535+08:00",
     "exceptionName":" java.lang.NullPointerException",
     "statusMessage": "NullPointerException: ",
     "url" : "https://api.stixcloud.com/api/v0/SISTIC/icc"
    }
    

    2.5.1 Request

    You must replace tenant with your Tenant code and productId retrieved from Get Event Show Date & Time

    Supply additional required/optional parameters for the http request, priceCatId, seatSectionId, mode, quantity and promoCode.

    2.5.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] tenant id given
    productId Number [required] Unique identifier to identify each product.
    priceCatId Number [required] Price Category ID of a product. This value can be obtained through the Get Event Overview Seat API call.
    seatSectionId Number [required] Seat Section ID of a product. This value can be obtained through the Get Event Overview Seat API call.
    mode String [required] Two supported mode which is "BA" or "HS"
    quantity Number [required] Number of seats you wish to get.
    2DSeatmap String [optional] If 2DSeatmap has value '1', 2D seatmap image will be rendered with seat number as an overlay.
    promoCode String [optional] Use for Private Link purpose.
    Note: Not in used for this module.

    2.5.3 Data model

    2.5.3.1 Response object

    Name Description on attribute Data Type Length / Data Range Nullable
    httpStatus Service response code String 255 N
    statusMessage Service response status message String 255 Y
    url Service request url String 255 Y
    exceptionName Exception class name String 255 Y
    exceptionCode Sistic defined exception code for multi-language purpose String 255 Y
    errorTime Exception datetime String 25 Y
    imageAvailable Flag to indicate if Detail Seat Map is available Number - -
    imageURL Detail Seat Map Image URL Please refer to 1.4 Image Resource Endpoint String
    overlayImagePath Note: Not in used for this module. String
    seatSelectedType Note: Not in used for this module. String
    setsReservedList List of Reserved Seat(s) Info JSON object
    seatsAvailableList List of Available Seat(s) Info JSON object
    seatsUnavailableList List of Unavailable Seat(s) Info JSON object
    groupBookingSeatList List of Group Booking Seat(s)
    Note: Not in used for this module.
    JSON object
    sectionAlias Section Name String
    reservedTime The time when seats are being reserved in the system.
    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    expirationTime The time when seats reservations are expired in the system.
    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    viewFromSeatAvailable Note: Not in used for this module. Number

    2.5.3.2 setsReservedList object

    Name Description on attribute Data Type Length / Data Range Nullable
    setsReserved List of seat information JSON object -
    setsNeighbours List of surrounding seats. This object is returned only when event is social distancing enabled and reserved seats have surrounding seats JSON object -

    2.5.3.3 Seat object

    Name Description on attribute Data Type Length / Data Range Nullable
    inventoryId Inventory id Number
    seatRowAlias Seat Row Alias String
    seatAlias Seat Alias String
    seatType Seat type Number
    topLeftCoordinates Seat coordinates from top left String
    seatAngle Seat angle Number
    coordinates Seat coordinates String 255
    isGroupBookingReserved Is Seat reserved for group booking
    Note: Not in used for this module.
    Boolean 2

    2.5.3.4 SeatUnavailable object

    Name Description on attribute Data Type Length / Data Range Nullable
    topLeftCoordinates Top Left coordinates for the seat String
    seatAngle Seat angle Number
    coordinates Seat coordinates String

    2.6 Release Seat (Applicable for Reserved Seating Event only)

    This API endpoint is only used when you need to release a particular reserved seat. This could happen when you make a SEAT OFFER API called in BA mode which you will get 2 set of seats and you only need to retain 1 set, so you will need to call this Release Seat API endpoint to release another set of reserved seats by passing in the Seat Inventory ID.

    Sample Request:

    curl --request POST \
      --url https://api.stixcloud.com/api/v0/{tenant}/products/{productID}/seats \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '  {
          "releasedSeatList":[178884948]
      }'
    

    The above command returns JSON structured like this:

    Status: 200. Release seats successfully

    {
      "status" : 0,
      "statusMessage" : "SUCCESS",
      "reservedTime" : "2018-04-02T21:32:46.014+08:00" 
    }
    

    Status: 200. Release seats unsuccessful

    {
      "status": "1",
      "statusMessage": "Error releasing seats",
    }
    

    2.6.1 Request

    You must replace tenant with your tenant code and productId retrieved from Get Events API

    2.6.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] tenant id given
    productId Number [required] Unique identifier to identify each product.

    2.6.3 Request Body

    Name Description on attribute Data Type Length / Data Range Nullable
    releasedSeatList List of seat inventory ID to be released Array List of Number - N

    2.6.4 Data model

    2.6.4.1 Response object

    Name Description on attribute Data Type Length / Data Range Nullable
    reservedTime Seat reserved time String Y
    statusMessage Service response status message String 255
    status Service response status String

    2.7 Get Ticket Type

    This API end point will return all the available Ticket Pricing tie to this particular channel as well as the configured booking fee (service fee).

    Sample Request

    curl --request GET \
      --url 'https://api.stixcloud.com/api/v0/{tenant}/products/{productID}/tickettype?priceCatId=52632' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    Status: 200. Retrieve the event overview seat map based on the product ID

    [
        {
            "priceClassId": 378981,
            "priceClassCode": "A",
            "priceClassAlias": "Standard",
            "priceValueAmount": {
                "amount": 38.4,
                "currency": "SGD",
                "formatted": "$38.40"
            },
            "availableQty": "1,2,3,4,5,6,7,8,9,10,11,12",
            "passwordRequired": 0,
            "feeList": [
                {
                    "code": "Service Fee",
                    "charge": {
                        "amount": 3,
                        "currency": "SGD",
                        "formatted": "$3.00"
                    }
                }
            ]
        },
        {
            "priceClassId": 378981,
            "priceClassCode": "LH",
            "priceClassAlias": "Early Bird",
            "priceValueAmount": {
                "amount": 70.4,
                "currency": "SGD",
                "formatted": "$70.40"
            },
            "availableQty": "1,2,3,4,5,6,7,8,9,10,11,12",
            "passwordRequired": 1,
            "feeList": [
                {
                    "code": "Service Fee",
                    "charge": {
                        "amount": 4,
                        "currency": "SGD",
                        "formatted": "$4.00"
                    }
                }
            ]
        },
        {
            "priceClassId": 378981,
            "priceClassCode": "LH",
            "priceClassAlias": "Early Bird",
            "priceValueAmount": {
                "amount": 70.4,
                "currency": "SGD",
                "formatted": "$70.40"
            },
            "availableQty": "1,2,3,4,5,6,7,8,9,10,11,12",
            "passwordRequired": 1,
            "feeList": [
                {
                    "code": "Service Fee",
                    "charge": {
                        "amount": 4,
                        "currency": "SGD",
                        "formatted": "$4.00"
                    }
                }
            ]
        },
        {
            "priceClassId": 587843,
            "priceClassCode": "H1",
            "priceClassAlias": "Mastercard Exclusive",
            "priceValueAmount": {
                "amount": 26.25,
                "currency": "SGD",
                "formatted": "$26.25"
            },
            "availableQty": "1,2,3,4,5,6,7,8,9,10,11,12",
            "passwordRequired": 0,
            "feeList": [
                {
                    "code": "Service Fee",
                    "charge": {
                        "amount": 3,
                        "currency": "SGD",
                        "formatted": "$3.00"
                    }
                }
            ],
            "binRange": [
                {
                    "startDigits": "520000",
                    "remainingDigits": "10"
                },
                {
                    "startDigits": "520001",
                    "remainingDigits": "10"
                },
            ]
        }
    ]
    

    Errors

    Error Code 400: Invalid Package Type Class Type

    {
     "httpStatus": "400",
     "errorCode": "error.product.package.classtype.invalid",
     "errorTime":"2017-07-01T16:53:26.535+08:00",
     "exceptionName":"com.stixcloud.common.exception.SisticApiException",
     "statusMessage": "Invalid Package Class Type.",
     "url" : "https://api.stixcloud.com/api/v0/SISTIC/products/270784/tickettype"
    }
    

    Error Code 500: Internal System Error

    {
     "httpStatus": "500",
     "errorCode": "error.sistic.internal",
     "errorTime":"2017-07-01T16:53:26.535+08:00",
      "exceptionName":"com.stixcloud.common.exception.SisticApiException",
     "statusMessage": "Internal system error. Please try again later",
     "url" : "https://api.stixcloud.com/api/v0/SISTIC/products/270784/tickettype"
    }
    

    2.7.1 Request

    You must replace tenant with your tenant code and productId retrieved from Get Events API

    2.7.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] Tenant ID given
    productId Number [required] Unique identifier to identify each product.
    priceCatId Number [Optional] Price Category ID of a product. This value can be obtained through the Get Event Overview Seat API
    promoCode String [Optional] Use for Private Link purpose.
    Note: Not in used for now

    2.7.3

    2.7.3.1 Response Object

    Name Description on attribute Data Type Length / Data Range Nullable
    priceClassList List of price class details

    200,400 or 500
    List of priceClass object - N
    httpStatus Service response code String 255
    statusMessage Service response status message String 255 Y
    url Service request url

    API endpoint
    String 255 Y
    exceptionName Exception class name String 255 Y
    exceptionCode Sistic defined exception code for multi-language purpose String 255 Y
    errorTime Exception datetime

    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y

    2.7.3.2 PriceClass Object

    Name Description on attribute Data Type Length / Data Range Nullable
    priceClassCode Price class code String 255 N
    priceClassAlias Price class alias String 255 Y
    priceValueAmount Unit price JSON Monetary Object - N
    feeList List of fee object List of fee JSON Object - Y
    availableQty Adjust ticket quantity selection based with this property.
    Ex) 1,2,3,4,5,6,7,8
    4,8,12
    String 255 Y
    priceClassId Price Class ID Long N
    passwordRequired Flag to indicate if the price class require to input password.

    Integer Y
    binRange list of creditCardRange object. This will be used for validating the credit card used is applicable for the certain priceClass List of creditCardRange Object Y

    2.7.3.3 Fee Object

    Name Description on attribute Data Type Length / Data Range Nullable
    code Fee code String 255 N
    charge Monetary object Monetary JSON object 10 N

    2.7.3.4 Monetary Object

    Name Description on attribute Data Type Length / Data Range Nullable
    amount Amount Number 10 N
    currency Currency code

    Default to SGD for SISTIC Tenant.
    Number 3 N
    formatted Formatted amount String 100 Y

    2.7.3.5 creditCardRange object

    Name Description on attribute Data Type Length / Data Range Nullable
    startDigits startDigits of a credit card. Example for Mastercard 520000. String 25 N
    remainingDigits This value specify the remaining digits for the credit card validation. Example: 10 String 5 N

    2.8 Add/Get/Delete Cart

    2.8.1 Add to Cart

    This method will create a cart with the cart item details supplied. This will return a cartGuid which is a unique id which that will be used in updating or retrieving the cart object.

    Note: (*) indicate the field is not being used for standard sales flow.

    Sample request when creating an Empty Cart with GA mode

    curl --request POST \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/cart' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
        "cartGuid" : "",
        "productId" : 1165268,
        "priceClassMap" : "A:1",
        "priceCatId" : 107389,
        "seatSectionId" : 25829788,
        "mode" : "GA"
      }'
    

    Sample request when creating an Empty Cart with RS mode

    curl --request POST \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/cart' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
        "cartGuid" : "",
        "productId" : 1162124,
        "priceClassMap" : "A:2",
        "priceCatId" : 107392,
        "seatSectionId" : 25822531,
        "mode" : "BA",
        "inventoryList": [
            352375735, 352375736
        ]
      }'
    

    Sample request when creating an Empty Cart with promoPassword

    curl --request POST \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/cart' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
        "cartGuid" : "",
        "productId" : 1162124,
        "priceClassMap" : "A:1|promotion112233",
        "priceCatId" : 107392,
        "seatSectionId" : 25822531,
        "mode" : "BA",
        "inventoryList": [
            352375735, 352375736
        ]
      }'
    

    Sample request for when updating an existing cart by providing cartGuid

    curl --request POST \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/cart' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
        "cartGuid" : "6b36b0c0-1f8f-4e0d-86a8-5423650a823ba",
        "productId" : 1162124,
        "priceClassMap" : "A:1",
        "priceCatId" : 107392,
        "seatSectionId" : 25822531,
        "mode" : "GA"
      }'
    

    The above command returns JSON structured like this:

    Status: 200.

    {
      "httpStatus": "200",
      "statusMessage": "Add to Cart Successful",
      "expiryTime": "2020-05-13T14:49:20+08:00",
      "cartGuid": "6cce25bc-a5f6-46fd-a03c-2db10010f1ef"
    }
    

    Errors

    Error Code 400: Note : This error occurs when the cartGuid does not exist.

    {
      "httpStatus": "400",
      "errorCode": "error.cart.add-to-cart.fail",
      "exceptionName": "com.stixcloud.cart.AddToCartException",
      "statusMessage": "Add to Cart Failed.",
      "errorTime": "2020-05-22T01:27:43.981+08:00",
      "url": "https://api.stixcloud.com/api/v0/SISTIC/cart"
    }
    

    Error Code 400: Note : This error occurs when the seatInventories does not match the product selection.

    {
      "httpStatus": "400",
      "errorCode": "error.cart.inventory.retrieve.fail",
      "exceptionName": "com.stixcloud.cart.AddToCartException",
      "statusMessage": "unable to retrieve inventories due to inventoryId/productId/sectionId/priceCatId mismatch",
      "errorTime": "2020-05-22T00:54:48.532+08:00",
      "url": "https://api.stixcloud.com/api/v0/SISTIC/cart"
    }
    

    Error Code: 400. Note : This error occurs when there's no seat available.

    {
        "httpStatus": "400",
        "errorCode": "error.cart.inventory.seat.insufficient",
        "exceptionName": "com.stixcloud.cart.AddToCartException",
        "statusMessage": "Failed to find seats for GA.",
        "errorTime": "2018-04-27T14:03:49.344+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note : This errors occurs when promo password is empty

    {
        "httpStatus": "400",
        "errorCode": "error.cart.promo.code.popup.text",
        "errorDetails": [
            {
                "code": "error.cart.promo.password.empty",
                "details": {
                    "priceClassCode": "NE",
                    "priceClassName": "10% Discount for Singtel (Pavilion)"
                }
            }
        ],
        "exceptionName": "com.stixcloud.cart.AddToCartException",
        "statusMessage": "Invalid Promo Code entered!",
        "errorTime": "2018-05-15T16:42:01.194+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note : This error occurs when uses promo password more one time usage

    {
        "httpStatus": "400",
        "errorCode": "error.cart.promo.code.popup.text",
        "errorDetails": [
            {
                "code": "error.cart.promo.password.quota-reached",
                "details": {
                    "priceClassCode": "NE",
                    "priceClassName": "10% Discount for Singtel (Pavilion)"
                }
            }
        ],
        "exceptionName": "com.stixcloud.cart.AddToCartException",
        "statusMessage": "Invalid Promo Code entered!",
        "errorTime": "2018-05-15T10:49:20.988+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note: This error occurs when the quota has been reached.

    {
      "httpStatus": "400",
      "errorCode": "error.cart.postcommit.exceed-quota",
      "exceptionName": "com.stixcloud.cart.AddToCartException",
      "statusMessage": "Exceeded quota for cart",
      "errorTime": "2019-08-01T16:00:32.57+08:00",
      "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note: This errors occurs when use invalid promo password

    {
        "httpStatus": "400",
        "errorCode": "error.cart.promo.code.popup.text",
        "errorDetails": [
            {
                "code": "error.cart.promo.password.incorrect",
                "details": {
                    "priceClassCode": "NE",
                    "priceClassName": "10% Discount for Singtel (Pavilion)"
                }
            }
        ],
        "exceptionName": "com.stixcloud.cart.AddToCartException",
        "statusMessage": "Invalid Promo Code entered!",
        "errorTime": "2018-05-15T16:37:49.962+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    2.8.1.1 Request

    You must replace tenant with your tenant code.

    2.8.1.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] Tenant ID given

    2.8.1.2 Data Model

    2.8.1.2.1 Request Object

    Name Description on attribute Data Type Length / Data Range Nullable
    cartGuid cartGuid is a unique ID assigned for the cart. If creating an empty cart, set the value to an empty String (""). When updating an existing cart, a cartGuid must be filled String N
    productId Product Id
    Unique key for product
    Number N
    priceClassMap priceClassMap with the format {priceClassCode}:{qty} . If a promoPassword is required for a certain priceClassCode, the format is {priceClassCode}:{qty}!{promoPassword} String N
    priceCatId Price Category Id of a product. This value can be obtained through the Get Event Overview Seat API call. Number N
    seatSectionId Seat Section Id of a product. This value can be obtained through the Get Event Overview Seat API call. Number N
    mode Mode for the seat selection either GA/HS/SP/BA String N
    inventoryList Set of reserved seats Ids. This value is optional for GA event Set Y

    2.8.1.2.2 Response Object

    Name Description on attribute Data Type Length / Data Range Nullable
    httpStatus Service response code
    200, 400 or 500
    String 255 N
    statusMessage Service response status message
    Add to Cart Successful
    String 255 N
    expiryTime The time when your seat reservation is expired in the system.
    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    N
    cartGuid cartGuid is a unique Id for the created cart String 255 N

    2.8.2 Get Cart

    This will return cart items and the available Payment Methods and Delivery Methods for the cart.

    Sample Request when retrieving cart information.

    curl --request GET \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/cart/{cartGuid}' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json'
    

    The above command returns JSON structured like this:

    Status: 200.

    {
      "expiryTime": "2020-05-19T01:18:48+08:00",
      "lineItemList": [
        {
          "cartItemId": "cf8338f3-2de0-4d91-b65a-b805d4b43a25",
          "product": {
            "productId": 1103955,
            "productName": "JUDAS PRIEST Fire Power World Tour 2018 (Test)",
            "productDate": "2030-03-31T20:00:00+08:00",
            "level": "3",
            "section": "FREE STANDING",
            "seatNo": [],
            "productType": "GA",
            "venue": "Zepp@BIGBOX Singapore"
          },
          "priceclass": {
            "priceClassCode": "A",
            "priceClassName": "Standard"
          },
          "pricecatid": 74164,
          "quantity": 1,
          "unitPrice": {
            "amount": 158,
            "currency": "SGD",
            "formatted": "$158.00"
          },
          "bookingFee": {
            "amount": 4,
            "currency": "SGD",
            "formatted": "$4.00"
          },
          "subTotal": {
            "amount": 162,
            "currency": "SGD",
            "formatted": "$162.00"
          },
          "isGroupBookingLineItem": false,
          "isMembership": false,
          "isIdRedemption": false,
          "isHidePrice": false,
          "isEvoucherEvent": false,
          "promoterNameList": [],
          "evoucherCodeList": [],
          "isEventWithSurvey": false,
          "isShowEndTime": false
        }
      ],
      "lineItemTotal": {
        "amount": 162,
        "currency": "SGD",
        "formatted": "$162.00"
      },
      "commonPaymentMethod": {
        "paymentMethodList": [
          {
            "code": "API_VISA"
          },
          {
            "code": "API_AMEX"
          },
          {
            "code": "API_CUP"
          },
          {
            "code": "API_DINERS"
          },
          {
            "code": "API_JCB"
          },
          {
            "code": "API_MASTER"
          },
          {
            "code": "API_OTHERS"
          }
        ]
      },
      "commonDeliveryMethod": {
        "deliveryMethodList": [
          {
            "code": "E_TICKET",
            "charge": {
              "amount": 0,
              "currency": "SGD",
              "formatted": "$0.00"
            },
            "order": 1,
            "addressRequired": false,
            "feeWaived": false
          }
        ]
      },
      "currencyUnit": "SGD"
    }
    

    Errors

    Error Code 400: Note: This error occurs when the cart is not found.

    {
      "httpStatus": "400",
      "errorCode": "error.cart.not-found",
      "exceptionName": "com.stixcloud.cart.CartException",
      "statusMessage": "Cart not found.",
      "errorTime": "2020-05-22T01:46:09.926+08:00",
      "url": "https://api.stixcloud.com/api/v0/SISTIC/cart/47c68ed1-0687-4ec0-bad0-6cd9a82196de1"
    }
    

    2.8.2.1 Request

    You must replace tenant with your tenant code.

    2.8.2.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] Tenant ID given
    cartGuid String [required] cartGuid returned from Add to Cart

    2.8.2.3 Data Model

    2.8.2.3.1 Response Object

    Name Description on attribute Data Type Length / Data Range Nullable
    expiryTime expiryTime is the time that the cart will expire. Confirm Order should be done before the expiryTime
    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 255 N
    lineItemList Cart item separated by product, price class and seat row number per item JSON cartItem object - N
    lineItemTotal Total amount of line item JSON Monetary object - N
    commonPaymentMethod List of available PaymentMethod for the cart List of Payment Method - N
    commonDeliveryMethod List of available DeliveryMethod for the cart List of Delivery Method - N
    currencyUnit Currency code String 3 N

    2.8.2.3.2 cartItem Object

    Name Description on attribute Data Type Length/Data Range Nullable
    product Product details JSON productDetail object - N
    priceClass PriceClass object JSON priceClass object - N
    quantity Ticket quantity Number 10 N
    unitPrice Unit price for ticket JSON Monetary object - N
    subTotal Subtotal for price class
    Summation of ticket

    (unitPrice + bookingFee) * quantity
    JSON Monetary object - N
    cartItemId Unique identifier of shopping cart String N
    bookingFee Also known as service fee JSON Monetary object N
    pricecatid Price category Id Number - N
    isGroupBookingLineItem (*) A Flag to indicate this line item is reserve for a friend. The default value is 0 when is a nongroup booking line item. Boolean 5 N
    isMembership (*) A flag indicates this line item is a membership event(). The default value is 0, which means this is a normal event. Boolean 5 N
    isIdRedemption (*) A flag indicates this line item will be waived. The default value is 0, which means the line item will not be waived. Boolean 5 N
    isHidePrice (*) A configurable flag to instruct the client app to hide price value. The default value is 0, so no need to hide the price. Boolean 5 N
    promoterNameList List of promoter names that the line item event tie to. String 255 N
    isEvoucherEvent (*) A flag indicates this line item is an e-voucher event. The default value is 0, which means is a normal event. Boolean 5 N
    isEventWithSurvey (*) A flag indicates this line item event configured with a custom data form. The default value is 0, which means there is no custom data form. Boolean 5 N
    isShowEndTime A flag indicates this line item event needs to show the event end date. The default value is 0, so no need to show the event end date. Boolean 5 N

    2.8.2.3.3 ProductDetail Object

    Name Description on attribute Data Type Length/Data Range Nullable
    productId Product Id Number - N
    productName Product Name String 255 Y
    productDate Product Date
    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 N
    productEndDate The event end date
    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    level Venue Seating Level String 25 Y
    section Venue Seating Section String 255 Y
    row Seat row number String 25 N
    seatNo Seat number Array - N
    productType Product Type String 25 Y
    venue Venue String 255 N
    altDesc Additional information for hotel package events: check-in, check-out time, and the number of guests. String 255 Y
    gaSeqNumber GA event sequence number, by default this field will not be returned when the event is not configured. List - Y

    2.8.2.3.4 priceClass Object

    Name Description on attribute Data Type Length/Data Range Nullable
    priceClassCode Price class code String 255 N
    priceClassName Price class name String 255 Y

    2.8.2.3.5 monetary object

    Name Description on attribute Data Type Length / Data Range Nullable
    amount Amount Number 10 N
    currency Currency code String 25 N
    formatted Formatted amount String 255 N

    2.8.2.3.6 paymentMethod object

    Name Description on attribute Data Type Length / Data Range Nullable
    code Payment Method String 255 N

    2.8.2.3.7 deliveryMethod object

    Name Description on attribute Data Type Length / Data Range Nullable
    code Delivery method code. String 100 N
    charge Delivery amount Monetary object - N
    order Display ordering number Number - N
    addressRequired Flag to indicate if address is required. Boolean - N
    feeWaived Flag to indicate if the fee waiver is required.
    Default value is false
    Boolean - N

    Sample request when creating an Empty Cart with GA mode

    curl --request POST \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/cart' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
        "cartGuid" : "",
        "productId" : 1165268,
        "priceClassMap" : "A:1",
        "priceCatId" : 107389,
        "seatSectionId" : 25829788,
        "mode" : "GA"
      }'
    

    The above command returns JSON structured like this:

    Status: 200.

    {
      "httpStatus": "200",
      "statusMessage": "Add to Cart Successful",
      "expiryTime": "2020-05-13T14:49:20+08:00",
      "cartGuid": "6cce25bc-a5f6-46fd-a03c-2db10010f1ef"
    }
    

    Errors

    Error Code 400: Note : This error occurs when the cartGuid does not exist.

    {
      "httpStatus": "400",
      "errorCode": "error.cart.add-to-cart.fail",
      "exceptionName": "com.stixcloud.cart.AddToCartException",
      "statusMessage": "Add to Cart Failed.",
      "errorTime": "2020-05-22T01:27:43.981+08:00",
      "url": "https://api.stixcloud.com/api/v0/SISTIC/cart"
    }
    

    Error Code 400: Note : This error occurs when the seatInventories does not match the product selection.

    {
      "httpStatus": "400",
      "errorCode": "error.cart.inventory.retrieve.fail",
      "exceptionName": "com.stixcloud.cart.AddToCartException",
      "statusMessage": "unable to retrieve inventories due to inventoryId/productId/sectionId/priceCatId mismatch",
      "errorTime": "2020-05-22T00:54:48.532+08:00",
      "url": "https://api.stixcloud.com/api/v0/SISTIC/cart"
    }
    

    Error Code: 400. Note : This error occurs when there's no seat available.

    {
        "httpStatus": "400",
        "errorCode": "error.cart.inventory.seat.insufficient",
        "exceptionName": "com.stixcloud.cart.AddToCartException",
        "statusMessage": "Failed to find seats for GA.",
        "errorTime": "2018-04-27T14:03:49.344+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note : This errors occurs when promo password is empty

    {
        "httpStatus": "400",
        "errorCode": "error.cart.promo.code.popup.text",
        "errorDetails": [
            {
                "code": "error.cart.promo.password.empty",
                "details": {
                    "priceClassCode": "NE",
                    "priceClassName": "10% Discount for Singtel (Pavilion)"
                }
            }
        ],
        "exceptionName": "com.stixcloud.cart.AddToCartException",
        "statusMessage": "Invalid Promo Code entered!",
        "errorTime": "2018-05-15T16:42:01.194+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note : This error occurs when uses promo password more one time usage

    {
        "httpStatus": "400",
        "errorCode": "error.cart.promo.code.popup.text",
        "errorDetails": [
            {
                "code": "error.cart.promo.password.quota-reached",
                "details": {
                    "priceClassCode": "NE",
                    "priceClassName": "10% Discount for Singtel (Pavilion)"
                }
            }
        ],
        "exceptionName": "com.stixcloud.cart.AddToCartException",
        "statusMessage": "Invalid Promo Code entered!",
        "errorTime": "2018-05-15T10:49:20.988+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note: This error occurs when the quota has been reached.

    {
      "httpStatus": "400",
      "errorCode": "error.cart.postcommit.exceed-quota",
      "exceptionName": "com.stixcloud.cart.AddToCartException",
      "statusMessage": "Exceeded quota for cart",
      "errorTime": "2019-08-01T16:00:32.57+08:00",
      "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note: This errors occurs when use invalid promo password

    {
        "httpStatus": "400",
        "errorCode": "error.cart.promo.code.popup.text",
        "errorDetails": [
            {
                "code": "error.cart.promo.password.incorrect",
                "details": {
                    "priceClassCode": "NE",
                    "priceClassName": "10% Discount for Singtel (Pavilion)"
                }
            }
        ],
        "exceptionName": "com.stixcloud.cart.AddToCartException",
        "statusMessage": "Invalid Promo Code entered!",
        "errorTime": "2018-05-15T16:37:49.962+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    2.8.3 Delete cartItem in Cart

    This API call will delete a cartItem from an existing cart. cartGuid must be included in the paramemter and a unique cartItemId must be provided in the json request.

    Sample request when deleting a cartItem in an existing cart

    curl --request POST \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/cart/{cartGuid}' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
        "cartItemId" : "2acbfab3-baf4-4329-b9f5-b1e78cb87f1c",
        "priceClassCode" : "A"
      }'
    

    The above command returns JSON structured like this:

    Status: 200.

    {
      "httpStatus": "200",
      "statusMessage": "Deleted cart item id 2acbfab3-baf4-4329-b9f5-b1e78cb87f1c"
    }
    

    Errors

    Error Code 400: Note : This error occurs when the cartGuid is not found

    {
      "httpStatus": "400",
      "errorCode": "error.cart.not-found",
      "exceptionName": "com.stixcloud.cart.CartException",
      "statusMessage": "Cart not found.",
      "errorTime": "2020-05-25T03:27:28.153+08:00",
      "url": "https://api.stixcloud.com/api/v0/SISTIC/cart/c8f8638c-2643-4f35-87ca-57fa766900e11"
    }
    

    Error Code 400: Note : This error occurs when the cartItemId provided is not found

    {
      "httpStatus": "400",
      "errorCode": "error.cart.delete-item.item-id.invalid",
      "exceptionName": "com.stixcloud.cart.CartException",
      "statusMessage": "Invalid cart item id.",
      "errorTime": "2020-05-25T03:28:36.448+08:00",
      "url": "https://api.stixcloud.com/api/v0/SISTIC/cart/c8f8638c-2643-4f35-87ca-57fa766900e1"
    }
    

    Error Code 400: Note : This error occurs when the priceClassCode provided is invalid

    {
      "httpStatus": "400",
      "errorCode": "error.cart.delete-item.price-class-code.invalid",
      "exceptionName": "com.stixcloud.cart.CartException",
      "statusMessage": "Invalid price class code.",
      "errorTime": "2020-05-25T03:16:24.072+08:00",
      "url": "https://api.stixcloud.com/api/v0/SISTIC/cart/c8f8638c-2643-4f35-87ca-57fa766900e1"
    }
    

    2.8.3.1 Request

    You must replace tenant with your tenant code.

    2.8.3.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] Tenant ID given
    cartGuid String [required] cartGuid of the Cart

    2.8.3.2 Data Model

    2.8.3.2.1 Request Object

    Name Description on attribute Data Type Length / Data Range Nullable
    cartItemId cartItemId is a unique Id assigned to each item of the cartObject String N
    priceClassCode priceClassCode is a unique Id assigned to each item of the cartObject String N

    2.8.3.2.2 Response Object

    Name Description on attribute Data Type Length / Data Range Nullable
    httpStatus Service response code
    200, 400 or 500
    String 255 N
    statusMessage Service response status message
    Add to Cart Successful
    String 255 N

    2.9 Submit Pre Payment Order

    Submit a pre-payment purchase order to SISTIC and you will get a unique SISTIC Transaction Reference Number in return.

    The following steps will be carried out by this endpoint:

    1. Create a new patron account if given patron account information is not found, else will reuse existing patron account.

    2. Pass the selected delivery method from 2.8 Get Cart API

    3. Return unique SISTIC Transaction Reference Number and amount to be paid.

    4. Client App should proceed to make payment and call Confirm Order API endpoint upon payment is successful, else Cancel Order API endpoint should be executed if in the event client has chosen not to proceed further.

    Sample Request: Purchase order with Guest Account

    curl --request POST \
      --url ' https://api.stixcloud.com/api/v0/{tenant}/orders' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '
      {
      "cartGuid": "e33e0a5f-26ff-4d86-9a36-f46a93f6e02c",
      "patronInfo": {
          "patronType":"G",
          "email":"[email protected]"
      },
      "deliveryMethod": {
        "code": "E_TICKET",
        "charge": {
          "amount": 0.0,
          "currency": "SGD"
        }
      },
      "remarks": "John Doe - [email protected] - +6599994444"
    }
    '
    

    Sample Request: Purchase order with Guest Account w/ Contact Information

    curl --request POST \
      --url ' https://api.stixcloud.com/api/v0/{tenant}/orders' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '
      {
      "cartGuid": "e33e0a5f-26ff-4d86-9a36-f46a93f6e02c",
      "patronInfo": {
          "patronType":"G",
          "email":"[email protected]",
          "firstName": "John",
          "lastName": "Doe",
          "contacts": [
            {
              "contactType": "MOBILE",
              "areaCode": "+65",
              "phoneNumber": "99994444"
            }
          ],
      },
      "deliveryMethod": {
        "code": "E_TICKET",
        "charge": {
          "amount": 0.0,
          "currency": "SGD"
        }
      },
      "remarks": "John Doe - [email protected] - +6599994444"
    }
    '
    

    Sample Request: Purchase order with Guest Account w/ Contact Information & Mailing Address

    curl --request POST \
      --url ' https://api.stixcloud.com/api/v0/{tenant}/orders/' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '
      {
      "cartGuid": "e33e0a5f-26ff-4d86-9a36-f46a93f6e02c",
      "patronInfo": {
          "patronType":"G",
          "email":"[email protected]",
          "firstName": "John",
          "lastName": "Doe",
          "contacts": [
            {
              "contactType": "MOBILE",
              "areaCode": "+65",
              "phoneNumber": "99994444"
            }
          ],
          "addresses": [
            {
              "type": "Mailing Address",
              "countryCode": "SG",
              "addressLineOne": "335 field Green",
              "addressLineTwo": "#01-21",
              "addressLineThree": "Rich Building",
              "postalCode": "524123"
            }
          ]
      },
      "deliveryMethod": {
        "code": "REGISTERED_MAIL",
        "charge": {
          "amount": 0.0,
          "currency": "SGD"
        }
      },
      "remarks": "John Doe - [email protected] - +6599994444"
    }
    '
    

    Sample Request: Purchase order with Individual Account

    curl --request POST \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/orders' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
      "cartGuid": "e33e0a5f-26ff-4d86-9a36-f46a93f6e02c",
      "patronInfo":{
          "patronType":"I",
          "email":"[email protected]",
          "password":"m3536024",
          "firstname":"Tang",
          "lastName":"weiming",
          "contacts":[
             {
                "contactType":"MOBILE",
                "areaCode":"+65",
                "phoneNumber":"93257860"
             }
          ]
       },
      "deliveryMethod": {
        "code": "E_TICKET",
        "charge": {
          "amount": 0.0,
          "currency": "SGD"
        }
      },
      "remarks": "John Doe - [email protected] - +6599994444"
    } 
    '
    

    Sample Request: Purchase order with Individual Account and External Customer ID

    curl --request POST \
      --url 'https://tickets.westkowloon.hk/api/v0/{tenant}/orders' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
      "cartGuid": "e33e0a5f-26ff-4d86-9a36-f46a93f6e02c",
      "patronInfo":{
          "patronType":"I", 
          "externalCustomerID":"P01234",
          "email":"[email protected]",
          "password":"m3536024",
          "firstname":"John",
          "lastName":"Doe",
          "contacts":[
             {
                "contactType":"MOBILE",
                "areaCode":"+65",
                "phoneNumber":"93257860"
             }
          ]
       },
      "deliveryMethod": {
        "code": "E_TICKET",
        "charge": {
          "amount": 0.0,
          "currency": "SGD"
        }
      },
      "remarks": "John Doe - [email protected] - +6599994444"
    } 
    '
    

    Sample Request: Purchase order using Individual Account with Registered Mail Delivery Method

    curl --request POST \
      --url 'https://tickets.westkowloon.hk/api/v0/{tenant}/orders' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
      "cartGuid": "e33e0a5f-26ff-4d86-9a36-f46a93f6e02c",
      "patronInfo":{
          "patronType":"I", 
          "externalCustomerID":"P01234",
          "email":"[email protected]",
          "password":"m3536024",
          "firstname":"John",
          "lastName":"Doe",
          "contacts":[
             {
                "contactType":"MOBILE",
                "areaCode":"+65",
                "phoneNumber":"93257860"
             }
          ],
          "addresses": [
            {
              "type": "Mailing Address",
              "countryCode": "SG",
              "addressLineOne": "335 field Green",
              "addressLineTwo": "#01-21",
              "addressLineThree": "Rich Building",
              "postalCode": "524123"
            }
          ]
       },
      "deliveryMethod": {
        "code": "REGISTERED_MAIL",
        "charge": {
          "amount": 3.0,
          "currency": "SGD"
        }
      },
      "remarks": "John Doe - [email protected] - +6599994444"
    } 
    '
    

    The above commands returns JSON structured like this:

    Please Refer to the Response Object of this section.

    Status: 200.

    {
        "httpStatus": "200",
        "statusMessage": "Pending for payment",
        "accountNo": "5089412",
        "transactionRefNo": "20180326-000040",
        "remarks": "John Doe - +6599994444",
        "timeLeftSeconds": 900,
        "lineItemList": [
            {
                "product": {
                    "productId": 270784,
                    "productName": "Lee Kong Chian Natural History Museum (Jan20) (Normal Ticket)&",
                    "productDate": "2020-01-02T20:00:00+08:00",
                    "level": "-",
                    "section": "General Admission",
                    "seatNo": [],
                    "productType": "GA",
                    "venue": "+博物馆Lee Kong Chian Natural History Museum"
                },
                "priceClass": {
                    "priceClassCode": "A",
                    "priceClassName": "Standard Adult"
                },
                "quantity": 1,
                "unitPrice": {
                    "amount": 20,
                    "currency": "SGD",
                    "formatted": "$20.00"
                },
                "feeList": [
                    {
                        "code": "BOOKING",
                        "charge": {
                            "amount": 0,
                            "currency": "SGD",
                            "formatted": "$0.00"
                        }
                    }
                ],
                "subTotal": {
                    "amount": 20,
                    "currency": "SGD",
                    "formatted": "$20.00"
                },
                "cartItemId": "5362033d-9d2d-43b0-bb08-1dc5c614fd97"
            }
        ],
        "deliveryMethod": {
            "code": "E_TICKET",
            "charge": {
                "amount": 0,
                "currency": "SGD",
                "formatted": "$0.00"
            },
            "order": 7,
            "addressRequired": false,
            "feeWaived": false
        },
        "totalLineItems": 1,
        "lineItemTotal": {
            "amount": 20,
            "currency": "SGD",
            "formatted": "$20.00"
        }
    }
    

    Errors

    Error Code: 400. Note: The exception occurs when patron type is null or not (G or T)

    {
        "httpStatus": "400",
        "exceptionName": "org.springframework.web.bind.MethodArgumentNotValidException",
        "statusMessage": "Patron type is null or invalid.",
        "errorTime": "2018-04-16T15:24:48.984+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note : This exception occurs when password is null or empty for the individual account.

    {
        "httpStatus": "400",
        "exceptionName": "org.springframework.web.bind.MethodArgumentNotValidException",
        "statusMessage": "Patron password is invalid.",
        "errorTime": "2018-04-16T15:38:17.97+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note: This exception occurs when patron email is null or empty for the guest account

    {
        "httpStatus": "400",
        "exceptionName": "org.springframework.web.bind.MethodArgumentNotValidException",
        "statusMessage": "Patron email is null or invalid.",
        "errorTime": "2018-04-16T15:27:25.53+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note: This exception occurs when delivery method is null in request

    {
        "httpStatus": "400",
        "exceptionName": "org.springframework.web.bind.MethodArgumentNotValidException",
        "statusMessage": "Delivery method is invalid.",
        "errorTime": "2018-04-16T15:45:16.679+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    Error Code: 400. Note: This error occurs when delivery method code mismatch with the code of system

    {
        "httpStatus": "400",
        "errorCode": "error.cart.order.delivery-method.invalid",
        "exceptionName": "com.stixcloud.common.exception.SisticApiException",
        "statusMessage": "Delivery method is invalid.",
        "errorTime": "2018-04-27T13:55:24.32+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders"
    }
    

    2.9.1 Request

    You must replace tenant with your tenant code

    2.9.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] Tenant Id given

    2.9.3 Additional Notes

    2.9.4 Data model

    2.9.4.1 Request Object

    Name Description on attribute Data Type Length / Data Range Nullable
    cartGuid cartGuid is a unique ID for the cart created String - N
    patronInfo Patron information

    Carry information of user who submitting order. Patron can be a registered user (Individual), guest or anonymous user (Guest)
    JSON object - N
    deliveryMethod Delivery method

    Requested delivery method code
    Json object N
    remarks Remarks field. Store other info, such as Contact info.

    Example: John Doe - +65 9999 4444
    255 String Y

    2.9.4.2 patronInfo Object

    Name Description on attribute Data Type Length/Data Range Nullable
    patronType Patron Account Type

    Accept either two values: G for guest account
    I for individual account
    String - N
    accountNo Sistic patron account no
    Account no given by SISTIC
    String 25 Y
    externalCustomerID External Customer ID given by API partner String 100 Y
    email Customer email address
    Unique key for patron profile. Email can be omitted if patron type is Guest. (For guest account email can be null)

    If email and external customer id found in the system, WESTKOWLOON will reuse the same patron account.
    String 75 N
    password Password to create SISTIC web account

    required for individual account
    String 255 Y
    firstName Given name

    optional for individual account
    String 100 Y
    lastName Family Surname

    optional for individual account
    String 100 Y
    contacts List of Contact number object List of JSON object - Y
    addresses List of Address object. This field is an optional field, this can be used when the deliveryMethod selected is via Registered Mail List of JSON object - Y

    2.9.4.3 contact Object

    Name Description on attribute Data Type Length/Data Range Nullable
    contactType Contact type for mobile String 25 N
    country Country object JSON object - Y
    areaCode Phone area code String 100 Y
    phoneNumber Phone number String 100 N

    2.9.4.4 country Object

    Name Description on attribute Data Type Length/Data Range Nullable
    code Country code String 5 N
    callingCode Country calling code String 5 N

    2.9.4.5 address Object

    Name Description on attribute Data Type Length/Data Range Nullable
    type type of address to update. Use Mailing Address type for deliveryMethod REGISTERED_MAIL is selected String 25 N
    countryCode countryCode of the country. The format for the countryCode is using ALPHA-2 String 2 N
    addressLineOne attribute to be used to set the Block No. / Hse No. / Street Name String 100 N
    addressLineTwo attribute to be used to set the Unit No. String 100 N
    addressLineThree attribute to be used to set the Building Name String 100 N
    postalCode postalCode of the mailing address String 20 N

    2.9.4.8 Response Object

    Name Description on attribute Data Type Length/Data Range Nullable
    httpStatus Service response code

    200, 400 or 500
    String 255 N
    statusMessage Service response status message

    Default “pending for payment”
    String 255 Y
    exceptionName Exception class name

    Available in response when there is any errors processing request
    String 255 Y
    errorCode Sistic defined exception code for multi-language purpose

    Available in response when there is any errors processing request
    String 255 Y
    accountNo Sistic patron account no String 25 N
    transactionRefNo Transaction Reference No

    Unique key. Sistic generated transaction no
    String 255 N
    errorTime Exception datetime
    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    timeLeftSeconds Transaction timeup time Number 10 N
    remarks Transaction remarks String 255 Y
    lineItemList Cart item separated by product, price class and seat row number per item JSON cartItem object - N
    totalLineItems Total line item Number 10 N
    lineItemTotal Total amount of line item JSON Monetary object - N
    deliveryMethod delivery method details

    Default to E_TICKET for now
    deliveryMethod object - Y
    params List of additional information to display error messages when there is error

    Available in response when there is any errors processing request
    Y

    2.9.4.9 cartItem Object

    Name Description on attribute Data Type Length/Data Range Nullable
    product Product details JSON productDetail object - N
    priceClass PriceClass object JSON priceClass object - N
    quantity Ticket quantity Number 10 N
    unitPrice Unit price for ticket JSON Monetary object - N
    feeList List of fee List of fee JSON object - Y
    subTotal Subtotal for price class
    Summation of ticket

    (unitPrice + bookingFee) * quantity
    JSON Monetary object - N
    cartItemId Unique identifier of shopping cart String N
    bookingFee Also known as service fee Object N

    2.9.4.10 productDetail Object

    Name Description on attribute Data Type Length/Data Range Nullable
    productId Product Id Number - N
    productName Product Name String 255 Y
    productDate Product Date
    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 100 N
    level Venue Seating Level String 25 Y
    section Venue Seating Section String 255 Y
    row Seat row number String 25 N
    seatNo Seat number Array - N
    productType Product Type String 25 Y
    venue Venue String 255 N

    2.9.4.11 priceClass Object

    Name Description on attribute Data Type Length/Data Range Nullable
    priceClassCode Price class code String 255 N
    priceClassName Price class name String 255 Y

    2.9.4.12 fee Object

    Name Description on attribute Data Type Length/Data Range Nullable
    code Booking fee code String - N
    charge JSON of monetary object Monetary JSON object - N

    2.9.4.13 deliveryMethod Object

    Name Description on attribute Data Type Length/Data Range Nullable
    code Delivery method code String 100 N
    charge Delivery amount JSON Monetary object - N
    order Ordering Number Number N
    addressRequired Flag to indicate if address is required.

    Default value is false since E_TICKET is default deliver method
    Boolean N
    feeWaived Flag to indicate if the fee waiver is required. Boolean N

    2.9.4.13 monetary Object

    Name Description on attribute Data Type Length / Data Range Nullable
    amount Amount Number 10 N
    currency Currency code String 25 N
    formatted Formatted amount String 255 N

    2.10 Confirm/Cancel Order

    Confirm order after receiving the payment or cancel the order.

    Sample Request: Confirm Order

    curl --request POST \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/orders/{transactionRefNo}?=' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
       "confirmOrder":true,
       "externalTransactionId": "externalTxnID:ab123123ccc|octopus:1232132131",
       "payment":{
          "paymentRefNo":"ch_1EsPsG2eZvKYlo2Co9aNBqG6",
          "paymentMethod":"VISA",
          "ccNumber" : "442266xxxx0000",
           "charge":{
             "amount":21.0,
             "currency":"SGD"
          }
       }
    }'
    

    The above command returns JSON structured like this:

    Status: 200. Confirm Order

    {
        "httpStatus": "200",
        "statusMessage": "Order with ref no.20180427-000023 confirmed.",
        "transactionDateTime": "2018-04-27T10:07:40+07:00",
        "externalTransactionId": "externalTxnID:ab123123ccc|octopus:1232132131",
        "deliveryMethod": {
            "code": "E_TICKET",
            "eticketURL": [
                "http://sistic.stixclouduat.com/Stix/pac/acs/downloadEticket.htm?linkId=C3KjceMYMZ"
            ]
        },
        "barcode": {
            "178722432": "45573530839",
            "178722433": "45573530339"
        }
    }
    

    Sample Request:

    curl --request POST \
      --url 'https://api.stixcloud.com/api/v0/SISTIC/orders/{transactionRefNo}?=' \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
       "confirmOrder":false
    }'
    

    The above command returns JSON structured like this:

    Status: 200. Cancel Order

    {
       "httpStatus":200,
       "statusMessage ":"Order with ref no. 20180402-000017 cancelled ",
       "transactionDateTime":"2016-06-28T03:00:00+08:00"
    }
    

    Errors

    Error Code 400. Note: This exception occurs when cart is not found or expired.

    {
     "httpStatus": "400",
     "errorCode": "error.cart.order.not-found-expired",
     "errorTime":"2017-07-01T16:53:26.535+08:00",
     "params": {
            "transactionRefNo": "20180405-000024"
        },
     "exceptionName":"com.stixcloud.common.exception.SisticApiException",
     "statusMessage": "Order ref no. 20180402-000017 not found or expired."
    }
    

    Error Code 400. Note: This exception occurs when paid amount mismatch.

    {
     "httpStatus": "400",
     "errorCode": "error.cart.order.paid-amount.mismatch",
     "errorTime":"2017-07-01T16:53:26.535+08:00",
       "params": {
            "lineItemTotal": "358.5",
            "transactionRefNo": "20180405-000024 "
        },
       "exceptionName":"com.stixcloud.common.exception.SisticApiException",
     "statusMessage": "Order ref no 20180405-000024 paid amount mismatch, expected amount is 358.5"
    }
    

    Error Code 400. Note: This error is returned when an oder reference number is submitted (confirm or cancel) again. An order is valid to submit if the transaction status is PENDING

    {
     "httpStatus": "400",
     "errorCode": "error.cart.order.transaction.submitted",
     "errorTime":"2017-07-01T16:53:26.535+08:00",
       "params": {
            "lineItemTotal": "358.5",
            "transactionRefNo": "20180405-000024 "
        },
       "exceptionName":"com.stixcloud.common.exception.SisticApiException",
     "statusMessage": "Order ref no. 20180405-000024 is already submitted"
    }
    

    Error Code 400. Note: This error is returned when an order is using an invalid payment method.

    {
       "httpStatus": "400",
       "errorCode": "error.cart.precommit.payment-method.invalid",
       "params": {
        "transactionRefNo": "20180427-000065"
       },
       "exceptionName": "com.stixcloud.common.exception.SisticApiException",
       "statusMessage": "Invalid payment method",
       "errorTime": "2018-04-27T19:26:04.327+08:00",
       "url": "https://api.stixcloud.com/api/v0/SISTIC/orders/20180427-000065"
    }
    

    Error Code 400. Note: This error occurs when External transaction id is already submitted

    {
        "httpStatus": "400",
        "errorCode": "error.cart.order.external.transaction.submitted",
        "exceptionName": "com.stixcloud.common.exception.SisticApiException",
        "statusMessage": "External transaction id is already submitted",
        "errorTime": "2018-07-19T12:16:09.432+08:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders/20180719-000001"
    }
    
    

    Error Code 400. Note: This error occurs when External transaction id is null or empty.

    {
        "httpStatus": "400",
        "exceptionName": "org.springframework.web.bind.MethodArgumentNotValidException",
        "statusMessage": "External transaction id is missing.",
        "errorTime": "2018-07-19T12:12:02.586+08:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders/20180719-000001"
    }
    

    Error Code 400. Note: This error occurs when External transaction id is null or empty.

    {
        "httpStatus": "400",
        "exceptionName": "org.springframework.web.bind.MethodArgumentNotValidException",
        "statusMessage": "External transaction id is missing.",
        "errorTime": "2018-07-19T12:12:02.586+08:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/orders/20180719-000001"
    }
    

    Error Code 500. Note: This error is returned when there is an internal system error

    {
       "httpStatus":"500",
       "errorTime":"2017-07-01T16:53:26.535+08:00",
       "exceptionName":" java.lang.NullPointerException",
       "statusMessage": "NullPointerException: "
    }
    

    2.10.1 Request

    You must replace tenant with your Tenant code and transactionRefNo retrieved from Pre Payment Order

    2.10.2 Path Variables and Parameters

    Name Type Description
    tenant String [Required] Tenant Id given
    transactionRefNo String [Required] Transaction ref no.

    2.10.3 Additional Notes

    2.10.4 Data model

    2.10.4.1 Request object

    Name Description on attribute Data Type Length / Data Range Nullable
    confirmOrder Flag to indicate if you wish to proceed to confirm order

    true for confirm order

    false for cancel order
    Boolean 5 N
    externalTransactionId Client transaction id for future tracking and maintenance purpose (can be contained otherCardNumber in case payment via octopus)

    Format: "externalTxnId:qqww-123|octpus:1111222"
    String 255 N
    payment Payment Info JSON payment object - N

    2.10.4.2 Payment object

    Name Description on attribute Data Type Length / Data Range Nullable
    paymentRefNo Client side Payment Reference Number

    A unique ID generated by Payment Gateway such as Stripe/MIGS/PayLah. ex) ch_1EsPsG2eZvKYlo2Co9aNBqG6
    String 100 N
    paymentMethod Payment method selected by customer. Call 2.8 Get Payment Methods for available payment methods String 20 N
    charge MonetaryAmount object MonetaryAmount Object - N
    ccNumber Masked Credit Card Number used in transaction. Include first 6 and last 4 only ex) 442266xxxx0000 String 150 Y

    2.10.4.3 MonetaryAmount object

    Name Description on attribute Data Type Length / Data Range Nullable
    amount Payment amount Number 10 N
    currency Currency code String 5 N

    2.10.4.4 Response object

    Name Description on attribute Data Type Length / Data Range Nullable
    httpStatus Service response code

    200, 400 or 500
    String 255 N
    statusMessage Service response status message String 255 Y
    exceptionName Exception class name String 255 Y
    errorCode Sistic defined exception code for multi-language purpose String 255 Y
    transactionDateTime Transaction date time

    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 100 Y
    externalTransactionId Client transaction id for future tracking and maintenance purpose (can be contained otherCardNumber in case payment via octopus)

    Format: "externalTxnId:qqww-123!octpus:1111222"
    String 255 N
    deliveryMethod Ticket delivery details JSON deliveryMethod object - Y
    barcode Barcode of transaction

    Barcode object contains list of txnProductId with its barcode with format "{txnProductId}": "{barcode}". Barcode scanner supports Code 128 only.

    String

    2.10.4.5 DeliveryMethod object

    Name Description on attribute Data Type Length / Data Range Nullable
    code Delivery method code String 25 N
    eticketURL Eticket url Array[String] - Y

    2.11 Get Transactions

    This endpoint retrieves Transactions based on following attributes transactionRefNo, externalTransactionId, ccNumber and emailAddress.

    Note : There should be at the least attribute .

    Sample Request:

    curl --request POST \
      --url https://api.stixcloud.com/api/v0/SISTIC/transaction?page=0&size=10 \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
        "transactionRefNo": "20180601-000010"
      }'
    

    The above command returns JSON structured like this:

    Status: 200. Transactions Retrieved

    {
        "content": [
            {
                "transactionRefNo": "20180601-000010",
                "externalTransactionId": "K1-20180605-0000018686",
                "transactionDateTime": "2018-04-27T10:07:40+07:00",
                "paymentMethod": "Kiosk - Visa MBS",
                "deliveryMethod": "MBS Kiosk Pickup",
                "accountNo": 5180349,
                "channelType": "Internet",
                "lineItemList": [
                    {
                        "productId": 387184,
                        "productName": "(Test) New B.E. & QR Code Test Events (GA)",
                        "productDate": "2018-06-12T12:00:00+07:00",
                        "level": "-",
                        "section": "Stall",
                        "productType": "GA",
                        "venue": "Drama Centre Theatre",
                        "priceClass": {
                            "priceClassCode": "A",
                            "priceClassName": "Standard"
                        },
                        "txnProductList": [
                            {
                                "txnProductId": 4952265,
                                "seatNo":"1"
                                "printStatus": 1,
                                "ticketType": 1,
                                "ticketReprintedCount": 0,
                                "nearestEntrance": "Door 1",
                                "isReturned": false,
                                "description": "EVENT TICKET"
                            }
                        ]
                    }
                ]
            }
        ],
        "totalElements": 1,
        "totalPages": 1,
        "last": true,
        "size": 15,
        "number": 0,
        "first": true,
        "numberOfElements": 1,
        "links": [
            {
                "rel": "self",
                "href": "https://api.stixcloud.com/api/v0/SISTIC/transaction?page=0&size=15"
            }
        ],
        "httpStatus": "200",
        "statusMessage": "Transaction Retrieved Successfully (1)",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/transaction"
    }
    

    Status: 200. No Transactions Retrieved

    {
        "content": [],
        "totalElements": 0,
        "totalPages": 0,
        "last": true,
        "size": 10,
        "number": 0,
        "first": true,
        "numberOfElements": 0,
        "links": [
            {
                "rel": "self",
                "href": "https://api.stixcloud.com/api/v0/SISTIC/transaction?page=0&size=10"
            }
        ],
        "statusMessage": "No transaction found.",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/transaction"
    }
    

    Status: 400. Note : This exception occurs when there is no search condition.

    {
        "httpStatus": "400",
        "errorCode": "transaction-seach-conditon-invalid",
        "exceptionName": "com.stixcloud.common.exception.SisticApiException",
        "statusMessage": "There should be at least one search condition",
        "errorTime": "2018-06-15T15:34:12.86+07:00",
        "url": "https://api.stixcloud.com/api/v0/SISTIC/transaction"
    }
    

    2.11.1 Request

    You must replace tenant with your tenant code.

    2.11.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] Tenant ID given
    page Number [optional] Page of record, default 0
    size Number [optional] Number of item per page, default 10

    2.11.3 Data model

    2.11.3.1 Request Object

    Name Description on attribute Data Type Length / Data Range Nullable
    transactionRefNo Unique TransctionRefNo for each Transaction String 40 Y
    externalTransactionId Unique ExternalTxnId for each Transaction String 25 Y
    ccNumber masked CC Number. Showing first 6 and last 4 numbers only String 150 Y
    emailAddress emailAddress used in Transaction String 75 Y
    channelTypeList List of channelType List of String 75 Y

    2.11.3.2 Response Object

    Name Description on attribute Data Type Length / Data Range Nullable
    content List of transactions details List of transaction object - Y
    links List of links for pagination

    Rules:
    1. Next page link will appear if have more record
    2. Previous page link will appear if it’s not in the first page
    3. Last page link will appear if there is more than 1 page
    List of link object - Y
    last Flag for last page Boolean 4 Y
    totalPages Total number of page Number 10 Y
    totalElements Total number of records Number 10 Y
    sort Sorting for elements Boolean 255 Y
    numberOfElements Number of record per page Number 10 Y
    first Flag for first page Boolean 4 Y
    size Number of element per page Number 10 Y
    httpStatus Service response code String 255 N
    statusMessage Service response status message String 255 Y
    url Service request url
    API endpoint
    String 255 Y
    exceptionName Exception class name String 255 Y
    exceptionCode defined exception code for multi-language purpose String 255 Y
    errorTime Exception datetime
    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 Y
    number Number of Page Integer - Y

    2.11.3.3 Transaction Object

    Name Description on attribute Data Type Length / Data Range Nullable
    transactionRefNo Transaction Reference No
    Unique key. Sistic generated transaction no
    String 40 N
    externalTransactionId Client transaction id for future tracking and maintenance purpose String 25 Y
    transactionDateTime Transaction date time

    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 100 N
    paymentMethod The payment method name used in the Transaction String 100 N
    deliveryMethod The delivery method name used in the Transaction String 100 N
    accountNo Account Number of the Patron Number 10 N
    channelType channelType tied with the transaction String 25 N
    lineItemList Cart item separated by product, price class and seat row number per item List of LineItem Object - Y

    2.11.3.4 LineItem Object

    Name Description on attribute Data Type Length / Data Range Nullable
    productId Product Id Number - N
    productName Product Name String 255 Y
    productDate Product Date
    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 100 N
    level Venue Seating Level String 25 Y
    section Venue Seating Section String 255 Y
    row Seat row number String 25 Y
    productType Product Type String 25 Y
    venue Venue String 255 N
    txnProductList - List of TxnProduct Object - N
    priceClassObject - PriceClass Object - N

    2.11.3.5 PriceClass Object

    Name Description on attribute Data Type Length / Data Range Nullable
    priceClassCode Price class code String 255 N
    priceClassName Price class name String 255 Y

    2.11.3.6 TxnProduct Object

    Name Description on attribute Data Type Length / Data Range Nullable
    txnProductId TxnProductId can be used to update or retrieve ticket Number 10 Y
    printStatus printStatus is a flag that is used to identify status.
    Note:
    1 - Not Printed
    2 - Printed
    Number 2 N
    reprintedCount Count of number of TxnProduct reprinted Number 2 N
    ticketType ticketType is a flag that is used to identify its type.
    1 - Paper Ticket
    2 - E-Ticket
    Number 1 N
    nearestEntrance Nearest Entrance String 255 Y
    seatNo Seat number Number - Y
    isReturned Indicates the return status of the ticket. Returned TxnProduct means this ticket has been void and not available to use. Boolean 1 N
    description Description of the TxnProduct String 255 N

    2.12 Get TxnProduct Tickets

    This endpoint generate TxnProduct Tickets for printing. It consumes list of txnProductId that can be retrieved in 2_11_get_transaction

    Sample Request:

    curl --request POST \
      --url https://api.stixcloud.com/api/v0/SISTIC/transaction/txnproducts \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '{
        "transactionRefNo": "20180723-000014",
        "txnProductIdList": [
            5736826,
            5736827 
        ],
        "ticketPrintType": "FGL",
        "printerDPI": "300"
      }'
    

    The above command returns JSON structured like this:

    Status: 200.

    {
        "transactionRefNo": "20180723-000014",
        "receiptTicket": "AxzZsdPjxSQzM1OCw3NjI+PE5SPjxIVzMsMz48U0QyPjxGMjA+...",
        "txnProductList": [
            {
                "txnProductId": 5736826,
                "printStatus": 1,
                "reprintedCount": 0,
                "ticketType": 1,
                "eventTicket": "CfA1aaxSQzM1OCw3NjI+PE5SPjxIVzMsMz48U0QyPjxGMjA+..."
            },
            {
                "txnProductId": 5736827,
                "printStatus": 2,
                "reprintedCount": 0,
                "ticketType": 1,
                "eventTicket": "ZccZ1XdfxSQzM1OCw3NjI+PE5SPjxIVzMsMz48U0QyPjxGMjA+..."
            }
        ],
        "ticketPrintType": "FGL"
    }
    

    2.12.1 Request

    You must replace tenant with your tenant code.

    2.12.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] tenant id given

    2.12.3 Data model

    2.12.3.1 Request Object

    Name Description on attribute Data Type Length / Data Range Nullable
    transactionRefNo Transaction Reference No

    Unique key. Sistic generated transaction no
    String 255 N
    txnProductIdList List of TxnProductIdList for ticket generation List of Number - Y
    ticketPrintType Ticket Print Type to produce. Note: Only support FGL Ticket Type String 255 Y
    printerDPI Printer DPI Configuration. Default to 300 Number 255 Y

    2.12.3.2 Response Object

    Name Description on attribute Data Type Length / Data Range Nullable
    transactionRefNo Transaction Reference No
    Unique key. Sistic generated transaction no
    String 255 N
    receiptPrint Receipt Ticket for Transaction.
    Ticket is encoded to Base64, decode it first to Base64 before use.
    255 N
    txnProductList List of txnProduct Object List of txnProduct Object
    ticketPrintType Ticket Print Type to produce. Note: Only support FGL Ticket Type String - N

    2.12.3.3 TxnProduct Object

    Name Description on attribute Data Type Length / Data Range Nullable
    txnProductId TxnProductId a unique Id for generating ticket Number 10 Y
    printStatus printStatus is a flag that is used to identify status.
    Note:
    1 - Not Printed
    2 - Printed
    Number 2 N
    reprintedCount Number of reprintedCount of TxnProduct Number - N
    ticketType ticketType is a flag that is used to identify its type.
    1 - Paper Ticket
    2 - E-Ticket
    Number - Y
    eventTicket Event Ticket Generated encoded in Base64. Must be decoded to Base64 before using Base 64 - N

    2.13 Update TxnProduct Tickets

    This endpoint updates TxnProduct printStatus providing the txnProductId, printStatus and a flag isReprint to check if the ticket is for reprint.

    Sample Request:

    curl --request PUT \
      --url https://api.stixcloud.com/api/v0/{tenant}/transaction/txnproducts \
      --header 'authorization: Bearer <Access-Token>' \
      --header 'content-type: application/json' \
      --data '[
        {
          "txnProductId": 1104715,
          "printStatus": 1,
          "isReprinted": false 
        },
        {
          "txnProductId": 1104781,
          "printStatus": 1,
          "isReprinted": true 
        }
      ]'
    

    The above command returns JSON structured like this:

    Status: 200. Ticket Updated Successfully

    [
        {
            "txnProductId": 1104715,
            "transactionRefNo": "20180601-000010",
            "printStatus": 1,
            "reprintedCount": 0,
            "isReprint": false,
            "ticketType": 1,
            "printedBy": "internet_wkcda"
        },
        {
            "txnProductId": 1104781,
            "transactionRefNo": "20180611-000002",
            "printStatus": 1,
            "reprintedCount": 2,
            "isReprint": true,
            "ticketType": 1,
            "printedBy": "internet_wkcda"
        }
    ]
    

    Errors

    Error Code: 400.Note: This error occur when fields are invalid, such as missing fields and invalid values.

    {
        "httpStatus": "400",
        "errorCode": "error.transaction.invalid-update-txn-ticket-request",
        "params": {
            "txnProductId": "txnProductId is a required field."
        },
        "exceptionName": "com.stixcloud.common.exception.SisticApiException",
        "statusMessage": "Invalid request",
        "errorTime": "2018-06-12T17:18:50.175+08:00",
        "url": "http://localhost:1000/api/v0/WESTKOWLOON/transaction/tickets"
    }
    

    Error Code: 400. Note: This error occur when printStatus supplied is invalid. 1 - Printed, 6 - Not Printed

    {
        "httpStatus": "400",
        "errorCode": "error.transaction.invalid-update-txn-ticket-request",
        "params": {
            "printStatus": "printStatus must be valid. 1 - Printed. 6 - Not Printed"
        },
        "exceptionName": "com.stixcloud.common.exception.SisticApiException",
        "statusMessage": "Invalid request",
        "errorTime": "2018-06-12T17:27:55.066+08:00",
        "url": "http://localhost:1000/api/v0/WESTKOWLOON/transaction/tickets"
    }
    

    Error Code: 400. Note: This error occur when txnProductId supplied is not found.

    {
        "httpStatus": "400",
        "errorCode": "error.transaction.ticket-not-found",
        "params": {
            "txnProductId": "1111123123123"
        },
        "exceptionName": "com.stixcloud.common.exception.SisticApiException",
        "statusMessage": "Ticket Id not found.",
        "errorTime": "2018-06-12T16:36:39.381+08:00",
        "url": "http://localhost:1000/api/v0/WESTKOWLOON/transaction/tickets"
    }
    

    Error Code: 400. Note: This error occur when trying to update printStatus that has been printed already.

    {
        "httpStatus": "400",
        "errorCode": "error.transaction.ticket-already-printed",
        "params": {
            "txnProductId": "1104715"
        },
        "exceptionName": "com.stixcloud.common.exception.SisticApiException",
        "statusMessage": "Ticket already printed.",
        "errorTime": "2018-06-12T16:38:31.369+08:00",
        "url": "http://localhost:1000/api/v0/WESTKOWLOON/transaction/tickets"
    }
    

    2.13.1 Request

    You must replace tenant with your tenant code.

    2.13.2 Path Variables and Parameters

    Name Type Description
    tenant String [required] tenant id given
    productId Number [required] Unique identifier to identify each product.

    2.13.3 Data model

    2.13.3.1 Request Object

    Name Description on attribute Data Type Length / Data Range Nullable
    txnProductList List of TxnProduct Object - N

    2.13.3.2 TxnProduct Object

    Name Description on attribute Data Type Length / Data Range Nullable
    txnProductId txnProductId. Unique value for each TxnProduct to be updated Number - N
    printStatus printStatus is a flag that is used to identify status.
    Note:
    1 - Not Printed
    2 - Printed
    Number 2 N
    isReprint Flag to use if the txnProduct is for reprint Boolean - N

    2.13.3.3 Response Object

    Name Description on attribute Data Type Length / Data Range Nullable
    httpStatus Service response code

    200, 400 or 500
    String 255 Y
    statusMessage Service response status message String 255 Y
    exceptionName Exception class name String 255 Y
    errorCode Sistic defined exception code for multi-language purpose String 255 Y
    txnProductList List of TxnProduct Object

    2.13.3.4 TxnProduct Object

    Name Description on attribute Data Type Length / Data Range Nullable
    txnProductId txnProductId. Unique value for each TxnProduct to be updated Number - N
    transactionRefNo Transaction Reference No
    Unique key. Sistic generated transaction no
    String - N
    reprintedCount Number of reprintedCount of TxnProduct Number N
    isReprinted Flag to use if the txnProduct is reprinted Boolean - N
    ticketType ticketType is a flag that is used to identify its type.
    1 - Paper Ticket
    2 - E-Ticket
    Number - Y
    printedBy printedBy the user who printed the ticket String - N

    2.14 Patron Transaction History

    Return a list of successful transaction information transacted by the patron, such as unique SISTIC transaction reference number, product name, pricing, delivery method, payment method in paginated format.

    Either one of the following Patron info input are mandatory for the request parameter:
    o Email Address + Patron Type
    o External Customer ID

    You may also filter the transactions history by the upcoming events/expired events by passing in extra request parameter called hideExpiredEvent or filter transaction history by product attribute by passing in request parameter called productAttribute

    Note:
     - Seat number will not be returned if the event section type is ‘GA’ (General Admission).
     - E-Ticket download URL will only be available if the delivery method chosen is E-Ticket.

    Sample Request:

    curl --request GET \
      --url 'https://tickets.westkowloon.hk/api/v0/{tenant}/patrons/account/transactions'
      --header 'authorization: Bearer Access token '
      --header 'content-type: application/json' \
    

    The above command returns JSON structured like this:

    Status: 200

    
    { 
        "transactions":[ 
            { 
                "transactionRefNo": "20190904-000183",
                "type": "Purchase",
                "transactionDateTime": "2019-09-04T19:30:44+08:00",
                "paymentMethod": "Mastercard",
                "lineItemList": [
                    {
                        "type": "DELIVERYMETHOD",
                        "description": "Handling Fee-No Tickets Issued",
                        "unitPrice": {
                            "amount": 0,
                            "currency": "HKD",
                            "formatted": "$0.00"
                        },
                        "subTotal": {
                            "amount": 0,
                            "currency": "HKD",
                            "formatted": "$0.00"
                        },
                        "deliveryMethod": "No Tickets Issued",
                        "deliveryMethodCode": "NO_TICKETS_ISSUED"
                    },
                    {
                        "type": "PRODUCT",
                        "product": {
                            "productName": "Pangdemonium 2019 Season Ticket (Test2)",
                            "productId": 1114628,
                            "startDate": "2025-03-15T00:00:00+08:00",
                            "endDate": "2037-03-18T00:00:00+08:00",
                            "priceClassName": "Standard",
                            "priceCatAlias": "Cat 2 - All Access",
                            "venue": "Various Venues",
                            "sectionType": "GA",
                            "section": "Pangdemonium Season Tickets",
                            "ticketInfo": [
                                {}
                            ],
                            "isHidePrice": 0
                        },
                        "description": "Pangdemonium 2019 Season Ticket (Test2)",
                        "quantity": 1,
                        "unitPrice": {
                            "amount": 145,
                            "currency": "HKD",
                            "formatted": "$145.00"
                        },
                        "bookingFee": {
                            "amount": 4,
                            "currency": "HKD",
                            "formatted": "$4.00"
                        },
                        "subTotal": {
                            "amount": 149,
                            "currency": "HKD",
                            "formatted": "$149.00"
                        }
                    }
                ],
                "totalAmount": {
                    "amount": 149,
                    "currency": "HKD",
                    "formatted": "$149.00"
                }
            },
            { 
                "transactionRefNo":"20190904-000182",
                "type":"Purchase",
                "transactionDateTime":"2019-09-04T19:25:27+08:00",
                "paymentMethod":"Mastercard",
                "lineItemList":[ 
                    { 
                        "type":"DELIVERYMETHOD",
                        "description":"Handling Fee-No Tickets Issued",
                        "unitPrice":{ 
                            "amount":0,
                            "currency":"HKD",
                            "formatted":"$0.00"
                        },
                        "subTotal":{ 
                            "amount":0,
                            "currency":"HKD",
                            "formatted":"$0.00"
                        },
                        "deliveryMethod":"No Tickets Issued",
                        "deliveryMethodCode":"NO_TICKETS_ISSUED"
                    },
                    { 
                        "type":"PRODUCT",
                        "product":{ 
                            "productName":"Pangdemonium 2019 Season Ticket (Test2)",
                            "productId": 1114628,
                            "startDate":"2025-03-15T00:00:00+08:00",
                            "endDate":"2037-03-18T00:00:00+08:00",
                            "priceClassName": "Standard",
                            "priceCatAlias":"Cat 2 - All Access",
                            "venue":"Various Venues",
                            "sectionType":"GA",
                            "section":"Pangdemonium Season Tickets",
                            "ticketInfo":[ 
                                { 
                                    "barcode":"45704139939"
                                }
                            ],
                            "isHidePrice":0
                        },
                        "description":"Pangdemonium 2019 Season Ticket (Test2)",
                        "quantity":1,
                        "unitPrice":{ 
                            "amount":145,
                            "currency":"HKD",
                            "formatted":"$145.00"
                        },
                        "bookingFee":{ 
                            "amount":4,
                            "currency":"HKD",
                            "formatted":"$4.00"
                        },
                        "subTotal":{ 
                            "amount":149,
                            "currency":"HKD",
                            "formatted":"$149.00"
                        }
                    }
                ],
                "totalAmount":{ 
                    "amount":149,
                    "currency":"HKD",
                    "formatted":"$149.00"
                }
            },
            { 
                "transactionRefNo": "20190904-000184",
                "type": "Purchase",
                "transactionDateTime": "2019-09-04T19:40:42+08:00",
                "paymentMethod": "Mastercard",
                "lineItemList": [
                    {
                        "type": "DELIVERYMETHOD",
                        "description": "Handling Fee-E-ticket",
                        "unitPrice": {
                            "amount": 0,
                            "currency": "HKD",
                            "formatted": "$0.00"
                        },
                        "subTotal": {
                            "amount": 0,
                            "currency": "HKD",
                            "formatted": "$0.00"
                        },
                        "deliveryMethod": "E-ticket",
                        "deliveryMethodCode": "E_TICKET"
                    },
                    {
                        "type": "PRODUCT",
                        "product": {
                            "productName": "Urinetown: The Musical (White Label)",
                            "productId": 1150559,
                            "startDate": "2019-10-12T20:00:00+08:00",
                            "priceClassName": "Standard",
                            "priceCatAlias": "Cat 1",
                            "venue": "Drama Centre Theatre",
                            "sectionType": "RS",
                            "section": "Stall",
                            "level": "Stall",
                            "row": "M",
                            "ticketInfo": [
                                {
                                    "barcode":"45704132939",
                                    "seats": 6
                                }
                            ],
                            "isHidePrice": 0,
                            "eticketURL": "https://westkowloon.stixcloud.com/Stix/pac/acs/downloadEticket.htm?linkId=wExN4UJb82"
                        },
                        "description": "Urinetown: The Musical (White Label)",
                        "quantity": 1,
                        "unitPrice": {
                            "amount": 90,
                            "currency": "HKD",
                            "formatted": "$90.00"
                        },
                        "bookingFee": {
                            "amount": 4,
                            "currency": "HKD",
                            "formatted": "$4.00"
                        },
                        "subTotal": {
                            "amount": 94,
                            "currency": "HKD",
                            "formatted": "$94.00"
                        }
                    }
                ],
                "totalAmount": {
                    "amount": 94,
                    "currency": "HKD",
                    "formatted": "$94.00"
                }
            },
            {
                "transactionRefNo": "20190920-000002",
                "type": "Purchase",
                "transactionDateTime": "2019-09-20T00:36:25+08:00",
                "paymentMethod": "Mastercard",
                "lineItemList": [
                    {
                        "type": "DELIVERYMETHOD",
                        "description": "Handling Fee-E-ticket",
                        "unitPrice": {
                            "amount": 0,
                            "currency": "HKD",
                            "formatted": "$0.00"
                        },
                        "subTotal": {
                            "amount": 0,
                            "currency": "HKD",
                            "formatted": "$0.00"
                        },
                        "deliveryMethod": "E-ticket",
                        "deliveryMethodCode": "E_TICKET"
                    },
                    {
                        "type": "PRODUCT",
                        "product": {
                            "productName": "(TEST) AN ACTRESS PREPARES",
                            "productId": 1141364,
                            "startDate": "2020-07-10T14:30:00+08:00",
                            "priceClassName": "Standard",
                            "priceCatAlias": "Cat 1",
                            "venue": "The Ngee Ann Kongsi Theatre @ WILD RICE",
                            "sectionType": "RS",
                            "section": "B1_Center",
                            "level": "Balcony 1",
                            "row": "A",
                            "ticketInfo": [
                                {
                                    "seats": 20
                                }
                            ],
                            "isHidePrice": 0,
                            "eticketURL": "https://westkowloon.stixcloud.com/Stix/pac/acs/downloadEticket.htm?linkId=PoI1ayfTsz"
                        },
                        "description": "(TEST) AN ACTRESS PREPARES",
                        "quantity": 1,
                        "unitPrice": {
                            "amount": 40,
                            "currency": "HKD",
                            "formatted": "$40.00"
                        },
                        "bookingFee": {
                            "amount": 3,
                            "currency": "HKD",
                            "formatted": "$3.00"
                        },
                        "subTotal": {
                            "amount": 43,
                            "currency": "HKD",
                            "formatted": "$43.00"
                        }
                    },
                    {
                        "type": "PRODUCT",
                        "product": {
                            "productName": "(TEST) SUPERVISION",
                            "productId": 1141369,
                            "startDate": "2020-08-08T14:30:00+08:00",
                            "priceClassName": "Standard",
                            "priceCatAlias": "Cat 1",
                            "venue": "The Ngee Ann Kongsi Theatre @ WILD RICE",
                            "sectionType": "RS",
                            "section": "B1_Center",
                            "level": "Balcony 1",
                            "row": "A",
                            "ticketInfo": [
                                {
                                    "seats": 21
                                }
                            ],
                            "isHidePrice": 0,
                            "eticketURL": "https://westkowloon.stixcloud.com/Stix/pac/acs/downloadEticket.htm?linkId=K25Q4vjIQ1"
                        },
                        "description": "(TEST) SUPERVISION",
                        "quantity": 1,
                        "unitPrice": {
                            "amount": 40,
                            "currency": "HKD",
                            "formatted": "$40.00"
                        },
                        "bookingFee": {
                            "amount": 3,
                            "currency": "HKD",
                            "formatted": "$3.00"
                        },
                        "subTotal": {
                            "amount": 43,
                            "currency": "HKD",
                            "formatted": "$43.00"
                        }
                    }
                ],
                "totalAmount": {
                    "amount": 86,
                    "currency": "HKD",
                    "formatted": "$86.00"
                }
            },
            { 
                "transactionRefNo":"20190704-000057",
                "type":"Return",
                "transactionDateTime":"2019-07-04T14:41:12+08:00",
                "purchaseTransaction":"20190627-000021",
                "paymentMethod":"CASH",
                "lineItemList":[ 
                    { 
                        "type":"DELIVERYMETHOD",
                        "description":"Handling Fee-Collection from Event Venue",
                        "unitPrice":{ 
                            "amount":1.5,
                            "currency":"HKD",
                            "formatted":"$1.50"
                        },
                        "subTotal":{ 
                            "amount":1.5,
                            "currency":"HKD",
                            "formatted":"$1.50"
                        },
                        "deliveryMethod":"Collection from Event Venue",
                        "deliveryMethodCode":"VENUE_COLLECTION"
                    },
                    { 
                        "type":"PRODUCT",
                        "product":{ 
                            "productName":"(Test) New B.E. & QR Code Test Events (RS)",
                            "productId": 1141369,
                            "startDate":"2019-08-04T13:00:00+08:00",
                            "priceClassName": "Standard",
                            "priceCatAlias":"Cat 1",
                            "venue":"Drama Centre Theatre",
                            "sectionType":"RS",
                            "section":"Stall",
                            "level":"Stall",
                            "row":"PA",
                            "ticketInfo": [
                                {
                                    "barcode": "45707165639"
                                }
                            ],
                            "isHidePrice":0
                        },
                        "description":"(Test) New B.E. & QR Code Test Events (RS)",
                        "quantity":1,
                        "unitPrice":{ 
                            "amount":3,
                            "currency":"HKD",
                            "formatted":"$3.00"
                        },
                        "bookingFee":{ 
                            "amount":4,
                            "currency":"HKD",
                            "formatted":"$4.00"
                        },
                        "subTotal":{ 
                            "amount":7,
                            "currency":"HKD",
                            "formatted":"$7.00"
                        }
                    }
                ],
                "totalAmount":{ 
                    "amount":8.5,
                    "currency":"HKD",
                    "formatted":"$8.50"
                }
            }
        ],
        "totalPage":47,
        "currentPage":1,
        "totalRow":464
    }
    

    Errors

    Error Code 400: User has requested an invalid page no/page size

    {
        "httpStatus": "400",
        "errorCode": "error.invalid.page",
        "exceptionName": "com.stixcloud.common.exception.SisticApiException",
        "statusMessage": "Your page no/page size is invalid. Please correct it.",
        "errorTime": "2019-06-10T23:47:47.987+08:00",
        "url": "https://tickets.westkowloon.hk/api/v0/WESTKOWLOON/patrons/account/transactions?pageNo=1&pageSize=20"
    
    }
    

    Error Code 401: Invalid access token

    {
        "error": "invalid_token",
        "error_description": "Cannot convert access token to JSON"
    }
    

    Error Code 401: Access token expired

    {
        "error": "invalid_token",
        "error_description": "Access token expired: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJ3ZWltaW5nQHNpc3RpYy5jb20uc2ciLCJzY29wZSI6WyJzaXN0aWMiLCJwcm9kdWN0IiwiY2FydCIsInBheW1lbnQiLCJwYXRyb24iLCJtZW1iZXJzaGlwIiwicGFja2FnZSJdLCJleHAiOjE1NTk0ODM0NzAsInBhdHJvbkxvZ2luIjp7InBhdHJvbklkIjoxODA4NzUzLCJlbWFpbCI6IndlaW1pbmdAc2lzdGljLmNvbS5zZyIsImZpcnN0TmFtZSI6IsODwqfDgsKlw4LCnsODwqTDgsK5w4LCi8ODwqXDgsKtw4LCkEEiLCJsYXN0TmFtZSI6IndlaW1pbmciLCJhY2NvdW50Tm8iOjMyMzEyOTksImhhc01lbWJlcnNoaXAiOnRydWUsImFjY291bnRUeXBlIjoiSSJ9LCJhdXRob3JpdGllcyI6WyJST0xFX1BBVFJPTiJdLCJqdGkiOiJjMWViZjAwOS0wNzJmLTQyODEtOGYyYS0xZTE4Y2RhMzg2MzEiLCJjbGllbnRfaWQiOiJzaXN0aWMtYXBpIn0.aMxeDW4P6ITZUC05jD9iVeAxvnocKqHImAtQDF8n3Yc"
    }
    
    

    2.14.1 Request URL

    2.14.2 Query Parameters

    Name Type Description
    pageNo Number [optional] Default page no value is 1.
    pageSize Number [optional] Number of transactions per page, default value is 10.
    email String [optional] Retrieve transaction based on patron email address
    externalCustomerID String [optional] Retrieve transaction based on external customer ID.
    patronType String [optional] Retrieve transaction based on patron type, default patronType value is ‘I’
    hideExpiredEvent Boolean [optional] Filter transactions by upcoming or expired events. By default system will return all transactions include upcoming and expired events.
    productAttribute String [optional] By default system will return all transactions. you may filter by event with barcode by using MTicket & filter by OTP event by OTP_Product
    sort String [optional]By default the list of transactions will be sorted with “transactionRefNo” field, you may sort by “startDate” field as well.
    order String [optional] Sort in ascending order “asc” & descending order “desc” are supported.

    2.14.3 Data Model

    2.14.3.1 Successful Response Object

    Name Description on attribute Data Type Length/Data Range Nullable
    transactions List of transactions details List of transactions object - N
    totalPages Total number of pages Number 4 Y
    totalElements Total number of records Number 4 Y
    currentPage current page number patron is visiting Number 4 Y

    2.14.3.2 Transactions Object

    Name Description on attribute Data Type Length/Data Range Nullable
    transactionRefNo Unique Sistic TransctionRefNo for each Transaction String 40 N
    type The transaction type, Return or Purchase. String 40 N
    transactionDateTime Date of transaction
    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 40 N
    paymentMethod The transacted payment method. String 100 N
    purchaseTransaction Orginal purchased Transaction(Valid for RETURN transaction type only) String 100 N
    lineItemList List of transaction lineItems details List of lineItems object - N
    totalAmount Transaction total amount MonetaryAmount Object - N

    2.14.3.3 lineItemList Object

    Name Description on attribute Data Type Length/Data Range Nullable
    type Line item type:
    PRODUCT,
    DELIVERYMETHOD,
    PACKAGE
    String 40 N
    deliveryMethodCode Delivery Code String 40 N
    quantity Line item quantity Number 10 N
    product List of product details Product object - N
    unitPrice Unit Price for the line item MonetaryAmount Object - N
    bookingFee Booking fee for the line item product MonetaryAmount Object - Y
    subTotal total amount for the line item MonetaryAmount Object - N
    deliveryMethod The delivery method name used in the Transaction String 255 Y

    2.14.3.4 product Object

    Name Description on attribute Data Type Length/Data Range Nullable
    productName Show name String 255 N
    productId Show Id Number 10 Y
    startDate Show Starting DateTime
    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 N
    endDate Show end datetime
    ISO 8601 Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 N
    isHidePrice Flag to hide price String 255 N
    priceClassName Price class name String 255 N
    priceCatAlias price category alias String 100 N
    venue Show venue String 255 N
    sectionType Section type(‘GA’,’RS’) String 25 N
    section Venue seating section String 255 N
    level Venue seating level String 25 Y
    row Seat row alias String 25 Y
    gaSeqNumber GA event sequence number(currently not in use) List - Y
    eticketURL E-ticket URL String 255 Y
    ticketInfo List of ticketDetails TicketInfo Object - Y

    2.14.3.5 Monetary Object

    Name Description on attribute Data Type Length/Data Range Nullable
    amount Ticket price amount Number 10 N
    currency Currency Code String 25 N
    formatted Formatted amount String 255 N

    2.14.3.6 TicketInfo Object

    Name Description on attribute Data Type Length/Data Range Nullable
    seatNo Seat number String 3 Y
    barcode Ticket barcode String 100 Y

    2.14.3.7 Error Response Object

    Name Description on attribute Data Type Length/Data Range Nullable
    statusMessage Error message String 255 N
    errorCode Error code String 255 N
    errorTime Exception datetime
    ISO 8601
    Date format - yyyy-mm-ddThh:mm:ss+-hh:mm (24hours)
    String 25 N
    exceptionName Exception class name String 255 N
    url Service request url String 255 N
    error Available in response when there is any errors when processing request. String 255 N
    error_description Error description String 255 N

    3. Release Notes

    Release v0.23

    STiX Cloud REST API Release Notes v0.23

    Each set of release notes describes changes that apply to the release:

    Update Update Summary API Section Previous Version
    Changes in 2.3 Get Event Overview Seat Map
    Added isSocialDistancingEnabled field Flag indicating if show is social distancing enabled/disabled 2.3 Get Event Overview Seat Map
    Added isHidePrice field A configurable flag to instruct client app to hide price value 2.3 Get Event Overview Seat Map
    Added evoucherEvent field The flag to indicate if this event is selling evoucher. 2.3 Get Event Overview Seat Map
    Added isEventWithSurvey field A configurable flag to indicate if event is configured with custom data form. 2.3 Get Event Overview Seat Map
    Updated description for groupBookingMode field Update description for groupBookingMode 2.3 Get Event Overview Seat Map v0.22
    Updated description for isMembership field Update description for isMembership 2.3 Get Event Overview Seat Map v0.22
    Changes in 2.5 Seat Offer (Applicable for Reserved Seating Event Only)
    Added setsNeighbours field List of surrounding seats of offered seats returning when field isSocialDistancingEnabled has value 1 2.5 Seat Offer (Applicable for Reserved Seating Event Only)
    Changes in 2.8.2.3.2 cartItem Object
    Removed feeList field List of fee object 2.8.2 Get Cart v0.22
    Added pricecatid field Price category Id 2.8.2 Get Cart
    Added isGroupBookingLineItem field A Flag to indicate this line item event is has reserve for a friend. 2.8.2 Get Cart
    Added isMembership field A flag indicates this line item is a membership event 2.8.2 Get Cart
    Added isIdRedemption field A flag indicates this line item will be waived. 2.8.2 Get Cart
    Added isHidePrice field A configurable flag to instruct the client app to hide price value. 2.8.2 Get Cart
    Added promoterNameList field List of promoter names that line item event ties to 2.8.2 Get Cart
    Added isEvoucherEvent field A flag indicates this line item is an e-voucher event. 2.8.2 Get Cart
    Added isEventWithSurvey field A flag indicates this line item event configured with a custom data form. 2.8.2 Get Cart
    Added isShowEndTime field A flag indicating if end date should be displayed for the event in shopping cart line item. 2.8.2 Get Cart
    Changes in 2.8.2.3.3 ProductDetail Object
    Added productEndDate field Event end date 2.8.2 Get Cart
    Added altDesc field Additional information for hotel package events: check-in, check-out and the number of guests. 2.8.2 Get Cart
    Added gaSeqNumber field GA event sequence number, by default this field will not be returned when the event is not configured. 2.8.2 Get Cart
    Remove fee Object section Removed fee Object from cartItem 2.8.2 Get Cart


    Release v0.22

    STiX Cloud REST API Release Notes v0.22

    Each set of release notes describes changes that apply to the release:

    Update Update Summary API Section Previous Version
    Added creditCardRange in 2.7 Get Ticket Type This return a creditCardRange list if a certain priceClass has a credit card range restriction. 2.7 Get Ticket Type
    Deprecated Endpoints 2.8 Get Delivery/Payment Methods Deprecated 2.8 Get Delivery/Payment Methods in v0.21 v0.21
    Added New Endpoints in 2.8 Add/Get/Delete Cart This endpoint is used for creating Cart object to be used in 2.9 Submit Pre Payment Order. The Add Cart API includes validation such as shared quota, promo password, quantity, etc. 2.8 Add/Get/Delete Cart
    Removed properties in 2.9 Submit Pre Payment Order Removed cartItemList and cartItemTotal. This request objects is removed for this API version. This is to utilize the cartGuid created in 2.8 Add/Get/Delete Cart 2.9 Submit Pre Payment Order
    Added cartGuid in 2.9 Submit Pre Payment Order Added new request object cartGuid in 2.8 Submit Pre Payment Order. 2.9 Submit Pre Payment Order
    Added address Object in 2.9 Submit Pre Payment Order address object is added in 2.9 Submit Pre Payment Order, this is used for updating Mailing Address of the patron. If Patron Mailing Address exists, it will replace the new Mailing Address 2.9 Submit Pre Payment Order


    Release v0.21

    STiX Cloud REST API Release Notes v0.21

    Each set of release notes describes changes that apply to the release:

    Update Update Summary API Section Previous Version
    Added new API 2.14 Patron Transaction History This return a list of successful transaction information transacted by the patron 2.14 Patron Transaction History
    Added externalCustomerID in 2.9 Submit Pre Payment Order without account no. is given by using same external customer ID and email address of the same patron type is found, the API will do an update. 2.9 Submit Pre Payment Order


    Release v0.20

    STiX Cloud REST API Release Notes v0.20

    Each set of release notes describes changes that apply to the release:

    Update Update Summary API Section Previous Version
    Moved externalTransactionId from 2.9 to 2.10 externalTransactionId in 2.9 Submit Pre Payment Order is moved to 2.10 Confirm/Cancel Order 2.10 Confirm Order v0.19
    Added ccNumber in 2.10 Confirm Order Added ccNumber in Confirm Order API Endpoint 2.10 Confirm Order v0.19
    externalTransactionId in 2.10 Confirm Order externalTransactionId can add other payment method. 2.10 Confirm Order v0.19
    Added channelType in 2.11 Added channelType as filter in Request. Add channelType in Response per Transaction 2.11 Get Transactions v0.19
    Update TxnProducts updated from ticketStatus to printStatus in 2.11 Get Transaction, 2.12 Get TxnProduct Tickets and 2.13 Update TxnProduct Tickets 2.11 Get Transaction
    Added deliveryMethod Added value of delivery method used in the transaction 2.11 Get Transaction 2.11 Get Transaction
    Added expirationTime Added expirationTime in Seat Reservation Endpoint 2.5 Seat Offer 2.5 Seat Offer
    Added isReturned Added value of isReturned in the transaction 2.11 Get Transaction 2.11 Get Transaction
    Added nearestEntrance Added value of nearestEntrance in the transaction 2.11 Get Transaction 2.11 Get Transaction
    Added remarks Added remarks field for transaction in 2.9 Submit Pre Payment Order 2.9 Submit Pre Payment Order


    Update Update Summary API Section
    Sales Flow Diagram Updated Sales Flow Diagram for v.20 Release 1.5 Sales Flow Diagram

    Release v0.19

    STiX Cloud REST API Release Notes v0.19

    Each set of release notes describes changes that apply to the release:

    Update Update Summary API Section Previous Version
    Changed Section Number for 2.8 Moved Submit Pre-Payment Order from 2.8 to 2.9 2.9 Submit Pre Payment v0.18
    Changed Section Number for 2.9 Moved Confirm/Cancel Order from 2.9 to 2.10 2.10 Confirm/Cancel v0.18
    Name Feature Summary API Section
    Get Common Delivery Methods To retrieve Common Delivery Methods between given Products Ids and User Profile. 2.8 Get Common Delivery Methods
    Get Common Payment Methods To retrieve Common Payment Methods between given Products Ids. 2.8 Get Common Payment Methods
    Get Transaction Endpoint This endpoint retrieve Transactions based on following attributes transactionRefNo, externalTransactionId, ccNumber and emailAddress. 2.11 Get Transactions
    Get TxnProduct Ticket Endpoint This endpoint generates TxnProduct Tickets by providing the following attributes txnProductIdList, ticketPrintType and printerDPI in request body. 2.12 Get TxnProduct Tickets
    Update TxnProducts This endpoint updates TxnProduct ticketStatus by providing the txnProductId, ticketStatus and a flag isReprint in request body. 2.13 Update TxnProduct Ticket

    Previous Versions

    Version 0.22
    Version 0.20/21
    Version 0.19
    Version 0.18