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:
- tenant: REQUIRED. Please use tenant ID provided
- grant_type: REQUIRED. Value must be set to "client_credentials"
- client_id: REQUIRED. Client ID.
- client_secret: REQUIRED. Client Secret/Password.
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.
1.5 Sales Flow Diagram
Please refer to the below diagrams for visual examples for salesflow API.
1.6 Package Flow Diagram
Please refer to the below 2 diagrams for visual examples to package flow.
Visual Flow for Package Non-SP
1.7 Postman Collection
Import StixCloud Sales Flow and Package 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 <<最棒的礼物>> 青少年相声剧",
"promoters": [
"<a href ='http://www.yppae.org/'>Young People’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": "<p>Inspired by and adapted from Jean-Jacques Sempé and Ren&eacut#39..",
"bookingUrl": "http://www.sistic.com.sg/events/cbest0418",
"priceDescription": "<p>Standard: S$27, S$25</p>\n",
"duration": "<p>Approximately 1 hour 30 minutes<br />\n(Inclusive of 15 minutes interval)&..",
"admissionRules": "<p><strong>Rating / Age Limit</strong></p>\n\n<ul>...",
"salesDateText": "<p><strong>ALL Channel:</strong><br />\n1 Jan 2018, ...",
"languageTitle": "The Best Gift - Cross Talk Play <<最棒的礼物>> 青少年相声剧",
"updateDate": "2018-01-01T09:14:47+08:00",
"languageVenue": "<p><a href="http://www.sistic.com.sg/venues?id=196">...",
"isPackage": true
},
{
"summaryImagePath": "/public/SISTIC/01-02-2018/1517453085160/238X94.jpg",
"internetContentCode": "cescape2016aa",
"title": "Captivate Escape Rooms Singapore",
"promoters": [
"<a href ='http://www.admiralassociates.com/'>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": "<p>Book tickets for the biggest new entertainment buzz since the ...",
"priceDescription": "<p>Monday - Sunday: S$25 (min 2 pax)<br />\n<br />\n<strong&g...",
"duration": "<p></p>\n\n<p></p>\n\n<p></p>\n\n&l,,",
"admissionRules": "<p><strong>Rating / Age Limit</strong></p>...",
"updateDate": "2018-02-01T10:44:45+08:00",
"languageVenue": "<p><a href="http://www.sistic.com.sg/venues?id=955"..\n",
"isPackage": false
}
],
"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": [
"<a href ='http://www.nus.edu.sg/'>Lee Kong Chian Natural History Museum</a>"
],
"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": "<p>Get acquainted with the incredible world of biodiversity at Singapore’s ..",
"bookingUrl": "http://www.sistic.com.sg/events/lkc2015",
"priceDescription": "<p><strong><strong>Singaporean / Permanent Resident (PR)... ",
"admissionRules": "<p><u><strong>Terms and Conditions<...",
"salesDateText": "<p>All Channels:<br />\n30 Mar 2015, 10am</p>\n",
"languageTitle": "Lee Kong Chian Natural History Museum",
"updateDate": "2019-02-17T14:13:16+08:00",
"languageVenue": "<p><a href="/venues?id=889">Lee Kong Chian Natural History Museum<..",
"isPackage": true
}
],
"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": [
"<a href ='http://www.nus.edu.sg/'>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": "<p>Get acquainted with the incredible world of biodiversity at Singapore’s ...",
"bookingUrl": "http://www.sistic.com.sg/events/lkc2015",
"priceDescription": "<p><strong><strong>Singaporean / Permanent Re...",
"admissionRules": "<p><u><strong>Terms and Conditions</strong><..",
"salesDateText": "<p>All Channels:<br />\n30 Mar 2015, 10am</p>\n",
"languageTitle": "Lee Kong Chian Natural History Museum",
"updateDate": "2019-02-17T14:13:16+08:00",
"languageVenue": "<p><a href="/venues?id=889">Lee Kong Chian Natural History M..",
"isPackage": false
},
{
"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?<br />\nYou w...",
"priceDescription": "Standard: S$100",
"duration": "1 hour",
"admissionRules": "Admission is subject to tickets produced at the entrance.<br />...",
"salesDateText": "Internet : 4 May 2015, 9am<br />\nOther Channels : 4 May 2015, 10am",
"languageTitle": "(TEST) Esplanade-Presented GA",
"updateDate": "2019-01-17T16:45:21+08:00",
"isPackage": false
},
{
"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?<br />...",
"priceDescription": "Standard: S$100",
"duration": "1 hour",
"admissionRules": "Admission is subject to tickets produced at the entrance.<br />...",
"salesDateText": "Internet : 4 May 2015, 9am<br />\nOther Channels : 4 May 2015, 10am",
"languageTitle": "(TEST) Esplanade-Presented GA",
"updateDate": "2019-01-17T16:45:21+08:00",
"isPackage": false
}
],
"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
Generic Search
- Note:
- The generic search method will search for the following attributes ()
- Search criteria must have at least 3 characters
- Searching is using wildcard search and case insensitive
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 |
Specific Attribute Search
- Note:
- You can combine multiple search criteria, such as /icc?tile=foo&venue=bar
- For searching, please pass at least minimum 3 characters for the criteria
- Searching is using wildcard search and case insensitive
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
- Note:
- There is no default sort for icc
- You can combine search and sort, example as /icc?q=esplanade&sort=sellabilityStartDate or /icc?title=Gift&sort=sellabilityStartDate
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
- Only those events/shows available for sale by the specific client will be retrieved
- The return list includes both current and future events.
- The client shall ensure that patrons cannot purchase future events based on the event start and end date.
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 |
isPackage | Proceed to package flow when returning true, or else proceed to sales flow. | Boolean | 4 | N |
2.1.6.3 Links Object
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)",
"showDateTime": "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)&",
"showDateTime": "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)",
"showDateTime": "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)%",
"showDateTime": "2020-01-04T20:00:00+08:00",
"availabilityStatus": 19,
"isPromo": false,
"venue": "+博物馆Lee Kong Chian Natural History Museum",
"ticketType": "GA"
},
{
"productId": 268915,
"showTitle": "M+ 博物馆",
"showDateTime": "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",
"showDateTime": "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.
Alternative to 2.2 Get Event Show Date & Time
2.2A1 and 2.2A2 endpoints should be used instead of 2.2 when expecting more than 500 products to be configured per Internet Content Code.
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 | |
validityYears | 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.2A1 Get Event Show Date & Time (Without Availability)
Sample request:
curl --request GET \
--url https://api.stixcloud.com/api/v0/SISTIC/icc/lkc2015/products \
--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 without 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)",
"showDateTime": "2020-01-01T20:00:00+08:00",
"isPromo": false,
"venue": "+博物馆Lee Kong Chian Natural History Museum",
"ticketType": "GA"
},
{
"productId": 270784,
"showTitle": "Lee Kong Chian Natural History Museum (Jan20) (Normal Ticket)&",
"showDateTime": "2020-01-02T20:00:00+08:00",
"isPromo": false,
"venue": "+博物馆Lee Kong Chian Natural History Museum",
"ticketType": "GA"
},
{
"productId": 270789,
"showTitle": "Lee Kong Chian Natural History Museum (Jan20) (Group Ticket)",
"showDateTime": "2020-01-03T20:00:00+08:00",
"isPromo": false,
"venue": "+博物馆Lee Kong Chian Natural History Museum",
"ticketType": "GA"
},
{
"productId": 270790,
"showTitle": "Lee Kong Chian Natural History Museum (Jan20) (Normal Ticket)%",
"showDateTime": "2020-01-04T20:00:00+08:00",
"isPromo": false,
"venue": "+博物馆Lee Kong Chian Natural History Museum",
"ticketType": "GA"
},
{
"productId": 268915,
"showTitle": "M+ 博物馆",
"showDateTime": "2038-06-22T00:00:00+08:00",
"isPromo": false,
"venue": "+博物馆Lee Kong Chian Natural History Museum",
"ticketType": "GA"
},
{
"productId": 254829,
"showTitle": "Wonder Full – Light & Water Show",
"showDateTime": "2052-10-30T12:00:00+08:00",
"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/products"
}
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/products"
}
For a given InternetContentCode, the API will return a list of available events info such as the exact event Show Date and Time but without the availability status.
Alternative to 2.2 Get Event Show Date & Time
2.2A1 and 2.2A2 endpoints should be used instead of 2.2 when expecting more than 500 products to be configured per Internet Content Code.
2.2A1.1 Request
You must replace tenant
with your tenant code and internetContentCode
retrieved from Get Events.
2.2A1.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.2A1.3 Data Model
2.2A1.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.2A1.3.2 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 |
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.2A2 Get Event Show Availability Status
Sample request:
curl --request POST \
--url https://api.stixcloud.com/api/v0/SISTIC/icc/lkc2015/products/availability \
--header 'authorization: Bearer <Access-Token>' \
--header 'content-type: application/json' \
--data '{
"productIdList": [969791]
}'
The above command returns JSON structured like this:
Status: 200. return list of availability status for productIds in request body
{
"icAttributesList": [],
"availabilityList": [
{
"productId": 969791,
"availabilityStatus": 19,
"isPromo": false
}
]
}
Errors
Error: 400. This exception occurs when no productId is not passed into "productIdList" field in the request body.
{
"httpStatus": "400",
"errorCode": "error.product.param.product-id.missing",
"exceptionName": "com.stixcloud.common.exception.SisticApiException",
"statusMessage": "Missing or empty productIdList field in the request body",
"errorTime": "2021-01-12T16:46:00.507+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/icc/lkc2015/products/availability"
}
For a given list of productIds in "productIdList" field, the API will return a list of available events info with the availability status. Only pass in the products for the selected Day ("showDate"). Parse the "showDate" field in 2.2A1 endpoint to extract the list of productId.
Alternative to 2.2 Get Event Show Date & Time
2.2A1 and 2.2A2 endpoints should be used instead of 2.2 when expecting more than 500 products to be configured per Internet Content Code.
2.2A2.1 Request
You must replace tenant
with your tenant code and internetContentCode
retrieved from Get Events.
2.2A2.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 |
promoCode | String | [optional] Use for Private Link purpose. Note: Not in used for this module. |
2.2A2.3 Data Model
2.2A2.3.1 Request Object
Name | Description on attribute | Data Type | Length / Data Range | Nullable |
---|---|---|---|---|
productIdList | The list of the product ids to retrieve list payment method code. | List of Number | - | N |
2.2A2.3.2 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 |
icAttributesList | Internet content attributes | Array[String] | 255 | Y |
availabilityList | List of availability object | List of Availability JSON object | - | - |
2.2A2.3.2.1 Availability Object
Name | Description on attribute | Data Type | Length/Data Range | Nullable |
---|---|---|---|---|
productId | Product Id Unique key for product |
Number | 10 | 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 |
isPromo | Is promo code valid or not Note: Not in used for this module. |
Boolean | 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 Selection:SP => Self Pick Selection:BA => Best Available Selection:HS => Hot Show Selection:SP,BA => Self Pick & Best Available |
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:
- 0 => Sold Out
- 1 => Available
- 2 => Limited Seats
- 3 => Single Seat
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. |
packageReqId | Number | [optional] Required only in package flow. |
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",
"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",
"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
{
"reservedTime": "2020-10-20T21:34:49+08:00",
"imageAvailable": 1,
"viewFromSeatAvailable": 0,
"seatSelectedType": "IO",
"imageURL": "/public/SISTIC/SeatmapMapping/4229/SOD_Circle_Center_Seats.jpg",
"overlayImagePath": "/SisticWebApp/images",
"setsReservedList": [
{
"setsReserved": [
{
"inventoryId": 414204828,
"seatRowAlias": "AA",
"seatAlias": "9",
"seatType": 1,
"topLeftCoordinates": "167,46",
"seatAngle": "0",
"coordinates": "167,46,184,63",
"isGroupBookingReserved": false
},
{
"inventoryId": 414204821,
"seatRowAlias": "AA",
"seatAlias": "10",
"seatType": 1,
"topLeftCoordinates": "184,46",
"seatAngle": "0",
"coordinates": "184,46,201,63",
"isGroupBookingReserved": false
},
{
"inventoryId": 414204818,
"seatRowAlias": "AA",
"seatAlias": "11",
"seatType": 1,
"topLeftCoordinates": "201,46",
"seatAngle": "0",
"coordinates": "201,46,219,63",
"isGroupBookingReserved": false
}
],
"setsNeighbours": [
{
"inventoryId": 414204829,
"seatRowAlias": "AA",
"seatAlias": "8",
"seatType": 1,
"topLeftCoordinates": "149,46",
"seatAngle": "0",
"coordinates": "149,46,167,63",
"isGroupBookingReserved": false
},
{
"inventoryId": 414204817,
"seatRowAlias": "AA",
"seatAlias": "12",
"seatType": 1,
"topLeftCoordinates": "219,46",
"seatAngle": "0",
"coordinates": "219,46,236,63",
"isGroupBookingReserved": false
}
]
}
],
"seatsAvailableList": [],
"seatsUnavailableList": [],
"groupBookingSeatList": [],
"sectionAlias": "Center"
}
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) |
|||
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":709548,
"priceClassCode":"CB",
"priceClassAlias":"Complimentary - House Seat",
"priceValueAmount":{
"amount":0,
"currency":"SGD",
"formatted":"$0.00"
},
"availableQty":"1,2,3,4,5,6,7,8,9,10,11,12",
"passwordRequired":0
},
{
"priceClassId":163182,
"priceClassCode":"D",
"priceClassAlias":"Student",
"priceValueAmount":{
"amount":2.7,
"currency":"SGD",
"formatted":"$2.70"
},
"availableQty":"1,2,3,4,5,6,7,8,9,10,11,12",
"passwordRequired":1,
"feeList":[
{
"code":"Service Fee",
"charge":{
"amount":1,
"currency":"SGD",
"formatted":"$1.00"
}
}
]
},
{
"priceClassId":163183,
"priceClassCode":"D1",
"priceClassAlias":"Snr Citizen",
"priceValueAmount":{
"amount":2.7,
"currency":"SGD",
"formatted":"$2.70"
},
"availableQty":"1,2,3,4,5,6,7,8,9,10,11,12",
"passwordRequired":0,
"feeList":[
{
"code":"Service Fee",
"charge":{
"amount":1,
"currency":"SGD",
"formatted":"$1.00"
}
}
]
},
{
"priceClassId":163184,
"priceClassCode":"D2",
"priceClassAlias":"NSF",
"priceValueAmount":{
"amount":2.7,
"currency":"SGD",
"formatted":"$2.70"
},
"availableQty":"1,2,3,4,5,6,7,8,9,10,11,12",
"passwordRequired":0,
"feeList":[
{
"code":"Service Fee",
"charge":{
"amount":1,
"currency":"SGD",
"formatted":"$1.00"
}
}
]
},
{
"priceClassId":163185,
"priceClassCode":"D3",
"priceClassAlias":"PAssion Card",
"priceValueAmount":{
"amount":2.8,
"currency":"SGD",
"formatted":"$2.80"
},
"availableQty":"1,2,3,4,5,6,7,8,9,10,11,12",
"passwordRequired":1,
"feeList":[
{
"code":"Service Fee",
"charge":{
"amount":1,
"currency":"SGD",
"formatted":"$1.00"
}
}
]
},
{
"priceClassId":163186,
"priceClassCode":"F",
"priceClassAlias":"Group Booking - min 5 tickets",
"priceValueAmount":{
"amount":2.5,
"currency":"SGD",
"formatted":"$2.50"
},
"availableQty":"1,2,3,4,5,6,7,8,9,10,11,12",
"passwordRequired":0,
"feeList":[
{
"code":"Service Fee",
"charge":{
"amount":1,
"currency":"SGD",
"formatted":"$1.00"
}
}
]
},
{
"priceClassId":398706,
"priceClassCode":"D5",
"priceClassAlias":"E&Me Black Card",
"priceValueAmount":{
"amount":22.95,
"currency":"SGD",
"formatted":"$22.95"
},
"availableQty":"1,2,3,4,5,6,7,8,9,10,11,12",
"passwordRequired":0,
"memberships":[
{
"membershipType":"E&ME Membership",
"membershipName":"BLACK"
}
],
"feeList":[
{
"code":"Service Fee",
"charge":{
"amount":3,
"currency":"SGD",
"formatted":"$3.00"
}
}
]
}
]
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 |
packageReqId | Number | [optional] Required only in package flow. |
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 |
---|---|---|---|---|
priceClassId | Price Class ID | Long | N | |
priceClassCode | Price class code | String | 255 | N |
priceClassAlias | Price class alias | String | 255 | Y |
priceValueAmount | Unit price | JSON Monetary Object | - | N |
availableQty | Adjust ticket quantity selection based with this property. Ex) 1,2,3,4,5,6,7,8 4,8,12 |
String | 255 | Y |
passwordRequired | Flag to indicate if the price class require to input password. |
Integer | Y | |
memberships | List of membership object | List of membership JSON Object | - | Y |
feeList | List of fee object | List of fee JSON Object | - | 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.7.3.6 membership object
Name | Description on attribute | Data Type | Length / Data Range | Nullable |
---|---|---|---|---|
membershipType | membership Type | String | 100 | N |
membershipName | membership name | String | 255 | 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 | |
externalCustomerID | [optional] External Customer ID given by API partner | String | 100 | Y |
[optional] Customer email address Unique key for patron profile. |
String | 75 | 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 |
packageList (*) | List of package Information. Refer to 2.8.2.3.8 packageInfo object | List of packageInfo Object | - | Y |
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 |
packageId (*) | Package Id | Number | 10 | N |
packageReqId (*) | packageReqId | Number | 10 | N |
packageReqRefNo (*) | A reference number | Number | 13 | N |
packageProductType (*) | Package product type | String | 10 | 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 |
2.8.2.3.8 packageInfo object
Name | Description on attribute | Data Type | Length / Data Range | Nullable |
---|---|---|---|---|
packageReqRefNo | package Requirement Reference Number | Number | 13 | N |
packageReqAlias | package Requirement name | String | 255 | N |
priceClassAlias | priceClass name | String | 255 | N |
quantity | Ticket quantity | Number | 10 | N |
unitPrice | Unit price for ticket | JSON Monetary object | - | N |
bookingFee | Also known as service fee | JSON Monetary object | N | |
subTotal | Subtotal for price class Summation of ticket (unitPrice + bookingFee) * quantity |
JSON Monetary object | - | N |
packageType | package type | String | Y |
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:
Create a new patron account if given patron account information is not found, else will reuse existing patron account.
Pass the selected delivery method from 2.8 Get Cart API
Return unique SISTIC Transaction Reference Number and amount to be paid.
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://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":"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://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":"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
Amount passed in will be used for validation purpose only, system will perform the calculation based on configuration for actual final amount to be paid. Error will be thrown if the validation fail due to amount mismatch.
Seats will be reserved for up to 15 or 30 minutes depending on the system configuration and it will be automatically release thereafter. Client app is expecting to complete the payment within the seat reservation interval and call the Confirm Order API endpoint to confirm the order.
Transaction will be expired when timeLeftSecond equals to 0.
Patron account information: In SISTIC, there are two patron types
Guest Account Type
- Patron type value must be ‘G’
- Email address is mandatory.
- Password is not required.
Internet Web Account Type
- Patron type value must be ‘I’.
- Email address is mandatory in order to checkout
- Either password or externalCustomerId is required to create new internet profile
If given email address has an internet profile in SISTIC database, system will do update the existing profile with information in request body. If there is no existing profile for given email address, system will create new internet account
For API partners who use SISTIC authentication, password is required to create new internet account.
For API partners who do not use SISTIC authentication, we recommend you to send an unique value which is used to identify user in your system in externalCustomerId along with user email address to SISTIC API.
Notes
- System will return error if both password and externalCustomerID are missing and given email address is not found in SISTIC database and no internet profile is created
- externalCustomerId is updated to exisiting profile of given email if that profile has empty externalCustomerId
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 |
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",
"sendEmailNotification": true,
"lang":"en_sg",
"payment":{
"paymentRefNo":"ch_1EsPsG2eZvKYlo2Co9aNBqG6",
"paymentMethod":"VISA",
"ccNumber" : "442266xxxxxx0000",
"ccExpiryMonth": 5,
"ccExpiryYear": 2021,
"terminalId": "123",
"merchantId": "456",
"approvalCode": "987654",
"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: Confirm Order
curl --request POST \
--url 'https://api.stixcloud.com/api/v0/{tenant}/orders/{transactionRefNo}?=' \
--header 'authorization: Bearer <Access-Token>' \
--header 'content-type: application/json' \
--data '{
"confirmOrder": true,
"externalTransactionId": "20210128-000009",
"sendEmailNotification": true,
"lang":"en_sg",
"payment":{
"paymentRefNo":"SISTIC-20210128-000009",
"charge":{
"amount":0.0,
"currency":"SGD"
}
}
}'
The above command returns JSON structured like this:
Status: 200. Confirm Order
{
"httpStatus": "200",
"statusMessage": "Order with ref no.20210128-000009 confirmed.",
"transactionDateTime": "2021-01-28T14:09:46+08:00",
"externalTransactionId": "20210128-000009",
"deliveryMethod": {
"code": "E_TICKET",
"eticketURL": [
"https://tomcat.sistic.stixcloud.com/Stix/eticket/view.htm?linkId=C3KjceMYMZ"
]
},
"barcode": {
"1130752": "4326045029989588488967"
}
}
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"
}
Sample Request: To pass in membership information
{
"confirmOrder": true,
"externalTransactionId": "externalTxnID:ab124cv|octopus:1232132133",
"sendEmailNotification": true,
"payment": {
"paymentRefNo": "ch_1EsPsG2eZvKYlo2Co9aNBqP1",
"paymentMethod": "VISA_MBS_API",
"ccNumber" : "4111111111111111",
"charge": {
"amount": 37.0,
"currency": "SGD"
}
},
"membership": {
"memberId": "12345",
"rewardPoints": 123456.10
}
}
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
- Payment to be handled on client side and periodic settlement will be made by client as per agreement.
- eticket url is generated but no email will be sent to patron. Email with eticket information needed to be handled by client.
- All tickets sold are subject to SISTIC terms and conditions.
- When the total payment amount is $0 dollar, both credit card and payment method objects are not required.
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 |
sendEmailNotification | Flag to indicate if email notification will be sent out upon confirmation of order true to send email notification Default value is false |
Boolean | 5 | Y |
lang | Language parameter to indicate which email template language will be sent out. Below are the supported locale values: en_HK English zh_HK -> Traditional Chinese zh_CN -> Simplified Chinese |
String | 5 | Y |
payment | Payment Info | JSON payment object | - | N |
membership | Membership Info | JSON membership object | - | Y |
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 |
ccExpiryMonth | Expiry month of the credit card | Number | 2 | Y |
ccExpiryYear | Expiry year of the credit card | Number | 4 | Y |
terminalId | ID of the terminal | String | 50 | Y |
merchantId | ID of the merchant | String | 50 | Y |
approvalCode | Approval code from the payment gateway | String | 50 | 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 Membership object
Name | Description on attribute | Data Type | Length / Data Range | Nullable |
---|---|---|---|---|
memberId | External member id | String | 5-9 | Y |
rewardPoints | Member's points. Value only to 2 decimal points. | Number | - | Y |
2.10.4.5 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.6 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_sistic"
},
{
"txnProductId": 1104781,
"transactionRefNo": "20180611-000002",
"printStatus": 1,
"reprintedCount": 2,
"isReprint": true,
"ticketType": 1,
"printedBy": "internet_sistic"
}
]
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": "https://api.stixcloud.com/api/v0/SISTIC/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": "https://api.stixcloud.com/api/v0/SISTIC/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": "https://api.stixcloud.com/api/v0/SISTIC/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": "https://api.stixcloud.com/api/v0/SISTIC/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://api.stixcloud.com/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": "SGD",
"formatted": "$0.00"
},
"subTotal": {
"amount": 0,
"currency": "SGD",
"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": "SGD",
"formatted": "$145.00"
},
"bookingFee": {
"amount": 4,
"currency": "SGD",
"formatted": "$4.00"
},
"subTotal": {
"amount": 149,
"currency": "SGD",
"formatted": "$149.00"
}
}
],
"totalAmount": {
"amount": 149,
"currency": "SGD",
"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":"SGD",
"formatted":"$0.00"
},
"subTotal":{
"amount":0,
"currency":"SGD",
"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":"SGD",
"formatted":"$145.00"
},
"bookingFee":{
"amount":4,
"currency":"SGD",
"formatted":"$4.00"
},
"subTotal":{
"amount":149,
"currency":"SGD",
"formatted":"$149.00"
}
}
],
"totalAmount":{
"amount":149,
"currency":"SGD",
"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": "SGD",
"formatted": "$0.00"
},
"subTotal": {
"amount": 0,
"currency": "SGD",
"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://tomcat.sistic.stixcloud.com/Stix/eticket/view.htm?linkId=wExN4UJb82"
},
"description": "Urinetown: The Musical (White Label)",
"quantity": 1,
"unitPrice": {
"amount": 90,
"currency": "SGD",
"formatted": "$90.00"
},
"bookingFee": {
"amount": 4,
"currency": "SGD",
"formatted": "$4.00"
},
"subTotal": {
"amount": 94,
"currency": "SGD",
"formatted": "$94.00"
}
}
],
"totalAmount": {
"amount": 94,
"currency": "SGD",
"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": "SGD",
"formatted": "$0.00"
},
"subTotal": {
"amount": 0,
"currency": "SGD",
"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://tomcat.sistic.stixcloud.com/Stix/eticket/view.htm?linkId=PoI1ayfTsz"
},
"description": "(TEST) AN ACTRESS PREPARES",
"quantity": 1,
"unitPrice": {
"amount": 40,
"currency": "SGD",
"formatted": "$40.00"
},
"bookingFee": {
"amount": 3,
"currency": "SGD",
"formatted": "$3.00"
},
"subTotal": {
"amount": 43,
"currency": "SGD",
"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://tomcat.sistic.stixcloud.com/Stix/eticket/view.htm?linkId=K25Q4vjIQ1"
},
"description": "(TEST) SUPERVISION",
"quantity": 1,
"unitPrice": {
"amount": 40,
"currency": "SGD",
"formatted": "$40.00"
},
"bookingFee": {
"amount": 3,
"currency": "SGD",
"formatted": "$3.00"
},
"subTotal": {
"amount": 43,
"currency": "SGD",
"formatted": "$43.00"
}
}
],
"totalAmount": {
"amount": 86,
"currency": "SGD",
"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":"SGD",
"formatted":"$1.50"
},
"subTotal":{
"amount":1.5,
"currency":"SGD",
"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":"SGD",
"formatted":"$3.00"
},
"bookingFee":{
"amount":4,
"currency":"SGD",
"formatted":"$4.00"
},
"subTotal":{
"amount":7,
"currency":"SGD",
"formatted":"$7.00"
}
}
],
"totalAmount":{
"amount":8.5,
"currency":"SGD",
"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://api.stixcloud.com/api/v0/SISTIC/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. |
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. Package Flow API
This Section contains REST API endpoints used for booking package items for a given event. Note that not all events have packages.
3.1 Get Package List
Sample request:
curl --request GET \
--url https://api.stixcloud.com/api/v0/SISTIC/package/remixonlpkg0121 \
--header 'authorization: Bearer <Access-Token>' \
--header 'content-type: application/json'
The above command returns JSON structured like this:
Status: 200. return list of available packages info
[
{
"packageId": 1111,
"packageAlias": "RE•MIX Online Festival Pass",
"description": "Applicable with minimum purchase of 1 ticket per product per show for RE•MIX product. Not applicable to SISTIC Mobile App.",
"info": "1) SCCC RE•MIX - All Walks of Love (Onsite) \r\n\r\n2)Pan!c at the Gallery - The RE•MIX Escape Game (Online)\r\n\r\n3) SCCC RE•MIX - Silent Music Party (Online)",
"icAttributesList": [2, 512]
},
{
"packageId": 1115,
"packageAlias": "RE•MIX Online Festival Pass - 10% Partners",
"description": "Applicable with minimum purchase of 1 ticket per product per show for RE•MIX product. Applicable with 10% Partner Promo",
"info": "1) SCCC RE•MIX - All Walks of Love (Onsite) \r\n\r\n2)Pan!c at the Gallery - The RE•MIX Escape Game (Online)\r\n\r\n3) SCCC RE•MIX - Silent Music Party (Online)",
"icAttributesList": [2, 512]
}
]
Errors
Error: 400. This exception occurs when the Internet Content Code is invalid or expired.
{
"httpStatus": "400",
"errorCode": "error.package.icc.invalid",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Invalid Internet Content Code.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/package/remixonlpkg01211"
}
For a given InternetContentCode(ICC), the API will return a list of available packages for the given ICC. The ICC can be obtained from 2.1 Get Events and the field isPackage will indicate if the ICC is package flow or not.
Each package from the list will concise of package id, package alias and a summary of the package.
For more information about the package rules and its required packages can be obtain from 3.2 Get Package Rules and Requirement API.
3.1.1 Request
You must replace tenant
with your tenant code and internetContentCode
retrieved from 2.1 Get Events.
3.1.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 |
3.1.3 Data model
3.1.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 |
packageList | List of Package objects. Refer to 3.1.3.2 Package Object | List of Json Object | - | - |
3.1.3.2 Package Object
Name | Description on attribute | Data Type | Length/Data Range | Nullable |
---|---|---|---|---|
packageId | Package Id | Number | 10 | N |
packageAlias | Package Name | String | 255 | N |
description | Package descriptions (Internal used) | String | 255 | Y |
info | Summary of package information used for frontend display | String | 255 | Y |
icAttributesList | List of icAttributes | Array List of number | - | - |
3.2 Get Package Rules and Requirement
Sample request:
curl --request GET \
--url https://api.stixcloud.com/api/v0/SISTIC/package/1111/packageInfo \
--header 'authorization: Bearer <Access-Token>' \
--header 'content-type: application/json'
The above command returns JSON structured like this:
Status: 200. return the package information, rules and require packages
{
"packageId": 1111,
"packageAlias": "RE•MIX Online Festival Pass",
"info": "1) SCCC RE•MIX - All Walks of Love (Onsite) \r\n\r\n2)Pan!c at the Gallery - The RE•MIX Escape Game (Online)\r\n\r\n3) SCCC RE•MIX - Silent Music Party (Online)",
"description": "Applicable with minimum purchase of 1 ticket per product per show for RE•MIX product. Not applicable to SISTIC Mobile App.",
"packageRuleList": [
{
"packageRule": "package.rule.minimum.requirements",
"ruleParam": 3
},
{
"packageRule": "package.rule.maximum.requirements",
"ruleParam": 3
},
{
"packageRule": "package.rule.minimum.quantity",
"ruleParam": 3
},
{
"packageRule": "package.rule.same.quantity",
"ruleParam": true
}
],
"packageReqList": [
{
"packageReqId": 2605,
"packageReqAlias": "Remix Online Festival Pass - SCCC RE•MIX - All Walks of Love (Onsite)",
"packageReqRuleList": [
{
"packageRule": "package.requirements.rule.minimum.products",
"ruleParam": 1
},
{
"packageRule": "package.requirements.rule.maximum.products",
"ruleParam": 1
},
{
"packageRule": "package.requirements.rule.minimum.quantity.per.product",
"ruleParam": 1
},
{
"packageRule": "package.requirements.rule.same.quantity",
"ruleParam": true
}
],
"productGroupList": [
{
"productGroupId": 39733,
"productGroupAlias": "SCCC RE•MIX - All Walks of Love (Onsite) (G)",
"productList": [
{
"productAlias": "SCCC RE•MIX - All Walks of Love (Onsite)",
"productAliasId": 1552141,
"passwordRequired": 0
}
]
}
]
},
{
"packageReqId": 2606,
"packageReqAlias": "Remix Online Festival Pass - Pan!c at the Gallery - The RE•MIX Escape Game (Online)",
"packageReqRuleList": [
{
"packageRule": "package.requirements.rule.minimum.products",
"ruleParam": 1
},
{
"packageRule": "package.requirements.rule.maximum.products",
"ruleParam": 1
},
{
"packageRule": "package.requirements.rule.minimum.quantity.per.product",
"ruleParam": 1
},
{
"packageRule": "package.requirements.rule.same.quantity",
"ruleParam": true
}
],
"productGroupList": [
{
"productGroupId": 39727,
"productGroupAlias": "Live Stream: Pan!c at the Gallery - The RE•MIX Escape Game (Online) (G)",
"productList": [
{
"productAlias": "Pan!c at the Gallery - The RE•MIX Escape Game (Online)",
"productAliasId": 1552126,
"passwordRequired": 0
}
]
}
]
},
{
"packageReqId": 2607,
"packageReqAlias": "Remix Online Festival Pass - SCCC RE•MIX - Silent Music Party (Online)",
"packageReqRuleList": [
{
"packageRule": "package.requirements.rule.minimum.products",
"ruleParam": 1
},
{
"packageRule": "package.requirements.rule.maximum.products",
"ruleParam": 1
},
{
"packageRule": "package.requirements.rule.minimum.quantity.per.product",
"ruleParam": 1
},
{
"packageRule": "package.requirements.rule.same.quantity",
"ruleParam": true
}
],
"productGroupList": [
{
"productGroupId": 39726,
"productGroupAlias": "Live Stream: SCCC RE•MIX - Silent Music Party (Online) (G)",
"productList": [
{
"productAlias": "SCCC RE•MIX - Silent Music Party (Online)",
"productAliasId": 1552124,
"passwordRequired": 0
}
]
}
]
}
]
}
Errors
Error: 400. This exception occurs when the Package Id is invalid or expired.
{
"httpStatus": "400",
"errorCode": "error.package.info.not.found",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Unable to retrieve Package Info.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/package/11112/packageInfo"
}
Error: 400. This exception occurs when the required package could not be found.
{
"httpStatus": "400",
"errorCode": "error.package.requirement.info.not.found",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Unable to retrieve Package requirement Info.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/package/11113/packageInfo"
}
For a given packageId, the API will return the package information, package rules to follow and require package items to add for a successful add to cart.
The package rules are listed in the packageRuleList and packageReqRuleList field which are for the overall package and require package respectively.
The packageRuleList are rules that all package items have to follow while packageReqRuleList only applies to individual package.
For example, packageId 1111 in the sample request, has 3 require packages. These require packages are bundle under the main package and must follow the rules of the main package.
For this sample, the main package must have a minimum total of 3 tickets.
Each of this require package also has their own rules like packageReqId 2607 must have a minimum of 1 ticket, and they can only be from 1 selected show from the list of productId, because this required package has a rule of max/min of 1 product in the packageReqRuleList.
If all the package requirements are not fulfill, you will not be able to successfully add the package to shopping cart.
Package Rule Explanation Sample 1
Package Rule Explanation Sample 2
Package Requirement Layout Display Sample 1
3.2.1 Request
You must replace tenant
with your tenant code and packageId
with your selected package Id retrieve from retrieved from Get Package List.
3.2.2 Path Variables and Parameters
Name | Type | Description |
---|---|---|
tenant | String | [required] Tenant ID given |
packageId | Number | [required] package Id selected from "get package List" endpoint |
3.2.3 Data model
3.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 |
packageId | Package Id | Number | 10 | N |
packageAlias | Package name | String | 255 | N |
description | Package descriptions (Internal used) | String | 255 | Y |
info | Summary of package information | String | 255 | Y |
packageRuleList | List of display rules object for this package. Refer to 3.2.3.2 Package Rules Object | List of Json Object | - | - |
packageReqList | List of require packages for the selected package. Refer to 3.2.3.3 Require Package Object | List of Json Object | - | - |
3.2.3.2 Package Rules Object
Name | Description on attribute | Data Type | Length/Data Range | Nullable |
---|---|---|---|---|
packageRule | Rule category. For possible response, refer to 3.2.3.2.1 Package Rules Response | String | 255 | Y |
ruleParam | Number or Boolean value related to the packageRule field. For example, if packageRule is "package.rule.minimum.requirements" and ruleParam is 3, the package requires a minimum of 3 package items. For packageRule "package.rule.same.quantity", the ruleParam true mean each package must be same number of tickets |
- | - | Y |
3.2.3.2.1 Package Rules Response List
No. | Response | Description on attribute |
---|---|---|
1. | package.rule.minimum.requirements | Minimum require packages that patron need to add in order to checkout |
2. | package.rule.maximum.requirements | Maximum require packages that patron need to add in order to checkout |
3. | package.rule.minimum.amount | Minimum total ticket price amount for the package |
4. | package.rule.maximum.amount | Maximum total ticket price amount for the package |
5. | package.rule.minimum.quantity | Minimum quantity for the total ticket for the package |
6. | package.rule.maximum.quantity | Maximum quantity for the total ticket for the package |
7. | package.rule.exact.quantity | Exact quantity of ticket to be selected for the package |
8. | package.rule.same.quantity | Select same ticket quantity for all products in the package |
9. | package.rule.same.price.category | Select same price category for all products in the package |
10. | package.rule.same.time | Select same time for all products in the package |
11. | package.rule.same.date | Select same date for all products in the package |
3.2.3.3 Require Package Object
Name | Description on attribute | Data Type | Length/Data Range | Nullable |
---|---|---|---|---|
packageReqId | packageReqId | Number | 10 | N |
packageReqAlias | Require package name | String | 255 | N |
packageReqRuleList | List of display rules object for require package. Refer to 3.2.3.4 Package Rules Object | List of Json Object | - | - |
productGroupList | List of product group for require package. Refer to 3.2.3.5 Product Group Object | List of Json Object | - | - |
3.2.3.4 Require Package Rules Object
Name | Description on attribute | Data Type | Length/Data Range | Nullable |
---|---|---|---|---|
packageRule | Rule category. For possible response, refer to 3.2.3.4.1 Require Package Rules Response | String | 255 | Y |
ruleParam | Number or Boolean value related to the packageRule field. For example, if packageRule is "package.requirements.rule.minimum.products" and ruleParam is 1, the require package would need a minimum of 1 product selected. |
- | - | Y |
3.2.3.4.1 Require Package Rules Response List
No. | Response | Description on attribute |
---|---|---|
1. | package.requirements.rule. minimum.products |
Minimum products need to be added for the package requirement |
2. | package.requirements.rule. maximum.products |
Maximum products that can be added for the package requirement |
3. | package.requirements.rule. minimum.quantity.per.product |
Select minimum ticket quantity per product for the package requirement |
4. | package.requirements.rule. maximum.quantity.per.product |
Select Maximum ticket quantity per product for the package requirement |
5. | package.requirements.rule. exact.quantity.per.product |
Exact quantity of ticket to be selected for each product for the package requirement |
6. | package.requirements.rule. same.quantity |
Select same ticket quantity for all products in the package requirement |
7. | package.requirements.rule. same.price.category |
Select same price category for all products in the package requirement |
8. | package.requirements.rule. same.time |
Select same time for all products in the package requirement |
9. | package.requirements.rule. same.date |
Select same date for all products in the package requirement |
3.2.3.5 Product Group Object
Name | Description on attribute | Data Type | Length/Data Range | Nullable |
---|---|---|---|---|
productGroupId | Product group Id | Number | 10 | N |
productGroupAlias | Product group name | String | 255 | N |
productList | List of products in this group. Refer to 3.2.3.6 Product Object | List of Json Object | - | - |
3.2.3.6 Product Object
Name | Description on attribute | Data Type | Length/Data Range | Nullable |
---|---|---|---|---|
productAlias | Product name | String | 255 | N |
productAliasId | Product name Id | Number | 10 | N |
passwordRequired | Does the products required password | Number | 10 | N |
3.3 Get Package Product Option
Sample request:
curl --request POST 'https://api.stixcloud.com/api/v0/SISTIC/package/productOption/' \
--header 'Authorization: Bearer <Access-Token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"packageReqId":2607,
"productAliasId": 1552124,
"promoPassword" : "pkid87"
}'
The above command returns JSON structured like this:
Status: 200. return icAttributesList for the package and show timing list
{
"showTimingList": [
{
"productId": 1552124,
"showTitle": "SCCC RE•MIX - Silent Music Party (Online)",
"showDateTime": "2021-01-16T21:00:00+08:00",
"venue": "Discord"
},
{
"productId": 1552165,
"showTitle": "SCCC RE•MIX - Silent Music Party (Online)",
"showDateTime": "2021-01-17T21:00:00+08:00",
"venue": "Discord"
},
{
"productId": 1552166,
"showTitle": "SCCC RE•MIX - Silent Music Party (Online)",
"showDateTime": "2021-01-19T21:00:00+08:00",
"venue": "Discord"
},
{
"productId": 1552167,
"showTitle": "SCCC RE•MIX - Silent Music Party (Online)",
"showDateTime": "2021-01-20T21:00:00+08:00",
"venue": "Discord"
},
{
"productId": 1552168,
"showTitle": "SCCC RE•MIX - Silent Music Party (Online)",
"showDateTime": "2021-01-21T21:00:00+08:00",
"venue": "Discord"
},
{
"productId": 1552169,
"showTitle": "SCCC RE•MIX - Silent Music Party (Online)",
"showDateTime": "2021-01-22T21:00:00+08:00",
"venue": "Discord"
},
{
"productId": 1552170,
"showTitle": "SCCC RE•MIX - Silent Music Party (Online)",
"showDateTime": "2021-01-23T21:00:00+08:00",
"venue": "Discord"
},
{
"productId": 1552171,
"showTitle": "SCCC RE•MIX - Silent Music Party (Online)",
"showDateTime": "2021-01-24T21:00:00+08:00",
"venue": "Discord"
}
]
}
Errors
Error: 400. This exception occurs when the request values is invalid or expired or when no products could be found.
{
"httpStatus": "400",
"errorCode": "error.product.option.not.found",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Unable to retrieve Product Option.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/package/productOption/"
}
Error: 400. This exception occurs when the promo password is invalid.
{
"httpStatus": "400",
"errorCode": "error.package.promopassword.not.validated",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Unable to retrieve validated products for package promoPassword.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/package/productOption/"
}
Error: 400. This exception occurs when the promoPassword is required for the products.
{
"httpStatus": "400",
"errorCode": "error.package.promopassword.required",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Unable to retrieve products, package promoPassword is required.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/package/productOption/"
}
Error: 400. This exception occurs when the promoPassword usage has reached the limit.
{
"httpStatus": "400",
"errorCode": "error.package.promopassword.quota.reached",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Quota exceeded for this promo password.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/package/productOption/"
}
Error: 400. This exception occurs when the request parameters is invalid.
{
"httpStatus": "400",
"errorCode": "error.invalid.request.parameter",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Invalid request parameter.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/package/productOption/"
}
For a given request, this endpoint would retrieve a list of product's show timing. The response retrieve is base on packageReqId and its related fields like productAliasId.
For some productAliasId a password is required to retrieve the list of product's show timing. If there is no promoPassword when is it required, an error will be return that promoPassword is required.
If a promoPassword is also pass in the request, the endpoint would validate the password, it will return a list of product's show timing if validation is successful.
To find if the required package's productAliasId need a promoPassword, refer to the field passwordRequired in 3.2 Get Package Rules and Requirement API.
3.3.1 Request
You must replace tenant
with your tenant code.
3.3.2 Path Variables and Parameters
Name | Type | Description |
---|---|---|
tenant | String | [required] Tenant ID given |
3.3.3 Request Body
Name | Description on attribute | Data Type | Length / Data Range | Nullable |
---|---|---|---|---|
packageReqId | [required] packageReqId. Can be obtained from 3.2 Get Package Rules and Requirement API | Number | 10 | N |
productAliasId | [required] Product name Id. Can be obtained from 3.2 Get Package Rules and Requirement API | Number | 10 | N |
promoPassword | [optional] To retrive products that required password. | String | 255 | Y |
3.3.4 Data model
3.3.4.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 |
showTimingList | List of showtiming object. Refer to 3.3.4.2 ShowTiming Object | Json Object | - | - |
3.3.4.2 ShowTiming Object
Name | Description on attribute | Data Type | Length/Data Range | Nullable |
---|---|---|---|---|
productId | Product Id | Number | 10 | N |
showTitle | Product's 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 |
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 |
venue | Venue | String | 255 | Y |
Booking Steps Before 3.5
Refer to 2.3 - 2.7 in the salesflow for the next few steps before moving on to 3.5 to add package to cart.
3.4 Confirm/Release Seats
Sample request:
curl --request POST 'https://api.stixcloud.com/api/v0/SISTIC/products/seats' \
--header 'Authorization: Bearer <Access-Token>' \
--header 'Content-Type: application/json' \
--data-raw '[
{
"productId": 1552141,
"releasedSeatList":[398099891],
"reservedSeatList":[398099890]
}, {
"productId": 1552124,
"releasedSeatList":[398092124],
"reservedSeatList":[398099870]
}, {
"productId": 1552126,
"releasedSeatList":[398092166],
"reservedSeatList":[398099860]
}
]'
The above command returns JSON structured like this:
Status: 200. success message.
{
"httpStatus": "200",
"statusMessage": "Successful",
"reservedTime" : "2018-04-02T21:32:46.014+08:00"
}
Errors
Error: 400. This exception occurs when release seats is not found.
{
"httpStatus": "400",
"errorCode": "error.release.seats.not.found",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Provided release seats not found.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/products/seats"
}
Error: 400. This exception occurs when reserved seats is not found.
{
"httpStatus": "400",
"errorCode": "error.reserved.seats.not.found",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Provided reserved seats not found.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/products/seats"
}
Error: 400. This exception occurs when reserving seats has fail.
{
"httpStatus": "400",
"errorCode": "error.product.seats.reserve",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Error reserving seats",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/products/seats"
}
Error: 400. This exception occurs when releasing seats has fail.
{
"httpStatus": "400",
"errorCode": "error.product.seats.release",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Error releasing seats",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/products/seats"
}
Error: 400. This exception occurs when single seat are not allowed to be left over, after selecting of seats for reserving.
{
"httpStatus": "400",
"errorCode": "error.product.seats.singleseat",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Please do not leave a single seat in between or beside your seat selection.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/products/seats"
}
Error: 400. This exception occurs when mixing events with survey and non survey.
{
"httpStatus": "400",
"errorCode": "error.product.survey.mix",
"exceptionName": "com.stixcloud.pkg.SisticApiException",
"statusMessage": "Error mix events with survey and non survey.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/products/seats"
}
This API endpoint is used for confirming seats and releasing seats. The Endpoint is an enhances version of 2.6 that is able to confirm/release seats for multiple products. It is normally used after 2.5 Seat Offer has been called.
Situations when you need to used this API could be for confirming seats in self pick mode or to release seats that have been reserved but not selected.
If user give up their selection at any point before completely their transaction. This endpoint should be call to release the seats selected or else selected seats will be unavailable for a limited time.
3.4.1 Request
You must replace tenant
with your tenant code.
3.4.2 Path Variables and Parameters
Name | Type | Description |
---|---|---|
tenant | String | [required] Tenant ID given |
3.4.3 Request Body
Name | Description on attribute | Data Type | Length / Data Range | Nullable |
---|---|---|---|---|
productSeatList | List of release/reserved seat object. Refer to 3.4.3.1 Release/Reserved Seat Object | List of Json Object | - | N |
3.4.3.1 Release/Reserved Seat Object
Name | Description on attribute | Data Type | Length / Data Range | Nullable |
---|---|---|---|---|
productId | Product Id Unique key for product |
Number | 10 | N |
releasedSeatList | List of seatIds for releasing | Array List of number | - | N |
reservedSeatList | List of seatIds for reserving | Array List of number | - | N |
3.4.4 Data model
3.4.4.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 |
reservedTime | Seat reserved time | String | 255 | Y |
3.5 Add/Get/Remove To CartPackage
Sample request:
curl --request POST 'https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage' \
--header 'Authorization: Bearer <Access-Token>' \
--header 'Content-Type: application/json' \
--data-raw '[
{
"packageReqId" : 2605,
"productId" : 1552141,
"priceClassMap" : "Q:1",
"priceCatId" : 101703,
"seatSectionId" : 585763,
"inventoryList" : [ 398099891],
"mode" : "GA"
}, {
"packageReqId" : 2606,
"productId" : 1552126,
"priceClassMap" : "Q:1",
"priceCatId" : 101697,
"seatSectionId" : 585661,
"inventoryList" : [ 398092166 ],
"mode" : "GA"
}, {
"packageReqId" : 2607,
"productId" : 1552124,
"priceClassMap" : "Q:1",
"priceCatId" : 101696,
"seatSectionId" : 585659,
"inventoryList" : [ 398092124 ],
"mode" : "GA"
}
]'
The above command returns JSON structured like this:
Status: 200. successful add to cart
{
"httpStatus" : "200",
"statusMessage" : "Add to Cart For Package Successful",
"expiryTime" : "2020-12-16T17:38:08+08:00",
"cartGuid" : "726ab19b-448c-4ada-8b08-098b473e85e4"
}
Errors
Errors for Package validation Check.
Error Code 400: Note : This error occurs when the Package Requirement is not found.
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.package-requirements-not-found",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Package requirements not found",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when the Package is not found.
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.package-not-found",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Package not found",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when the cart has another package item
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.cart-has-mix-package",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Cart has mix package",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when product price could not be found.
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.price-not-found",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Price not found",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when cart does not have minimum number of require package.
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.min-req-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Minimum requirements rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when cart have more than the maximum number of require package.
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.max-req-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Maximum requirements rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when total price for all the products does not meet the package minimum requirement.
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.min-amt-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Minimum amount rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when total price for all the products is over the package maximum requirement.
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.max-amt-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Maximum amount rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when total amount of tickets does not meet the package minimum requirement.
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.min-qty-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Minimum quantity rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when total amount of tickets does not meet the package exact requirement.
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.exact-qty-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Exact quantity rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when total amount of tickets is over the package requirement.
{
"httpStatus": "400",
"errorCode": "error.cart.package.validations.rule.max-qty-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Maximum quantity rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Errors for Require Package validation
Error Code 400: Note : This error occurs when cart item doesn't have require package
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.cart-items-missing-package-requirements",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Cart items does not have package requirements",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when product could not be found.
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.product-not-found",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Product not found",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when tickets for each product is not the same amount.
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.same-qty-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Same quantity rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when all products are not in the same price category.
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.same-price-cat-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Same price category rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when all products are not in the same time slot.
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.same-time-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Same time rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when all products are not on the same date .
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.same-date-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Same date rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when require package doesn't have minimum number of products .
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.min-products-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Minimum products rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when require package excess the maximum number of products .
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.max-products-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Maximum products rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when require package number of ticket doesn't meet the minimum amount.
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.min-qty-per-products-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Minimum quantity per product rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when require package number of ticket doesn't meet the exact amount.
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.exact-qty-per-products-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Exact quantity per product rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when require package number of ticket doesn't meet the maximum amount.
{
"httpStatus": "400",
"errorCode": "error.cart.package.requirement.validations.rule.max-qty-per-products-failed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Maximum quantity per product rule failed",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Add to cart errors
Error Code 400: Note : This error occurs when number of ticket exceeded the allowed limit.
{
"httpStatus": "400",
"errorCode": "error.cart.add-to-cart.quota-reached",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "You have exceeded the max number of tickets allowed for this event.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when validate price model template failed!.
{
"httpStatus": "400",
"errorCode": "error.cart.postcommit.generic",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Validate price model template failed!",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when exceeded allocation for cart.
{
"httpStatus": "400",
"errorCode": "error.cart.postcommit.exceed-allocation",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Exceeded allocation for cart",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when exceeded max quantity for price class.
{
"httpStatus": "400",
"errorCode": "error.cart.postcommit.exceed-max-qty",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Exceeded max quantity for price class",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when inventory list is empty.
{
"httpStatus": "400",
"errorCode": "error.cart.inventory.empty",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Inventory list is empty.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when duplicates found in cart inventory.
{
"httpStatus": "400",
"errorCode": "error.cart.inventory.duplicates",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Duplicates found in cart.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when inventory and price class map quantities do not tally!
{
"httpStatus": "400",
"errorCode": "error.cart.inventory.quantity-price-class.mismatch",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Inventory and price class map quantities do not tally!",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
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-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when evaluating inventories
{
"httpStatus": "400",
"errorCode": "error.cart.inventory.check.fail",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Error when evaluating inventories.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when exceeded quota for cart
{
"httpStatus": "400",
"errorCode": "error.cart.postcommit.exceed-quota",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Exceeded quota for cart",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when exceeded global quota
{
"httpStatus": "400",
"errorCode": "error.cart.sales-quota.global.exceeded",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Exceeded global quota",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when exceeded transaction quota
{
"httpStatus": "400",
"errorCode": "error.cart.sales-quota.transaction.exceeded",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Exceeded transaction quota",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when exceeded patron email quota
{
"httpStatus": "400",
"errorCode": "error.cart.sales-quota.patron-email.exceeded",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "exceeded patron email quota",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when promoPassword is incorrect.
{
"httpStatus":"400",
"errorCode":"error.cart.promo.code.popup.text",
"errorDetails": [
{
"code":"error.cart.promo.password.incorrect",
"details":
{
"priceClassCode":"D",
"priceClassName":"D"
}
}
],
"exceptionName":"com.stixcloud.cart.AddToCartException",
"statusMessage":"Invalid Promo Code entered!",
"errorTime":"2021-01-11T17:08:12.453+08:00",
"url":"https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when you are trying to mix package and none package items.
{
"httpStatus": "400",
"errorCode": "error.cart.package.mix-cart.fail",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Package cannot be added to the cart with other purchases. Please complete your current purchases before continuing.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400.
{
"httpStatus": "400",
"errorCode": "error.cart.add-event.mix-not-allowed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Please complete purchase of existing shopping cart items before proceeding to purchase tickets for the event: {0}.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400.
{
"httpStatus": "400",
"errorCode": "error.cart.new-event.mix-not-allowed",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "{0} cannot be purchased with other events. Please complete your transaction before adding this event to your shopping cart.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
Error Code 400: Note : This error occurs when total quantity selected for discount has exceeded maximum limit entitled for this event.
{
"httpStatus": "400",
"errorCode": "error.cart.add-to-cart.redemption.quota-exceeded",
"exceptionName": "com.stixcloud.cart.AddToCartException",
"statusMessage": "Total quantity selected for discount has exceeded maximum limit entitled for this event.",
"errorTime": "2020-12-17T14:21:31.68+08:00",
"url": "https://api.stixcloud.com/api/v0/SISTIC/cart/cartProductPackage"
}
3.5.1 Add to Cart
This API is to add selected package items to cart and return a cartGuId when successful. The endpoint would validate the items in the request and check that all package rules are fulfilled. Only when all validation has pass, will the API return a success message with a cartGuId. This cartGuId can be used to retrieve the cart information through 2.8 Get Cart API.
All selected packageReqId send in the request must be from the same main package as the current API only allow transaction of 1 main package item in the cart at a time. If any item in the request is from another package the API will return a mix cart error message.
Information about package rules and requirement can be found from the Get Package Rules and Requirement API call.
Note that the request for add to cart need to be in a list format.
3.5.1.1 Request
You must replace tenant
with your tenant code.
3.5.1.2 Path Variables and Parameters
Name | Type | Description |
---|---|---|
tenant | String | [required] Tenant ID given |
3.5.1.3 Request Body
Name | Description on attribute | Data Type | Length / Data Range | Nullable |
---|---|---|---|---|
packageReqId | packageReqId. This value can be obtained through the 3.2 Get Package Rules and Requirement API call. | Number | 10 | N |
productId | Product Id Unique key for product. This value can be obtained through the 3.2 Get Package Rules and Requirement API call. |
Number | 10 | N |
priceClassMap | priceClassMap with the format {priceClassCode}:{qty}. If a promoPassword is required for a certain priceClassCode, the format is {priceClassCode}:{qty}!{promoPassword}. PriceClassCode can be obtained from 2.7 Get Ticket Type API. | String | N | |
priceCatId | Price Category Id of a product. This value can be obtained through the 2.3 Get Event Overview Seat API call. | Number | 10 | N |
seatSectionId | Seat Section Id of a product. This value can be obtained through the 2.3 Get Event Overview Seat API call. | Number | 10 | N |
inventoryList | List of reserved seats Ids. This value can be obtained through the 2.5 Seat Offer API call. | Array List of number | - | N |
mode | Mode for the seat selection either GA/HS/SP/BA | String | N |
3.5.1.4 Data model
3.5.1.4.1 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 |
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 |
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 |
3.5.2 Get Cart
Refer to 2.8 Get Cart API to retrieve the shopping cart by using the cartGuid you get from add to cart API.
3.5.3 Remove Package From Cart
Refer to 2.8 Delete CartItem API to remove package item from the shopping cart. Please note that if a package items is remove, all package items is remove.
Next Step Confirm Order
After successfully adding to cart, refer to 2.9 Submit Pre Payment Order and 2.10 Confirm/Cancel Order in the salesflow section for the rest of the endpoint steps to complete package flow.
4. Release Notes
Release v0.24
STiX Cloud REST API Release Notes v0.24
This release now allow our API to support package event items. A new section has be added to the document along with diagrams for the new package flow. Refer to below for more information about the added parts.
Each set of release notes describes changes that apply to the release:
- API updates for 2. Sales Flow API. New API endpoints to split 2.2 Get Event Show Date & Time endpoints for better performance and efficiency. (These endpoint should be used instead of 2.2 when expecting more than 500 products to be configured per Internet Content Code)
Update | Update Summary | API Section | Previous Version |
---|---|---|---|
Added 2.2A1 Get Event Show Date & Time (Without Availability) API | This return list of available events info such as the exact event Show Date and Time without the availability status. | 2.2A1 Get Event Show Date & Time (Without Availability) | |
Added 2.2A2 Get Event Show Availability Status API | For a given list of productIds in "productIdList" field, the API will return a list of corresponding availability status. | 2.2A2 Get Event Show Availability Status | |
Added memberships Object | Include membership information to priceClass | 2.7.3.2 Get PriceClass | v0.23 |
Added externalCustomerId field | External customer ID to retrieve information for membership validation | 2.8.2 Get Cart | v0.23 |
Added email field | Email to retrieve information for membership validation | 2.8.2 Get Cart | v0.23 |
Added member Object | Add new field to 2.10 request | 2.10.4.4 Membership object | - |
- Doc updates. New Diagrams.
Update | Update Summary | API Section | Previous Version |
---|---|---|---|
Added Package flow diagram | Package Flow Diagram for v.24 Release | 1.6 package Flow Diagram | |
Added Visual Flow for Package Non-SP diagram | Visual Flow for Package Non-SP Diagram for v.24 Release | 1.6 package Flow Diagram | |
Added Visual Flow for Package SP diagram | Visual Flow for Package SP Diagram for v.24 Release | 1.6 package Flow Diagram | |
Update Postman Collection | Package Flow Postman Collection for v.24 Release | 1.7 Postman Collection | |
Added Sales flow visual diagrams | Sales Flow visual diagrams for GA,BA,HS and SP mode | 1.5 Sales Flow Diagrams |
- API updates for 3. Package Flow API. New API resources. New request parameter.
Update | Update Summary | API Section | Previous Version |
---|---|---|---|
Updated 2.2 Get Event Show Date & Time API | Update field name for evoucherValidYears to validityYears | 2.2 Get Event Show Date & Time | v0.23 |
Updated 2.3 Get Event Overview Seat Map API | Update description for mode on the return value | 2.3 Get Event Overview Seat Map | v0.23 |
Added 3.1 Get Package List API | This return a list of packages for a given InternetCodeContent. | 3.1 Get Package List | |
Added 3.2 Get Package Rules And Requirement API | This return the package rules and require packages to added for a given package Id. | 3.2 Get Package Rules And Requirement | |
Added 3.3 Get Package Product Option API | This return the advisory message for the package and the shows timing for each product. | 3.3 Get Package Product Option | |
Added 3.4 Confirm/Reserved Seats API | This endpoint is used to confirm/release seats that are retrieve from 2.5 Seat Offer | 3.4 Confirm/Release Seats | |
Added 3.5 Add/Get/Remove To CartPackage API | This endpoint is used creating a cart with selected package items and other feature like retrieving cart or remove cart items. | 3.5 Add/Get/Remove To CartPackage | |
Added packageReqId field | packageReqId | 2.7 Get Ticket Type | v0.23 |
Added packageReqId field | packageReqId | 2.4 Get Seat Section Availability | v0.23 |
Added isPackage field | Flag to indicate if ICC is package flow. | 2.1 Get Events | v0.23 |
Added packageId field | packageId | 2.8.2 Get Cart | v0.23 |
Added packageReqId field | packageReqId | 2.8.2 Get Cart | v0.23 |
Added packageReqRefNo field | pacakgeReqRefNo | 2.8.2 Get Cart | v0.23 |
Added packageProductType field | package product type | 2.8.2 Get Cart | v0.23 |
Added packageList | package Infomation object | 2.8.2 Get Cart | v0.23 |
Release v0.23
STiX Cloud REST API Release Notes v0.23
Each set of release notes describes changes that apply to the release:
- API updates. New, changed, and deleted resources, request parameters, and response fields.
Update | Update Summary | API Section | Previous Version |
---|---|---|---|
Changes in 2.10 Confirm/Cancel Order | |||
Added ccExpiryMonth field | Expiry month of the credit card | 2.10 Confirm/Cancel Order | |
Added ccExpiryYear field | Expiry year of the credit card | 2.10 Confirm/Cancel Order | |
Added terminalId field | ID of the terminal | 2.10 Confirm/Cancel Order | |
Added merchantId field | ID of the merchant | 2.10 Confirm/Cancel Order | |
Added approvalCode field | Approval code from the payment gateway | 2.10 Confirm/Cancel Order | |
Added sendEmailNotification field | Flag to indicate if email notification will be sent out upon confirmation of order | 2.10 Confirm/Cancel Order | |
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 | |
Remove expirationTime field | Remove expirationTime field from seat offer response | 2.5 Seat Offer (Applicable for Reserved Seating Event Only) |
Release v0.22
STiX Cloud REST API Release Notes v0.22
Each set of release notes describes changes that apply to the release:
- API updates. New, changed, and deleted resources, request parameters, and response fields.
Update | Update Summary | API Section | Previous Version |
---|---|---|---|
Added lang field | Language parameter to indicate which email template language will be sent out. | 2.10 Confirm/Cancel Order | |
Added ccExpiryMonth field | Expiry month of the credit card | 2.10 Confirm/Cancel Order | |
Added ccExpiryYear field | Expiry year of the credit card | 2.10 Confirm/Cancel Order | |
Added terminalId field | ID of the terminal | 2.10 Confirm/Cancel Order | |
Added merchantId field | ID of the merchant | 2.10 Confirm/Cancel Order | |
Added approvalCode field | Approval code from the payment gateway | 2.10 Confirm/Cancel Order | |
Added sendEmailNotification field | Flag to indicate if email notification will be sent out upon confirmation of order | 2.10 Confirm/Cancel Order | |
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 | |
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.21 |
Updated description for isMembership field | Update description for isMembership | 2.3 Get Event Overview Seat Map | v0.21 |
Remove expirationTime field | Remove expirationTime field from seat offer response | 2.5 Seat Offer (Applicable for Reserved Seating Event Only) | v0.21 |
Release v0.21
STiX Cloud REST API Release Notes v0.21
Each set of release notes describes changes that apply to the release:
- API updates. New, changed, and deleted resources, request parameters, and response fields.
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:
- API updates. New, changed, and deleted resources, request parameters, and response fields.
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 |
- Doc updates. Documentation updates not mentioned in API updates, new features, functional updates, or announcements.
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:
- API updates. New, changed, and deleted resources, request parameters, and response fields.
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 |
- New features. New dashboards and tools related to the STiX Cloud REST APIs.
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 |
Functional updates. Functional updates to operations, including new code list values and validation rule changes.
Announcements. Announcements related to the STiX Cloud REST API.
Doc updates. Documentation updates not mentioned in API updates, new features, functional updates, or announcements.
Previous Versions
Version 0.23
Version 0.22
Version 0.20/21
Version 0.19
Version 0.18