Help Center.
Hi, how can we help you?
Help
User guides and manuals for all system features
FAQ
Get quick answers to our users most frequently asked questions
Integrations & API
Technical documents about integrations and API's
Downloads
Applications and software used with the system
Hardware
Articles about hardware that is used with the Tixly System
Release Notes
Check out the latest releases and updates to the Tixly system
Most popular articles
Website integration
The Tixly ticketing system is used in combination with a website from the venue. This article describes the possibilities and best approach to integrate the venue website and Tixly. There are multiple methods to do this, from simple manual links to a fully automated setup. Manual links Automated setup Webhook User login status and basket information Data in the session information Using personalised information to give pre-sale access and different ticket types to some customers Skins Manual links It is possible to use direct links to the production, event or subscription sales pages and place these on your website by hand. These links can be found in the Box Office sales screens in Tixly and also on the Internet tab of the event edit screens. Of Course, this depends on the cms how this is done. Link to a production https://tix.theatreexample.com/en/buyingflow/tickets/1290/ Link to an event in this production https://tix.theatreexample.com/en/buyingflow/tickets/1290/18417/ Link to an subscription https://tix.uk/en/theatreexample/buyingflow/subscription/15/ The first two examples show a Tixly setup on the subdomain of the venue, the last one uses the Tixly domain. Automated setup The website database holds the events or subscriptions with all information that the venue wants to publish on their website. There can be a calendar page, a page per production. A common approach is to have a setup that does the following: The website periodically imports all future events into their database with help of the Tixly Event API. This ensures that the event information from Tixly is present in the website database. add new events to the local database update existing events mark the local events the are not in the output anymore as deleted. The more information is used the better, the PurchaseURL's, OnlineSaleStart, OnlineSaleEnd and SaleStatus are probably needed. The cms is used to add more information, videos, reviews etc to the event groups (productions) or to individual event dates. The website publishes the event. From now it is visible to the visitors. A [buy tickets] button is shown with the Purchase url when the current date is between OnlineSaleStart and OnlineSaleEnd When the user clicks on [buy tickets] the Tixly flow is opened in the same browser window. A reasonable interval for the import in step 1 depends on the situation, once every hour is reasonable. You can add minimized= true to the event api url to get an output with the minimal version, this only has SaleStatus. You can use this to sync the status more frequently, and build a lighter script the does not need to check if other properties of events are changed. Webhook Instead of running inefficient scheduled imports or polling the API to see if data has changed, you can use Webhooks for instant, real-time updates. Every time an Event or Event Group is created, updated, or deleted in Tixly, our system automatically sends a request to your designated webhook URL. Unlike traditional webhooks that merely act as a blind "trigger," Tixly webhooks deliver the complete data payload (including event details, ticket pricing, translations, and deletion status) directly to your website. This allows your system to update its local cache instantly and efficiently, without the need to poll the API for additional information. Valid webhook url examples are: https://www.theaterxyx.nl/import/trigger https://username:password@examplevenue.dk/admin/tix-importer.php Pro tip: The webhook is called whenever something changes. If the venue staff is editing prices, genres etc. this can result in your webhook being called several times a minute. And then for hours, when nothing changes it is not called at all. Instead of running your import routine every time the webhook is called, it is better to wait a minute or two, and if no more webhook calls have been made during this period, then do the import. To start using this, contact Tixly support and give them your website webhook url and we configure this to be used. User login status and basket information Important: Due to restrictions of most browsers, your Tixly instance needs to be on a subdomain of your venue website. e.g. tix.venuewebsite.se That means this session sharing feature only works on what we call hosted skins. It is possible to show on the venue website that a user is logged into Tixly and if they have a basket. Also the basket contents can be shown on the website. Like this example: This is achieved by sharing session data from Tixly to the website. The website then uses this data to show it in the design they want. The sharing works by opening an iframe to the Tixly website with the integration url on the correct skin. This iframe should be hidden on the venue webpage and does not show anything. It is just used to have javascript from the event/postmessage framework to communicate between the opener page on the venue site and the iframe from Tixly. The post messaging is limited by the settings on the skin, to only allow some websites to post messages and receive data from (see Skin settings). Multiple websites can be configured, this allows development and staging servers of the venue site to use the same skin as the production website. The url of the URL to Iframe, itix (short for integration tix) file is; {skin url}/{language}/itix Example: https://tix.theateraandeparade.nl/nl/itix This url is best to be requested in an iframe . The postMessage 'GetSession' should be issued to the iframe. An EventListener is used to act on the return message with the session information. Looking at implementations of other tixly customers can help to understand this. The Brussels based venue La Monnaie / De Munt has an easy to understand setup. Data in the session information Below is an example of the json structure of the postmessage response. This shows an order with two tickets and the user. { "order": { "items": [{ "type": "Ticket", "name": "An evening with Q on stage", "details": "13-3-2022 20:00:00", "price": 12.0000 }, { "type": "Ticket", "name": "An evening with Q on stage", "details": "13-3-2022 20:00:00", "price": 12.0000 } ], "expires": 896.0954898, "url": "https://tix.theaterexample.nl/nl/buyingflow/purchase/" }, "user": { "id": 544803, "name": "James Bond", "email": "JamesBond@Example.com", "hash": "2ac9f3a26521d0194530daf3e68c88589d4490617059793dd2eba1b14b786b84" "tags": [{ "id": 7, "name": "Premium", "abbr": "PP" }] }, "profile": "https://tix.theaterexample.nl/nl/profile/" } Details of the properties in the object that is being sent are as follows: order Object that is null if no order is currently in the user session order > items A list of all items in the order order > items > type Type of item. Can be Ticket, Subscription, GiftCard, Membership, Donation, or Product. Note: Subscription is a ticket that is part of a subscription package. order > items > name Name of the item, varies for each type: Ticket > Name of event Subscription > Name of subscription package GiftCard > Name of gift card group Product > Name of product order > items > details Details for each type: Ticket > Event’s start date Subscription > Event’s name and start date GiftCard > Amount of the gift card formatted as an invariant string “20.00” Product > No details given on products order > items > price Price of the item as an invariant decimal (0.00) order > expires Decimal seconds and milliseconds until the order expires from the moment the session info was requested. order > url A URL that takes you to the purchase page for the order. user Object is null if the user is not logged in on this session user > id Id of the web user. Note: this is not the customer id. In the CRM API, there is an endpoint to get the customer Id from the web user Id. CRM API: POST /WebUser/{webUserId}/customer user > name Full name of the logged-in user (can be empty) user > email Email of the logged-in web user (in rare cases, this can differ from the customer's email) user > hash With this hash, the website can validate if the web user id is valid. A secret must be added in the skin settings by a Tixly admin. The hash is computed as a SHA256 over the web user Id + skin secret. Example: web user id: 544803 secret: uXL9aHWX3pumEEZsjU!U The hash will be SHA256(544803uXL9aHWX3pumEEZsjU!U) resulting in: 2ac9f3a26521d0194530daf3e68c88589d4490617059793dd2eba1b14b786b84 user > tags A list of “Customer Tags” that the user is connected to, which can be matched with “tags” on events to see which benefits the logged-in user can access. user > tags > id Id of the tag user > tags > name Name of the tag user > tags > abbr Abbreviation of the tag, not guaranteed to be unique and can be chosen by venue admins profile A URL that takes you to the user's profile page, or to the login page if not logged in. Note: delivery fees are not in the session information. Using personalised information to give pre-sale access and different ticket types to some customers With the session information on the customer, in combination with the benefits in the Tixly Event API, the website is able to show personalised information to the customers. For example if a VIP customer is logged in they can see their VIP prices, normal customers don't see these. Or you can show the [buy tickets] button earlier to your members, with this they can buy before the general public is able to do so (pre sale). The method used here is the Tixly event API containing all the normal sales dates and prices, but also the possible benefits the customers with certain customer tags can utilise. And example of an object list of benefits; { "Benefits": [{ "CustomerTag": { "CustomerTagId": 8, "Name": "Student", "Abbreviation": "ST" }, "Prices": [{ "TicketType": "Student", "Translations": [], "Prices": [{ "PriceZone": "1", "Price": 8.5 }] }] }, { "CustomerTag": { "CustomerTagId": 16, "Name": "Friend", "Abbreviation": "FR" }, "OnlineSaleStart": "2021-06-10T13:00:00", "OnlineSaleStartUTCUnix": 1620039600, "Prices": [{ "TicketType": "Friends", "Translations": [], "Prices": [{"PriceZone": "Rang 1","Price": 15}, { "PriceZone": "Rang 2", "Price": 10}], "ActiveFrom": "2021-06-12T08:00:00+02:00", "ActiveFromUTCUnix": 1623477600, "ActiveTo": "2021-7-12T22:00:00+02:00", "ActiveToUTCUnix": 1626069600, "TicketCount": "0-2" }], }, ] } Here you can see that Customers with the tag Student get to buy tickets for TicketType Student for a price of 8.5. For customers who are Friend there is an alternative, earlier, OnlineSaleStart and also an extra TicketType Friends, that is only available during a limited time period and for a max of 2 tickets. All the benefit data should be stored in the database of the website, so they are available to use in the web front-end. The webpage by default shows an event with the prices visible in the template, the other Benefits prices are in hidden elements. Then when the website gets a user object in the session information from Tixly. The user > tags > id can be used to display the benefit prices, the ones with the corresponding CustomerTagId. The same goes for the buy tickets button. The default information is used to display the initial state of the button. But when the user has a CustomerTag Id that matches a benefit with an earlier date, the button state to show can be re-evaluated using that date. Example of what normal, or not logged-in users see and what friends see when after the OnlineSaleStart of the friend has passed but the normal OnlineSaleStart is still in the future. Default info / state: "OnlineSaleStart": "2024-06-26T13:00:00" Friends benefit has a different date: "OnlineSaleStart": "2024-06-10T13:00:00 Notes Benefits can add ticket types to the list of available ticket types. Benefits can not change the price of already available ticket types, nor can they remove ticket types. A customer can have multiple customer tags. Each tag can have a benefit. All beneficiary ticket types are available to such a customer, and as such should be shown to him. When there are multiple beneficiary OnlineSaleStart dates, the first occurring OnlineSaleStart should be used. A customer tag or benefit does not influence the OnlineSaleEnd, SoldOut or SaleStatus, they remain the same for all customers. Each tag can have a benefit. All beneficiary ticket types are available to such a customer, and as such should be shown to him. When there are multiple beneficiary OnlineSaleStart dates, the first occurring OnlineSaleStart should be used. A customer tag or benefit does not influence the OnlineSaleEnd, SoldOut or SaleStatus, they remain the same for all customers. Skins The Tixly part that the customers see it the online flow and the account pages. This can be styled and configuered in many ways. That configuration is what we call a skin and controls these things, and even more: Design elements, colors, logos. Webtrackers. URLs on the logo, continue shopping buttons. Default settings for many of the emails. URL of the skin, where is can be on a your domain, for example "https://billet.musikhuset.dk" or on a tix domain like this "https://tix.no/nb/notteroy" When using organisations, a skin can be limited to sell only from the configuered organisation. Define what sites are allowed to read session information.
Tixly event API
The Tixly Event API is mainly used to fetch event information about events that is created in Tixly and that shall be published on a website through and external CMS system. It requires a country specific URL and a API key created in system. Documentation can be found in Swagger by following the link below. Tixly Event API When making a website integration it is also valuable to read the website integration documentation.
Queue-IT
Queue-IT is a virtual queuing system that can be connected to the buying process for events where high pressure is expected. When the customer navigates to the buying process they are redirected to a queue and are then let in when it is their turn. Customers are then admitted into the buying process according to set criteria. This is done to prevent overload of the system, and maintains a smooth and stable experience for the customer. Queues can be set on three different levels: event group, subscription and special offer. If you want to use Queue-IT, contact your local Tixly Support. They will help set up the queue and will monitor the flow on the day of the on sale.
Tixly CRM API
The Tixly CRM API is used to fetch customers from the Tixly System, it includes customer information, transactions along with information about different customer attributes such as customer tags and permissions. It can further more write information to the Tixly system making it possible to for example create and edit customers along with tagging, adding permissions etc. from an external system. It is most commonly used with CRM and marketing systems but also to fetch sales information into BI and analytics tools. It requires a country specific URL and a API key created in system. Documentation can be found in Swagger by following the link below. Tixly CRM API
Create events
An event date in the Tixly System is a specific date on which an event is held. One or more event dates are always connected to an event group. In the online buying process, all event dates connected to a specific event group are presented in one sales link. To create multiple dates connected to a group, start by creating an event date and then copy it into multiple dates, so that each date has the same settings but different start and end dates and times. Create event date Copy event dates Bulk edit event dates Create event date To create an event date, navigate to Administration > Events > Dates and press Add event in the upper right corner. Information Internal name (if active) The internal name of the event, needs to be unique for every event date. Name The name of the event. Visible on the ticket, in Box Office and online. Subtitle (Optional) The subtitle of the event. Visible on the ticket, in Box Office and online. Organisation If there are multiple organisations, select the correct organisation. Season Used as a filter in reports and determines which online exchange rules are applied to events within the season. Promoter Used as a filter in reports and internally in the Box Office sales module. Can also be included on the ticket layout. A promoter can quickly be created from this field or via Administration > Events > Promoters where they are also editable. Date & Time / End date The start and end time of the event. The event is visible in Box Office until its end time. Set Box Office sales period When set to yes it is possible to define when events are available for sale in Box Office and when an event becomes visible on the sales dashboard. This hides events from users who do not have access to the event outside the sales period. Free admission event Used for free non-ticketed events. This information can be sent via the Tixly Event API and the event is also visible on the sales dashboard. Once an event is saved as a free admission event it is not possible to change this. Confirmed If No, the event will be marked as red on the sales dashboard and no date or time will be printed on the ticket. It is, however, still possible to sell tickets for the event. Sale status Event status visible in the online buying process and in Box Office. No status: Default status when creating an event. Few tickets: Based on WG settings, can be last 100 tickets or 10% of the available tickets for instance. Sold out: Based on WG settings, can be 0 tickets or 0% of the available tickets. Cancelled: Manually select this status when an event is cancelled. Is an automatic message scheduled under the SMS / e-mail tab? Then you will get a notification to deactivate the scheduled mails as soon as you change the sales status to Cancelled. Sale not scheduled: Used if the event should be visible online, but no start sale date is known yet. Auto Sales Status If yes, the sale status will automatically change to few tickets and sold out once the rules set on workgroup level are met. Do not forget to set auto sale status to No when manually changing the sale status to few tickets or sold out. Contact Tixly Support to discuss the workgroup settings. Waiting list Activate the waiting list for the event. The waiting list is activated when the event has the status Sold Out. Max waiting list tickets: Indicates the number of tickets customers may request per sign up, it does not reflect the total number of waiting list spaces. CSV download: Once customers have signed up for the waiting list a Get CSV button will appear. This is a static list, but customers can remove themselves from the waiting list in their online account. Duration The duration of the event, visible under the information button in the Box Office sale view and in the Tixly Event API. Internal note Internal information visible for the Box Office staff in the information box. Event groups Which event group or groups should the date be connected to. An event can be connected to multiple event groups, however, there is always only one default event group connected. Categories (required) Select one or more categories. Used in Tixly Event API, in reports and to create customer segments using the Tixly customer segmentation tool. New categories can be created directly from this field and can be edited via Administration > Events > Categories. Tags Add an existing tag or create a new one. Tags can be used to create customer segments and are also searchable in the event search bar. They can be used by third party software through Tixly Event API. VAT Select the VAT rate on the event. Enter the VAT rate when creating the event. In case that was forgotten and the event is already on sale, adding the VAT rate does not work retroactively. Gift card groups Add a gift card group to allow customers to pay for this event using a specific gift card. Read more Hall & Prices Venue The venue where the event is held. Venues are created under Administration > Venues > Venues. Hall The hall inside the venue where the event is held. Unnumbered halls can be created under Administration > Venues > Halls. Numbered halls are created by Tixly Support. Configuration Select which configuration of the hall should be used for the event. A numbered hall can have multiple configurations with different price zones, entrances, ranking, seat notices, pre defined allocations and more. Include service fee If yes, a fixed additional service fee per order can be set up. This fee is paid by the ticket buyer and added on top of the full order amount. When two events in the same basket have a different service fee, the highest fee amount is used. It's also possible to set the order fee in a basket rule, then it doesn't have to be added to each individual event. Price template If applicable, select which price template should be used for this event. The price types and prices will be added automatically. It is still possible to add/delete ticket types and adjust the prices. Prices / Fees Prices are displayed and added on the vertical, whereas fees are displayed and added on the horizontal. Fees Select which fees should apply to this event. Fees can be created or edited under Administration > Tickets > Fees & commissions. Ticket types Select which ticket types should be available on the event. It is possible to search for available ticket types in the search field. The ticket types are then priced for each price zone individually. Ticket types can be created or edited under Administration > Tickets > Ticket types. The icon displayed in front of the ticket type is used to indicate the type of ticket. In the example below, the types are shown from top to bottom as Standard sales, Subscription sales, and Both. Pricing formulas Pricing formulas allow for a Base Price to be set on the main level of the price matrix. Using pricing formulas the prices of the ticket types can automatically be calculated. Available formulas are: Equal to Base Price Base Price +/- a percentage Base Price +/- a specific amount Prices and fees can still be overwritten on event / ticket type level. Shopping cart icon By connecting a product to a ticket type a package can be created. The ticket type can not be bought without the product. In the buying process the final price of the ticket + product is shown. Once a numbered event is saved it's not possible to change the venue, hall or configuration of the event. It is possible to change an unnumbered hall into another unnumbered hall, however, only the name of the hall will change. The capacity of the hall will remain the same, but can be changed on event level. Access Sales and reporting access If external users (e.g. a promoter) should have access to the event, select Local users + specific users. Users / Organisations Add specific users or organisations to have access to this event. Users of the type promotor will show up in the dropdown. Other users can be added by typing out their full email address and clicking add external. On user level it is possible to disallow editing shared events. Sale access Select where the ticket type should be available: Online: The ticket type will be available online for every customer. Box Office: The ticket type is mainly available in Box Office only. Online access to this ticket type can be given by creating a special offer link or via a customer tag. POS Api: The ticket type is available in the POS API for third party sales. Quota Defines the maximum amount of tickets that can be sold of that specific ticket type. Quota can only be set per event date. Online quantity rule Define if there are any quantity rules connected to the ticket type. 0,2,4,6,8: The customer can buy 0, 2, 4, 6 or 8 tickets. Not 1, 3, 5, 7, 9 etc. 0,8-20: The customer can purchase between 8 and 20 tickets. No less than 8 and not more than 20. 0,2,4,6,10-20: The customer can purchase 2, 4, 6 or between 10 and 20 tickets. Always start with 0, otherwise the customer is required to buy the ticket type. Do not use spaces in the sequence. How do you schedule a ticket type? A ticket type can be schedule by clicking the clock icon behind the ticket type. There it is possible to define a date and time interval where the ticket type will be available online. The left date picker is the start and the right date picker is the end of the interval. Ticket types can also be scheduled in bulk: How do you add a voucher code? Read more on how to set up a voucher code here. Ticket type specific layout In addition, it is possible to connect a specific ticket layout to a ticket type. This will override the layout selected on event level for that specific ticket type Membership scanning To be able to scan membership cards, it must to be configured on event level. A profile icon may appear behind free ticket types to which a membership can be linked. When a membership is scanned at the door, the system will automatically sell the customer a ticket for the linked ticket type. Membership scanning is only available on unallocated / unnumbered events. Internet Available online Should the event be available for regular online sales. Online sale start & end When does the regular online sale start and end. Visible online Set when the event should be visible online and when it's sent to the external site through the Tixly Event API. Event that is visible online but where sales is scheduled to start at a later date and time. Skin Choose the skin / branding for the weblink. The skin is not saved on the event, so select the correct skin before copying the link. Weblink Link to the online buying flow for the specific event date. Min & Max tickets online Minimum and maximum number of tickets a customer can purchase online per order for this event. Numbered seating view Select whether customers will see the hall map in the online buying process. No hall view mode: The hall is not shown in the online buying process. Hall view without manual selection: The hall is shown, but the customer can't change the selected seats. Manual seat selection: The hall is shown and the customer is able to change the selected seats. No seats can be left empty between sold orders, but tickets can be booked in different (price) zones Manual seat selection any seat: The hall is shown and the customer is able to change the selected seats. Seats can be left empty between sold orders and individual seats in multiple sections can be selected. Social distancing: Will allow an offset of X seats between orders and a max capacity on the hall. Pick seats first Set if the customer should select their seats or ticket type / number of tickets first in the online buying process. If yes, the hall will automatically open up when opening the link. Display 360 If the venue has a 360 view, it can be activated here. Best search option Only applicable in high pressure ticket sales, when you want to set how best seat available should work. Show event start time as Set whether to show the date & time or only the date in the online buying process. Delivery types Select which delivery types should be available for the event. Permissions Select which permissions should be connected to the event. A permission that is connected to the season will automatically be connected to the events within that season. It is also possible to add event specific permissions. WebTrackers This is where event specific Facebook Pixel, Google analytics and Google Tag Manager can be added. Commonly used if an external promoter wants to add their tracker to their own events. Default web trackers of the organisation can be added to the skin and will automatically be connected to all events. Additional Terms And Conditions Event specific terms & conditions can be added here. This will not replace the regular T&C's, but will add an extra checkbox. New additional terms & conditions can be created via Administration > Workgroup settings > Additional Terms and Conditions. Internet + Customer tag Add a customer tag to the event to give customers with certain tags access to specific ticket types that are not available in the regular sale and/or to give customers with a tag pre-sale access. Special note (shown online) Extra text field that is shown online below the ticket type selection. Only visible when pick seats first is not active or when using the event group link. Online sales Select whether to use the default confirmation e-mail layout or a dedicated one for the event. When the customer buys multiple events in one order, the default template will be sent. Extra information If yes, an extra free text field is added to the online buying flow where the customer can answer a question or enter additional information. It could, for instance, be used to ask customers to enter their allergies or t-shirt size when selling products. This information can be found in the customer report. Information text: Explain what information is asked for, will be the header of the text field. Required: If yes, the field will be mandatory and the purchase can not be finalised without entering something in the text field. Customer info on each ticket If yes, the customer needs to enter a unique name, email address or phone number for each ticket in the order. The information can be entered from the online receipt page. This information needs to be provided in order to be able to download the tickets. Information text: Information text that is shown to the customer on their online receipt page, could be used to explain what is required and why. Force unique: Select if the name, email, mobile number or a combination of them must be unique on each ticket in the order. Position By default all event dates within an event group are ordered by date and time. It is possible to change this order by giving the dates a different position. Allow gift card Deactivate if gift cards should not be accepted as payment for the event. Special offer It is possible to create a special offer for a dedicated ticket type directly from this tab. Read more Products Connect products to the event date. New products can be created via Administration > Products > Products. Read more Layout Ticket title Can be used to shorten or alter the event title on the tickets. If nothing is entered here, the name of the event date will be used. Subtitle Can be used to shorten or alter the subtitle on the tickets.If nothing is entered here, the subtitle of the event date will be used. Info text 1-3 Text that can be included on the ticket if the variables are available on the layout. Often used for extra information such as; The entrance will open 2 hours prior to show. Ticket for PDF, Epson, Godex, Boca, etc Select if the default ticket layout should be used for this event or if there's another layout that should be used (numbered vs unnumbered layout for instance). PDF Ticket image Upload an image that can be printed on the PDF ticket layout provided that the variable is available in the layout. Translations Add translations for online and ticket elements to activated languages. Translations are also included in the API. SMS/Email Create automated emails and SMS. Read more Payment Types Only use this feature if specific Box Office payment types should be available for the event. Scanning If Override scan settings is set to Yes, it is possible to specify a time interval when it should be possible to scan tickets to the event. If no interval is set, the default work group time (X hours before and after the event) will be used. If the default times need to be adjusted, please contact your local Tixly Support. It is also possible to activate the unscan functionality on event level. Finance If required, add an external reference number, department, account and/or dimensions to the events. These numbers will show up in several reports and the finance export. Refunds When an event is cancelled or moved it is possible to activate some self service refund options that will be available on the online receipt page of the customer. Activate the options by setting Refunds to Yes. Refund money Set to Yes to offer a monetary refund. Refund payment type: Select which payment method should be used for the refunds. If the order was paid for online, the refund will be made to the account number used to make the payment. Mail template: Select the email template that will be sent once the customer has requested a refund. Tickets bought before Only tickets that were bought before this date will have the option of getting a refund. E.g. if a show has been moved it is possible to offer a refund to all ticket buyers that bought tickets before the move was announced. Limit refund period Set to yes if the refund option should only be available until a specific date and time, after this time the refund options will no longer be available on the receipt page of the customer. Charge cancellation fee Defaults to yes if a cancellation fee has been configured on season level. To remove the cancellation fee for online refunds for the specific event date, set the switch to no. Available gift cards / donations To enable the option to transfer the ticket amount to a gift card / donation instead of requesting a refund, select one or more gift cards / donations by moving them to the right box. Customers can only request a refund, gift card or donate the full amount of the event. No partial refunds are available via the online receipt page. Copy event dates After creating an event date it is possible to copy the exact same event and settings over to multiple other dates. Navigate to Administration > Events > Dates, search for the event that needs to be copied and click Actions > Copy Event. Choose dates Other event dates and times can be added by selecting the time, selecting the dates, and pressing the Add Event to Copy button. The event dates to be added are displayed at the bottom for verification before Confirm & Copy is pressed to copy the event. Recurring dates For long-running productions or events that take place at the same time and day each month or week, the Recurring dates tab can be used. Time Time of the event to be copied. Repeat every Repeat every Day will copy the event to each weekday. Repeat every Week provides the option for the event to be copied weekly or at a specified weekly interval. Repeat on If Repeat every week is selected, the weekdays to which the event should be copied can be specified. Starts The date on which the event copying should begin. Ends Ends On allows a specific date to be set when the copying of the event should stop. Ends After allows a number of occurrences to be specified after which the copying of the event should stop. Settings Then under the Settings tab it can be decided which settings should be copied over to the new event dates. Make sure all event settings, as well as all hall configuration settings (price zones / seat notifications / allocations), are perfect before copying an event date. Bulk edit event dates The bulk editing functionality allows for quick editing of multiple events in one go. Navigate to Administration > Events > Dates and select all events that should be edited. Either use the search field to look for all events from a specific production or use the advanced filter to search for events on specific days / times, promoter, category, etc. After selecting all dates press the Bulk edit button that will appear next to all the export options. In the pop up either search for the field or module that should be bulk edited or press the space bar to see all items that are available for bulk editing. Depending on the item that is being bulk edited the item can be activated / deactivated or replaced / added / removed.
Tixly admin API
Tixly provides an administration API to enable external planning or venue management software to create events and productions in Tixly and retrieve sales data for these events. The Admin API was initially built to the specifications of Yesplan, and additional values have been added since. This is why the authorisation differs from the CRM API (basic vs Bearer token), and some names are not purely Tixly, such as Production instead of Event Group. Access to the Admin API is configured in the Venue Management module of Tixly and includes a number of configuration options: Organisation Selects an organisation that will be the owner of the created events/groups. Filter by Organisation If set to yes, restricts access to retrieve information only for events of this organisation. Manual Connection If set to yes, a back-office user can add/edit/remove the external ID on events from the Tixly interface. Disabled Values Disabled Values allow you to make some event properties read-only in the Tixly interface. This means they can only be changed from the management software, ensuring data consistency on both ends. These values are also required any time an event is created or updated from the venue management software. If a value is not required, it can still be updated, but does not need to be. All available Event values listed below under Create events can be disabled/made mandatory to update each time. Outline of working with the API Event Groups and Event Dates are initially created in the venue management software. When they need to be made available in Tixly, the management software can push them using this API. If there are changes or updates to event information in the venue management system, these events can be pushed again to be updated in Tixly. Upon the creation of event groups and events in Tixly, the ID of the generated entities is returned and can be stored in the venue management system. In Tixly, additional properties are updated on the event to prepare it for sale including setting prices, quotas, and specifying ticket layouts. When the events are sold, there are several routes available to fetch sales data. The API uses basic HTTP authentication: all requests should include a header Authorisation with the scheme “Basic”. All data is exchanged in json format. The date-time values are exchanged as JSON strings based on the ISO 8601 standard. Documentation can be found at https://adminapi.{country url}/v1/swagger/ui/index Tixly Event values The first step to creating events in Tixly once the API has been set up in the module, is to retrieve a listing of Tixly Seasons, Promoters, Hall Configurations, Event Categories, and Price Templates. These can then be used when creating Event Dates. Get mappings A user of the planning system might be shown this as a list of options to choose from when configuring the events. GET /admin/mappings can be used to retrieve a basic version of this information. Specific endpoints exist to find more detailed information about available items in Tixly. These can be found using the following: GET /admin/allocationtypes GET /admin/pricetemplates GET /admin/seasons GET /admin/eventtags GET /admin/organisations GET /admin/venues GET /admin/tickettypes GET /admin/halls GET /admin/hallconfigurations GET /admin/salestatuses GET /admin/vats GET /admin/promoters Create productions POST /admin/productions should be used to create Event Groups in Tixly. An example value for the Event parameter: { "production-id": "TEST-1234", "name": "The Last Whisperer", "tix-production-id": "5678", "admin-name": "The Last Whisperer 2025", "description": "In a world silenced by an unknown affliction, a lone archivist races against time to decipher the last echoes of humanity's past before the final memory fades into oblivion.", "available-online": true, "sub-title": "A Tixly Production", "External-reference-number": "EX-1234", "big-image": "https://tix-staging-cdn.s3.eu-west-1.amazonaws.com/se/tix/EventImages/Feature_12240.jpg?r=114880059", "small-image": "https://tix-staging-cdn.s3.eu-west-1.amazonaws.com/se/tix/EventImages/Event_12240.jpg?r=527710935", "account": "Account", "department": "Department", "dimension1": "Dimension 1", "dimension2": "Dimension 2", "dimension3": "Dimension 3", "dimension4": "Dimension 4", "dimension5": "Dimension 5", "dimension6": "Dimension 6", "dimension7": "Dimension 7", "dimension8": "Dimension 8" } The production-id is the planning systems ID that can be used in calls as {externalID} for updates and event creation. GET /admin/productions/{externalID} should be used to get the production details while PUT /admin/productions/{externalID} should be used to update the production details. Tixly downloads the images from the URLs you add to Tixly's own system and uses them as-is in the buying flow. Available EventGroup JSON values include: production-id name tix-production-id admin-name description available-online sub-title external-reference-number big-image small-image account department dimension1 dimension2 dimension3 dimension4 dimension5 dimension6 dimension7 dimension8 Production-id and name are the only required values to create an Event Group, and no additional values can be set to required/disabled. An example of a successful output is below: { "Success": true, "Message": "Production created", "EventGroup": "12246", "displaymessage": "Production created" } Create events Once an Event Group or Production exists, you can create Event Dates for it. Use your own event-id and reference your production, as you see in the first two properties. The seasons, hallconfigurations and eventcategory expect a single value each from the mapping list. If multiple categories should be assigned, eventcategories should be used. POST /admin/events should be used to create Event Dates. It is also possible to send images with this /admin/events. These images “big-image” and “small-image” will replace the images of the primary event group of this event. Your own event-id can be used as {externalId} to get, update or delete an event. Only events that have no tickets on them can be deleted! An example input including all potential values is below: { "event-id": "evt-987654", "production-id": "prod-123456", "name": "Summer Jazz Festival", "admin-name": "Anna Lund", "subtitle": "An evening of smooth jazz", "starttime": "2025-07-12T18:00:00Z", "endtime": "2025-07-12T21:00:00Z", "eventcategories": ["Jazz", "Live Music", "3"], "hallconfigurationid": 7, "promoterid": 42, "seasonid": 3, "external-reference-number": "SJ-2025-042", "availableonline": "2025-06-01T00:00:00Z", "onlinesalestart": "2025-06-10T09:00:00Z", "onlinesaleend": "2025-07-12T17:00:00Z", "visibleinboxoffice": "2025-06-01T00:00:00Z", "boxofficesalestart": "2025-06-15T10:00:00Z", "boxofficesaleend": "2025-07-12T18:00:00Z", "account": "JAZZ2025", "department": "Music & Culture", "dimension1": "RegionA", "dimension2": "LIVE32", "dimension3": "", "dimension4": "", "dimension5": "", "dimension6": "", "dimension7": "", "dimension8": "", "tickettitle": "Jazz Festival Entry", "tickettextone": "Entry includes access to all evening performances.", "tickettexttwo": "No re-entry after 7PM.", "tickettextthree": "Food and beverages available at venue.", "eventtags": [1, 2, 4], "vatrate": 11.0 } The following JSON values are always required to create or update an event, along with any values set up as Disabled values in the Venue Management module in Tixly: event-id production-id name starttime endtime hallconfigurationid seasonid promoterid An example input of required parameter values for the key Event is below: { "event-id": "12345", "production-id": "TEST-1234", "name": "The Last Whisperer", "starttime": "2025-07-18T21:00:00", "endtime": "2025-07-18T23:00:00", "hallconfigurationid": "81", "seasonid": "51", "promoterid": "51", } A successful input will provide the following output: { "Success": true, "Message": "Event created", "Event": "9252", "displaymessage": "Event created" } A 500 error will return for any missing default required values, while a specific error will display for any disabled values that are missing. The “Message” text return should be used for any error received. Retrieve Subscription information GET /admin/subscriptionsbyeventdates can be used to retrieve information about subscriptions that have events in a specific date range. An example of the output is available here: { "SubscriptionTypeId": 48, "Name": "The Spotlight Series", "Abbreviation": "SPOT", "SeasonId": 51, "Type": 1, "OnlineSaleStart": "2024-11-22T12:00:00", "OnlineSaleEnd": "2025-05-22T20:00:00", "VisibleOnline": "2024-11-22T12:00:00", "TicketTypes": [ { "TicketTypeId": "329", "Name": "Subscription" }, { "TicketTypeId": "330", "Name": "Child Subscription" } ], "EventGroups": [ { "EventGroupId": "12178", "Name": "Long Day's Journey into Night" }, { "EventGroupId": "12220", "Name": "Masquerade of Shadows" }, { "EventGroupId": "12179", "Name": "The Glass Menagerie" }, { "EventGroupId": "12184", "Name": "The Last Train to Nowhere" } ], "Events": [ { "EventId": "7867", "EventGroupId": "12178", "Name": "Long Day's Journey into Night", "StartDate": "2025-01-07T20:00:00" }, { "EventId": "7933", "EventGroupId": "12179", "Name": "The Glass Menagerie", "StartDate": "2025-03-04T20:00:00" }, { "EventId": "7944", "EventGroupId": "12184", "Name": "The Last Train to Nowhere", "StartDate": "2025-05-06T20:00:00" }, { "EventId": "8453", "EventGroupId": "12220", "Name": "Masquerade of Shadows", "StartDate": "2025-07-19T19:30:00" } ], "Organisations": [ { "OrganisationId": "42", "Name": "The Fictional" } ], "DefaultTicketTypes": [ { "TicketTypeId": "329", "Name": "Subscription" } ] } Retrieving sales information GET /admin/events/{externalID} should be used to retrieve event sales statistics per event. An example input and output are below: GET / https://adminapi.se.staging.tixticketing.com/v1/admin/events/12345 { "tix-event-id": "9251", "event-id": "12345", "production-id": "TEST-1234", "tix-eventgroup-id": "12246", "name": "The Last Whisperer", "subtitle": "", "admin-name": "", "location": "The Fictional - Crescendo Concert Hall", "starttime": "2025-07-18T21:00:00+01:00", "endtime": "2025-07-18T23:00:00+01:00", "in-sale": false, "closed": false, "salestatus": 0, "salestatustext": "None", "ticketscapacity": 1243, "ticketssold": 0, "ticketsfree": 0, "ticketsreserved": 0, "ticketsallocated": 83, "ticketsblocked": 23, "ticketsavailable": 1137, "ticketstotal": 0, "ticketstemporarilyreserved": 0, "ticketsheldforsubscribers": 0, "ticketsscanned": 0, "ticketsrevenue": 0.0, "ticketsrevenue-excluding-vat": 0.0, "productiononline": "1", "eventonline": "0", "vat": 20.0, "promoterid": 51, "promotername": "The Fictional", "seasonid": 51, "seasonname": "2024-2025", "visibleinboxoffice": "", "boxofficesalestart": "", "boxofficesaleend": "", "visibleonline": "2025-05-27T16:00:00+01:00", "onlinesalestart": "2025-05-27T16:00:00+01:00", "onlinesaleend": "2025-07-18T23:00:00+01:00", "account": "", "department": "", "dimension1": "", "dimension2": "", "dimension3": "", "dimension4": "", "dimension5": "", "dimension6": "", "dimension7": "", "dimension8": "" } GET /admin/events/{externalID}/detailed should be used to retrieve the most detailed information available about an event’s sales including information about specific ticket type sales. An example output is below: { "tix-event-id": "9251", "event-id": "12345", "production-id": "TEST-1234", "tix-eventgroup-id": "12246", "name": "The Last Whisperer", "subtitle": "", "admin-name": "", "location": "The Fictional - Crescendo Concert Hall", "starttime": "2025-07-18T21:00:00+01:00", "endtime": "2025-07-18T23:00:00+01:00", "in-sale": false, "closed": false, "salestatus": 0, "salestatustext": "None", "ticketscapacity": 1243, "ticketssold": 0, "ticketsfree": 0, "ticketsreserved": 0, "ticketsallocated": 83, "ticketsblocked": 23, "ticketsavailable": 1137, "ticketstotal": 0, "ticketstemporarilyreserved": 0, "ticketsheldforsubscribers": 0, "ticketsscanned": 0, "ticketsrevenue": 0.00, "ticketsrevenue-excluding-vat": 0.00, "productiononline": "1", "eventonline": "0", "vat": 20.00, "promoterid": 51, "promotername": "The Fictional", "seasonid": 51, "seasonname": "2024-2025", "visibleinboxoffice": "", "boxofficesalestart": "", "boxofficesaleend": "", "visibleonline": "2025-05-27T16:00:00+01:00", "onlinesalestart": "2025-05-27T16:00:00+01:00", "onlinesaleend": "2025-07-18T23:00:00+01:00", "account": "", "department": "", "dimension1": "", "dimension2": "", "dimension3": "", "dimension4": "", "dimension5": "", "dimension6": "", "dimension7": "", "dimension8": "", "categories": [ { "eventcategoryid": 80, "name": "Play" } ], "prices": [ { "tickettypeid": 431, "tickettypename": "Integration", "pricezoneid": 1, "pricezonename": "1", "ticketprice": 0.00, "ticketpricewithoutvat": 0.00, "feeprice": 0.00, "feepricewithoutvat": 0.00, "totalprice": 0.00, "totalpricewithoutvat": 0.00 }, { "tickettypeid": 431, "tickettypename": "Integration", "pricezoneid": 2, "pricezonename": "2", "ticketprice": 0.00, "ticketpricewithoutvat": 0.00, "feeprice": 0.00, "feepricewithoutvat": 0.00, "totalprice": 0.00, "totalpricewithoutvat": 0.00 }, { "tickettypeid": 431, "tickettypename": "Integration", "pricezoneid": 3, "pricezonename": "3", "ticketprice": 0.00, "ticketpricewithoutvat": 0.00, "feeprice": 0.00, "feepricewithoutvat": 0.00, "totalprice": 0.00, "totalpricewithoutvat": 0.00 }, { "tickettypeid": 431, "tickettypename": "Integration", "pricezoneid": 4, "pricezonename": "4", "ticketprice": 0.00, "ticketpricewithoutvat": 0.00, "feeprice": 0.00, "feepricewithoutvat": 0.00, "totalprice": 0.00, "totalpricewithoutvat": 0.00 } ], "tickettypes": [] } GET /admin/events should be used to receive basic information for all events occurring in a specific month. The above methods return only events that have an external ID set. An example of the output is available here: { "tix-event-id": "9251", "event-id": "12345", "production-id": "TEST-1234", "tix-eventgroup-id": "12246", "name": "The Last Whisperer", "subtitle": "", "admin-name": "", "location": "The Fictional - Crescendo Concert Hall", "starttime": "2025-07-18T21:00:00+01:00", "endtime": "2025-07-18T23:00:00+01:00", "in-sale": false, "closed": false, "salestatus": 0, "salestatustext": "None", "ticketscapacity": 1243, "ticketssold": 0, "ticketsfree": 0, "ticketsreserved": 0, "ticketsallocated": 83, "ticketsblocked": 23, "ticketsavailable": 1137, "ticketstotal": 0, "ticketstemporarilyreserved": 0, "ticketsheldforsubscribers": 0, "ticketsscanned": 0, "ticketsrevenue": 0, "ticketsrevenue-excluding-vat": 0, "productiononline": "1", "eventonline": "0", "vat": 20, "promoterid": 51, "promotername": "The Fictional", "seasonid": 51, "seasonname": "2024-2025", "visibleinboxoffice": "", "boxofficesalestart": "", "boxofficesaleend": "", "visibleonline": "2025-05-27T16:00:00+01:00", "onlinesalestart": "2025-05-27T16:00:00+01:00", "onlinesaleend": "2025-07-18T23:00:00+01:00", "account": "", "department": "", "dimension1": "", "dimension2": "", "dimension3": "", "dimension4": "", "dimension5": "", "dimension6": "", "dimension7": "", "dimension8": "" } The next two routes return all events, including those without an external ID. Optionally, the output can be restricted by a setting in Tixly to only return those connected to the organisation set up in the credentials. GET /admin/GetEventsByEventDates should be used if you need to get details on events that took place at a certain time, e.g. all events yesterday, or need to have a status on all events in a certain week. GET /admin/GetEventsBySalesDates should be used if you are interested in all events, and want to get new data on those that had sales activity in e.g. from the last day. The output of these two routes are arrays grouped by EventId, Ticket Type, Price zone, and Section, giving you rather detailed sales information. Sales in 3 price zones, each with 5 ticket types will return 15 objects like this example: { "ExternalId": "0", "EventId": 8290, "AdminName": "", "Name": "Long Day's Journey into Night", "StartDate": "02/13/2025 17:00:00", "Venue": "The Fictional", "Hall": "Crescendo Concert Hall", "TicketTypeId": 324, "TicketType": "Standard", "PriceZoneId": 2, "PriceZone": "2", "SectionId": 370, "Section": "Orchestra Left", "SoldTickets": 0, "SoldRevenue": 0.0000, "ReservedTickets": 19, "ReservedRevenue": 1710.0000, "Capacity": 1220 } The above capacity is about the whole event, while the sold and reserved numbers for this are a combination of EventId, Ticket Type, Pricezone and Section. Only combinations that have sales or reservations are in the output. Retrieve customer sales over a period of time GET /admin/customerticketsbysalesdates can be used to retrieve all customer and ticket information for tickets sold within a specific date range. This report was designed for use with EVIS integrations. An example of the output is available here: { "CustomerId": 17170, "CustomerName": "Sam Chacon", "FirstName": "Sam", "LastName": "Chacon", "CustomerEmail": "sam@tixly.com", "Mobile": "+12105555555", "AddressOne": "Gartenstraße 61", "AddressTwo": "", "City": "Berlin", "ZipCode": "12557", "Country": "Germany", "TicketId": 303563, "TicketTypeId": 329, "TicketType": "Subscription", "PriceZoneId": 2, "PriceZone": "B", "SubscriptionTypeId": 0, "Price": -66.0000, "Created": "2025-03-31T19:42:17.493", "TransactionType": -1, "ExternalId": "0", "EventId": 7948, "Section": "Orchestra Center", "RowName": "B", "SeatName": "104" } For more information and better usage of customer information, the CRM API should be used. Retrieve sales data over a period of time GET /admin/GetTicketsBySalesDates can be used to retrieve all tickets with seat details and customer information that were sold within a specific date range. This can be used to get sales in different configurations, for example, to retrieve sales every hour to keep your external system up to date. This report was designed for use with Event Software Benelux integrations. An example of the output is available here: { "CustomerId": 17170, "CustomerName": "Sam Chacon", "FirstName": "Sam", "LastName": "Chacon", "CustomerEmail": "sam@tixly.com", "Mobile": "+12105555555", "AddressOne": "Gartenstraße 61", "AddressTwo": "", "City": "Berlin", "ZipCode": "12557", "Country": "Germany", "TicketId": 303563, "TicketTypeId": 329, "TicketType": "Subscription", "PriceZoneId": 2, "PriceZone": "B", "Price": -66.0000, "Created": "03/31/2025 19:42:17", "TransactionType": -1, "ExternalId": "0", "EventId": 7948, "Section": "Orchestra Center", "RowName": "B", "SeatName": "104" }