API ShoWare Brasil
API Endpoint
https://api-qa.showare.com.br/apiThis is the ShoWare Brasil API documentation.
You can use this API to allow users to choose and buy tickets for
performances, query placed orders, or create B2B integrations
with ShoWare Brasil.
Consumer app authentication
Every call to this API must send a custom HTTP header named X-AuthKey
for authentication. The value that must be sent is an authentication
key provided by ShoWare Brasil. If you need an authentication key,
please contact us at suporte.showare@accesso.com.
Technical considerations
This API works with cookies for session management. The client application must be able to store cookies in order to complete the default sales workflow, as most operations work with context such as the logged-in patron and the current order being created.
As some operations can return data in different formats, it may be
needed to add an Accept header with the value application/json to
get responses in the JSON format.
Some operations may return fields that are not present in this documentation. Those fields should not be relied upon, as they may be removed without warning.
Key concepts
Patron
A patron is a user, and is required for placing orders. This means the API consumer will have to log in with a valid patron to proceed with the reservation workflow at some point.
Event
An event is a group of performances. It also has information like images, which can be rendered on displays, seasons descriptions and headline.
Performance
A performance represents a specific concert, theater play etc. It is the entity that tickets belong to. It has information like start and end time, gate opening time, status (on sale, sold out etc.), venue address and sections available for reservation.
Sections
Sections are the physical spaces where patrons will attend performances. Sections can be of two types:
-
Numbered: The patron selects exact seats to reserve (e.g. seats on a theater);
-
General admission (GA): Free areas, where the patron can buy access to but have no guarantee of what physical spaces will be available (e.g. the floor in a concert).
Under sections there are data like seat maps, seat map images and available price categories.
Price categories
Price categories define ticket prices, and can be shared among sections. Price categories have full prices and discounts.
Discounts
Discounts enconpass both promotional prices and mandatory-by-law prices, like students and senior citizens discounts.
Order
The final product of the workflows are placed orders. Orders aggregate the reserved tickets, tickets’ holder info, delivery and payment info etc. After an order is placed, the workflow is completed. From that point, API consumers are able to query orders and generate print-at-home versions of the purchased tickets, among other operations.
Support
If you have any issue, please contact us as suporte.showare@accesso.com.
Changelog
| Version number | Value |
|---|---|
| 0.1 | Initial document version |
Events ¶
Operations for listing events, getting a single event by id and all the prices (simplified) of an event.
Events operations ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"id": 232,
"name": "Shakira World Tour",
"subtitle": "Best hits album",
"promoterId": 1,
"promoterName": "'Som livre produções'",
"images": [
{
"name": "linkin_park_banner",
"url": "https://dev.showare.com.br/images/linkinparkbanner.jpg",
"imageType": "ShoWare - Anúncio",
"imageTypeCode": "SHOWARE_AD",
"width": 293,
"height": 400
}
],
"categories": [
{
"id": 82,
"name": "Skate",
"parentId": 12,
"parent": "Sports"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"subtitle": {
"type": "string"
},
"promoterId": {
"type": "number"
},
"promoterName": {
"type": "string"
},
"images": {
"type": "array"
},
"categories": {
"type": "array",
"description": "Event categories/tags"
}
}
}List all eventsGET/lite/events
Lists all enabled events with images. We recommend to use this ligthweight operation instead of the above.
- startDate
string(optional) Example: 2021-08-03T00:00:00The starting date of a timeframe where the events’ performances are happening. Must be supplied alongside the
endDateparameter;- endDate
string(optional) Example: 2021-08-05T23:59:59The ending date of a timeframe where the events’ performances are happening. Must be supplied alongside the
startDateparameter;- promoterId
int(optional) Example: 10Filters performances by their event’s promoter;
- ignoreStatus
boolean(optional) Example: falseBy default, only events with performances with statuses that allows them to be shown to patrons are returned. If this parameter is
true, events with performances with any status are returned.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"description": "Best hits album",
"deliveryMethodOptIn": true,
"adImageLink `https://showare-cdn.s3.amazonaws.com/demo-qa/images/site/logo-menu.png`": "Hello, world!",
"id": 232,
"name": "Shakira World Tour",
"subtitle": "Best hits album",
"promoterId": 1,
"promoterName": "'Som livre produções'",
"images": [
{
"name": "linkin_park_banner",
"url": "https://dev.showare.com.br/images/linkinparkbanner.jpg",
"imageType": "ShoWare - Anúncio",
"imageTypeCode": "SHOWARE_AD",
"width": 293,
"height": 400
}
],
"categories": [
{
"id": 82,
"name": "Skate",
"parentId": 12,
"parent": "Sports"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"description": {
"type": "string"
},
"deliveryMethodOptIn": {
"type": "boolean"
},
"adImageLink `https://showare-cdn.s3.amazonaws.com/demo-qa/images/site/logo-menu.png`": {
"type": "string"
},
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"subtitle": {
"type": "string"
},
"promoterId": {
"type": "number"
},
"promoterName": {
"type": "string"
},
"images": {
"type": "array"
},
"categories": {
"type": "array",
"description": "Event categories/tags"
}
}
}Get an event by IDGET/lite/events/
Returns event’s details when the customer has its ID. We recommend to use this ligthweight operation instead of the above.
- ignoreStatus
boolean(optional) Example: falseBy default, only events with performances with statuses that allows them to be shown to patrons are returned. If this parameter is
true, events with performances with any status are returned.
Performances ¶
You can use the following operations to get data about performances, including available promotions, prices, discounts and sections.
Performances operations ¶
These are operations to get performances info.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"id": 1234,
"name": "John Mayer [São Paulo]",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-27T00:00:00.0000000",
"status": "OnSale",
"statusName": "À venda",
"venue": {
"id": 1,
"name": "Arena Anhembi",
"address": "Av. Olavo Fontoura, 1209 - Santana",
"phone": "(11) 2226-0500",
"city": "São Paulo",
"uf": "SP",
"locationId": 2,
"locationName": "'Parque de exposições'"
},
"isPassport": true,
"PassportParent": {
"id": 1234,
"name": "John Mayer [São Paulo]"
},
"PassportChildren": [
{
"id": 1234,
"name": "John Mayer [São Paulo]",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-27T23:59:00.0000000"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"startDate": {
"type": "string",
"description": "Local date time"
},
"endDate": {
"type": "string",
"description": "Local date time"
},
"status": {
"type": "string",
"description": "Refer to PerformanceStatus enum"
},
"statusName": {
"type": "string",
"description": "Status' friendly name"
},
"venue": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"address": {
"type": "string"
},
"phone": {
"type": "string"
},
"city": {
"type": "string"
},
"uf": {
"type": "string"
},
"locationId": {
"type": "number"
},
"locationName": {
"type": "string"
}
}
},
"isPassport": {
"type": "boolean",
"description": "When 'true', indicates that the performance is a component of a passport context"
},
"PassportParent": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
}
},
"description": "When the performance is a passport child, this property is filled with basic data about its parent"
},
"PassportChildren": {
"type": "array",
"description": "When the performance is a passport parent, this property is filled with its children's basic data"
}
}
}List all performances by eventGET/lite/events/{id}/performances
Lists all enabled performances when you have the event’s ID.
- id
string(required)Event’s ID
- startDate
string(optional) Example: 2021-08-03T00:00:00The starting date of a timeframe where the events’ performances are happening. Must be supplied alongside the
endDateparameter;- endDate
string(optional) Example: 2021-08-05T23:59:59The ending date of a timeframe where the events’ performances are happening. Must be supplied alongside the
startDateparameter;- ignoreStatus
boolean(optional) Example: falseBy default, only performances with statuses that allows them to be shown to patrons are returned. If this parameter is
true, performances with any status are returned.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"id": 1234,
"name": "John Mayer [São Paulo]",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-27T00:00:00.0000000",
"status": "OnSale",
"statusName": "À venda",
"venue": {
"id": 1,
"name": "Arena Anhembi",
"address": "Av. Olavo Fontoura, 1209 - Santana",
"phone": "(11) 2226-0500",
"city": "São Paulo",
"uf": "SP",
"locationId": 2,
"locationName": "'Parque de exposições'"
},
"isPassport": true,
"PassportParent": {
"id": 1234,
"name": "John Mayer [São Paulo]"
},
"PassportChildren": [
{
"id": 1234,
"name": "John Mayer [São Paulo]",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-27T23:59:00.0000000"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"startDate": {
"type": "string",
"description": "Local date time"
},
"endDate": {
"type": "string",
"description": "Local date time"
},
"status": {
"type": "string",
"description": "Refer to PerformanceStatus enum"
},
"statusName": {
"type": "string",
"description": "Status' friendly name"
},
"venue": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"address": {
"type": "string"
},
"phone": {
"type": "string"
},
"city": {
"type": "string"
},
"uf": {
"type": "string"
},
"locationId": {
"type": "number"
},
"locationName": {
"type": "string"
}
}
},
"isPassport": {
"type": "boolean",
"description": "When 'true', indicates that the performance is a component of a passport context"
},
"PassportParent": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
}
},
"description": "When the performance is a passport child, this property is filled with basic data about its parent"
},
"PassportChildren": {
"type": "array",
"description": "When the performance is a passport parent, this property is filled with its children's basic data"
}
}
}List all performances by periodGET/lite/performances
Lists all enabled performances when by period. This operation is used when you don’t have the event id or if you want to get performances from multiple events.
- EventId
number(optional)The event identifier;
- startDate
string(optional) Example: 2021-08-03T00:00:00The starting date of a timeframe where the events’ performances are happening. Must be supplied alongside the
endDateparameter;- endDate
string(optional) Example: 2021-08-05T23:59:59The ending date of a timeframe where the events’ performances are happening. Must be supplied alongside the
startDateparameter;- ignoreStatus
boolean(optional) Example: falseBy default, only performances with statuses that allows them to be shown to patrons are returned. If this parameter is
true, performances with any status are returned.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"eventId": 123,
"eventName": "John Mayer",
"seatMapImageUrl": "https://bucket.s3.amazonaws.com/demo/images/SeatMap/seatmap01.jpg",
"areaMap": "<area shape=\"rect\" coords=\"1.335,3.3375,264.9975,198.58124999999998\" data-section=\"S01\">",
"showAllSectionsExpanded": true,
"showSectionDirectly": false,
"documentTypes": [
{
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
}
],
"id": 1234,
"name": "John Mayer [São Paulo]",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-27T23:00:00.0000000",
"status": "OnSale",
"statusName": "À venda",
"venue": {
"id": 1,
"name": "Arena Anhembi",
"address": "Av. Olavo Fontoura, 1209 - Santana",
"phone": "(11) 2226-0500",
"city": "São Paulo",
"uf": "SP",
"locationId": 2,
"locationName": "'Parque de exposições'"
},
"isPassport": true,
"passportParent": {
"id": 1234,
"name": "John Mayer [São Paulo]"
},
"passportChildren": [
{
"id": 1234,
"name": "John Mayer [São Paulo]",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-27T23:59:00.0000000"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"eventId": {
"type": "number"
},
"eventName": {
"type": "string"
},
"seatMapImageUrl": {
"type": "string"
},
"areaMap": {
"type": "string",
"description": "Used for image mapping purposes"
},
"showAllSectionsExpanded": {
"type": "boolean",
"description": "Informs when to show all sections expanded when on best pick mode"
},
"showSectionDirectly": {
"type": "boolean",
"description": "Informs when to show section directly"
},
"documentTypes": {
"type": "array"
},
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"startDate": {
"type": "string",
"description": "Local date time"
},
"endDate": {
"type": "string",
"description": "Local date time"
},
"status": {
"type": "string",
"description": "Refer to PerformanceStatus enum"
},
"statusName": {
"type": "string",
"description": "Status' friendly name"
},
"venue": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"address": {
"type": "string"
},
"phone": {
"type": "string"
},
"city": {
"type": "string"
},
"uf": {
"type": "string"
},
"locationId": {
"type": "number"
},
"locationName": {
"type": "string"
}
}
},
"isPassport": {
"type": "boolean",
"description": "When 'true', indicates that the performance is a component of a passport context"
},
"passportParent": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
}
},
"description": "When the performance is a passport child, this property is filled with basic data about its parent"
},
"passportChildren": {
"type": "array",
"description": "When the performance is a passport parent, this property is filled with its children's basic data"
}
}
}Get a performance by IDGET/lite/performances/
Returns a performance’s details.
- ignoreStatus
boolean(optional) Example: falseBy default, only performances with statuses that allows them to be shown to patrons are returned. If this parameter is
true, performances with any status are returned.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
[
{
"id": 123,
"name": "Setor A",
"type": "GeneralAdmission",
"priceCategories": [
{
"id": 123,
"name": "Pista Premium",
"isAvailable": true,
"prices": [
{
"id": 123,
"name": "Inteira",
"value": 100
}
]
}
]
}
]Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array"
}Lists all available sections and price categories of a performance.GET/lite/performances/sections
Returns all available sections/price categorys of a specific performance.
To understand the diferences between sections and price categories, please, refer to the Key Concepts section in the beginning of this document.
- ignorePerformanceStatus
boolean(optional) Example: falseBy default, only sections of performances with statuses that allows them to be shown to patrons are returned. If this parameter is
true, sections of performances with any status are returned.
Two-steps sales ¶
Summary of operations
When selling tickets, the following sequence of operations must be executed to ensure the correct flow of seat selection, reservation, and order placement:
-
List all events
Begin by retrieving all available events. List all events -
List all performances by event
Once an event has been selected, request the list of available performances. List all performances by event -
List sections and price categories
After choosing a performance, retrieve all available sections and price categories for the chosen performance. List all available sections and price categories of a performance -
Get a section’s seat map (optional)
Once the section is chosen, request its seat map. This returns the grid of seats with coordinates, labels, and their current status (available, reserved, sold, etc.).
If the section is of the type general admission, this step can be skipped. This step can also be skipped if the intention is to use the best-pick feature of the system (where ShoWare itself selects the best available seats for the patron). Get section seat map -
Reserve tickets
This creates a temporary basket with a unique ID. At this stage, the tickets are blocked from being reserved by others. Reserve tickets -
List available payment methods (optional) Retrieve the payment methods available for the order (identified by
orderIdorexternalOrderId). The selected payment method will be used in the next step, when placing the order. List available payment methods -
Place an order
To confirm the sale, place the order based on the reservation. This step registers the tickets as sold in ShoWare. Place an order -
Clear the basket (optional)
If the customer decides not to proceed, clear the basket. This makes the places available for reservation again. Clear the basket
Get section seat map ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"data": {
"columnsCount": 42,
"rowsCount": 28,
"seats": [
{
"id": 10001,
"coordinateX": 5,
"coordinateY": 12,
"color": "#2e7d32",
"imageUrl": "https://.../seat.png",
"rowLabel": "F",
"seatLabel": "06",
"isBookable": true,
"state": {
"status": 1,
"isAvailable": true
},
"priceCategoryId": 2072,
"groupId": 1
}
],
"groups": [
{
"id": 1,
"name": "Plateia A"
}
],
"socialDistancingRule": {
"horizontalGap": 0,
"verticalGap": 0,
"diagonalGap": 0
}
},
"pagination": {
"totalCount": 100,
"skip": 0,
"take": 10
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"columnsCount": {
"type": "number",
"description": "Total number of columns in the grid."
},
"rowsCount": {
"type": "number",
"description": "Total number of rows in the grid."
},
"seats": {
"type": "array",
"description": "List of seats."
},
"groups": {
"type": "array",
"description": "List of seat groups."
},
"socialDistancingRule": {
"type": "object",
"properties": {
"horizontalGap": {
"type": "number"
},
"verticalGap": {
"type": "number"
},
"diagonalGap": {
"type": "number"
}
},
"description": "Social distancing rule configuration."
}
}
},
"pagination": {
"type": "object",
"properties": {
"totalCount": {
"type": "number",
"description": "Total number of records that matched the search criteria."
},
"skip": {
"type": "number",
"description": "Number of records that were skipped. The value of this property is the same as the \"skip\" parameter used in the request."
},
"take": {
"type": "number",
"description": "Number of records expected to be retrieved. The value of this property is the same as the \"take\" parameter used in the request."
}
}
}
},
"required": [
"data"
]
}Headers
Content-Type: application/jsonBody
{
"responseStatus": {
"errorCode": "BadRequest",
"message": "A apresentação (ID 2578) não está disponível para reserva.",
}
}Get section seat mapGET/sales/performance/{performanceId}/section/{sectionId}/seat-map
Returns the seat map (grid) for a given performance section, including seat coordinates, labels and statuses.
- performanceId
number(required) Example: 2578The performance ID.
- sectionId
number(required) Example: 123The section ID.
Reserve tickets ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"performanceId": 10,
"externalOrderId": "123",
"patronIdentification": {
"fullName": "Fulano da Silva",
"phone": "51999884455",
"email": "teste@fulano.com.br",
"cpf": "01234567890"
},
"tickets": [
{
"sectionId": 10,
"priceCategoryId": 11,
"discountId": 12,
"quantity": 1,
"seatId": 34567
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"performanceId": {
"type": "number",
"description": "The performance's ID."
},
"externalOrderId": {
"type": "string",
"description": "The order's identification on your system. You can use this identification to place the reservation or release the tickets later."
},
"patronIdentification": {
"type": "object",
"properties": {
"fullName": {
"type": "string",
"description": "Patron's full name."
},
"phone": {
"type": "string",
"description": "Patron's phone with DDD, but no country code."
},
"email": {
"type": "string",
"description": "Patron's e-mail."
},
"cpf": {
"type": "string",
"description": "Patron's CPF."
}
},
"required": [
"fullName",
"phone",
"email",
"cpf"
],
"description": "The minimum data needed to identify the order's patron.."
},
"tickets": {
"type": "array",
"description": "The description of the desired tickets."
}
}
}Headers
Content-Type: application/jsonBody
{
"data": {
"performanceId": 10,
"externalOrderId": "123",
"patronIdentification": {
"fullName": "Fulano da Silva",
"phone": "51999884455",
"email": "teste@fulano.com.br",
"cpf": "01234567890"
},
"tickets": [
{
"sectionId": 10,
"priceCategoryId": 11,
"discountId": 12,
"quantity": 1,
"seatId": 34567
}
]
},
"pagination": {
"totalCount": 100,
"skip": 0,
"take": 10
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"performanceId": {
"type": "number",
"description": "The performance's ID."
},
"externalOrderId": {
"type": "string",
"description": "The order's identification on your system. You can use this identification to place the reservation or release the tickets later."
},
"patronIdentification": {
"type": "object",
"properties": {
"fullName": {
"type": "string",
"description": "Patron's full name."
},
"phone": {
"type": "string",
"description": "Patron's phone with DDD, but no country code."
},
"email": {
"type": "string",
"description": "Patron's e-mail."
},
"cpf": {
"type": "string",
"description": "Patron's CPF."
}
},
"required": [
"fullName",
"phone",
"email",
"cpf"
],
"description": "The minimum data needed to identify the order's patron.."
},
"tickets": {
"type": "array",
"description": "The description of the desired tickets."
}
}
},
"pagination": {
"type": "object",
"properties": {
"totalCount": {
"type": "number",
"description": "Total number of records that matched the search criteria."
},
"skip": {
"type": "number",
"description": "Number of records that were skipped. The value of this property is the same as the \"skip\" parameter used in the request."
},
"take": {
"type": "number",
"description": "Number of records expected to be retrieved. The value of this property is the same as the \"take\" parameter used in the request."
}
}
}
},
"required": [
"data"
]
}Headers
Content-Type: application/jsonBody
{
"responseStatus": {
"errorCode": "ValidationException",
"message": "Já existe um pedido associado ao ID externo '321'",
}
}Reserve ticketsPOST/sales/reservation
The tickets will be temporarily reserved and a basket with an ID will be created to hold them. An order must be placed to confirm the reservation, otherwise ShoWare will automatically delete the basket and make the tickets available for reservation again.
List available payment methods ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"data": {
"paymentMethods": [
{
"id": 1113,
"name": "Amex 3x (Off-line)",
"typeName": "American Express",
"installments": 3
}
]
},
"pagination": {
"totalCount": 100,
"skip": 0,
"take": 10
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"paymentMethods": {
"type": "array",
"description": "The list of available payment methods."
}
}
},
"pagination": {
"type": "object",
"properties": {
"totalCount": {
"type": "number",
"description": "Total number of records that matched the search criteria."
},
"skip": {
"type": "number",
"description": "Number of records that were skipped. The value of this property is the same as the \"skip\" parameter used in the request."
},
"take": {
"type": "number",
"description": "Number of records expected to be retrieved. The value of this property is the same as the \"take\" parameter used in the request."
}
}
}
},
"required": [
"data"
]
}Headers
Content-Type: application/jsonBody
{
"responseStatus": {
"errorCode": "BadRequest",
"message": "O externalOrderId ou o orderId deve ser informado.",
}
}List available payment methodsGET/sales/payment-methods
Returns the payment methods available for the specified order.
One of orderId or externalOrderId must be provided to filter the payment methods.
The ID of one of the returned payment methods may later be specified when placing the order.
On ShoWare, the payment method has two functions:
-
The order will be marked as paid with the informed payment method, and many reports take that into consideration;
-
The system will try to process the payment according with the payment method specified when placing the order.
Some payment methods are classified as “on-line”. When those methods are specified, ShoWare will try to fulfill the payment using external payment gateways and credit card acquirer systems. Examples of such methods are “Visa 2X”, “Mastercard 3X” and “Pix”.
Other payment methods are classified as “off-line”. When those methods are specified, ShoWare will just alter the order’s status, without communication with external payment systems. Off-line methods are varied in their behavior: the “Cash” payment method just marks the order as paid, while the Deposit method marks the order as waiting for payment (so that, later, the payment by bank deposit can be manually confirmed).
Off-line payments that only mark the order as paid are classified as “off-line immediate” payment methods. Exaples of such methods are “Cash” and “Visa (off-line) 2X”.
To help integrations where the objetive is to just specify the payment method for
informational purposes, this operation has the offlineImmediatePaymentMethodsOnly
query parameter. If this flag is not set in the query, the API will behave as if the
sale is happening on a system used by patrons, thus returning only payment methods that
are fit for sales on the ticketing company’s e-commerce.
Note that, regardless of the specified parameters, the API will only return payment methods that are made available to the API key’s associated sales channel, as configured using ShoWare’s back-office system (Admin).
- orderId
number(optional) Example: 1234The order’s ID. Either this or the external (your system’s) identifier must be provided.
- externalOrderId
string(optional) Example: 10A7FThe order’s external (your system’s) identifier. Either this or the ShoWare order ID must be provided.
- offlineImmediatePaymentMethodsOnly
boolean(optional) Example: trueIf true, only methods that just mark the order as paid will be returned. Otherwise, only payment methods fit for online sales will be returned, like online credit cards, Pix, boleto, deposit, etc.
Place an order ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"orderId": 1,
"externalOrderId": "10",
"paymentMethodId": 1003
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"orderId": {
"type": "number",
"description": "The order's ID. Either this or the external (your system's) identifier must be provided."
},
"externalOrderId": {
"type": "string",
"description": "The order's external (your system's) identifier. Either this or the ShoWare order ID must be provided."
},
"paymentMethodId": {
"type": "number",
"description": "ID of the payment method to be used for the order placement. Note that the specified payment method will determine how ShoWare will handle the payment, so, for exaple, on-line payment methods will make ShoWare communicate with payment gateways. Since the API is not yet ready to handle all payment methods, care must be taken when specified this ID. Please refer to the documentation of the `GET /sales/payment-methods` operation for more information."
}
}
}Headers
Content-Type: application/jsonBody
{
"data": {
"success": true,
"message": "",
"orderId": 1010
},
"pagination": {
"totalCount": 100,
"skip": 0,
"take": 10
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "`true` if the tickets were reserved."
},
"message": {
"type": "string",
"description": "The error message in case the tickets could not be reserved."
},
"orderId": {
"type": "number",
"description": "The basket/order ID created to hold the tickets."
}
}
},
"pagination": {
"type": "object",
"properties": {
"totalCount": {
"type": "number",
"description": "Total number of records that matched the search criteria."
},
"skip": {
"type": "number",
"description": "Number of records that were skipped. The value of this property is the same as the \"skip\" parameter used in the request."
},
"take": {
"type": "number",
"description": "Number of records expected to be retrieved. The value of this property is the same as the \"take\" parameter used in the request."
}
}
}
},
"required": [
"data"
]
}Headers
Content-Type: application/jsonBody
{
"responseStatus": {
"errorCode": "BadRequest",
"message": "A cesta está vazia.",
}
}Place an orderPOST/sales/place
The reservation only keeps the tickets from being reserved by someone else. After the reservation, you need to place the order so that ShoWare knows the tickets were sold. All ShoWare orders need payment and delivery methods. For this operation, ShoWare will automatically choose the methods configured for the order’s context. If you receive a validation error message referencing the payment or delivery method, please contact the person responsible for configuring the event.
Clear the basket ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"orderId": 1,
"externalOrderId": "10"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"orderId": {
"type": "number",
"description": "The order's ID. Either this or the external (your system's) identifier must be provided."
},
"externalOrderId": {
"type": "string",
"description": "The order's external (your system's) identifier. Either this or the ShoWare order ID must be provided."
}
}
}Headers
Content-Type: application/jsonHeaders
Content-Type: application/jsonBody
{
"responseStatus": {
"errorCode": "BadRequest",
"message": "A cesta está vazia.",
}
}Clear the basketDELETE/sales/basket
This operation will clear the basket and make the tickets available for reservation again.
Media ¶
Media Content ¶
Returns json data containing media content information.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
[
{
"code": "sumfest",
"name": "Summer Festival",
"status": "draft",
"templateCode": "draft",
"templateName": "draft",
"fields": [
{
"code": "agerat",
"name": "Age Rating",
"type": "HTML",
"value": "<p>My Event Name</p>",
"data": {},
"link": "http://mylink.com",
"groupName": "Information",
"groupCode": "PERFORMANCE.Info"
}
]
}
]Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array"
}GetGET/media/content
- templateCode
string(optional) Example: HOMETemplate identification code
- groupCode
string(optional) Example: PERFORMANCE.InfoGroup identification code
- performanceId
number(optional) Example: 2675Presentation id
- status
string(optional) Example: 11 (draft), 2 (published) or 3 (archived)
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"code": "sumfest",
"name": "Summer Festival",
"status": "draft",
"templateCode": "draft",
"templateName": "draft",
"fields": [
{
"code": "agerat",
"name": "Age Rating",
"type": "HTML",
"value": "<p>My Event Name</p>",
"data": {},
"link": "http://mylink.com",
"groupName": "Information",
"groupCode": "PERFORMANCE.Info"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Media content identification code."
},
"name": {
"type": "string",
"description": "Media content name."
},
"status": {
"type": "string",
"description": "Media content status (draft, published, archived)."
},
"templateCode": {
"type": "string",
"description": "Media content Code."
},
"templateName": {
"type": "string",
"description": "Media content template name description"
},
"fields": {
"type": "array"
}
}
}Get by contentCodeGET/media/content/{contentCode}
- contentCode
string(required) Example: sumfestMedia content identification code
- fetchChildrenLevel
number(optional) Example: 2If the media content references other media contents, their data is also returned. This logic is repeated for the referenced media contents, up to the level specified (1 level will return the requested media content plus its children; 2 levels will return the requested media content, its children and their children, and so on).
Webhooks ¶
Webhooks are used to provide your application with real-time information on media content updates.
That means that every time a media content is created or updated, we will immediately send you a POST request with updated data.
To start receiving the notifications, you need to set up a public URL in your application to accept the POST requests and register a webhook with it.
The URL You will receive a POST request with the updated media content data in JSON format. The data is in the as in the Get by contentCode operation.
Referenced media contents
Media contents can reference one another, creating a tree-like structure. When a media content is created or updated, the registered URL will receive notifications for:
-
The created/updated media content;
-
All media contents that reference the first one;
-
All media contents that reference the followin ones, up to the root of the tree.
For example, say we have a media content that is reference by another one, forming the tree A -> B -> C -> D (-> meaning “references”). When the media content D is updated, the URL will receive notifications for D, C, B, and A. If media content C is updated, you will receive notifications for C, B, and A.
You can limit the notifications by providing the media content code of the last media content in the tree you want to be notified about. This can be achieved by setting the mediaContentCode property to the media content code when creating the webhook.
For example, if the webhook’s mediaContentCode is set to C and we have the tree A -> B -> C -> D, when D is modified, the URL will receive notifications for D and C (but not for B and A). This can be useful when creating separate sites that are generated by the media contents; each site can have its own webhook, and be notified only of changes in the relevant media contents.
Requests’ security
To ensure the POST request is legitimate, a header named x-showare-signature is sent with the request containing a signed hash of the content in base-64 format.
To authenticate the request, you need to hash the posted request body with the HMACSHA1 algorithm, with your API key as the secret, and convert the result into a base-64 string.
After that, compare the resulting hash to the x-showare-signature header and check if it matches.
Following are the operations to add, update and get webhook information.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
[
{
"id": 1,
"name": "My Splash Page",
"url": "http://myapi.com/showare-content",
"isEnabled": true,
"action": {
"id": 1,
"name": "Media content updated"
}
}
]Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array"
}GetGET/media/webhooks
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"id": 1,
"name": "My Splash Page",
"url": "http://myapi.com/showare-content",
"isEnabled": true,
"action": {
"id": 1,
"name": "Media content updated"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Webhook identification."
},
"name": {
"type": "string",
"description": "Webhook name."
},
"url": {
"type": "string",
"description": "Url listenning to posts."
},
"isEnabled": {
"type": "boolean"
},
"action": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Webhook action identification."
},
"name": {
"type": "string",
"description": "Webhook action name."
}
}
}
}
}Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"name": "My Splash Page",
"mediaContentCode": "HOME_PAGE",
"apiAuthKey": "My_KEY",
"url": "http://myapi.com/showare-content",
"isEnabled": true
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"mediaContentCode": {
"type": "string",
"description": "The root media content for the hierarchical structure you want to be notified. If empty, all updates will be notified."
},
"apiAuthKey": {
"type": "string",
"description": "Your API Key. It will be used as the secret for the header 'x-showare-signature' hash."
},
"name": {
"type": "string",
"description": "Webhook name."
},
"url": {
"type": "string",
"description": "Url listenning to posts."
},
"isEnabled": {
"type": "boolean"
}
}
}Headers
Content-Type: application/jsonBody
{
"id": 1,
"name": "My Splash Page",
"url": "http://myapi.com/showare-content",
"isEnabled": true,
"action": {
"id": 1,
"name": "Media content updated"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Webhook identification."
},
"name": {
"type": "string",
"description": "Webhook name."
},
"url": {
"type": "string",
"description": "Url listenning to posts."
},
"isEnabled": {
"type": "boolean"
},
"action": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Webhook action identification."
},
"name": {
"type": "string",
"description": "Webhook action name."
}
}
}
}
}PostPOST/media/webhooks/
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"name": "My Splash Page",
"mediaContentCode": "HOME_PAGE",
"apiAuthKey": "My_KEY",
"url": "http://myapi.com/showare-content",
"isEnabled": true
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"mediaContentCode": {
"type": "string",
"description": "The root media content for the hierarchical structure you want to be notified. If empty, all updates will be notified."
},
"apiAuthKey": {
"type": "string",
"description": "Your API Key. It will be used as the secret for the header 'x-showare-signature' hash."
},
"name": {
"type": "string",
"description": "Webhook name."
},
"url": {
"type": "string",
"description": "Url listenning to posts."
},
"isEnabled": {
"type": "boolean"
}
}
}Headers
Content-Type: application/jsonBody
{
"id": 1,
"name": "My Splash Page",
"url": "http://myapi.com/showare-content",
"isEnabled": true,
"action": {
"id": 1,
"name": "Media content updated"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Webhook identification."
},
"name": {
"type": "string",
"description": "Webhook name."
},
"url": {
"type": "string",
"description": "Url listenning to posts."
},
"isEnabled": {
"type": "boolean"
},
"action": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Webhook action identification."
},
"name": {
"type": "string",
"description": "Webhook action name."
}
}
}
}
}Patron auto-login ¶
Generate an authentication URL ¶
Headers
Content-Type: application/jsonBody
{
"patron": {
"code": "M123",
"email": "gandalf.thegray@middleearth.com",
"password": "S3cUR3!p@5S",
"firstName": "Gandalf",
"lastName": "Gray",
"cpf": "12345678910",
"birthDate": "1975-05-23",
"addressLine1": "Rua do Condado, 853",
"addressLine2": "ap. 73, fundos",
"district": "Vila Mordor",
"city": "São Paulo",
"state": "SP",
"zipCode": "04534003",
"phone": "11955554444",
"gender": "M",
"newsletterOptIn": true,
"externalId": "A7200"
},
"skipPatronUpdate": false,
"keepExistingTags": true,
"tags": [
"Hello, world!"
],
"isDependent": false,
"destinationUrlAfterLogin": "/Patron/PatronOrderHistory.aspx"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"patron": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Optional code that can relate the patron with data in an external system, if patron's dependent module is enabled, this can use to identify multiple patrons that use the same code (one will be the main one, the others, all dependents). Usually, this field is called \"matrícula\" or \"título\"."
},
"email": {
"type": "string"
},
"password": {
"type": "string",
"description": "Optional. If not specified and the patron is not found, the system will generate a random password, which the patron can change later."
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"cpf": {
"type": "string",
"description": "Must be a valid CPF"
},
"birthDate": {
"type": "string",
"description": "YYYY-MM-DD format"
},
"addressLine1": {
"type": "string"
},
"addressLine2": {
"type": "string"
},
"district": {
"type": "string",
"description": "Must be specified if `addressLine1` is specified"
},
"city": {
"type": "string",
"description": "Must be specified if `addressLine1` is specified"
},
"state": {
"type": "string",
"description": "Must be in UF format (e.g. SP, RJ, AM, GO). Must be specified if `addressLine1` is specified"
},
"zipCode": {
"type": "string",
"description": "Eight-digits CEP. Must be specified if `addressLine1` is specified"
},
"phone": {
"type": "string",
"description": "Must contain a 2 digits DDD and a 8 or 9 digits number"
},
"gender": {
"type": "string",
"description": "'M' for male, 'F' for female or N for 'prefer not to inform'"
},
"newsletterOptIn": {
"type": "boolean"
},
"externalId": {
"type": "string",
"description": "If you have any patron unique identifier in your system, you can fill this field with it so you can use it for later searchs inside ShoWare platform. Just remember this should be unique between all your patrons."
}
},
"required": [
"email",
"firstName"
],
"description": "Patron information"
},
"skipPatronUpdate": {
"type": "boolean",
"description": "When true, the operation will not overwrite an existing patron's data with the request's data."
},
"keepExistingTags": {
"type": "boolean",
"description": "When false, this option removes existing tags for the patron."
},
"tags": {
"type": "array",
"description": "The list of tags to be added to the patron."
},
"isDependent": {
"type": "boolean",
"description": "When `true`, the `code` field refers to the main patron, indicating that this patron is dependent on that main patron. Please note that this field can only be used when the main/dependent patron functionality is enabled. Contact support for assistance in activating this feature in the ShoWare system."
},
"destinationUrlAfterLogin": {
"type": "string",
"description": "The URL the patron will be redirect to after a successful login. Must be a relative URL, which will be applied to the Front-End's root URL."
}
}
}Headers
Content-Type: application/jsonBody
{
"redirectUrl": "https://mycompany.showare.com.br/Account/Login.aspx?t=154591d378f1452595caee0ce264dcaa"
}Generate an authentication URLPOST/patrons/auto-login
This operation generate an URL which allows a patron to have access the sales system.
This URL contains a token that tells the sales system that the patron is already authenticated. The token lasts 30 seconds.
Administrative operations ¶
Administrative operations are operations not bound to the sales context, that is, they are not bound to the context of a patron reserving tickets and placing orders.
Order ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"results": [
{
"id": 1276540,
"statusId": 2,
"status": "ProcessingPayment",
"statusDetails": {
"id": 4,
"key": "Paid",
"description": "Pago"
},
"statusDescription": "Pagamento em Análise",
"orderDate": "2018-07-17T15:35:50.4630000-03:00",
"Patron": {
"id": 1,
"fullName": "John Doe",
"cpf": "01234567890",
"email": "johndoe@email.com",
"code": "57264902",
"externalReferenceCode": "EXT-12345"
},
"expireAt": "2018-07-17T15:55:50.5100000-03:00",
"total": 800,
"interestValue": 100,
"acquirerInstallmentFeeValue": 10.55,
"promotion": {
"name": "Fan club early access",
"description": "Fan club early access",
"promotionType": "MultiPromoCode",
"maxTicketsPerOrder": 8,
"promotionStart": "2018-07-17T15:55:50.5100000-03:00",
"promotionEnd": "2018-07-27T15:55:50.5100000-03:00",
"images": [
{
"name": "linkin_park_banner",
"url": "https://dev.showare.com.br/images/linkinparkbanner.jpg",
"imageType": "ShoWare - Anúncio",
"imageTypeCode": "SHOWARE_AD",
"width": 293,
"height": 400
}
],
"id": 97
},
"deliveryInfo": {
"deliveryMethod": {
"name": "Entrega em SP",
"description": "Imprimir em casa",
"deliveryMethodType": "**Deprecated.** Use `deliveryMethodTypeData.name` instead",
"fee": 20,
"deliveryMethodTypeData": {
"name": "Receber em domicílio ou outro endereço",
"needAddress": true,
"needLogistic": true,
"needPatron": true,
"hasAddress": false,
"isPrintAtHome": true,
"isBoxOfficeSell": false,
"isMobile": false,
"allowRecipientIdentification": true,
"documentTypes": [
{
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
}
]
}
},
"deliveryRecipient": {
"documentType": {
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
},
"documentNumber": "AJ987-23Z",
"name": "Jhon Doe"
}
},
"deliveryMethod": {
"name": "Entrega em SP",
"description": "Imprimir em casa",
"deliveryMethodType": "**Deprecated.** Use `deliveryMethodTypeData.name` instead",
"fee": 20,
"deliveryMethodTypeData": {
"name": "Receber em domicílio ou outro endereço",
"needAddress": true,
"needLogistic": true,
"needPatron": true,
"hasAddress": false,
"isPrintAtHome": true,
"isBoxOfficeSell": false,
"isMobile": false,
"allowRecipientIdentification": true,
"documentTypes": [
{
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
}
]
}
},
"deliveryRecipient": {
"documentType": {
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
},
"documentNumber": "AJ987-23Z",
"name": "Jhon Doe"
},
"billingAddress": {
"addressType": "1",
"addressTypeName": "Shipping",
"patronId": 1,
"email": "hetfield@gmail.com",
"firstName": "James",
"lastName": "Hetfield",
"cpf": "12345678912",
"addressLine1": "Avenida Nove de Julho, 123",
"addressLine2": "Apto 71",
"city": "Sao Paulo",
"stateId": 1,
"state": "SP",
"zipCode": "12345",
"phone": "(34) 534534534",
"district": "Baixo Augusta",
"enabled": true,
"streetName": "Rua Nove de Julho",
"number": "123"
},
"shippingAddress": {
"addressType": "1",
"addressTypeName": "Shipping",
"patronId": 1,
"email": "hetfield@gmail.com",
"firstName": "James",
"lastName": "Hetfield",
"cpf": "12345678912",
"addressLine1": "Avenida Nove de Julho, 123",
"addressLine2": "Apto 71",
"city": "Sao Paulo",
"stateId": 1,
"state": "SP",
"zipCode": "12345",
"phone": "(34) 534534534",
"district": "Baixo Augusta",
"enabled": true,
"streetName": "Rua Nove de Julho",
"number": "123"
},
"paymentInfo": {
"paymentMethod": {
"id": 1001,
"name": "American Express 3x",
"paymentMethodTypeName": "American Express",
"installments": 3
},
"paidAmount": 122.5,
"cancelledAmount": 22.5,
"totalAmount": 100,
"handlerName": "ShoWare - showarePay",
"tid": "ABC123456",
"acquirerTid": "ABC123456-789",
"acquirerName": "Cielo",
"nsu": "NSU00001",
"authorizationCode": "A123",
"creditCardNumber": "000000******1234",
"creditCardHolderName": "Fulano de Tal",
"externalUrl": "https://showarepay.com/boleto/123",
"boletoBarcode": "00000 111112222233333 55554444",
"expirationDate": "2020-12-31T23:59:59",
"paymentDate": "2020-12-31T23:59:59",
"transactions": [
{
"date": "2020-12-31T23:59:59",
"totalAmount": 122.5,
"ticketsAmount": 100,
"productsAmount": 20,
"ticketsFeeAmount": 1,
"deliveryFeeAmount": 1,
"interestAmount": 0.5,
"acquirerInstallmentFeeAmount": 0.5,
"ticketsCount": 2,
"productsCount": 1
}
]
},
"orderItems": [
{
"id": 5985691,
"placeId": 2835640,
"seatId": 2835640,
"status": "Open",
"statusDetails": {
"id": 4,
"key": "Paid",
"description": "Pago"
},
"statusDescription": "Open",
"price": 250,
"priceWithDiscount": 125,
"fee": 25,
"itemTotal": 150,
"seatDescription": "Row 2, Seat 5",
"seatRowIdentifier": "B",
"seatIdentifier": "05",
"seatTypeName": "FILA",
"barcode": "7834673409254",
"barcodeReadDate": "2018-08-27T21:15:00.0000000",
"priceCategoryId": 1000,
"priceCategoryName": "Section A",
"eventId": 232,
"eventName": "Shakira World Tour",
"performanceId": 1234,
"performanceName": "Shakira [Sao Paulo]",
"performanceDate": "2018-08-27T12:00:00.0000000",
"performanceCity": "Sao Paulo",
"sectionId": 567,
"sectionName": "Blue bleachers",
"sectionTypeId": 3,
"sectionGateInfo": "Gate 2",
"sectionTicketDescription": "Ticket info",
"venueId": 1,
"venueName": "Allianz Park",
"venueAddress": "Av. Paulista, 1000 - Bela Vista, São Paulo - SP",
"location": {
"id": 2,
"name": "Arena Vip",
"street": "Av. Paulista",
"number": "1000",
"complement": "Apto 10",
"district": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"zipCode": "01310-100"
},
"ticketName": "Full price",
"discount": {
"name": "Meia entrada",
"discountedPrice": 150,
"value": 0,
"ticketHolderRequired": false,
"id": 45
},
"ticketHolder": {
"orderItemId": 10,
"name": "Kurt Cobain",
"documentNumber": "SP92659",
"documentTypeName": "RG",
"documentTypeId": 2
},
"cancellationDate": "2018-08-27T21:15:00.0000000",
"feeCancellationDate": "2018-08-27T21:15:00.0000000",
"documentTypes": [
{
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
}
],
"images": [
{
"name": "linkin_park_banner",
"url": "https://dev.showare.com.br/images/linkinparkbanner.jpg",
"imageType": "ShoWare - Anúncio",
"imageTypeCode": "SHOWARE_AD",
"width": 293,
"height": 400
}
]
}
],
"logs": [
{
"text": "O pedido foi reativado com base nas informações do cookie do usuário. IP:172.22.44.12,Browser:Chrome56,Version:56.0,System:WinNT",
"date": "2017-04-04 16:52:57.453",
"login": "novo-usuario"
}
],
"orderProductItems": [
{
"price": 90,
"name": "Vallet service",
"description": "A brief description of the product/service provided",
"id": 14
}
],
"salesChannel": {
"id": 8,
"name": "Internet"
},
"fee": 20,
"orderValidationStatus": {
"isValid": false,
"errors": [
{
"propertyName": "ShippingAddress",
"errorMessage": "O pedido precisa ter um endereço de entrega.",
"errorCode": "NotNull"
}
]
},
"eventId": 232,
"promoterId": 1,
"promoterName": "Som Livre Produções",
"externalReferenceCode": "92751801",
"printAtHomeUrl": "https://showare.com.br/Basket/QuickPrintAtHome.aspx?k=MHzR%2fo6qnzk%3d&u=Un7i7zDp7XN%3d",
"login": "adm-user"
}
],
"totalResults": 0,
"skip": 0,
"take": 0
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"results": {
"type": "array"
},
"totalResults": {
"type": "number",
"description": "Total number of orders that match the search parameters"
},
"skip": {
"type": "number",
"description": "The `skip` parameter sent on the request"
},
"take": {
"type": "number",
"description": "The `take` parameter sent on the request"
}
}
}Search orders by multiple filtersGET/admin/orders/
The results are always paginated, with a maximum page size of 50.
- orderId
int(optional) Example: 1234- status
int(optional) Example: 1See the OrderStatus table on the enums section.
- externalOrderId
string(optional) Example: A1234- eventId
int(optional) Example: 3456- performanceId
int(optional) Example: 23- salesChannelId
int(optional) Example: 15- patronCPF
string(optional) Example: 01234567890- patronEmail
string(optional) Example: teste@fulano.com.br- patronCode
string(optional) Example: 8ujeriThe patron’s custom code (e.g. the club’s enrollment number)
- paymentDateFrom
string(optional) Example: 2018-01-01T13:45:57The starting date for the order’s payment or ticket cancellation. Uses
COALESCE(cancellationDate, paymentDate, orderCreationDate)logic.- paymentDateTo
string(optional) Example: 2018-02-01T18:47:32The ending date for the order’s payment or ticket cancellation. Uses
COALESCE(cancellationDate, paymentDate, orderCreationDate)logic.- performanceDateFrom
string(optional) Example: 2018-01-01T13:45:57Filters orders by the performance start date (from). If the order has tickets for multiple performances, the order will be returned if any of the performances is within the specified range.
- performanceDateTo
string(optional) Example: 2018-02-01T18:47:32Filters orders by the performance start date (to). If the order has tickets for multiple performances, the order will be returned if any of the performances is within the specified range.
- ticketCancellationDateFrom
string(optional) Example: 2018-01-01T13:45:57Filters orders by the ticket cancellation date (from). If the order has tickets canceled in different dates, the order will be returned if any of the tickets was canceled within the specified range.
- ticketCancellationDateTo
string(optional) Example: 2018-02-01T18:47:32Filters orders by the ticket cancellation date (to). If the order has tickets canceled in different dates, the order will be returned if any of the tickets was canceled within the specified range.
- orderPaymentDateFrom
string(optional) Example: 2018-01-01T13:45:57Filters orders by the payment date (from).
- orderPaymentDateTo
string(optional) Example: 2018-02-01T18:47:32Filters orders by the payment date (to).
- orderCreationDateFrom
string(optional) Example: 2018-01-01T13:45:57Filters orders by the order creation date (from). This is the date when the order’s first tickets were reserved.
- orderCreationDateTo
string(optional) Example: 2018-02-01T18:47:32Filters orders by the order creation date (to). This is the date when the order’s first tickets were reserved.
- deliveryFeeCancellationDateFrom
string(optional) Example: 2018-01-01T13:45:57Filters orders by the delivery fee cancellation date (from).
- deliveryFeeCancellationDateTo
string(optional) Example: 2018-02-01T18:47:32Filters orders by the delivery fee cancellation date (to).
- includeItems
boolean(optional) Example: falseInclude the orders’ items in the result. (default false)
- includePaymentInfo
boolean(optional) Example: falseIncludes the orders’ payment info in the result. (default false)
- includeLog
boolean(optional) Example: falseIncludes the orders’ log entries in the result. (default false)
- skip
int(optional) Example: 0Number of orders to be skiped. Used to paginate the results.
- take
int(optional) Example: 10Number of orders to be retrieved. (The maximum value is 50, the default is 10)
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"id": 1276540,
"statusId": 2,
"status": "ProcessingPayment",
"statusDetails": {
"id": 4,
"key": "Paid",
"description": "Pago"
},
"statusDescription": "Pagamento em Análise",
"orderDate": "2018-07-17T15:35:50.4630000-03:00",
"Patron": {
"id": 1,
"fullName": "John Doe",
"cpf": "01234567890",
"email": "johndoe@email.com",
"code": "57264902",
"externalReferenceCode": "EXT-12345"
},
"expireAt": "2018-07-17T15:55:50.5100000-03:00",
"total": 800,
"interestValue": 100,
"acquirerInstallmentFeeValue": 10.55,
"promotion": {
"name": "Fan club early access",
"description": "Fan club early access",
"promotionType": "MultiPromoCode",
"maxTicketsPerOrder": 8,
"promotionStart": "2018-07-17T15:55:50.5100000-03:00",
"promotionEnd": "2018-07-27T15:55:50.5100000-03:00",
"images": [
{
"name": "linkin_park_banner",
"url": "https://dev.showare.com.br/images/linkinparkbanner.jpg",
"imageType": "ShoWare - Anúncio",
"imageTypeCode": "SHOWARE_AD",
"width": 293,
"height": 400
}
],
"id": 97
},
"deliveryInfo": {
"deliveryMethod": {
"name": "Entrega em SP",
"description": "Imprimir em casa",
"deliveryMethodType": "**Deprecated.** Use `deliveryMethodTypeData.name` instead",
"fee": 20,
"deliveryMethodTypeData": {
"name": "Receber em domicílio ou outro endereço",
"needAddress": true,
"needLogistic": true,
"needPatron": true,
"hasAddress": false,
"isPrintAtHome": true,
"isBoxOfficeSell": false,
"isMobile": false,
"allowRecipientIdentification": true,
"documentTypes": [
{
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
}
]
}
},
"deliveryRecipient": {
"documentType": {
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
},
"documentNumber": "AJ987-23Z",
"name": "Jhon Doe"
}
},
"deliveryMethod": {
"name": "Entrega em SP",
"description": "Imprimir em casa",
"deliveryMethodType": "**Deprecated.** Use `deliveryMethodTypeData.name` instead",
"fee": 20,
"deliveryMethodTypeData": {
"name": "Receber em domicílio ou outro endereço",
"needAddress": true,
"needLogistic": true,
"needPatron": true,
"hasAddress": false,
"isPrintAtHome": true,
"isBoxOfficeSell": false,
"isMobile": false,
"allowRecipientIdentification": true,
"documentTypes": [
{
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
}
]
}
},
"deliveryRecipient": {
"documentType": {
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
},
"documentNumber": "AJ987-23Z",
"name": "Jhon Doe"
},
"billingAddress": {
"addressType": "1",
"addressTypeName": "Shipping",
"patronId": 1,
"email": "hetfield@gmail.com",
"firstName": "James",
"lastName": "Hetfield",
"cpf": "12345678912",
"addressLine1": "Avenida Nove de Julho, 123",
"addressLine2": "Apto 71",
"city": "Sao Paulo",
"stateId": 1,
"state": "SP",
"zipCode": "12345",
"phone": "(34) 534534534",
"district": "Baixo Augusta",
"enabled": true,
"streetName": "Rua Nove de Julho",
"number": "123"
},
"shippingAddress": {
"addressType": "1",
"addressTypeName": "Shipping",
"patronId": 1,
"email": "hetfield@gmail.com",
"firstName": "James",
"lastName": "Hetfield",
"cpf": "12345678912",
"addressLine1": "Avenida Nove de Julho, 123",
"addressLine2": "Apto 71",
"city": "Sao Paulo",
"stateId": 1,
"state": "SP",
"zipCode": "12345",
"phone": "(34) 534534534",
"district": "Baixo Augusta",
"enabled": true,
"streetName": "Rua Nove de Julho",
"number": "123"
},
"paymentInfo": {
"paymentMethod": {
"id": 1001,
"name": "American Express 3x",
"paymentMethodTypeName": "American Express",
"installments": 3
},
"paidAmount": 122.5,
"cancelledAmount": 22.5,
"totalAmount": 100,
"handlerName": "ShoWare - showarePay",
"tid": "ABC123456",
"acquirerTid": "ABC123456-789",
"acquirerName": "Cielo",
"nsu": "NSU00001",
"authorizationCode": "A123",
"creditCardNumber": "000000******1234",
"creditCardHolderName": "Fulano de Tal",
"externalUrl": "https://showarepay.com/boleto/123",
"boletoBarcode": "00000 111112222233333 55554444",
"expirationDate": "2020-12-31T23:59:59",
"paymentDate": "2020-12-31T23:59:59",
"transactions": [
{
"date": "2020-12-31T23:59:59",
"totalAmount": 122.5,
"ticketsAmount": 100,
"productsAmount": 20,
"ticketsFeeAmount": 1,
"deliveryFeeAmount": 1,
"interestAmount": 0.5,
"acquirerInstallmentFeeAmount": 0.5,
"ticketsCount": 2,
"productsCount": 1
}
]
},
"orderItems": [
{
"id": 5985691,
"placeId": 2835640,
"seatId": 2835640,
"status": "Open",
"statusDetails": {
"id": 4,
"key": "Paid",
"description": "Pago"
},
"statusDescription": "Open",
"price": 250,
"priceWithDiscount": 125,
"fee": 25,
"itemTotal": 150,
"seatDescription": "Row 2, Seat 5",
"seatRowIdentifier": "B",
"seatIdentifier": "05",
"seatTypeName": "FILA",
"barcode": "7834673409254",
"barcodeReadDate": "2018-08-27T21:15:00.0000000",
"priceCategoryId": 1000,
"priceCategoryName": "Section A",
"eventId": 232,
"eventName": "Shakira World Tour",
"performanceId": 1234,
"performanceName": "Shakira [Sao Paulo]",
"performanceDate": "2018-08-27T12:00:00.0000000",
"performanceCity": "Sao Paulo",
"sectionId": 567,
"sectionName": "Blue bleachers",
"sectionTypeId": 3,
"sectionGateInfo": "Gate 2",
"sectionTicketDescription": "Ticket info",
"venueId": 1,
"venueName": "Allianz Park",
"venueAddress": "Av. Paulista, 1000 - Bela Vista, São Paulo - SP",
"location": {
"id": 2,
"name": "Arena Vip",
"street": "Av. Paulista",
"number": "1000",
"complement": "Apto 10",
"district": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"zipCode": "01310-100"
},
"ticketName": "Full price",
"discount": {
"name": "Meia entrada",
"discountedPrice": 150,
"value": 0,
"ticketHolderRequired": false,
"id": 45
},
"ticketHolder": {
"orderItemId": 10,
"name": "Kurt Cobain",
"documentNumber": "SP92659",
"documentTypeName": "RG",
"documentTypeId": 2
},
"cancellationDate": "2018-08-27T21:15:00.0000000",
"feeCancellationDate": "2018-08-27T21:15:00.0000000",
"documentTypes": [
{
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
}
],
"images": [
{
"name": "linkin_park_banner",
"url": "https://dev.showare.com.br/images/linkinparkbanner.jpg",
"imageType": "ShoWare - Anúncio",
"imageTypeCode": "SHOWARE_AD",
"width": 293,
"height": 400
}
]
}
],
"logs": [
{
"text": "O pedido foi reativado com base nas informações do cookie do usuário. IP:172.22.44.12,Browser:Chrome56,Version:56.0,System:WinNT",
"date": "2017-04-04 16:52:57.453",
"login": "novo-usuario"
}
],
"orderProductItems": [
{
"price": 90,
"name": "Vallet service",
"description": "A brief description of the product/service provided",
"id": 14
}
],
"salesChannel": {
"id": 8,
"name": "Internet"
},
"fee": 20,
"orderValidationStatus": {
"isValid": false,
"errors": [
{
"propertyName": "ShippingAddress",
"errorMessage": "O pedido precisa ter um endereço de entrega.",
"errorCode": "NotNull"
}
]
},
"eventId": 232,
"promoterId": 1,
"promoterName": "Som Livre Produções",
"externalReferenceCode": "92751801",
"printAtHomeUrl": "https://showare.com.br/Basket/QuickPrintAtHome.aspx?k=MHzR%2fo6qnzk%3d&u=Un7i7zDp7XN%3d",
"login": "adm-user"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
},
"statusId": {
"type": "number",
"description": "**Deprecated.** Use `statusDetails.id` instead."
},
"status": {
"type": "string",
"description": "Refer to OrderStatus enum"
},
"statusDetails": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "The status identifier as an integer. Refer to the OrderStatus enum."
},
"key": {
"type": "string",
"description": "The status identifier as a string. Refer to the OrderStatus enum."
},
"description": {
"type": "string",
"description": "The status' friendly description."
}
},
"description": "Object with the order's status details. Prefer this over `statusDescription`."
},
"statusDescription": {
"type": "string",
"description": "**Deprecated.** Use `statusDetails.description` instead."
},
"orderDate": {
"type": "string",
"description": "`GMT -3:00`"
},
"Patron": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"fullName": {
"type": "string"
},
"cpf": {
"type": "string"
},
"email": {
"type": "string"
},
"code": {
"type": "string"
},
"externalReferenceCode": {
"type": "string",
"description": "External ID from the integrating system, if configured."
}
}
},
"expireAt": {
"type": "string",
"description": "`Order expiration time, GMT-3:00`"
},
"total": {
"type": "number",
"description": "Order total amount, with fees and interest"
},
"interestValue": {
"type": "number",
"description": "Interest amount."
},
"acquirerInstallmentFeeValue": {
"type": "number",
"description": "Acquirer installment fee value paid on POS when buyer pays fee."
},
"promotion": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"promotionType": {
"type": "string",
"description": "Refer to PromotionType enum"
},
"maxTicketsPerOrder": {
"type": "number",
"description": "Maximum tickets allowed per order for this promotion"
},
"promotionStart": {
"type": "string",
"description": "`Time when promotion becomes enabled, GMT-3:00`"
},
"promotionEnd": {
"type": "string",
"description": "`Time when promotion becomes disabled, GMT-3:00` (string, optional)"
},
"images": {
"type": "array"
},
"id": {
"type": "number"
}
}
},
"deliveryInfo": {
"type": "object",
"properties": {
"deliveryMethod": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string",
"description": "A brief description of the method"
},
"deliveryMethodType": {
"type": "string"
},
"fee": {
"type": "number",
"description": "Delivery method fee"
},
"deliveryMethodTypeData": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"needAddress": {
"type": "boolean",
"description": "This method requires address"
},
"needLogistic": {
"type": "boolean",
"description": "Some methods are dependent on zipcode for fee calculation. If it's the case, this property is true"
},
"needPatron": {
"type": "boolean",
"description": "This method requires patron identification"
},
"hasAddress": {
"type": "boolean",
"description": "Some methods have an address associated to them. E.g. 'Will call' tickets"
},
"isPrintAtHome": {
"type": "boolean",
"description": "This method allows home printing"
},
"isBoxOfficeSell": {
"type": "boolean",
"description": "`This method can be selected in box office (admin) orders`"
},
"isMobile": {
"type": "boolean",
"description": "This method allows displaying the ticket on mobile devices"
},
"allowRecipientIdentification": {
"type": "boolean",
"description": "Indicates that this method accepts the identification of a person that can withdraw or receive the purchased items for the patron"
},
"documentTypes": {
"type": "array",
"description": "The list of acceptable document types for the identification of the recipient. Only present when `allowRecipientIdentification` is `true`"
}
}
},
"id": {
"type": "number"
}
},
"description": "The order's delivery method."
},
"deliveryRecipient": {
"type": "object",
"properties": {
"documentType": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"abbreviation": {
"type": "string"
}
}
},
"documentNumber": {
"type": "string"
},
"name": {
"type": "string"
}
},
"description": "The identification of someone who can withdraw or receive the purchased items for the patron."
}
},
"description": "Object with the order's delivery information. Prefer this over `deliveryMethod` and `deliveryRecipient`."
},
"deliveryMethod": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string",
"description": "A brief description of the method"
},
"deliveryMethodType": {
"type": "string"
},
"fee": {
"type": "number",
"description": "Delivery method fee"
},
"deliveryMethodTypeData": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"needAddress": {
"type": "boolean",
"description": "This method requires address"
},
"needLogistic": {
"type": "boolean",
"description": "Some methods are dependent on zipcode for fee calculation. If it's the case, this property is true"
},
"needPatron": {
"type": "boolean",
"description": "This method requires patron identification"
},
"hasAddress": {
"type": "boolean",
"description": "Some methods have an address associated to them. E.g. 'Will call' tickets"
},
"isPrintAtHome": {
"type": "boolean",
"description": "This method allows home printing"
},
"isBoxOfficeSell": {
"type": "boolean",
"description": "`This method can be selected in box office (admin) orders`"
},
"isMobile": {
"type": "boolean",
"description": "This method allows displaying the ticket on mobile devices"
},
"allowRecipientIdentification": {
"type": "boolean",
"description": "Indicates that this method accepts the identification of a person that can withdraw or receive the purchased items for the patron"
},
"documentTypes": {
"type": "array",
"description": "The list of acceptable document types for the identification of the recipient. Only present when `allowRecipientIdentification` is `true`"
}
}
},
"id": {
"type": "number"
}
},
"description": "**Deprecated.** Use `deliveryInfo.deliveryMethod` instead."
},
"deliveryRecipient": {
"type": "object",
"properties": {
"documentType": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"abbreviation": {
"type": "string"
}
}
},
"documentNumber": {
"type": "string"
},
"name": {
"type": "string"
}
},
"description": "**Deprecated.** Use `deliveryInfo.deliveryRecipient` instead."
},
"billingAddress": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"addressType": {
"type": "string",
"description": "AddressType enum"
},
"addressTypeName": {
"type": "string"
},
"patronId": {
"type": "number"
},
"email": {
"type": "string"
},
"title": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"cpf": {
"type": "string",
"description": "Numbers only, 11 character long"
},
"addressLine1": {
"type": "string"
},
"addressLine2": {
"type": "string"
},
"city": {
"type": "string"
},
"stateId": {
"type": "number"
},
"state": {
"type": "string"
},
"zipCode": {
"type": "string",
"description": "000 (string, optional) - Format: 99999-999"
},
"phone": {
"type": "string",
"description": "`Format: (99) 999999999`"
},
"district": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"extraData": {
"type": "string"
},
"streetName": {
"type": "string",
"description": "Splitted street name and number"
},
"number": {
"type": "string",
"description": "Splitted street name and number"
}
}
},
"shippingAddress": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"addressType": {
"type": "string",
"description": "AddressType enum"
},
"addressTypeName": {
"type": "string"
},
"patronId": {
"type": "number"
},
"email": {
"type": "string"
},
"title": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"cpf": {
"type": "string",
"description": "Numbers only, 11 character long"
},
"addressLine1": {
"type": "string"
},
"addressLine2": {
"type": "string"
},
"city": {
"type": "string"
},
"stateId": {
"type": "number"
},
"state": {
"type": "string"
},
"zipCode": {
"type": "string",
"description": "000 (string, optional) - Format: 99999-999"
},
"phone": {
"type": "string",
"description": "`Format: (99) 999999999`"
},
"district": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"extraData": {
"type": "string"
},
"streetName": {
"type": "string",
"description": "Splitted street name and number"
},
"number": {
"type": "string",
"description": "Splitted street name and number"
}
}
},
"paymentInfo": {
"type": "object",
"properties": {
"paymentMethod": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"paymentMethodTypeName": {
"type": "string"
},
"installments": {
"type": "number"
}
}
},
"paidAmount": {
"type": "number"
},
"cancelledAmount": {
"type": "number"
},
"totalAmount": {
"type": "number"
},
"handlerName": {
"type": "string"
},
"tid": {
"type": "string"
},
"acquirerTid": {
"type": "string"
},
"acquirerName": {
"type": "string"
},
"nsu": {
"type": "string"
},
"authorizationCode": {
"type": "string"
},
"creditCardNumber": {
"type": "string"
},
"creditCardHolderName": {
"type": "string"
},
"externalUrl": {
"type": "string",
"description": "Used for boleto payments"
},
"boletoBarcode": {
"type": "string"
},
"expirationDate": {
"type": "string"
},
"paymentDate": {
"type": "string"
},
"transactions": {
"type": "array"
}
}
},
"orderItems": {
"type": "array"
},
"logs": {
"type": "array"
},
"orderProductItems": {
"type": "array"
},
"salesChannel": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
}
}
},
"fee": {
"type": "number",
"description": "Order fee, not to be mistaken with order item fee"
},
"orderValidationStatus": {
"type": "object",
"properties": {
"isValid": {
"type": "boolean"
},
"errors": {
"type": "array",
"description": "Pending validations"
}
}
},
"eventId": {
"type": "number"
},
"promoterId": {
"type": "number",
"description": "The event's promoter ID."
},
"promoterName": {
"type": "string",
"description": "The event's promoter name."
},
"externalReferenceCode": {
"type": "string",
"description": "Orders can be provided a external code"
},
"printAtHomeUrl": {
"type": "string"
},
"login": {
"type": "string",
"description": "Administrative sales channel user"
}
}
}Get an order by it's external codeGET/admin/order
Gets an order by the reference code that can be assigned by the consumer app
in the one-step order operation
using the property externalOrderId.
This operation’s route has changed over time. The previous route should not be used, as it will be removed in the future. The previous route was:
GET /order/external/{externalReferenceCode}
- externalOrderId
string(required) Example: A1234Reference code for finding the order later (usually the ID generated by the consumer software)
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"externalOrderId": "A1234"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"externalOrderId": {
"type": "string",
"description": "The external order id that will be attributed to the order."
}
}
}Headers
Content-Type: application/jsonSet an order's external IDPOST/order/external-reference
An external identifier can be attributed to an order, so that the order can later be retrieved using the attributed ID. The ID can be the consuming system’s order ID, so that the two registers can be corelated. ShoWare will not accept two orders using the same external ID.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"orderId": 1,
"externalOrderId": "10",
"cancelDeliveryFee": false,
"skipPaymentCancellation": false,
"isFullCancellation": false,
"itemsToCancel": [
{
"itemId": 123,
"cancelValue": false,
"cancelFee": false
}
],
"cancellationReasonId": 1,
"comment": "Hello, world!"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"orderId": {
"type": "number",
"description": "The order's ID. Either this or the external (your system's) identifier must be provided."
},
"externalOrderId": {
"type": "string",
"description": "The order's external (your system's) identifier. Either this or the ShoWare order ID must be provided."
},
"cancelDeliveryFee": {
"type": "boolean",
"description": "When true, the delivery fee will be canceled."
},
"skipPaymentCancellation": {
"type": "boolean",
"description": "When true, the payment will not be refunded."
},
"isFullCancellation": {
"type": "boolean",
"description": "When true, the order will be completely canceled. In this case, the `ItemsToCancel` must not be set."
},
"itemsToCancel": {
"type": "array",
"description": "When `isFullCancellation` is false, you need to set this property."
},
"cancellationReasonId": {
"type": "number",
"description": "See the documentation for the `GET POST /admin/order/cancellation-reasons` operation."
},
"comment": {
"type": "string",
"description": "The comment about cancellation."
}
}
}Headers
Content-Type: application/jsonHeaders
Content-Type: application/jsonBody
{
"responseStatus": {
"errorCode": "BadRequest",
"message": "Pedido não encontrado.",
}
}Cancel an orderPOST/admin/order/cancel
The order can be canceled either in full or partially, consequently allowing a granular cancellation of each ticket’s value and/or fee, the order’s delivery fee, etc.; or any combination.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
[
{
"id": 1,
"name": "'Solicitação do Cliente'"
}
]Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array"
}Get cancellation reasons for the orderGET/admin/order/cancellation-reasons
This operation retrieves all cancellation reasons for the order.
Headers
X-AuthKey: demo-internet-fixedHeaders
Content-Type: application/pdfGenerate a print-at-home PDFGET/admin/order/{orderId}/printAtHome
Gets print-at-home tickets in the PDF format.
This operation’s route has changed over time. The previous route should not be used, as it will be removed in the future. The previous route was:
GET /order/{orderId}/printathome
- orderId
number(required) Example: 123456Order Id
Patron ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"results": [
{
"firstName": "Robert",
"lastName": "Patrick",
"cpf": "29553965083",
"email": "rb_ext@example.com",
"birthDate": "1983-05-03T00:00:00.0000000",
"newsletterOptIn": true,
"partnersNewsletterOptIn": false,
"gender": "M",
"code": "T-1000",
"externalId": "A7200",
"isDependent": false,
"insertDate": "2018-01-12T13:26:54.0015876",
"updateDate": "2018-07-03T04:50:00.0089732"
}
],
"totalResults": 1,
"skip": 0,
"take": 10
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"results": {
"type": "array",
"description": "List of Patrons"
},
"totalResults": {
"type": "number",
"description": "Total number of patrons that matched the search criterias."
},
"skip": {
"type": "number",
"description": "The skip parameter used on the request"
},
"take": {
"type": "number",
"description": "The take parameter used on the request"
}
}
}Search PatronsGET/admin/patrons
Search patrons by multiple filters. Result can be paginated. This operation will return at most 50 patrons in one call.
string(optional) Example: fulano@example.comPatron’s email
- cpf
string(optional) Example: 426.727.160-72Patron’s CPF
- code
string(optional) Example: C34234Patron’s Code
- registrationDateFrom
string(optional) Example: 2019-01-01T00:00:00Start Patron’s registration date
- registrationDateTo
string(optional) Example: 2019-05-01T00:00:00End Patron’s registration date
- updatedSince
string(optional) Example: 2019-01-01T00:00:00Patron’s last update date
- skip
int(optional) Example: 0Number of patrons to be skiped. Used to paginate the results using parameter take.
- take
int(optional) Example: 10Number of patrons to be retrieved. (max value 50)
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"firstName": "Robert",
"lastName": "Patrick",
"cpf": "29553965083",
"email": "rb_ext@example.com",
"password": "TEST - DO NOT USE",
"birthDate": "1983-05-03",
"gender": "M",
"code": "T-1000",
"address": {
"addressLine1": "Rua das Araucárias, 231",
"addressLine2": "apto. 87",
"city": "São Paulo",
"state": "SP",
"zipCode": "04658000",
"phone": "1155556666",
"district": "Vila das Araucárias"
},
"isEnabled": true,
"keepExistingTags": true,
"tags": [
"Hello, world!"
],
"isDependent": false,
"externalId": "A7200"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"cpf": {
"type": "string"
},
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"birthDate": {
"type": "string"
},
"gender": {
"type": "string",
"description": "M - Male, F - Female, N - Not informed"
},
"code": {
"type": "string",
"description": "Optional code that can relate the patron with data in an external system, if patron's dependent module is enabled, this can use to identify multiple patrons that use the same code (one will be the main one, the others, all dependents). Usually, this field is called \"matrícula\" or \"título\"."
},
"address": {
"type": "object",
"properties": {
"addressLine1": {
"type": "string"
},
"addressLine2": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string",
"description": "Must be informed in UF form (ex. SP, RJ, TO etc)"
},
"zipCode": {
"type": "string",
"description": "Must be an 8 digits code"
},
"phone": {
"type": "string",
"description": "Must be a 2-digit DDD code plus an 8 or 9-digit number"
},
"district": {
"type": "string"
}
}
},
"isEnabled": {
"type": "boolean"
},
"keepExistingTags": {
"type": "boolean",
"description": "When false, this option removes existing tags for the patron."
},
"tags": {
"type": "array",
"description": "The list of tags to be added to the patron."
},
"isDependent": {
"type": "boolean",
"description": "When `true`, the `code` field refers to the main patron, indicating that this patron is dependent on that main patron. Please note that this field can only be used when the main/dependent patron functionality is enabled. Contact support for assistance to activate this feature in the ShoWare system."
},
"externalId": {
"type": "string",
"description": "If you have any patron unique identifier in your system, you can fill this field with it so you can use it for later searchs inside ShoWare platform. Just remember this should be unique between all your patrons."
}
}
}Headers
Content-Type: application/jsonBody
{
"responseStatus": {
"errorCode": "NotEmpty",
"message": "O sobrenome deve ser informado.",
"errors": [
{
"errorCode": "NotEmpty",
"fieldName": "LastName",
"message": "O sobrenome deve ser informado."
}
]
}
}Headers
Content-Type: application/jsonBody
{
"errorCode": "patron.email_already_exists",
"message": "Email já existente."
}Create or update a patronPOST/admin/patron
Creates a patron if it does not exists, and updates if it already exists.
ShoWare will try to find an existing patron using the request data. Existing patrons will be searched for in the following order:
- By the
externalIdfield; - By the
cpffield; - By the
emailfield.
If a patron is found, ShoWare will update its data with the request data. If no patron is found, ShoWare assumes a new patron is being created.
The cpf, email and externalId values must be unique among all patrons.
Trying to create or update a patron with one of these fields matching another
patron’s will make ShoWare return an error response.
The patron’s code must also be unique among all patrons, but the system
handles conflicts automatically instead of returning an error response. How the
system handles the code depends on wether the main/dependent patrons feature is
enabled and wether the request’s patron is a dependent or not.
If the main/dependent feature is not enabled, ShoWare will look for another
patron with the same code as the request’s. If a patron is found, this second
patron will have its code updated to a system-generated value and will be
disabled. The request’s patron becomes the new “owner” of the provided code.
If the main/dependent feature is enabled, there are two possibilities:
-
If the request’s patron is a main patron (
isDependent: false), then the same procedure as above occurs, and the same procedure is applied to all of its dependents, if any exist; -
If the request’s patron is a dependent (
isDependent: true), then it is set as a dependent of the main patron with the samecode.
Events and performances ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"data": [
{
"id": 232,
"name": "Shakira World Tour",
"promoterId": 1,
"promoterName": "'Som livre produções'"
}
],
"pagination": {
"totalCount": 100,
"skip": 0,
"take": 10
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "array"
},
"pagination": {
"type": "object",
"properties": {
"totalCount": {
"type": "number",
"description": "Total number of records that matched the search criteria."
},
"skip": {
"type": "number",
"description": "Number of records that were skipped. The value of this property is the same as the \"skip\" parameter used in the request."
},
"take": {
"type": "number",
"description": "Number of records expected to be retrieved. The value of this property is the same as the \"take\" parameter used in the request."
}
}
}
}
}Headers
Content-Type: application/jsonBody
O valor do campo 'Take' não pode ser maior do que 50.List eventsGET/admin/events
List all events.
For an event to be listed, it must have been made available using the back-office system (Admin).
Unlike the “lite” operations, no validation of availability is applied besides the event association with the API key’s sales channel.
- startDate
string(optional) Example: 2025-08-03T00:00:00The starting date of a timeframe where the events’ performances are happening.
- endDate
string(optional) Example: 2025-08-05T23:59:59The ending date of a timeframe where the events’ performances are happening.
- promoterId
int(optional) Example: 10Filters performances by their event’s promoter;
- skip
int(optional) Example: 0Number of events to be skiped. Used to paginate the results. (The default is 0)
- take
int(optional) Example: 20Number of events to be retrieved. (The maximum value is 50, the default is 50)
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"description": "Best hits album",
"deliveryMethodOptIn": true,
"adImageLink `https://showare-cdn.s3.amazonaws.com/demo-qa/images/site/logo-menu.png`": "Hello, world!",
"id": 232,
"name": "Shakira World Tour",
"subtitle": "Best hits album",
"promoterId": 1,
"promoterName": "'Som livre produções'",
"images": [
{
"name": "linkin_park_banner",
"url": "https://dev.showare.com.br/images/linkinparkbanner.jpg",
"imageType": "ShoWare - Anúncio",
"imageTypeCode": "SHOWARE_AD",
"width": 293,
"height": 400
}
],
"categories": [
{
"id": 82,
"name": "Skate",
"parentId": 12,
"parent": "Sports"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"description": {
"type": "string"
},
"deliveryMethodOptIn": {
"type": "boolean"
},
"adImageLink `https://showare-cdn.s3.amazonaws.com/demo-qa/images/site/logo-menu.png`": {
"type": "string"
},
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"subtitle": {
"type": "string"
},
"promoterId": {
"type": "number"
},
"promoterName": {
"type": "string"
},
"images": {
"type": "array"
},
"categories": {
"type": "array",
"description": "Event categories/tags"
}
}
}Get an event by IDGET/admin/events/{id}
Get detailed information about an event.
For an event to be retrieved, it must have been made available using the back-office system (Admin).
Unlike the “lite” operations, no validation of availability is applied besides the event association with the API key’s sales channel.
(Note: To maintain backwards compatibility, the response’s JSON format of this operation is different from the other events- and performances-related operations in this section.)
- id
number(required) Example: 1234The event’s ID
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"data": [
{
"id": 1234,
"name": "John Mayer [São Paulo]",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-27T00:00:00.0000000",
"status": "OnSale",
"statusName": "À venda",
"venue": {
"id": 1,
"name": "Arena Anhembi",
"address": "Av. Olavo Fontoura, 1209 - Santana",
"phone": "(11) 2226-0500",
"city": "São Paulo",
"uf": "SP",
"locationId": 2,
"locationName": "'Parque de exposições'"
},
"isPassport": true,
"PassportParent": {
"id": 1234,
"name": "John Mayer [São Paulo]"
},
"PassportChildren": [
{
"id": 1234,
"name": "John Mayer [São Paulo]",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-27T23:59:00.0000000"
}
]
}
],
"pagination": {
"totalCount": 100,
"skip": 0,
"take": 10
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "array"
},
"pagination": {
"type": "object",
"properties": {
"totalCount": {
"type": "number",
"description": "Total number of records that matched the search criteria."
},
"skip": {
"type": "number",
"description": "Number of records that were skipped. The value of this property is the same as the \"skip\" parameter used in the request."
},
"take": {
"type": "number",
"description": "Number of records expected to be retrieved. The value of this property is the same as the \"take\" parameter used in the request."
}
}
}
}
}Headers
Content-Type: application/jsonBody
O valor do campo 'Take' não pode ser maior do que 50.List performancesGET/admin/events/{eventId}/performances
List all performances of an event.
For a performance to be listed, it or its event must have been made available using the back-office system (Admin).
Unlike the “lite” operations, no validation of availability is applied besides the event or performance association with the API key’s sales channel.
- eventId
number(required) Example: 1234ID of the event that contains the performances to be listed.
- startDate
string(optional) Example: 2025-08-03T00:00:00The starting date of a timeframe where the performances are happening.
- endDate
string(optional) Example: 2025-08-05T23:59:59The ending date of a timeframe where the performances are happening.
- skip
int(optional) Example: 0Number of performances to be skiped. Used to paginate the results. (The default is 0)
- take
int(optional) Example: 20Number of performances to be retrieved. (The maximum value is 50, the default is 50)
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"data": {
"eventId": 123,
"eventName": "John Mayer",
"seatMapImageUrl": "https://bucket.s3.amazonaws.com/demo/images/SeatMap/seatmap01.jpg",
"areaMap": "<area shape=\"rect\" coords=\"1.335,3.3375,264.9975,198.58124999999998\" data-section=\"S01\">",
"showAllSectionsExpanded": true,
"showSectionDirectly": false,
"documentTypes": [
{
"id": 2,
"name": "Documento Nacional do Estudante",
"abbreviation": "DNE"
}
],
"id": 1234,
"name": "John Mayer [São Paulo]",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-27T23:00:00.0000000",
"status": "OnSale",
"statusName": "À venda",
"venue": {
"id": 1,
"name": "Arena Anhembi",
"address": "Av. Olavo Fontoura, 1209 - Santana",
"phone": "(11) 2226-0500",
"city": "São Paulo",
"uf": "SP",
"locationId": 2,
"locationName": "'Parque de exposições'"
},
"isPassport": true,
"passportParent": {
"id": 1234,
"name": "John Mayer [São Paulo]"
},
"passportChildren": [
{
"id": 1234,
"name": "John Mayer [São Paulo]",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-27T23:59:00.0000000"
}
]
},
"pagination": {
"totalCount": 100,
"skip": 0,
"take": 10
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"eventId": {
"type": "number"
},
"eventName": {
"type": "string"
},
"seatMapImageUrl": {
"type": "string"
},
"areaMap": {
"type": "string",
"description": "Used for image mapping purposes"
},
"showAllSectionsExpanded": {
"type": "boolean",
"description": "Informs when to show all sections expanded when on best pick mode"
},
"showSectionDirectly": {
"type": "boolean",
"description": "Informs when to show section directly"
},
"documentTypes": {
"type": "array"
},
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"startDate": {
"type": "string",
"description": "Local date time"
},
"endDate": {
"type": "string",
"description": "Local date time"
},
"status": {
"type": "string",
"description": "Refer to PerformanceStatus enum"
},
"statusName": {
"type": "string",
"description": "Status' friendly name"
},
"venue": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"address": {
"type": "string"
},
"phone": {
"type": "string"
},
"city": {
"type": "string"
},
"uf": {
"type": "string"
},
"locationId": {
"type": "number"
},
"locationName": {
"type": "string"
}
}
},
"isPassport": {
"type": "boolean",
"description": "When 'true', indicates that the performance is a component of a passport context"
},
"passportParent": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
}
},
"description": "When the performance is a passport child, this property is filled with basic data about its parent"
},
"passportChildren": {
"type": "array",
"description": "When the performance is a passport parent, this property is filled with its children's basic data"
}
}
},
"pagination": {
"type": "object",
"properties": {
"totalCount": {
"type": "number",
"description": "Total number of records that matched the search criteria."
},
"skip": {
"type": "number",
"description": "Number of records that were skipped. The value of this property is the same as the \"skip\" parameter used in the request."
},
"take": {
"type": "number",
"description": "Number of records expected to be retrieved. The value of this property is the same as the \"take\" parameter used in the request."
}
}
}
}
}Get a performance by IDGET/admin/events/{eventId}/performances/{performanceId}
Gets detailed information about a performance.
For a performance to be retrieved, it or its event must have been made available using the back-office system (Admin).
Unlike the “lite” operations, no validation of availability is applied besides the event or performance association with the API key’s sales channel.
- eventId
number(required) Example: 1234The performance’s event’s ID
- performanceId
number(required) Example: 2345The performance’s ID
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"data": [
{
"id": 123,
"name": "Setor A",
"type": "GeneralAdmission",
"priceCategories": [
{
"id": 123,
"name": "Pista Premium",
"metrics": {
"capacity": 1,
"blockedPlacesCount": 1,
"killsCount": 1,
"invisiblesCount": 1
}
}
]
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"description": "Refer to the SectionType enum"
},
"priceCategories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"metrics": {
"type": "object",
"properties": {
"capacity": {
"type": "number",
"description": "The total number of places with this price category."
},
"blockedPlacesCount": {
"type": "number",
"description": "The number of places that have been put on a contingent with the `Blocked` visibility."
},
"killsCount": {
"type": "number",
"description": "The number of places that have been put on a kills contingent with the `Blocked` visibility."
},
"invisiblesCount": {
"type": "number",
"description": "The number of places that have been put on a contingent with the `Invisible` visibility."
}
}
}
}
}
}
}
}
}
}
}Get a performance's sections by IDGET/admin/events/{eventId}/performances/{performanceId}/sections
Gets a performance’s sections and each section’s price categories, each with their metrics.
For the sections to be retrieved, their performance or its event must have been made available using the back-office system (Admin).
Unlike the “lite” operations, no validation of availability is applied besides the event or performance association with the API key’s sales channel.
- eventId
number(required) Example: 1234The performance’s event’s ID
- performanceId
number(required) Example: 2345The performance’s ID
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"SalesWithDiscount": {
"performanceId": 10,
"performanceName": "Shakira [Sao Paulo]",
"eventId": 232,
"eventName": "Shakira World Tour",
"startDate": "2018-08-27T12:00:00.0000000",
"endDate": "2018-08-29T12:00:00.0000000",
"openTime": "2018-08-27T12:00:00.0000000",
"status": "OnSale",
"statusName": "On Sale",
"venueName": "Allianz Park",
"sections": [
{
"sectionId": 567,
"sectionName": "Blue bleachers",
"sectionAvailableTicketsQuantity": 3000,
"discountDiscountType": [
{
"discountTypeId": 23,
"discountTypeName": "Student price",
"soldTicketsQuantity": 73
}
]
}
]
},
"responseStatus": {
"errorCode": "Hello, world!",
"message": "Hello, world!",
"stackTrace": "Hello, world!",
"errors": [
{
"errorCode": "Hello, world!",
"fieldName": "Hello, world!",
"message": "Hello, world!"
}
]
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"SalesWithDiscount": {
"type": "object",
"properties": {
"performanceId": {
"type": "number"
},
"performanceName": {
"type": "string"
},
"eventId": {
"type": "number"
},
"eventName": {
"type": "string"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"openTime": {
"type": "string"
},
"status": {
"type": "string",
"description": "Refer to PerformanceStatus enum"
},
"statusName": {
"type": "string"
},
"venueName": {
"type": "string"
},
"sections": {
"type": "array"
}
}
},
"responseStatus": {
"type": "object",
"properties": {
"errorCode": {
"type": "string"
},
"message": {
"type": "string"
},
"stackTrace": {
"type": "string"
},
"errors": {
"type": "array"
}
}
}
}
}Sales with discountGET/admin/performances/{performanceId}/sales-with-discount
Returns performance basic data with information containing sold tickets quantity grouped by discount type in their respective section.
- performanceId
number(required)
Sales reports ¶
An overview of the tickets sold, broken down by date, event and performance*. Each operation further breaks down the sales by additional information.
All sales reports return D-1 data.
*With the exception of delivery fees, which apply to the whole order and, therefore, cannot be broken down by performance.
Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-05-31T00:00:00.000",
"eventId": 123,
"eventName": "System Of A Down [São Paulo]",
"performanceId": 456,
"performanceName": "System Of A Down [São Paulo]",
"performanceStartDate": "2021-06-15T22:30:00.000",
"orderCount": 148,
"ticketCount": 250,
"freeTicketCount": 250,
"ticketPriceRevenue": 5278.97,
"ticketFeeRevenue": 527.89
}
]
}
]Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array"
}Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedEvent",
"message": "Esta chave não dá acesso ao evento especificado."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedPerformance",
"message": "Esta chave não dá acesso à apresentação especificada."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}OverviewGET/admin/reports/sales/overview
- startDate
string(optional) Example: 2019-06-20YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
endDateminus 90 days.- endDate
string(optional) Example: 2019-06-25YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
startDateplus 90 days. IfstartDateis not specified either, assumes the value of the current date (BRT timezone).- eventId
int(optional)- performanceId
int(optional)- groupResults
bool(optional)If set to
true, the results are grouped by date.
Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-07-06T00:00:00.0000000",
"eventId": 455,
"eventName": "Jorge & Mateus",
"performanceId": 2578,
"performanceName": "Jorge & Mateus",
"performanceStartDate": "2020-08-18T21:00:00.0000000",
"salesChannelTypeId": 1,
"salesChannelTypeName": "Internet (Web)",
"salesChannelId": 8,
"salesChannelName": "Internet",
"salesChannelUserId": 13,
"salesChannelUserName": "internet",
"discountTypeId": 0,
"discountTypeName": "",
"ticketPriceId": 8483,
"ticketPriceName": "Inteira",
"ticketPriceRevenue": 100,
"ticketFeeRevenue": 10,
"priceCategoryGroupId": 1,
"priceCategoryGroupName": "Grupo 1",
"priceCategoryId": 2072,
"priceCategoryName": "Geral",
"orderCount": 0,
"ticketCount": 0,
"freeTicketCount": 0,
"ticketPriceTotalRevenue": 0,
"ticketFeeTotalRevenue": 0
}
]
}
]Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-11T00:00:00.0000000",
"orderCount": 3,
"ticketCount": 3,
"freeTicketCount": 0,
"ticketPriceTotalRevenue": 300,
"ticketFeeTotalRevenue": 30
}
]
}
]Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedEvent",
"message": "Esta chave não dá acesso ao evento especificado."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedPerformance",
"message": "Esta chave não dá acesso à apresentação especificada."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By ticket priceGET/admin/reports/sales/ticket-prices
- startDate
string(optional) Example: 2019-06-20YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
endDateminus 90 days.- endDate
string(optional) Example: 2019-06-25YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
startDateplus 90 days. IfstartDateis not specified either, assumes the value of the current date (BRT timezone).- eventId
int(optional)- performanceId
int(optional)- salesChannelId
int(optional)- salesChannelTypeId
int(optional)- priceCategoryId
int(optional)- priceCategoryGroupId
int(optional)- ticketPriceId
int(optional)- discountTypeId
int(optional)- groupResults
bool(optional)If set to
true, the results are grouped by date.
Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"eventId": 456,
"eventName": "System Of A Down [São Paulo]",
"performanceId": 8438,
"performanceName": "System Of A Down [São Paulo] - Camarotes",
"performanceStartDate": "2020-09-17T14:00:00.0000000",
"salesChannelTypeId": 1,
"salesChannelTypeName": "Internet (Web)",
"salesChannelId": 8,
"salesChannelName": "Internet",
"orderCount": 2,
"ticketCount": 2,
"freeTicketCount": 0,
"ticketPriceRevenue": 200,
"ticketFeeRevenue": 20
}
]
}
]Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"salesChannelTypeId": 1,
"salesChannelTypeName": "Internet (Web)",
"salesChannelId": 8,
"salesChannelName": "Internet",
"orderCount": 2,
"ticketCount": 2,
"freeTicketCount": 0,
"ticketPriceRevenue": 200,
"ticketFeeRevenue": 20
}
]
}
]Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedEvent",
"message": "Esta chave não dá acesso ao evento especificado."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedPerformance",
"message": "Esta chave não dá acesso à apresentação especificada."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By sales channelGET/admin/reports/sales/sales-channels
- startDate
string(optional) Example: 2019-06-20YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
endDateminus 90 days.- endDate
string(optional) Example: 2019-06-25YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
startDateplus 90 days. IfstartDateis not specified either, assumes the value of the current date (BRT timezone).- eventId
int(optional)- performanceId
int(optional)- salesChannelId
int(optional)- salesChannelTypeId
int(optional)- groupResults
bool(optional)If set to
true, the results are grouped by date and sales channel.
Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"eventId": 456,
"eventName": "System Of A Down [São Paulo]",
"performanceId": 8438,
"performanceName": "System Of A Down [São Paulo] - Camarotes",
"performanceStartDate": "2020-09-17T14:00:00.0000000",
"promotionId": 123,
"promotionInternalName": "Promo fã-clube acesso restrito",
"salesChannelId": 8,
"salesChannelName": "Internet",
"orderCount": 2,
"ticketCount": 2,
"freeTicketCount": 0,
"ticketPriceRevenue": 200,
"ticketFeeRevenue": 20
}
]
}
]Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"promotionId": 123,
"promotionInternalName": "Promo fã-clube acesso restrito",
"orderCount": 2,
"ticketCount": 2,
"freeTicketCount": 0,
"ticketPriceRevenue": 200,
"ticketFeeRevenue": 20
}
]
}
]Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedEvent",
"message": "Esta chave não dá acesso ao evento especificado."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedPerformance",
"message": "Esta chave não dá acesso à apresentação especificada."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By promotionGET/admin/reports/sales/promotions
- startDate
string(optional) Example: 2019-06-20YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
endDateminus 90 days.- endDate
string(optional) Example: 2019-06-25YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
startDateplus 90 days. IfstartDateis not specified either, assumes the value of the current date (BRT timezone).- eventId
int(optional)- performanceId
int(optional)- promotionId
int(optional)- groupResults
bool(optional)If set to
true, the results are grouped by date and promotion.
Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"eventId": 456,
"eventName": "System Of A Down [São Paulo]",
"performanceId": 8438,
"performanceName": "System Of A Down [São Paulo] - Camarotes",
"performanceStartDate": "2020-09-17T14:00:00.0000000",
"salesChannelTypeId": 1,
"salesChannelTypeName": "Internet (Web)",
"salesChannelId": 8,
"salesChannelName": "Internet",
"paymentMethodGroupId": 2,
"paymentMethodGroupName": "Cartão de Crédito On-line",
"paymentMethodTypeId": 5,
"paymentMethodTypeName": "Mastercard",
"paymentMethodId": 1003,
"paymentMethodName": "MASTERCARD",
"paymentMethodInstallments": 1,
"orderCount": 2,
"ticketCount": 2,
"freeTicketCount": 0,
"ticketPriceRevenue": 200,
"ticketFeeRevenue": 20
}
]
}
]Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"promotionId": 123,
"promotionInternalName": "Promo fã-clube acesso restrito",
"paymentMethodGroupId": 2,
"paymentMethodGroupName": "Cartão de Crédito On-line",
"paymentMethodTypeId": 5,
"paymentMethodTypeName": "Mastercard",
"paymentMethodId": 1003,
"paymentMethodName": "MASTERCARD",
"paymentMethodInstallments": 1,
"orderCount": 2,
"ticketCount": 2,
"freeTicketCount": 0,
"ticketPriceRevenue": 200,
"ticketFeeRevenue": 20
}
]
}
]Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedEvent",
"message": "Esta chave não dá acesso ao evento especificado."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedPerformance",
"message": "Esta chave não dá acesso à apresentação especificada."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By payment methodsGET/admin/reports/sales/payment-methods
- startDate
string(optional) Example: 2019-06-20YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
endDateminus 90 days.- endDate
string(optional) Example: 2019-06-25YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
startDateplus 90 days. IfstartDateis not specified either, assumes the value of the current date (BRT timezone).- eventId
int(optional)- performanceId
int(optional)- paymentMethodId
int(optional)- paymentMethodTypeId
int(optional)- paymentMethodGroupId
int(optional)- groupResults
bool(optional)If set to
true, the results are grouped by date and payment method.
Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2021-02-25T00:00:00.0000000",
"eventId": 1521,
"eventName": "System of A Down [São Paulo]",
"performanceId": 6359,
"performanceName": "System Of A Down",
"performanceStartDate": "2020-08-01T01:00:00.0000000",
"salesChannelTypeId": 1,
"salesChannelTypeName": "Internet (Web)",
"salesChannelId": 8,
"salesChannelName": "Internet",
"paymentMethodGroupId": 2,
"paymentMethodGroupName": "Cartão de Crédito On-line",
"paymentMethodTypeId": 6,
"paymentMethodTypeName": "Visa",
"paymentMethodId": 1001,
"paymentMethodName": "VISA",
"paymentMethodInstallments": 1,
"orderCount": -2,
"ticketCount": -4,
"freeTicketCount": 0,
"ticketPriceRevenue": -400,
"ticketFeeRevenue": -40,
"paymentFeeRevenue": 0,
"performanceStatus": "À venda"
}
]
}
]Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2021-01-18T00:00:00.0000000",
"eventId": 521,
"eventName": "System Of A Down [São Paulo]",
"orderCount": 1,
"ticketCount": 1,
"freeTicketCount": 0,
"ticketPriceRevenue": 100,
"ticketFeeRevenue": 10,
"paymentFeeRevenue": 0
}
]
}
]Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedEvent",
"message": "Esta chave não dá acesso ao evento especificado."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedPerformance",
"message": "Esta chave não dá acesso à apresentação especificada."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By event, with payment methods and convenience feesGET/admin/reports/sales/convenience-fees
- startDate
string(optional) Example: 2019-06-20YYYY-MM-DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
endDateminus 90 days.- endDate
string(optional) Example: 2019-06-25YYYY-MM-DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
startDateplus 90 days. IfstartDateis not specified either, assumes the value of the current date (BRT timezone).- eventId
int(optional)- performanceId
int(optional)- paymentMethodId
int(optional)- paymentMethodTypeId
int(optional)- paymentMethodGroupId
int(optional)- performanceStartDateFrom
string(optional) Example: 2019-06-20T22:30:00BRT timezone.
- performanceStartDateTo
string(optional) Example: 2019-06-30T15:00:00BRT timezone.
- performanceStatuses
string(optional) Example: 1,2,5A comma-separated list of the desired performances’ statuses. See the PerformanceStatus enum for a list of available values.
- groupResults
bool(optional)If set to
true, the results are grouped by date and event.
Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"eventId": 456,
"eventName": "System Of A Down [São Paulo]",
"performanceId": 8438,
"performanceName": "System Of A Down [São Paulo] - Camarotes",
"performanceStartDate": "2020-09-17T14:00:00.0000000",
"deliveryMethodTypeId": 5,
"deliveryMethodTypeName": "Visualizar no meu celular",
"deliveryMethodId": 9,
"deliveryMethodName": "Receber no celular",
"orderCount": 2,
"ticketCount": 2,
"freeTicketCount": 0,
"ticketPriceRevenue": 200,
"ticketFeeRevenue": 20
}
]
}
]Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"deliveryMethodTypeId": 5,
"deliveryMethodTypeName": "Visualizar no meu celular",
"deliveryMethodId": 9,
"deliveryMethodName": "Receber no celular",
"orderCount": 2,
"ticketCount": 2,
"freeTicketCount": 0,
"ticketPriceRevenue": 200,
"ticketFeeRevenue": 20
}
]
}
]Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedEvent",
"message": "Esta chave não dá acesso ao evento especificado."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedPerformance",
"message": "Esta chave não dá acesso à apresentação especificada."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By delivery methodsGET/admin/reports/sales/delivery-methods
- startDate
string(optional) Example: 2019-06-20YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
endDateminus 90 days.- endDate
string(optional) Example: 2019-06-25YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
startDateplus 90 days. IfstartDateis not specified either, assumes the value of the current date (BRT timezone).- eventId
int(optional)- performanceId
int(optional)- deliveryMethodId
int(optional)- deliveryMethodTypeId
int(optional)- groupResults
bool(optional)If set to
true, the results are grouped by date and delivery method.
Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-07-01T00:00:00.0000000",
"eventId": 455,
"eventName": "Jorge & Mateus",
"deliveryMethodTypeId": 5,
"deliveryMethodTypeName": "Visualizar no meu celular",
"deliveryMethodId": 9,
"deliveryMethodName": "Receber no celular",
"orderCount": 6,
"orderDeliveryFeeRevenue": 0
}
]
}
]Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-07-01T00:00:00.0000000",
"deliveryMethodTypeId": 5,
"deliveryMethodTypeName": "Visualizar no meu celular",
"deliveryMethodId": 9,
"deliveryMethodName": "Receber no celular",
"orderCount": 6,
"orderDeliveryFeeRevenue": 15.67
}
]
},
]Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedEvent",
"message": "Esta chave não dá acesso ao evento especificado."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedPerformance",
"message": "Esta chave não dá acesso à apresentação especificada."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By delivery methods, with delivery feesGET/admin/reports/sales/delivery-fees
- startDate
string(optional) Example: 2019-06-20YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
endDateminus 90 days.- endDate
string(optional) Example: 2019-06-25YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
startDateplus 90 days. IfstartDateis not specified either, assumes the value of the current date (BRT timezone).- eventId
int(optional)- deliveryMethodId
int(optional)- deliveryMethodTypeId
int(optional)- groupResults
bool(optional)If set to
true, the results are grouped by date and delivery method.
Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"eventId": 456,
"eventName": "System Of A Down [São Paulo]",
"performanceId": 8438,
"performanceName": "System Of A Down [São Paulo] - Camarotes",
"performanceStartDate": "2020-09-17T14:00:00.0000000",
"usesFacebook": true,
"ageGrade": "Between 30 and 35",
"countryStateCode": "SP",
"orderCount": 2,
"ticketCount": 2,
"freeTicketCount": 0,
"ticketPriceRevenue": 200,
"ticketFeeRevenue": 20
}
]
}
]Headers
Content-Type: application/jsonBody
[
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"usesFacebook": true,
"ageGrade": "Between 30 and 35",
"countryStateCode": "SP",
"orderCount": 2,
"ticketCount": 2,
"freeTicketCount": 0,
"ticketPriceRevenue": 200,
"ticketFeeRevenue": 20
}
]
},
{
"results": [
{
"date": "2020-08-18T00:00:00.0000000",
"usesFacebook": false,
"ageGrade": "Between 45 and 55",
"countryStateCode": "RJ",
"orderCount": 2,
"ticketCount": 6,
"freeTicketCount": 3,
"ticketPriceRevenue": 458.97,
"ticketFeeRevenue": 27.98
}
]
}
]Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedEvent",
"message": "Esta chave não dá acesso ao evento especificado."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Headers
Content-Type: application/jsonBody
{
"error": {
"code": "UnauthorizedPerformance",
"message": "Esta chave não dá acesso à apresentação especificada."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By patron profileGET/admin/reports/sales/patrons
- startDate
string(optional) Example: 2019-06-20YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
endDateminus 90 days.- endDate
string(optional) Example: 2019-06-25YYYY/MM/DD format, BRT timezone. The date range cannot exceed a limit of 90 days. If not specified, assumes the value of
startDateplus 90 days. IfstartDateis not specified either, assumes the value of the current date (BRT timezone).- eventId
int(optional)- performanceId
int(optional)- usesFacebook
bool(optional) Example: true- ageGrade
string(optional) Example: Between 30 and 35- countryStateCode
string(optional) Example: SP- groupResults
bool(optional)If set to
true, the results are grouped by date and payment method.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"eventId": 1234,
"performancesIds": [
1,
101,
102
],
"paymentDateFrom": "2024-01-01",
"paymentDateTo": "2024-12-31"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"eventId": {
"type": "number",
"description": "ID of the event to generate the sales report."
},
"performancesIds": {
"type": "array",
"description": "Optional list of performance IDs to filter the report."
},
"paymentDateFrom": {
"type": "string",
"description": "The starting date for the order's payment or ticket cancellation."
},
"paymentDateTo": {
"type": "string",
"description": "The ending date for the order's payment or ticket cancellation. If specified, the range between `paymentDateFrom` and `paymentDateTo` must not exceed 1 year."
}
},
"required": [
"eventId",
"paymentDateFrom"
]
}Headers
Content-Type: application/jsonBody
{
"summary": {
"totalTicketsPaid": 15000,
"totalTicketsFeePaid": 0,
"totalTicketsCanceled": 250,
"totalTicketsFeeCanceled": 0,
"ordersCount": 500,
"ticketsPaidCount": 480,
"ticketsCanceledCount": 20,
"freeTicketsIssuedCount": 10,
"freeTicketsCanceledCount": 2
},
"performances": [
{
"performanceId": 101,
"performanceName": "Opening Night",
"totalTicketsPaid": 4000,
"totalTicketsFeePaid": 0,
"totalTicketsCanceled": 80,
"totalTicketsFeeCanceled": 0,
"ordersCount": 125,
"ticketsPaidCount": 120,
"ticketsCanceledCount": 5,
"freeTicketsIssuedCount": 2,
"freeTicketsCanceledCount": 0
},
{
"performanceId": 102,
"performanceName": "Evening Jazz",
"totalTicketsPaid": 3500,
"totalTicketsFeePaid": 0,
"totalTicketsCanceled": 60,
"totalTicketsFeeCanceled": 0,
"ordersCount": 120,
"ticketsPaidCount": 115,
"ticketsCanceledCount": 5,
"freeTicketsIssuedCount": 3,
"freeTicketsCanceledCount": 1
},
{
"performanceId": 103,
"performanceName": "Classic Play",
"totalTicketsPaid": 4500,
"totalTicketsFeePaid": 0,
"totalTicketsCanceled": 70,
"totalTicketsFeeCanceled": 0,
"ordersCount": 130,
"ticketsPaidCount": 125,
"ticketsCanceledCount": 5,
"freeTicketsIssuedCount": 2,
"freeTicketsCanceledCount": 0
},
{
"performanceId": 104,
"performanceName": "Finale Show",
"totalTicketsPaid": 3000,
"totalTicketsFeePaid": 0,
"totalTicketsCanceled": 40,
"totalTicketsFeeCanceled": 0,
"ordersCount": 125,
"ticketsPaidCount": 120,
"ticketsCanceledCount": 5,
"freeTicketsIssuedCount": 3,
"freeTicketsCanceledCount": 1
}
]
}Event sales summaryPOST/admin/reports/sales/event-summary
Provides both an overview and per-performance details of sales for a given event within the specified date range.
Access control ¶
These actions are related to access control operations, such as validating access at the venue gates or providing a full list of used and spare barcodes for further use.
Validation ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"eventId": 10,
"readerName": "John Doe",
"barcode": "231658151794",
"showTicketInfo": true,
"readDate": "2019-01-01 22:45:12"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"eventId": {
"type": "number",
"description": "Event Id"
},
"readerName": {
"type": "string",
"description": "Validator's name"
},
"barcode": {
"type": "string",
"description": "Barcode to be validated"
},
"showTicketInfo": {
"type": "boolean",
"description": "Retrieves additional ticket info. If not provided, the default value is false"
},
"readDate": {
"type": "string",
"description": "Used when readings are made before the request. If not provided, the current date will be stored. YYYY-MM-DD HH:mm:ss format."
}
},
"required": [
"eventId",
"barcode"
]
}Headers
Content-Type: application/jsonBody
{
"found": true,
"access": {
"readCount": 1,
"eventName": "Shakira World Tour 2018",
"performanceName": "Shakira (Sao Paulo)",
"priceCategoryName": "Sector A (blue)",
"ticketPriceName": "Full price",
"ticketStatus": "Paid",
"patronName": "Robert Plant",
"patronDocument": "1754861579",
"holderName": "Robert Plant",
"holderDocument": "SP037518",
"seatType": "Hello, world!",
"seatInfo": "Row A Seat 7"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"access": {
"type": "object",
"properties": {
"readCount": {
"type": "number"
},
"eventName": {
"type": "string"
},
"performanceName": {
"type": "string"
},
"priceCategoryName": {
"type": "string"
},
"ticketPriceName": {
"type": "string"
},
"ticketStatus": {
"type": "string",
"enum": [
"Paid"
],
"description": "Refer to OrderItemStatus enum for a complete list of TicketStatus"
},
"patronName": {
"type": "string"
},
"patronDocument": {
"type": "string"
},
"holderName": {
"type": "string"
},
"holderDocument": {
"type": "string"
},
"seatType": {
"type": "string"
},
"seatInfo": {
"type": "string"
}
}
}
}
}Validate accessPOST/access-control/validation
It’s possible to validate and control access to a performance. This
is useful for antifraud purposes, checking documents at the venue
gates and so on. When the response parameter Found is false, the method
doesn’t return an Access object.
This operation’s route has changed over time. The previous route should not be used, as it will be removed in the future. The previous route was:
POST /admin/access
Batch Validation ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonBody
{
"eventId": 10,
"barcodes": [
{
"barcode": "231658151794",
"readerName": "John Doe",
"readDate": "2019-01-01 22:45:12"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"eventId": {
"type": "number",
"description": "Event Id"
},
"barcodes": {
"type": "array"
}
},
"required": [
"eventId"
]
}Headers
Content-Type: application/jsonBody
{
"barcodes": [
{
"barcode": "Hello, world!",
"found": true,
"ticketStatus": "Paid"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"barcodes": {
"type": "array"
}
}
}Register read barcodes in batchesPOST/access-control/validation/batch
Registers the reading of multiple barcodes at once. This is a more performatic and more convenient way to register read barcodes if your system does not need to validate the access to the event in real time using ShoWare.
The response contains all barcodes sent plus a flag found that indicates if the barcode is valid
for the specified event.
Currently, a maximum of 300 barcodes can be sent at once.
Barcodes ¶
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
[
{
"performanceId": 236,
"priceCategoryName": "Pista",
"barcode": "66657266534412",
"ticketType": "DISPONÍVEL"
}
]Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array"
}Headers
Content-Type: application/jsonBody
{
"barcodes": [
{
"performanceId": 236,
"priceCategoryName": "Pista",
"barcode": "66657266534412",
"ticketType": "DISPONÍVEL"
}
],
"totalCount": 100,
"totalAvailable": 100,
"totalExtra": 100,
"totalPaid": 100,
"totalCanceled": 100
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"barcodes": {
"type": "array"
},
"totalCount": {
"type": "number",
"description": "Total number of barcodes that matched the search criterias. This property is only visible when request is paginated (`Skip` and `Take` property has filled)."
},
"totalAvailable": {
"type": "number",
"description": "Total number of available barcodes that matched the search criterias. This property is only visible when request is paginated (`Skip` and `Take` property has filled)."
},
"totalExtra": {
"type": "number",
"description": "Total number of extra barcodes that matched the search criterias. This property is only visible when request is paginated (`Skip` and `Take` property has filled)."
},
"totalPaid": {
"type": "number",
"description": "Total number of paid barcodes that matched the search criterias. This property is only visible when request is paginated (`Skip` and `Take` property has filled)."
},
"totalCanceled": {
"type": "number",
"description": "Total number of canceled barcodes that matched the search criterias. This property is only visible when request is paginated (`Skip` and `Take` property has filled)."
}
}
}Headers
Content-Type: application/jsonBody
{
"responseStatus": {
"errorCode": "Predicate",
"message": "É preciso definir pelo menos um status de código de barras (includeAvailable, includePaid ou includeCanceled)",
"errors": [
{
"errorCode": "Predicate",
"fieldName": "IncludeAvailable",
"message": "É preciso definir pelo menos um status de código de barras (includeAvailable, includePaid ou includeCanceled)"
}
]
}
}List barcodes of a performanceGET/access-control/barcodes
This action provides a list of barcodes for a given performance.
Note that at least one of the include... parameters must be true, since
providing false for all the three options will make the operation ignore all
barcodes.
This operation provides the same results that the Barcodes Report offers on the backoffice application.
If the Accept header is set to text/csv, this operation will return the
results in the CSV file format (using ; as the separator).
Results may be paginated using the skip and take parameters. For
compatibility reasons, specifying pagination parameters changes the layout of
the returned JSON: when no pagination is used, an array[BarcodesEntry] will be
returned; when pagination is used, a BarcodesResponse will be returned.
Barcodes for performances that happened over 90 days ago cannot be retrived.
- performanceId
number(required) Example: 10The performance’s ID.
- priceCategoryIds
array[number](optional) Example: 123,456,789A comma-separated list of the desired price categories’ IDs.
- includeAvailable
boolean(optional) Example: falseInclude available and extra barcodes.
- includePaid
boolean(optional) Example: trueInclude barcodes associated to paid tickets.
- includeCanceled
boolean(optional) Example: trueInclude barcodes associated to canceled tickets.
- skip
int(optional) Example: 0Number of orders to be skiped. Used to paginate the results. If this parameter is specified, then
takemust also be specified.- take
int(optional) Example: 10Number of orders to be retrieved. The maximum value is 500. If this parameter is specified, then
skipmust also be specified.
Headers
Content-Type: application/json
X-AuthKey: demo-internet-fixed
Accept: application/jsonHeaders
Content-Type: application/jsonBody
{
"eventOrderBarcodes": [
{
"barcode": "66657266534412",
"status": "Paid",
"performanceId": 10078,
"performanceName": "Shakira [Sao Paulo]",
"performanceStartDate": "2024-12-02T18:00:00",
"performanceStartEnd": "2024-12-02T23:30:00",
"priceCategoryId": 97,
"priceCategoryName": "Section A",
"order": {
"orderId": 97,
"performanceName": "Shakira [Sao Paulo]",
"sectionId": 97,
"sectionName": "Blue bleachers",
"priceCategoryId": 97,
"priceCategoryName": "Section A",
"discountTypeName": "MEIA ENTRADA",
"billing": {
"name": "Gavin Rossdale",
"documentNumber": "123.456.789-10"
},
"holder": {
"name": "Gavin Rossdale",
"documentType": "CPF`",
"documentNumber": "123.456.789-10"
},
"seatInfo": "Section A - Row A Seat 12"
}
}
],
"totalCount": 100,
"totalAvailable": 100,
"totalExtra": 100,
"totalPaid": 100,
"totalCanceled": 100,
"responseStatus": {
"errorCode": "Hello, world!",
"message": "Hello, world!",
"stackTrace": "Hello, world!",
"errors": [
{
"errorCode": "Hello, world!",
"fieldName": "Hello, world!",
"message": "Hello, world!"
}
]
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"eventOrderBarcodes": {
"type": "array"
},
"totalCount": {
"type": "number",
"description": "Total number of barcodes that matched the search criterias."
},
"totalAvailable": {
"type": "number",
"description": "Total number of available barcodes that matched the search criterias."
},
"totalExtra": {
"type": "number",
"description": "Total number of extra barcodes that matched the search criterias."
},
"totalPaid": {
"type": "number",
"description": "Total number of paid barcodes that matched the search criterias."
},
"totalCanceled": {
"type": "number",
"description": "Total number of canceled barcodes that matched the search criterias."
},
"responseStatus": {
"type": "object",
"properties": {
"errorCode": {
"type": "string"
},
"message": {
"type": "string"
},
"stackTrace": {
"type": "string"
},
"errors": {
"type": "array"
}
}
}
}
}Get barcodes with detailed order dataGET/access-control/barcodes-detailed
Gets barcodes for an event or performance. If any given barcode belongs to a sold or canceled ticket, the response will contain the ticket’s order’s information, such as performance name, section ID, seat info, ticket holder information etc.
When filtering barcodes by period, only barcodes associated to sold or canceled tickets will be returned. The payment date is used for paid tickets, and the cancellation date is used for canceled tickets.
The period precision is by minute. Seconds will be ignored. The start date will always have 0 seconds and 0 milliseconds and the final date will always have 59 seconds and 999 milliseconds. Therefore, a period from 12:00 to 13:00 will be treated internally as 12:00:00.000 to 13:00:59.999.
Result can be paginated using the skip and take parameters.
Barcodes for performances that happened over 90 days ago cannot be retrived.
If eventId is specified, but neither performancePeriodStart nor
performancePeriodEnd are specified, the API will act as if
performancePeriodStart is today at 00:00 and performancePeriodEnd
is today at 23:59;
This operation’s route has changed over time. Previous routes should not be used, as they will be removed in the future. The previous routes where:
-
GET /reports/event-barcodes -
GET /admin/reports/event-barcodes
- eventId
number(optional) Example: 10The event’s ID. This parameter is mutually exclusive with
performanceId. An event ID OR a performance ID must always be provided. See the note in the operation’s description regardingperformancePeriodStartandperformancePeriodEnd.- performanceId
number(optional) Example: 123The performance’s ID. This parameter is mutually exclusive with
eventId. An event ID OR a performance ID must always be provided.- performancePeriodStart
string(optional) Example: 2019-09-10T13:26Searches for barcodes from performances that start in or after this date.
- performancePeriodEnd
string(optional) Example: 2019-09-10T13:26Searches for barcodes from performances that start in or before this date.
- orderPeriodStart
string(optional) Example: 2019-09-10T13:26Searches for barcodes associated to orders either paid or canceled in or after this date.
- orderPeriodEnd
string(optional) Example: 2019-09-10T13:27Searches for barcodes associated to orders either paid or canceled in or before this date.
- orderAssociatedOnly
boolean(optional) Example: falseIf true, returns only barcodes associated to orders (sold, reserved or canceled tickets)
- skip
int(optional) Example: 0Number of barcodes to be skiped. Used to paginate the results.
- take
int(optional) Example: 10Number of barcodes to be retrieved. The maximum value is 500.
Webhooks ¶
A webhook is a mechanism where ShoWare will send a notification to an external system when an event occurs. The notification is sent by ShoWare using an HTTP POST to a URL. If you want to add a ShoWare webhook to your system, please contact us.
To ensure the POST request is legitimate, a header named x-showare-signature is sent with the request containing a signed hash of the content in base-64 format.
To authenticate the request, you need to hash the posted request body with the HMACSHA1 algorithm, with your API key as the secret, and convert the result into a base-64 string.
After that, compare the resulting hash to the x-showare-signature header and check if it matches.
A pseudo-code example of how to validate the signature is as follows:
base64Hash = Base64Encode(HMACSHA1(key: apiKey, content: requestBody))
isValid = (base64Hash == request.Headers["x-showare-signature"])
Your system should respond with an HTTP 2XX response (200, 201, etc). Responses out of the 200-299 range will be treated as a failure. ShoWare will send new notifications (with some time between them) in case a failure occurs. Currently, ShoWare will try to deliver the notifications two other times.
Orders ¶
We can register your system to receive a POST request when certain changes occur in the orders, like an order being paid, canceled, etc. For registering, please contact us.
The request content will be as follows:
{
//The order's ID.
"id": 109199,
//The date and time of the notification.
//Retries will keep the original date.
"dateTime": "2026-05-20T18:24:20.6372628-03:00",
//The order's status as an integer.
//Refer to the OrderStatus enum on the Enums section.
"status": 4,
//The order's status details object.
"statusDetails": {
"id": 4,
"key": "Paid",
"description": "Pago"
},
//The date and time when the order was placed.
"orderDate": "2026-05-20T18:22:20.34",
//The order's total value (tickets + fees + interest - discounts).
"total": 60.0,
//Interest amount (for installment payments).
"interestValue": 0,
//Acquirer installment fee value paid on POS when the buyer pays the fee.
"acquirerInstallmentFeeValue": 0,
"promotion": {
"id": 42,
"name": "Fã-clube Alok",
"promotionType": 2, //Refer to the PromotionType enum on the Enums section.
},
"deliveryInfo": {
"deliveryMethod": {
"id": 9,
"name": "Receber no celular",
//Delivery fee for this method.
"fee": 0,
"deliveryMethodTypeData": {
"id": 5,
"name": "Visualizar no meu celular",
"isMobile": true, //Indicates if the patron can retrieve the tickets as QR codes on the app or website.
"isPrintAtHome": false, //Indicates if the patron can retrieve the tickets as a PDF file.
"iconUrl": "http://showare-cdn-qa.s3.amazonaws.com/common/images/icons/_phone_android_qr.svg"
}
},
//The identification of who will receive/withdraw the tickets, when applicable.
"deliveryRecipient": {
"documentType": {
"id": 1,
"name": "RG",
"abbreviation": "RG"
},
"name": "João Branco",
"documentNumber": "12.345.678-9"
}
},
"billingAddress": {
"addressLine1": "Av Luiz de Camões, 123",
"addressLine2": "B Coral",
"city": "Lages",
"stateId": 0,
"state": "SC",
"zipCode": "88523000",
"phone": "49999999999",
"district": "Coral",
"streetName": "Av Luiz de Camões",
"number": "123"
},
"shippingAddress": {
"addressLine1": "Av Luiz de Camões, 123",
"addressLine2": "B Coral",
"city": "Lages",
"stateId": 0,
"state": "SC",
"zipCode": "88523000",
"phone": "49999999999",
"district": "Coral",
"streetName": "Av Luiz de Camões",
"number": "123"
},
"paymentInfo": {
"paymentMethod": {
"id": 1001,
"name": "VISA",
//Payment method group (e.g. credit card, debit card, boleto).
"group": {
"id": 2,
"name": "Cartão de Crédito On-line"
},
//The custom group for this payment method, which is the grouping configured by the ticketing company.
"customGroup": {
"id": 3,
"name": "Visa Parcelado"
},
//Payment method type (e.g. Visa, Mastercard, Boleto).
"type": {
"id": 6,
"name": "Visa"
},
//Number of installments.
"installments": 1
},
"paidAmount": 60.0,
"cancelledAmount": 15.0,
"totalAmount": 45.0,
//Name of the payment handler/gateway used.
"handlerName": "Stub - Success",
"tid": "TID-ba60c8f5-cbc3-4af2-9a49-8dd6560bde5a",
"acquirerTid": "ATID-b1f662e4-8be5-4420-8830-84e6c706f960",
"acquirerName": "Stub Inc.",
"nsu": "NSU-f7ad4463-a54a-4a6c-9e10-a9d97f5fedfe",
"authorizationCode": "AC-44a9a9f8-7a8a-4a0a-819b-a628f7f327ad",
"creditCardNumber": "411111******1111",
"creditCardHolderName": "thiago c",
//External payment page URL, used for boleto payments.
"externalUrl": null,
//Boleto barcode, when the payment method is boleto.
"boletoBarcode": null,
//Expiration date for boleto or Pix payments.
"expirationDate": null,
"paymentDate": "2026-05-20T18:22:50.503",
"transactions": [
{
"date": "2026-05-20T18:22:50.507",
"totalAmount": 60.0,
"ticketsAmount": 50.0,
"productsAmount": 0,
"ticketsFeeAmount": 10.0,
"deliveryFeeAmount": 0,
"interestAmount": 0,
"acquirerInstallmentFeeAmount": 0,
"ticketsCount": 1,
"productsCount": 0
}
]
},
"orderItems": [
{
"id": 144763,
//When the ticket is grouped, this is the parent ticket's ID.
"parentId": null,
"placeId": 185507,
//The item's status as an integer. Refer to the OrderItemStatus enum.
"status": 4,
//The item's status details object.
"statusDetails": {
"id": 4,
"key": "Paid",
"description": "Pago"
},
//Ticket price without the fee and the discount.
"price": 100.0,
//Ticket price after applying the discount. Same as price if no discount applies.
"priceWithDiscount": 50.0,
//Convenience fee charged for this ticket.
"fee": 10.0,
//Total amount for this item: priceWithDiscount + fee.
"itemTotal": 60.0,
"seatDescription": "FILA ZA-01",
"seatRowIdentifier": "ZA",
"seatIdentifier": "01",
"seatTypeName": "FILA",
"barcode": "15569656427208",
//The date and time the barcode was scanned at the venue, if applicable.
"barcodeReadDate": null,
"priceCategoryId": 16639,
"priceCategoryName": "Mezanino",
"eventId": 5560,
"eventName": "Alok",
"performanceId": 9432,
"performanceName": "Alok",
"performanceDate": "2026-10-01T20:00:00",
"performanceCity": "Sao Paulo",
"sectionId": 20061,
"sectionName": "Setor B",
"sectionTypeId": 3, //Refer to SectionType Enum
"sectionGateInfo": "Portão 3",
"sectionTicketDescription": "FILA ZA-01",
"venueId": 1,
"venueName": "Allianz Parque - Anfiteatro",
"venueAddress": "Av. Francisco Matarazzo, 1705 - Água Branca, São Paulo - SP, 05001-200",
"location": {
"id": 2,
"name": "Allianz Parque",
"street": "Av. Francisco Matarazzo",
"number": "1705",
"complement": "Nro 25",
"district": "Água Branca",
"city": "Sao Paulo",
"state": "SP",
"zipCode": "05001-200"
},
"ticketName": "Alteração inteira",
"discount": {
"id": 15,
"name": "Meia-entrada",
"discountedPrice": 50.0,
"ticketHolderRequired": true,
"value": 50.0,
"extraTickets": 0,
"isBundle": false
},
"ticketHolder": {
"orderItemId": 144763,
"name": "João Branco",
"documentNumber": "123456",
"documentTypeName": "RG",
"documentTypeId": 1
},
//The date and time the ticket was canceled. Null if not canceled.
"cancellationDate": null,
//The date and time the ticket's convenience fee was canceled. Null if not canceled.
"feeCancellationDate": null,
}
],
"orderProductItems": [
{
"id": 8821,
"price": 30.0,
"name": "Camiseta Alok",
"description": "Camiseta oficial do show - tamanho M"
}
],
"logs": [
{
"text": "Pedido pago via Visa (1x).",
"date": "2026-05-20T18:22:50.507",
"login": "joaozinho@gmail.com"
}
],
"salesChannel": {
"id": 8,
"name": "Internet"
},
"patron": {
"id": 7543,
"fullName": "João Branco",
"cpf": "94514224564",
"email": "joaob@gmail.com",
//Custom patron code, if configured.
"code": "1313",
//External ID from the integrating system, if configured.
"externalReferenceCode": "EXT-12345"
},
//The order's convenience fee (not to be confused with order item fee).
"fee": 0,
//The event's ID associated with the order.
"eventId": 5560,
//The event's promoter ID.
"promoterId": 6,
//The event's promoter name.
"promoterName": "Allianz Parque - Produtor",
//The order's external reference code, if one was set.
"externalReferenceCode": "EXT-ORDER-109199",
//URL for generating the print-at-home PDF.
"printAtHomeUrl": "https://mycompany.showare.com.br/Basket/QuickPrintAtHome.aspx?k=MHzR%2fo6qnzk%3d&u=Un7i7zDp7XN%3d",
//Login of the user that created the order. Might be a patron's e-mail or a back-office user's username.
"login": "joaozinho@gmail.com"
}
Performances ¶
We can register your system to receive a POST request whenever relevant changes occur in a performance, such as:
-
The performance being made available for sale
-
The performance being made unavailable for sale
-
The performance status being changed
-
The performance being sold out
-
The performance’s tickets becoming available again after being sold out
Actions
All webhook scenarios use the same payload format. You can distinguish which scenario occurred by inspecting the action.id or action.key properties:
-
PerformanceMadeAvailable
action.id = 0action.key = "PerformanceMadeAvailable"- Triggered when the performance is made available for sale.
-
PerformanceMadeUnavailable
action.id = 1action.key = "PerformanceMadeUnavailable"- Triggered when the performance is made unavailable for sale.
-
StatusChanged
action.id = 2action.key = "StatusChanged"- Triggered when the performance status changes.
-
PerformanceSoldOut
action.id = 3action.key = "PerformanceSoldOut"- Triggered when all of the performance’s tickets become sold out.
-
PerformanceTicketsAvailableAgain
action.id = 4action.key = "PerformanceTicketsAvailableAgain"- Triggered when a performance that was sold out has tickets available for sale again.
For registering, please contact us.
The request content will be as follows:
{
//Retries will keep the original date/time value.
"actionDateTime": "2025-01-10T14:32:11.3666447-03:00",
"action": {
//0 = PerformanceMadeAvailable
//1 = PerformanceMadeUnavailable
//2 = StatusChanged
//3 = PerformanceSoldOut
//4 = PerformanceTicketsAvailableAgain
"id": 2,
"key": "StatusChanged",
"description": "Status da apresentação alterada"
},
"data": {
"id": 1234,
"name": "Apresentação A",
"startDate": "2026-02-15T20:00:00-03:00",
"endDate": "2026-02-15T22:00:00-03:00",
//The time when the venue doors open. Null when not configured.
"openTime": "2026-02-15T19:00:00-03:00",
//Refer to the PerformanceStatus enum in the Enums section of this documentation.
"status": "OnSale",
"statusDetails": {
"id": 1,
"key": "OnSale",
"description": "À venda"
},
"eventId": 567,
"eventName": "Evento A",
"seatMapImageUrl": "https://bucket.s3.amazonaws.com/demo/images/SeatMap/seatmap01.jpg",
"areaMap": "<area shape=\"rect\" coords=\"1.335,3.3375,264.9975,198.58124999999998\" data-section=\"S01\">",
"showAllSectionsExpanded": true,
"showSectionDirectly": false,
"isPassport": true,
//Null when the performance is not a passport child.
"passportParent": {
"id": 1100,
"name": "Passport Festival 2026"
},
//Null when the performance has no passport children.
"passportChildren": [
{
"id": 1235,
"name": "Apresentação B",
"startDate": "2026-02-16T20:00:00-03:00",
"endDate": "2026-02-16T22:00:00-03:00"
}
],
"venue": {
"id": 1,
"name": "Arena Anhembi",
"address": "Av. Olavo Fontoura, 1209 - Santana",
"phone": "(11) 2226-0399",
"city": "São Paulo",
"uf": "SP",
"locationId": 2,
"locationName": "Parque de exposições"
},
//The documents that can be selected when setting holders on full-price tickets.
"documentTypes": [
{
"id": 1,
"name": "RG",
"abbreviation": "RG"
}
],
"sections": [
{
"id": 101,
"name": "Pista",
//"GeneralAdmission" or "Numbered".
"type": "GeneralAdmission",
"sortOrder": 1,
"priceCategories": [
{
"id": 201,
"name": "Pista",
//id = 0 is the full price; id > 0 is a discount ID.
"prices": [
{
"id": 0,
"name": "Inteira",
//Total ticket value including fees.
"value": 250.00
},
{
"id": 15,
"name": "Meia-entrada",
"value": 125.00
}
]
}
]
},
{
"id": 102,
"name": "Cadeira Superior",
"type": "Numbered",
"sortOrder": 2,
"priceCategories": [
{
"id": 202,
"name": "Cadeira Superior",
"prices": [
{
"id": 0,
"name": "Inteira",
"value": 450.00
},
{
"id": 16,
"name": "Meia-entrada",
"value": 225.00
}
]
}
]
}
]
}
}
Basket abandonment ¶
We can register your system to receive a POST request when a customer abandons their basket before completing the purchase. To register your endpoint, please contact us.
The request content will be as follows:
{
//The date and time of the notification.
//Retries will keep the original date.
"dateTime": "2025-01-15T14:22:51.1234567-03:00",
//The abandoned order's ID.
"orderId": 30165,
"patron": {
//The customer's full name.
"name": "João da silva",
//The customer's email address.
"email": "joao@gmail.com",
//The customer's phone number.
"phone": "49 999214567"
},
"event": {
//The event's identifier.
"id": 10,
//The event's name.
"name": "The Beatles"
},
//The list of performances that were in the basket.
"performances": [
{
//The performance's identifier.
"id": 501,
//The performance's name.
"name": "The Beatles - O retorno",
//The date and time when the performance starts.
"startDate": "2025-03-10T20:00:00-03:00",
//The list of sections and their respective ticket quantities.
"sections": [
{
//The section's identifier.
"id": 100,
//The section's name.
"name": "Pista",
//How many tickets for this section were in the basket.
"ticketQuantity": 2
},
{
"id": 101,
"name": "VIP",
"ticketQuantity": 1
}
]
}
]
}
Enums ¶
OrderStatus
| Key | Value | Description |
|---|---|---|
| Open | 1 | The order is an open basket and was not placed yet. |
| CheckingOut | 2 | The user has finished creating the order and it is in the process of being placed and paid. |
| Paid | 4 | The order was successfully finalized and paid. |
| WaitingPayment | 5 | The order was placed, but is still waiting for payment (via a deposit, boleto or PIX payment). |
| CancelledAndReimbursed | 7 | The order was canceled after being paid, and its tickets were returned to the available tickets pool. |
| Failed | 11 | The order was not completed because the payment failed, the basket expired or the administrator manually failed an order waiting for payment. |
| PendingCapture | 13 | The order is waiting for a credit card transaction to be reprocessed to confirm the payment. |
| InAnalysis | 15 | The order is being manually checked for frauds. |
OrderItemStatus
| Key | Value |
|---|---|
| Open | 1 |
| Paid | 4 |
| Waiting payment | 5 |
| CanceledAndRefunded | 7 |
| CanceledAndNotRefunded | 8 |
SeatStatus
| Key | Value |
|---|---|
| Available | 1 |
| TemporarilyReserved | 2 |
| Sold | 3 |
| NotAvailable | 4 |
AddressType
| Key | Value |
|---|---|
| Shipping | 1 |
| Billing | 2 |
PromotionType
| Key | Value | Behavior |
|---|---|---|
| MultiPromoCodeEmailDomainMatch | 1 | Requires a promocode and an email address that matches a specific domain. |
| PromoCode | 2 | Requires a single promocode that is shared by patrons. |
| MultiPromoCode | 4 | Requires a promocode that is validated against a database of multiple promocodes. |
| SimplePromoCode | 5 | Requires no promocode. |
| MultiPromoCodeBin | 6 | Requires a credit card BIN (6 first digits) that matches a predefined database of BINs. |
| MultiPromoCodeTwoFields | 7 | Requires a promocode and an additional, arbitrary field. |
| SamsungIMEI | 8 | Requires a Samsung IMEI as promocode. |
PerformanceStatus
| Key | Value |
|---|---|
| OnSale | 1 |
| ComingSoon | 2 |
| SalesNotStarted | 5 |
| SalesStopped | 6 |
| NotOnSale | 7 |
| SoldOut | 10 |
| Cancelled | 13 |
SearchStatus
| Key | Value |
|---|---|
| NaoEncontrada | 0 |
| EncontradaLogradouroComTipo | 1 |
| EncontradaLogradouroSemTipo | 2 |
| EncontradaSemLogradouro | 3 |
| EncontradaComCaixaPostal | 4 |
| EncontradaComGrandeUsuario | 5 |
| EncontradaComUnidadeOperacional | 6 |
PaymentMethodType
| Key | Value |
|---|---|
| AmerianExpress | 2 |
| Diners | 3 |
| Elo | 4 |
| Mastercard | 5 |
| Visa | 6 |
| Deposit | 15 |
| Boleto | 16 |
SectionType
| Key | Value |
|---|---|
| GeneralAdmission | 1 |
| Numbered | 3 |
Errors ¶
This section is still being completed as we standardize the errors returned by our API. If you receive an error that is not documented, please feel free to let us know at suporte.showare@accesso.com.
Error codes are returned in the errorCode property of a response with an error
status code (such as 409).
| Code | Description |
|---|---|
patron.email_already_exists |
You are trying to create or update a patron with an e-mail that is already attributed to another patron. See the description of the POST /admin/patron operation for details. |
patron.cpf_already_exists |
You are trying to create or update a patron with a CPF that is already attributed to another patron. See the description of the POST /admin/patron operation for details. |
patron.external_id_already_exists |
You are trying to create or update a patron with an external ID that is already attributed to another patron. See the description of the POST /admin/patron operation for details. |
patron.code_already_exists |
You are trying to create or update a patron with a code that is already attributed to another patron. |
patron.main_depentent.feature_not_enabled |
You are trying to use the main/dependent feature, but it is not enabled for your ShoWare environment. Contact the responsible person in the ticketing company for details. |
patron.main_depentent.main_not_found |
You are trying to create or update a patron that is a dependent, but the provided code could not be found in the database. Check if the provided code is correct, and check if the code's main patron was created yet. |
patron.main_depentent.dependent_self_reference |
You are trying to create or update a patron that is a dependent, but the codes main patron is the request’s patron itself. Check if the request’s CPF, e-mail and/or external ID are correct, and if the isDependent property is set correctly. |
patron.main_depentent.main_without_code |
You are trying to update a patron that is a main patron with one of more dependents, but request’s code field either missing, null or empty. |
patron.main_depentent.dependent_without_code |
You are trying to create or update a patron that is a dependent of another patron, but request’s code field either missing, null or empty. |
patron.validation_failure |
You are trying to create or update a patron with invalid data. The error’s message will contain the description of the validation that failed. |
Generated by aglio on 03 Sep 2026