NAV Navbar
json

Introduction

Welcome to the OvationTix API! You can use our API to access future event data and for creating a custom scanning application.

You can view JSON response examples in the dark area to the right.

Future Events API

This is a RESTful web service that takes in a client ID, which for [Client Name] is [Client ID] and returns a JSON string. The links below provide detail about each end point available.

For CORS access, your domain must be whitelisted. This API is accessible via HTTP or HTTPS. You must pass the OvationTix Client ID in a header called "clientId".

Calendar Data

Description

Get future events for a given month week beginning and ending inclusize. If the month starts on a Wednesday, you will get Sunday through Tuesday of the previous month. If the month ends on a Wednesday, you will get Thursday through Saturday of the next month.

HTTP Requests

GET https://api.ovationtix.com/public/calendar/client(:clientId)

GET https://api.ovationtix.com/public/calendar/client(:clientId)/production(:productionId)

GET https://api.ovationtix.com/public/calendar/client(:clientId)/department(:departmentId)

clientId Is the OvationTix client ID and is required. productionId Is the OvationTix Production ID and is required when requesting events for a specific production. departmentId Is the OvationTix Department ID and is required when requesting events for a specific department.

Example URLs

https://api.ovationtix.com/public/calendar/client(284)

https://api.ovationtix.com/public/calendar/client(284)/production(962459)

https://api.ovationtix.com/public/calendar/client(284)/department(1219)

Query Parameters

This is how the 'time' query parameter is generated

var d = new Date(2014, 11, 1, 0, 0, 0, 0);
var monthStartInMilliseconds = d.getTime();
Parameter Default Description
time null Should be set to midnight on the first day of the month being retrieved and formatted as milliseconds since epoch.
month null In conjuction with year, will provide data for the month and year specified.
year null In conjunction with month, will provide data for the month and year specified.

Response Body

PerformancesByDateDisplay Map

Response output example:

{  
    "serviceMessages":{  
        "errors":[  

        ],
        "warnings":[  

        ],
        "infoMessages":[  

        ],
        "allMessages":[  

        ]
    },
    "departmentId":null,
    "clientId":284,
    "clientName":"00-TestAccount",
    "clientActive":true,
    "errors":[  

    ],
    "warnings":[  

    ],
    "performancesByDateDisplay":{
        "2017-06-28":[{
            "performanceId":10145563,
            "performanceStart":1498669200000,
            "performanceDate":"06/28/2017",
            "performanceTime":"1:00 PM",
            "performanceTime24":"13:00:00",
            "performanceStartDate":"Wed, Jun 28, 2017 - 1:00 PM",
            "performanceSuperTitle":"Tom McNeal Far Far Away",
            "performanceSubTitle":"Far Away.......",
            "performanceNotes":"Performance specific notes",
            "availabilityCode":"A",
            "displayCode":"T",
            "productionId":962459,
            "productionName":"Far Far Away",
            "hasAvailableTickets":true,
            "tixRemaining":445,
            "customMessage":"",
            "noRemainingTicketsMessage":null,
            "shutoffHour":2.00,
            "shutoffHourMessage":null,
            "generalAdmission":true,
            "allDayEvent":false,
            "doorEntryStartDate":"01/17/2018",
            "doorEntryStartTime":"2:00 PM",
            "doorEntryEndDate":"01/17/2018",
            "doorEntryEndTime":"4:00 PM",
            "productionLogoLink":"https://web.ovationtix.com/trs/clientFile/303987",
            "productionDescription":"Some description of the entire run of the show",
            "departmentId":null,
            "departmentName":null,
            "performanceEntryTimes": [{
                "performanceEntryTimeId": 11,
                "entryTime": "14:45:00",
                "entryTimeFormatted": "2:45 PM",
                "entryTimeHour": "14",
                "entryTimeMinute": "45",
                "displaySoldOut": false
            }, {
                "performanceEntryTimeId": 12,
                "entryTime": "13:45:00",
                "entryTimeFormatted": "1:45 PM",
                "entryTimeHour": "13",
                "entryTimeMinute": "45",
                "displaySoldOut": false
            }]
        }]
    }
}
Key Value
Date Array of Performance Objects

Event Performance Object

Variable Type Nullable Description
performanceId Integer No OvationTix Unique Performance Identifier
performanceStart Date No Epoch Date the performance starts (time zone agnostic)
performanceDate String No Date that the performance starts ("MM/dd/yyyy" - Java SimpleDateFormat)
performanceTime String No Time that the performance starts - ("h:mm a" - Java SimpleDateFormat)
performanceTime24 String No Time that the performance starts - ("HH:mm:ss" - Java SimpleDateFormat)
performanceStartDate String No Date and Time that the performance starts - ("EEE, MMM d, yyyy - h:mm a" - Java SimpleDateFormat)
performanceSuperTitle String Yes The super title of the performance (can be different from production supertitle)
performanceSubTitle String Yes The sub title of the performance (can be different from production subtitle)
performanceNotes String Yes Details about this specific performance of the run of the show
availabilityCode Char No See availability codes
displayCode Char No See display codes
productionId Integer No OvationTix Unique Production Identifier
productionName String No Production Name as specified for display purposes
hasAvailableTickets Boolean No True if tickets for this performance are available, false otherwise.
tixRemaining Integer No Number of tickets still available for this performance (This number should NOT be displayed to consumers for security purposes).
customMessage String Yes Custom not available message. If and only if the Display Code is set to M, this message should be displayed.
noRemainingTicketsMessage String Yes If no tickets are available this is the message to display.
shutoffHour Double No Number of hours before show time that public ticket sales are turned off
shutoffHourMessage String Yes The message to display once public ticket sales are turned off
generalAdmission Boolean No General Admission flags tells you whether consumers will be delegated specific seats or if seating in each section is first come first serve. True is first come first serve. False is specific seating.
allDayEvent Boolean No If the performance does not have a start time it is an all day event
doorEntryStartDate String No If allDayEvent is true, this states when doors open for the event
doorEntryStartTime String No If allDayEvent is true, this states when doors open for the event
doorEntryEndDate String No If allDayEvent is true, this states when doors close for the event
doorEntryEndTime String No If allDayEvent is true, this states when doors close for the event
productionLogoLink String Yes The fully qualified URL to the series logo image
productionDescription String Yes The description for the entire run of the show
departmentId Integer Yes A grouping of productions
departmentName String Yes The name of a grouping of productions
performanceEntryTimes PerformanceEntryTime Yes A list of entry times for the performance

Event PerformanceEntryTime Object

Variable Type Nullable Description
performanceEntryTimeId Integer No The entry time identifier used by OvationTix to display the output on the purchased ticket
entryTime String No The entry time formatted as "HH:mm:ss" - Java SimpleDateFormat
entryTimeFormatted String No The entry time formatted as "h:mm a" - Java SimpleDateFormat
entryTimeHour String No The entry time hour formmated as "H" - Java SimpleDateFormat
entryTimeMinute String No The entry time minute formatted as "m" - Java SimpleDateFormat
displaySoldOut Boolean No Whether this entry time should be displayed as sold out

Series Data

Description

Provides a list of all the available series/productions available in the future. If a series/production future performances, then it will be provided in the list returned by this call.

HTTP Requests

GET https://api.ovationtix.com/public/series/client(:clientId)

GET https://api.ovationtix.com/public/series/client(:clientId)/production(:productionId)

GET https://api.ovationtix.com/public/series/client(:clientId)/department(:departmentId)

clientId Is the OvationTix client ID and is required. productionId Is the OvationTix Production ID and is required when requesting events for a specific production. departmentId Is the OvationTix Department ID and is required when requesting events for a specific department.

Example URLs

https://api.ovationtix.com/public/series/client(284)

https://api.ovationtix.com/public/series/client(284)/production(962459)

https://api.ovationtix.com/public/series/client(284)/department(1219)

Response Body

Series Information Object

Response output example:

{  
    "serviceMessages":{  
        "errors":[  

        ],
        "warnings":[  

        ],
        "infoMessages":[  

        ],
        "allMessages":[  

        ]
    },
    "departmentId":null,
    "clientId":284,
    "clientName":"00-TestAccount",
    "clientActive":true,
    "errors":[  

    ],
    "warnings":[  

    ],
    "seriesInformation":[{
        "productionId":942036,
        "productionName":"Rise of the Pandas",
        "productionStatus":"T",
        "productionStyle":0,
        "productionVenue":{  
            "name":"Jonas James",
            "location":"",
            "venuePhone":"",
            "transitInfo":"",
            "venueAddress":{  
                "city":"Redding",
                "country":"United States",
                "countryAbbreviation":"US",
                "line1":"55 Washington St",
                "line2":"",
                "state":"Connecticut",
                "stateAbbreviation":"CT",
                "zipcode":"06896"
            }
        },
        "hasAvailableTickets":true,
        "noRemainingMessage":"There are no tickets remaining for this event.",
        "shutoffHour":2.00,
        "shutoffHourMessage":"Web sales are closed for this event. However, tickets may still be available at the box office.",
        "seriesSuperTitle":"",
        "seriesSubTitle":"",
        "purchaseAlert":"",
        "productionDescription":"",
        "productionLogoClientFileId":263062,
        "productionLogoLink":"https://web.ovationtix.com/trs/clientFile/263062",
        "productionLogoAltName":null,
        "firstPerformanceDate":1433959200000,
        "lastPerformanceDate":1440705600000,
        "performanceIdIfOnlyOneEventAvailable":null,
        "showLinkToBuyTickets":true,
        "departmentId":null,
        "departmentName":null,
    }]
}
Variable Type Nullable Description
productionId Integer No Identifier for the series in OvationTix
productionName String No The name of the series
productionStatus String No See production statuses
productionStyle Integer No Determines the color the series should have as a background. See production colors
productionVenue ProductionVenue Yes Details for the venue the series is located at
hasAvailableTickets Boolean No True if tickets for this performance are available, false otherwise.
noRemainingMessage String No The message to display if there are no tickets remaining
shutoffHour Double No 2.00
shutoffHourMessage String No The message to display if the performance is no longer available for purchase because the shutoff hour has past.
seriesSuperTitle String Yes The super title for the series
seriesSubTitle String Yes The sub title for the series
purchaseAlert String Yes A custom message to display if provided
productionDescription String Yes The description for this series
productionLogoClientFileId Integer Yes The OvationTix client file identifier for this series, used in conjunction with productionLogoLink
productionLogoLink String Yes The fully qualified URL to the series logo image
productionLogoAltName String Yes The alternate name for this series. If not provided, use productionName
firstPerformanceDate Date No The first future performance available for this series
lastPerformanceDate Date No The last future performance available for this series
performanceIdIfOnlyOneEventAvailable Integer Yes If only one performance is available for the series, this provides the performance ID.
showLinkToBuyTickets Boolean No True if there is at least 1 future performance available to all or available to package holders.
departmentId Integer Yes A grouping of productions by the OvationTix department
departmentName String Yes The name of a grouping of productions by the OvationTix department

ProductionVenue Object

Variable Type Nullable Description
name String No The name of the venue
location String Yes A general location of the venue
venuePhone String Yes The phone number to contact the venue
transitInfo String Yes Details on how to get the venue
venueAddress VenueAddress Yes The address of the venue

VenueAddress Object

Variable Type Nullable Description
line1 String No Address line 1
line2 String No Address line 2
city String No City
state String No Full State Name
stateAbbreviation String Yes 2-digit code for the state
zipcode String No Zip code
country String No Full Country Name
countryAbbreviation String 2-digit code for the country

Events Data

Description

Provides a list of all future performances. This call will provide a comprehensive list of all future performances for the requested data.

HTTP Requests

GET https://api.ovationtix.com/public/events/client(:clientId)

GET https://api.ovationtix.com/public/events/client(:clientId)/production(:productionId)

GET https://api.ovationtix.com/public/events/client(:clientId)/department(:departmentId)

clientId Is the OvationTix client ID and is required. productionId Is the OvationTix Production ID and is required when requesting events for a specific production. departmentId Is the OvationTix Department ID and is required when requesting events for a specific department.

Example URLs

https://api.ovationtix.com/public/events/client(284)

https://api.ovationtix.com/public/events/client(284)/production(962459)

https://api.ovationtix.com/public/events/client(284)/department(1219)

Response Body

Events Information Object

Response output example:

{
    "serviceMessages":{
        "errors":[  

        ],
        "warnings":[  

        ],
        "infoMessages":[  

        ],
        "allMessages":[  

        ]
    },
    "departmentId":null,
    "clientId":284,
    "clientName":"00-TestAccount",
    "clientActive":true,
    "errors":[  

    ],
    "warnings":[  

    ],
    "performances":[{
        "performanceId":10145563,
        "performanceStart":1498669200000,
        "performanceDate":"06/28/2017",
        "performanceTime":"1:00 PM",
        "performanceTime24":"13:00:00",
        "performanceStartDate":"Wed, Jun 28, 2017 - 1:00 PM",
        "performanceSuperTitle":"Tom McNeal Far Far Away",
        "performanceSubTitle":"Far Away.......",
        "performanceNotes":"Performance specific notes",
        "availabilityCode":"A",
        "displayCode":"T",
        "productionId":962459,
        "productionName":"Far Far Away",
        "hasAvailableTickets":true,
        "tixRemaining":445,
        "customMessage":"",
        "noRemainingTicketsMessage":null,
        "shutoffHour":2.00,
        "shutoffHourMessage":null,
        "generalAdmission":true,
        "allDayEvent":false,
        "doorEntryStartDate":"01/17/2018",
        "doorEntryStartTime":"2:00 PM",
        "doorEntryEndDate":"01/17/2018",
        "doorEntryEndTime":"4:00 PM",
        "productionLogoLink":"https://web.ovationtix.com/trs/clientFile/303987",
        "productionDescription":"Some description of the entire run of the show",
        "departmentId":null,
        "departmentName":null,
        "performanceEntryTimes": [{
            "performanceEntryTimeId": 11,
            "entryTime": "14:45:00",
            "entryTimeFormatted": "2:45 PM",
            "entryTimeHour": "14",
            "entryTimeMinute": "45",
            "displaySoldOut": false
        }, {
            "performanceEntryTimeId": 12,
            "entryTime": "13:45:00",
            "entryTimeFormatted": "1:45 PM",
            "entryTimeHour": "13",
            "entryTimeMinute": "45",
            "displaySoldOut": false
        }]
    }]
}
Variable Type Nullable Description
performanceId Integer No OvationTix Unique Performance Identifier
performanceStart Date No Epoch Date the performance starts (time zone agnostic)
performanceDate String No Date that the performance starts (MM/dd/yyyy - Java SimpleDateFormat)
performanceTime String No Time that the performance starts - (h:mm a - Java SimpleDateFormat)
performanceTime24 String No Time that the performance starts - (HH:mm:ss - Java SimpleDateFormat)
performanceStartDate String No Date and Time that the performance starts - ("EEE, MMM d, yyyy - h:mm a" - Java SimpleDateFormat)
performanceSuperTitle String Yes The super title of the performance (can be different from production supertitle)
performanceSubTitle String Yes The sub title of the performance (can be different from production subtitle)
performanceNotes String Yes Details about this specific performance of the run of the show
availabilityCode Char No See availability codes
displayCode Char No See display codes
productionId Integer No OvationTix Unique Production Identifier
productionName String No Production Name as specified for display purposes
hasAvailableTickets Boolean No True if tickets for this performance are available, false otherwise.
tixRemaining Integer No Number of tickets still available for this performance (This number should NOT be displayed to consumers for security purposes).
customMessage String Yes Custom not available message. If and only if the Display Code is set to M, this message should be displayed.
noRemainingTicketsMessage String Yes If no tickets are available this is the message to display.
shutoffHour Double No Number of hours before show time that public ticket sales are turned off
shutoffHourMessage String Yes The message to display once public ticket sales are turned off
generalAdmission Boolean No General Admission flags tells you whether consumers will be delegated specific seats or if seating in each section is first come first serve. True is first come first serve. False is specific seating.
allDayEvent Boolean No If the performance does not have a start time it is an all day event
doorEntryStartDate String No If allDayEvent is true, this states when doors open for the event
doorEntryStartTime String No If allDayEvent is true, this states when doors open for the event
doorEntryEndDate String No If allDayEvent is true, this states when doors close for the event
doorEntryEndTime String No If allDayEvent is true, this states when doors close for the event
productionLogoLink String Yes The fully qualified URL to the series logo image
productionDescription String Yes The description for the entire run of the show
departmentId Integer Yes A grouping of productions
departmentName String Yes The name of a grouping of productions
performanceEntryTimes PerformanceEntryTime Yes A list of entry times for the performance

Common System Codes

Event Availability Codes

Code Short Name Description
N Not Available Performance is not currently available for purchase
P Package Holders Performance can only be purchased by patrons who hold a package with rights to it
A All Performance can be purchased by anyone

Event Display Codes

Code Short Name Description
I Invisible It should not be displayed on the calendar
M Message It should be displayed with the message provided in 'customMessage'
T Normal Display normally
C Cancelled Display as cancelled
S Sold out Display as sold out

Event Production Statuses

Code Short Name Description
D Deleted This series was deleted from OvationTix
U Under Construction This series is not yet ready to be disabled for sale because it is still being configured within OvationTix
T Normal This series is available for public display

Event Production Colors

Code Color Hex Code
0 White #ffffff
1 Light Pink #ffe2e9
2 Light Blue #e2f1ff
3 Light Green #ddffbb
4 Light Purple #eadfff
5 Light Yellow #fff5ce
6 Dark Blue #b6c5f4
7 Light Brown #eddac7
8 Beige #ffe7d7
9 Dark Green #dcecdc

Errors

The OvationTix Public API will always respond with a 200 OK and provide the error information as part of the response in fields called "errors" and "warnings."

Scanning API

Welcome to the OvationTix API! You can use our API to access future event data and for creating a custom scanning application.

You can view JSON response examples in the dark area to the right.

Authentication

Description

To gain access to scanning functionality, a user must be authenticated. The user is someone whom has access to OvationTix with the scanning permission.

HTTP Requests

POST https://api.ovationtix.com/public/scanning/authenticate

Request Body

This is how the request body for authentication should look

{
  "username": "${username}",
  "password": "${password}"
}
Variable Description
username This is usually the individual's email address.
password The user's password to log into OvationTix.

Response Body

Authentication Response

Successful Response output example:

{  
   "accessTokenExpiration":1537219056608,
   "error":false,
   "errorMessageHTML":null,
   "errorDetails":null,
   "accessToken":"11620f64-5328-49ae-aea8-414951fdd21a",
   "passwordExpiresOn":1663460212000,
   "daysTillPasswordExpires":60
}

Failed Response output example:

{
   "accessTokenExpiration":null,
   "error":true,
   "errorMessageHTML":"<div style='font-size:1.2em;background-color:red;color:white;text-align:center;padding:5px;'>Password is expired. You must reset it by logging in via a desktop.</div>",
   "errorDetails":{  
      "errorCodeId":4,
      "errorCodeKey":"error.authentication.password_expired",
      "errorCodeName":"Password expired",
      "forceLogout":true
   },
   "accessToken":null,
   "passwordExpiresOn":null,
   "daysTillPasswordExpires":null
}
Variable Type Nullable Description
accessTokenExpiration Date Yes Milliseconds after the Epoch when the access token provided will expire. This is updated to one hour after every API call.
error Boolean No True if an error occorred. Details will be available in the Error Details Object.
errorMessageHTML String Yes An HTML string containing failure information that can be displayed to the user.
errorDetails ErrorDetails Yes See Error Details Object
accessToken String Yes A string that is used in all subsequent scanning calls to validate the user's access.
passwordExpiresOn Date Yes Milliseconds after the Epoch when this user's password will expire.
daysTillPasswordExpires Integer Yes Number of days until this user's password will expire.

Authorization

Description

All Calls to the following endpoints, must contain an "Authorization" header that follows the format "Basic base64encoded(username:accessToken)".

Variable Description
username This is usually the individual's email address.
accessToken This is the access token provided by the result of the Authentication call.

Filtering Options for Clients and Shows

Description

Provides a list of clients, series, and performances that can be scanned currently. In OvationTix Ticket Scanner, this information is displayed as 3 drop downs:

  1. Client Selection
  2. Production Selection
  3. Performance Selection

The time frame is based on the client's customized configuration and is modifiable by our client services team via X minutes prior to and Y minutes after any given performance.

The identifiers in the response are used in subsequent calls to filter what is being scanned.

For example, a festival may have multiple events at the same time, but each event will have a user who only wants to scan for their event. Using the performance ID as a filter during the scan request will only take that event into consideration.

On the flip side, if you're an exhibition that has multiple OvationTIx performances throughout the day to help stagger entries, but you are willing to provide some flexibility to patrons. Say they buy a ticket for 11 AM, but they show up at 10 AM. You may want to use the production ID to allow them to enter early.

If you are an organization that has only 1 event per day, you only need to use the client ID to scan for the days performance.

HTTP Requests

GET https://api.ovationtix.com/public/scanning/filterOptions

Response Body

Filter Options Response

Response output example:

{  
   "accessTokenExpiration":1537220455221,
   "error":false,
   "errorMessageHTML":null,
   "errorDetails":null,
   "clients":[{
         "id":1,
         "value":"TestAccount-300",
         "productions":[{
               "productionId":3622,
               "productionName":"Spamalot",
               "performances":[{
                     "performanceId":49182,
                     "performanceStart":1537142400000
               }]
         }]
   }]
}
Variable Type Nullable Description
accessTokenExpiration Date Yes Milliseconds after the Epoch when the access token provided will expire. This is updated to one hour after every API call.
error Boolean No True if an error occorred. Details will be available in the Error Details Object.
errorMessageHTML String Yes An HTML string containing failure information that can be displayed to the user.
errorDetails ErrorDetails Yes See Error Details Object
clients ScanningClientObject Yes See Scanning Client Object

Scanning Client Object

Variable Type Nullable Description
id Integer No The OvationTix identifier for a client. You will use this in subsequent calls.
value String No The name of the OvationTix client.
productions Array of ProductionObject Yes See Scanning Production Object

Scanning Production Object

Variable Type Nullable Description
productionId Integer No The OvationTix identifier for a series. You may use this in subsequent calls.
productionName String No The name of this series.
performances Array of PerformanceObject Yes See Scanning Performance Object

Scanning Performance Object

Variable Type Nullable Description
performanceId Integer No The OvationTix identifier for a performance. You may use this in subsequent calls.
performanceStart Date No The date and time of this performance in milliseconds after the Epoch.

Validate Ticket Barcode

Description

Validate the ticket barcode against the given filter criteria. The filter criteria is the OvationTix client id, series id, and/or performance id.

HTTP Requests

POST https://api.ovationtix.com/public/scanning/validateTicket

Request Body

This is how the request body for ticket validation should look

{
  "barcodeString": "${barcodeString}",
  "clientId": ${clientId},
  "productionId": ${productionId},
  "performanceId": ${performanceId}
}
Variable Nullable Description
barcodeString No The barcode string associated with the ticket
clientId No The OvationTix client identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call.
productionId Yes The OvationTix series identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call. This is not required. If not provided, any series within the scan time range configured within OvationTix will receive a valid response.
performanceId Yes The OvationTix performance identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call. This is not required. If not provided, any series within the scan time range configured within OvationTix will receive a valid response.

Response Body

Scan Response Data

Successful Response output example:

{  
   "accessTokenExpiration":1537282567230,
   "error":false,
   "errorMessageHTML":null,
   "errorDetails":null,
   "name":"Walkup Walkup",
   "performance":"Spamalot: Sep 18 4:00PM Tue",
   "section":"s1",
   "seat":"A1",
   "ticketsScanned":2,
   "ticketsSold":2,
   "successMsg":"<div style='font-size:1.4em;background-color:green;color:white;padding:5px;'><div>s1: A1</div><div>Walkup Walkup</div><div>Spamalot: Sep 18 4:00PM Tue</div><div>2 scanned of 2 sold.</div></div>",
   "patron":{  
      "email":null,
      "firstName":"Walkup",
      "lastName":"Walkup",
      "billingAddress":{  
         "line1":"123 Main St",
         "line2":"Floor 123",
         "city":"New York",
         "state":"NY",
         "zipCode":"10108",
         "country":"US"
      },
      "shippingAddress":{  
         "line1":"123 Main St",
         "line2":"Floor 123",
         "city":"New York",
         "state":"NY",
         "zipCode":"10108",
         "country":"US"
      },
      "primaryPhoneNumber":{  
         "phoneNumber":"212-555-1234",
         "type":"Home"
      }
   }
}

Failed Response output example:

{  
   "accessTokenExpiration":1537280706925,
   "error":true,
   "errorMessageHTML":"<div style='font-size:1.2em;background-color:red;color:white;text-align:center;padding:5px;'><div>INVALID TICKET</div></div>",
   "errorDetails":{  
      "errorCodeId":11,
      "errorCodeKey":"error.ticket.not_valid",
      "errorCodeName":"Ticket Not Valid",
      "forceLogout":false
   },
   "name":null,
   "performance":null,
   "section":null,
   "seat":null,
   "ticketsScanned":null,
   "ticketsSold":null,
   "successMsg":null,
   "patron":null
}
Variable Type Nullable Description
name String Yes The name of the individual who purchased the tickets.
performance String Yes Name of the series and the date, time, and day of the show.
section String Yes The name of the section the seat this ticket is associated with is.
seat String Yes The row and number of the seat for this ticket.
ticketsScanned Long Yes The number of scanned tickets the order this ticket is associated with for this performance.
ticketsSold Long Yes The total number of tickets in the order this ticket is associated with for this performance.
successMsg String Yes An HTML formatted response with details about this ticket.
patron Scannable Ticket Patron Yes If the user has the "patronReporting" permission in OvationTix, they will receive patron data with a successful scan. Who's Coming Plus One information will be provided if it is available. Otherwise, the patron who purchased this ticket will be provided.

Scannable Ticket Patron Response Object

Variable Type Nullable Description
email String Yes The email address of the patron associated with this ticket.
firstName String Yes The first name of the patron assiciated with this ticket.
lastName String Yes The last name of the patron associated with this ticket.
billingAddress Scannable Ticket Patron Address Yes The billing address of the patron associated with this ticket.
shippingAddress Scannable Ticket Patron Address Yes The shipping address of the patron associated with this ticket.
primaryPhoneNumber Scannable Ticket Patron Phone Number Yes The phone number of the patron associated with this ticket.

Scannable Ticket Patron Address Response Object

Variable Type Nullable Description
line1 String Yes Address line 1
line2 String Yes Address line 2
city String Yes Address City
state String Yes Address State
zipCode String Yes Address Zip Code
country String Yes Address Country

Scannable Ticket Patron Phone Number Response Object

Variable Type Nullable Description
phoneNumber String Yes Digits of Phone number
type String Yes The type of number this is. This can be home, cell, work, or fax.

Cache Valid Tickets

Description

Retrieve all valid tickets for the provided critieria. You can use this data to function in an offline state.

HTTP Requests

GET https://api.ovationtix.com/public/scanning/cache/validTickets

Request Parameters

Variable Nullable Description
clientId No The OvationTix client identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call.
productionId Yes The OvationTix series identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call. This is not required. If not provided, any series within the scan time range configured within OvationTix will receive a valid response.
performanceId Yes The OvationTix performance identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call. This is not required. If not provided, any series within the scan time range configured within OvationTix will receive a valid response.

Response Body

Scan Response Data

Successful Response output example:

{  
   "accessTokenExpiration":1537395445777,
   "error":false,
   "errorMessageHTML":null,
   "errorDetails":null,
   "clientId":284,
   "productionId":null,
   "performanceId":null,
   "tickets":[{
      "ticketId":580768132,
      "performanceId":10302127,
      "productionName":"Kinky Boots",
      "performanceStartDate":1536768000000,
      "barcode":"6nwmw29eo",
      "alreadyScanned":false,
      "refundedOrVoided":false,
      "orderConsumerName":"Walkup Walkup",
      "performance":"Kinky Boots: Sep 12 12:00PM Wed",
      "section":"Test Section I",
      "seat":"A1",
      "ticketsScanned":null,
      "ticketsSold":4,
      "patron":{  
         "email":null,
         "firstName":"Walkup",
         "lastName":"Walkup",
         "billingAddress":null,
         "shippingAddress":null,
         "primaryPhoneNumber":null
      }
   },{  
      "ticketId":580768141,
      "performanceId":10302127,
      "productionName":"Kinky Boots",
      "performanceStartDate":1536768000000,
      "barcode":"aj00ymskl",
      "alreadyScanned":false,
      "refundedOrVoided":false,
      "orderConsumerName":"Walkup Walkup",
      "performance":"Kinky Boots: Sep 12 12:00PM Wed",
      "section":"Test Section I",
      "seat":"A5",
      "ticketsScanned":null,
      "ticketsSold":4,
      "patron":{  
         "email":null,
         "firstName":"Walkup",
         "lastName":"Walkup",
         "billingAddress":null,
         "shippingAddress":null,
         "primaryPhoneNumber":null
      }
   }]
}
Variable Type Nullable Description
clientId Integer No The OvationTix client identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call.
productionId Integer Yes The OvationTix series identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call. This is not required. If not provided, any series within the scan time range configured within OvationTix will receive a valid response.
performanceId Integer Yes The OvationTix performance identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call. This is not required. If not provided, any series within the scan time range configured within OvationTix will receive a valid response.
tickets Array of ScannableTicket No An array of ticket scans that occurred while in offline mode.

Scannable Ticket Object

Variable Type Nullable Description
ticketId Integer No The identifier for this ticket.
performanceId Integer No The performance ID this ticket is for.
productionName String No The name of the show.
performanceStartDate Date No The time the performance starts in milliseconds after the Epoch.
barcode String No The barcode for this ticket.
alreadyScanned Boolean No If true, the ticket was scanned prior to the download of this data.
refundedOrVoided Boolean No If true, then this barcode is not valid and you can display an appropiate message to user about it being refunded or voided.
orderConsumerName String Yes The name of the individual who purchased the tickets.
performance String Yes Name of the series and the date, time, and day of the show.
section String Yes The name of the section the seat this ticket is associated with is.
seat String Yes The row and number of the seat for this ticket.
ticketsScanned Long Yes The number of scanned tickets the order this ticket is associated with for this performance.
ticketsSold Long Yes The total number of tickets in the order this ticket is associated with for this performance.
patron Scannable Ticket Patron Yes The patron associated with this ticket. This will contain +1 information when available and the purchaser in all other instances.

Sync Cached Scans

Description

This call will update OvationTix with the VALID tickets scanned while the device was offline or unable to communicate with OvationTix servers. If you declare a ticket as invalid, there is no need to provide that in the sync call.

If a ticket is valid, you must prepare the data in the request body to be sent when internet access is established. If you expect this to take longer than the access token's expiration, you must ensure data is not lost by needing to authenticate again.

HTTP Requests

POST https://api.ovationtix.com/public/scanning/cache/syncScans

Request Body

This is how the request body for sycn cached scans should look

{
  "clientId": ${clientId},
  "productionId": ${productionId},
  "performanceId": ${performanceId}
  "tickets": [{
    "ticketId": ${ticketId},
    "performanceId": ${performanceId},
    "barcode": "${barcodeString}",
    "scanTime": ${scanTime}
  },{
    "ticketId": ${ticketId},
    "performanceId": ${performanceId},
    "barcode": "${barcodeString}",
    "scanTime": ${scanTime}
  }]
}
Variable Type Nullable Description
clientId Integer No The OvationTix client identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call.
productionId Integer Yes The OvationTix series identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call. This is not required. If not provided, any series within the scan time range configured within OvationTix will receive a valid response.
performanceId Integer Yes The OvationTix performance identifier selected by the user from the data provided in the Filtering Options for Clients and Shows API call. This is not required. If not provided, any series within the scan time range configured within OvationTix will receive a valid response.
tickets Array of SyncTicket No An array of ticket scans that occurred while in offline mode.

SyncTicket Object

Variable Type Nullable Description
ticketId Integer No The ticket identifier provided by the Cache Valid Tickets call.
performanceId Integer No The performance identifier provided by the Cache Valid Tickets call.
barcodeString String No The barcode string that matches what was provided by the Cache Valid Tickets call.
scanTime Date No The time that the ticket was scanned. This should be in milliseconds after the Epoch.

Response Body

Scan Response Data

Successful Response output example:

{
  failedBarcodes: [{
    "barcode": "CDEFG123",
    "reason": "Ticket ID not found."
  },{
    "barcode": "CDEFG124",
    "reason": "Ticket does not belong to client #1"
  },{
    "barcode": "CDEFG125",
    "reason": "Ticket does not belong to performance #1"
  },{
    "barcode": "CDEFG126",
    "reason": "Ticket is refunded or voided."
  },{
    "barcode": "CDEFG127",
    "reason": "Scan time is in the future."
  },{
    "barcode": "CDEFG128",
    "reason": "Scan time is more than 48 hours ago. We cannot process scans that old."
  }]
}
Variable Type Nullable Description
failedBarcodes Array of Sync Scan Failure No An array of barcodes that failed to insert a scan action into the system. See Sync Scan Failure

Sync Scan Failure

Variable Type Nullable Description
barcode String No The barcode string that had a discrepancy. This must be provided to the user so they can check the details in OvationTix.
reason String No A text explanation for the failure.

Validate Token

Description

Ensures the token being used for the user is still valid. If it is not, the user must reauthenticate via the authentication API call.

HTTP Requests

GET https://api.ovationtix.com/public/scanning/validateToken

Response Body

Authorization Data Response

Response output example:

{  
   "accessTokenExpiration":1537283545089,
   "error":false,
   "errorMessageHTML":null,
   "errorDetails":null
}
Variable Type Nullable Description
accessTokenExpiration Date Yes Milliseconds after the Epoch when the access token provided will expire. This is updated to one hour after every API call.
error Boolean No True if an error occorred. Details will be available in the Error Details Object.
errorMessageHTML String Yes An HTML string containing failure information that can be displayed to the user.
errorDetails ErrorDetails Yes See Error Details Object

Invalidate Token

Description

Marks the token as not valid. This is essentially a log out and is preferred when the application closes instead of letting the token timeout.

HTTP Requests

DELETE https://api.ovationtix.com/public/scanning/invalidateToken

Response Status

This endpoint responds with an HTTP 200 OK and no body.

Common Scanning Objects

Scanning Error Details Object

Variable Type Nullable Description
errorCodeId Integer No See Scanning Error Codes
errorCodeKey String No An error key that you can use to internationalize failures with the API
errorCodeName String No A short name for the type of error that occurred
forceLogout Boolean No If true, the user must reauthenticate to access the API. Otherwise, this error is non-fatal to the access token.

Common Scanning Codes

Scanning Error Codes

Code Short Name Description
1 Authorization Header Invalid The authorization header was invalid or missing.
2 Authentication Failed The username/password combination was incorrect.
3 Not Authorized The user does not have the scanning permission.
4 Password Expired The user's password must be reset by logging into OvationTix.
5 Token Expired The user's token expired. They must reauthenticate.
6 Token Not Valid The user's token is not valid. They must reauthenticate.
7 User Wrong Client The user is attempting to scan for a client they do not have access to.
8 Ticket Wrong Client The ticket scanned belongs to another OvationTix client.
9 Ticket Wrong Series The ticket scanned is for another series.
10 TIcket Wrong Performance The ticket scanned is for another performance of this series.
11 Ticket Not Valid The ticket scanned does not have a valid barcode within OvationTix.
12 Ticket Already Scanned The ticket was scanned already.
13 Ticket Voided The ticket was cancelled within the order.
14 Ticket Refunded The ticket was refunded within the order.
15 Input Missing Required Field The provided data is missing some required piece of information. This is typically a problem with your implementation.
16 Unanticipated Error Some error occurred that we did not account for when developing this API.
17 Unanticipated Error Forced Logout Some error occurred that we did nto account for when developing this API that resulting in the user's access token becoming invalidated.