API Summary Documentation: SPD0102_API_Summary_Ticketing(REST) 1.47.doc
This document described the integration with Fortress, where Fortress is handled as an access control interface AND as external printer interface.
This integration has been delivered.
General Principle:
Fortress GB is an access control system deployed by many UK football clubs.
It provides SecuTix clients with two basic sets of functionalities.
An access control system
Fortress GB is handling access control at the gates with a strong limitation:
Fortress GB does not handle retrieval of controlled tickets. The controlled status of the tickets cannot be retrieved in SecuTix.
An external printing system
Fortress is printing the RFID cards for season tickets for SecuTix clients, with two main cases:
Direct printing at the box-office on "real" printers
Mass printing on "virtual" printers (ticket data are only sent to Fortress)
Fortress being two systems in once in SecuTix point of view, we need to set up two external interfaces: an access control interface and an external printer interface.
It also provides smart barcode functionality that you must activate.
Prerequisites:
Check with Platform team that the steps defined in Fortress GB Switch from V1 to V2 are done.
Smart barcode
To activate the smart barcode (encrypted barcode understood by Fortress scanners), go in the organization screen and select "Access control type: Fortress GB"
It will generate a Fortress barcode for all the tickets linked to a seat linked to an area mapped to Fortress through an access control mapping (see below). Else it will generate a Date SecuTix barcode.
Concession barcode
Fortress tickets may have two barcodes, one being the concession barcode, displayed in template using key exr_fortress_concession_barcode
To have this concession barcode please follow the following setup: set the parameter Concession tariff id in the interface with the integer id provided by Fortress support.
It is also possible to override this id for a given tariff by modifying its mapping, setting an external id with a WW_DD_DD structure (code + id1 + id2), id2 being the id of the concession tariff, to be provided by Fortress Team.
Important: if neither of these two methods is used, the concession Barcode will not be generated, but the ticket purchase will still work. This new barcode will be stored in an external reference related to the movement. It can be seen in the ticket details screen.
Access Control Interface:
Set up
Create an access control interface of type "Fortress GB"
New Interface → Control Interface → Fortress GB Control Plugin
Fill the values on the previous image, which should all be provided by the client or by his Fortress provider.
For the URL → remember to have the URL authorized through Secutix proxy.
A new parameter has been added to identify club through member ID´s in Season cards. That will modify the Ticket number format, as it will contain, first what is on the new parameter field followed by "-" and then ticket ID. See Image below:
Mappings.
- Fill area and block mappings, for every area and block of the stadium/venue that will be controlled by Fortress.
- Check that the physical configuration code is the same as the stadium code defined in Fortress.
- Check that the entrances' codes are the same as the gate codes defined in Fortress.
- Mappings are defined only in the access control interface. The printing interface must be linked to the access control interface.
Important: Mapping of Concepts
Complex mappings: use both codes and ids
When creating a new mapping for performance, tariff, entrance and season, please use the following format in the external ID to avoid errors:
Codes and ids are provided by Fortress team.
Advanced: useful Webservices to know Fortress IDs
For people expert in using postman, it is possible to get codes, ids or even create some entities using Fortress Webservices.
Tariffs: Get Price Band List (POST)
Name: PriceBandList
Description: get a list of all available price bands code on the Fortress Database
Request URL: http://{endpoint}/api/Products/PriceBandList/
Performances: Getproductlist (POST)
Name: ProductList
Description: Return a list of products available on the fortress server
Request URL: http://{endpoint}/api/Products/ProductList/
Entrances: Get Service List (POST)
Name: ServiceList
Description: Return a list of Services available on the fortress server
Request URL: http://{endpoint}/api/Products/ServiceList/
Schedule
There are two functions in the schedules in the Access control interface developed for v2: Synchronize Tickets and retrieve controlled tickets. For this fortress set up, add just synchronize tickets.
Configuration
Launch: Manual or Automatic
Batch size: 100 default
Event and performance: follow the formatà eventCode;DD/MM/YY hh:mm (24hours format)
Extract Fortress actual active data for comparison (do not use systematically): If it is active, Secutix system call Fortress webservice for a specific match(indicated on the previous parameter) which will compare all the tickets from Secutix and fortress (valid or invalid)
Skip tickets: If the ticket is in Secutix list but not in Fortress, It will be included and sent to Fortress, If it is already on fortress list, it will be skipped, no further actions will be executed. Operator can select tickets to avoid sync with fortress. This ticket will always be ignored on the calls to fortress WS.
Search ticket Parameter format
Cancelled tickets are flagged as error and are not flagged as “synchronized” . A change has been made so that is not an error, it is just a warning in the log lines.
Important
External Printing System
The goal of this interface is to print season tickets. It will not work with a different product e.g. a ticket for a specific match.
Set up
Create at least one "Fortress GB" printer for a workstation
Organization → Initialization → Workstations
Create a hardware record Card printer/Fortress GB printer for the workstation that will effectively print the season tickets. Take note of its logical name.
For the same workstation, add this new hardware to 'Hardware order' Badge printer and Document printer:
Create an external printing interface of type "Fortress GB"
New Interface → External Printing Interface → Printing Interface Fortress GB
Fill the values, which should all be provided by the client or by his Fortress provider. Those are the same one as for the access control interface (but It is MANDATORY to replicate them here)
- Url → remember to have the url authorized through SecuTix proxy.
- Login
- password
- Agency code
- AppId
- API key
All of them are mandatory.
Other values
Fill the value "Parent Interface", and select the access control interface created before. It will allow the printing interface to retrieve mappings from the parent interface.
Fill the values "sales channel code/point of sales code", to define which point of sale will do the virtual printing.
Fill the value "Printer logical name for direct printing" with the logical name of the printer that will be directed to Fortress for direct printing.
Then fill the following mappings:
Fill a product mapping in the access control interface for every season ticket that will need to be printed in Fortress. (the product must be created in Fortress in parallel)
The fact that the access control interface is the parent interface makes it owner of all the mappings.
Print immediately
In order to be able to use the Print immediately when you finish the purchase process it's necessary that the season ticket you are using has the following configuration:
Schedules
There are 2 schedules within this External Printing Interface, both of them for Season Tickets:
- Import Card Number.
- Ticket External Printing.
Import Card Number
Launch: Manual
Batch size: 1
Product printables: Select season tickets for current season
Tickets external printing
Launch: Manual
Batch size: 1
Product printables: Select season tickets for the current season.
It is possible to filter by product:
If non-ticket is selected: All will be printed.
Season: Select season, by default current.
Product family: To filter by family → Membership or Season Ticket
New Season ticket Renewal
When printing the ST Cards through the Tickets' external printing Function, on External Printing Interface, ST will be automatically renewing the same cards; if the renewal is not possible, New ST Cards will be printed for the Fans.
Conditions for a ST to be renewed
1. Tariff mapping (e.g. a young person, can pass to an adult; hence it would new a new ST card) matches with both old ST and new ST that will be renewed.
2. Seat (same area mapping, block mapping, seat row, seat number) matches with both old ST and new ST that will be renewed.
3. Same cultural contact matches with both old ST and new ST that will be renewed.
A new specific section added → Previous season ticket to renew:
Season: The season of the ticket that will be renewed.
Product family: Season ticket
Product to renew: Specific season tickets to be renewed.
Access control interface - frequent error message
Due to the complexity of the interface and the integration and the absence of idempotency, the following error messages are likely to show up.
Frequent Asked Questions (FAQ)
Why are Tickets compared between Secutix and Fortress?
The new parameter which compares a list of tickets between Secutix and Fortress within the synchronize tickets schedule in Access Control Interface (Please refer to Ticket Synchronization schedule) has been created because none of the Fortress Services are idempotent. That means that, when calling a Fortress Webservice in multiple occasion, execution will fail because tickets would have been added previously to FT system
How does work the parameter to synchronize tickets for a specific match?
The mandatory parameter, located on the Access Control Interface (Synchronize ticket schedule) “Event and performance” to synchronize ticket for a match follows the format: eventCode;DD/MM/YY hh:mm
- Be aware that time format is 24 hours.
- EventCode must match with the code given when creating that match
Filtering by this parameter, just tickets from the specific match will be called in Fortress System.
Why is a ticket not present in Fortress when I print it during the purchase order, as it was the case with V1?
Even if a ticket has been printed on Secutix while a purchase has been completed, operator will need to use access control interface and synchronise the tickets to call Fortress system and push the ticket on FT system. This will allow Secutix to communicate fortress that a ticket has been sold for the chosen match.
How Can I validate that Access control Interface is working properly?
1.Sell a ticket for each stand (STX = Area) of the venue, wait depending of Schedule synchronization ticket, check that those tickets can pass the gate in Fortress.
2.Refund a ticket, wait depending of Schedule synchronization ticket, check that it cannot pass the gate in Fortress.
In case it where not working, check the error logs in the executions and work out until the tickets are accepted/are refused at the gates.
How can I validate that External Printing Interface is working properly?
- Sell a season ticket mapped to Fortress and print it on the Fortress printer. It must be printed by the Fortress printer (check in the execution logs for errors if it does not print)
- Add an additional match on this season ticket, wait depending of Schedule synchronization ticket and see if the ticket can pass the gate (it should). If it does not pass, check in the access control logs to find the error.
Is it possible to purchase by unnumbered seats?
Yes, it is possible to add in the configuration an "unnumbered seat area", and when purchasing the ticket select this area tickets.
Fortress Training Session 1 -
Fortress Support:
+44 (0) 845 299 6020