Entry V1 API (1.0.0)
Download OpenAPI specification:Download
Entry V1 API Documentation for device communication and scanning operations
Authentication
- Most API calls require an
Authorization: Bearer <bearer token>header, which is obtained by calling the session creation endpoint. - The session creation endpoint itself is secured using a manually issued
API-Authorization-Key, provided to integrators during onboarding.
Create Session
Initializes a new device session and returns a bearer token (JWT) used for authentication on all subsequent API calls. This also registers device context including serial number, venue, and model details.
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| API-Authorization-Key required | string The api-authorization-key to identify the client. |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| venueCode required | string Venue code from venue profile |
| dataAccountId required | string 3-digit client identifier |
| serialNumber required | string Device serial number |
| make required | string Device maker |
| model required | string Device model |
| firmwareVersion | string Firmware version of the device |
| softwareVersion | string Software version of the device |
| macAddress | string MAC address of the device |
| specialAreaId | string Identifier for a special area within the venue (if applicable) |
| specialAreaName | string Name of the special area within the venue (if applicable) |
| specialAreaMaxEntryPerTicket | integer Maximum number of entries allowed for a ticket in the special area (if applicable) |
| specialAreaMaxCapacity | integer Maximum capacity for the special area (if applicable) |
| specialAreaRequireEntryExit | boolean Whether the special area requires both entry and exit scans (if applicable) |
| networkType | string or null Enum: "Wifi" "Mobile" "Wired" Device connected to internet. |
| wifiSSID | string or null If connected through Wifi, what is the ssid. |
| wifiBSSID | string or null If connected through Wifi, what is the bssid. |
| wifiChannel | integer or null If connected through Wifi, what is the channel. |
| mobileProvider | string or null If connected through Mobile, what is the provider. |
| networkSignal | string or null Networking signal level on the reader device at the time of scan.
|
| localIPAddress | string or null Local IP address of the device. |
| softwareMode | string or null Enum: "Handheld" "Pedestal" Software mode of the device. |
| accessorySerialNumber | string or null Serial number of the accessory. |
| accessoryFirmware | string or null Firmware version of the accessory. |
| accessoryModel | string or null Model of the accessory. |
| accessoryMake | string or null Maker of the accessory. |
| deviceTimestamp | string <date> Device date time in ISO format. |
Responses
Request samples
- Payload
- curl
{- "venueCode": "TS",
- "dataAccountId": "390",
- "serialNumber": "123456789",
- "make": "Janam",
- "model": "Model X",
- "firmwareVersion": "1.0.0",
- "softwareVersion": "android 2.0.0",
- "macAddress": "00:11:22:33:44:55",
- "specialAreaId": "123",
- "specialAreaName": "VIP Entrance",
- "specialAreaMaxEntryPerTicket": 2,
- "specialAreaMaxCapacity": 100,
- "specialAreaRequireEntryExit": true,
- "networkType": "Wifi",
- "wifiSSID": "string",
- "wifiBSSID": "string",
- "wifiChannel": 0,
- "mobileProvider": "string",
- "networkSignal": "string",
- "localIPAddress": "string",
- "softwareMode": "Handheld",
- "accessorySerialNumber": "string",
- "accessoryFirmware": "string",
- "accessoryModel": "string",
- "accessoryMake": "string",
- "deviceTimestamp": "2019-08-24"
}Response samples
- 201
- 400
- 401
- 404
- 500
{- "jwt": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJkZXZpY2VJZCI6MTAxOTM0LCJkZXZpY2VOYW1lIjoiTG9hZFRlc3QtSmFuYW0yIiwiZGV2aWNlTnVtYmVyIjozLCJzZXJpYWxOdW1iZXIiOiIxMjA1MjQzIiwidmVudWVOYW1lIjoiQmFzcyBDb25jZXJ0IEhhbGwiLCJ2ZW51ZUNvZGUiOiJCQVNTIiwiY2hlY2twb2ludExheW91dElkIjozMDE4NzA4MywiY2hlY2twb2ludExheW91dE5hbWUiOiJTcGVjaWFsIEFyZWEgRGVtbyIsImNoZWNrcG9pbnRMYXlvdXRDb2RlIjoiQ0wuODI2OSIsInNwZWNpYWxBcmVhSWQiOjc0NTQ5LCJzcGVjaWFsQXJlYU5hbWUiOiJWSVAgQ2FwYWNpdHR5Iiwic3BlY2lhbEFyZWFNYXhDYXBhY2l0eSI6Miwic3BlY2lhbEFyZWFNYXhFbnRyeVBlclRpY2tldCI6bnVsbCwic3BlY2lhbEFyZWFSZXF1aXJlRW50cnlFeGl0Ijp0cnVlLCJjaGVja3BvaW50SWQiOjIyMTAwNiwiY2hlY2twb2ludE5hbWUiOiJFbnRyeSBDYXBhY2l0eSIsInBhcnRuZXJJZCI6ImdyZWctdGVzdCIsImRldmljZVR5cGUiOiJoYW5kaGVsZCIsImRhdGFBY2NvdW50SWQiOiIxMjkiLCJhY2Nlc3NvcnlTZXJpYWxOdW1iZXIiOm51bGwsImFjY2Vzc29yeU51bWJlciI6bnVsbCwidmVudWVUaW1lem9uZSI6IkFtZXJpY2EvQ2hpY2FnbyIsImlhdCI6MTc3MDE1NDc0NiwiZXhwIjoxNzcwMjQxMTQ2fQ.kUteH6mBiali2I8UMWxovcMSrI3P_Pi96px3PKKi8BH34ifkzNfi_lUXXXze_9op7qg1WD1oFSO03piwz0ulxFbyl9p_KboHqRIkzC5cnY2XPgIHsINncCcnOpjTavwUPJhTdyp8dxW85cBb2lt8Dg-7ndE5lFdFJr9XHQtlGRgLAzpTgtrsjYh_jj3badY0q_5isiwFmqkZPQoBKJca86W2kS_6vBgizSXv2cVkQ7FPcUVjY-mGSj9EERyrU6Rqqm4cTvRh9jVrIYKCbrkp2tm2F4uE8SDHJvBAT4NzGG3G7vctxkOlBtjeyU4VZmyQsc3TB2BWP1kn_1Bh3B2u9Q"
}Create Session (Lite)
Initializes a lightweight session for third-party integrators and returns a bearer token (JWT).
Unlike the standard session endpoint, this does not require full device layout information. The returned JWT has LIMITED access and can only be used with the Get Events and Ticket Lookup endpoints.
The integratorType claim in the JWT will be set to LIMITED.
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| API-Authorization-Key required | string The api-authorization-key to identify the client. |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| dataAccountId required | string 3-digit client identifier |
| serialNumber required | string Device serial number |
| venueCode required | string Venue code from venue profile |
Responses
Request samples
- Payload
- curl
{- "dataAccountId": "390",
- "serialNumber": "123456789",
- "venueCode": "TS"
}Response samples
- 200
- 400
- 401
- 404
- 500
{- "jwt": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJkZXZpY2VJZCI6MTAxOTM0LCJkZXZpY2VOYW1lIjoiTG9hZFRlc3QtSmFuYW0yIiwiZGV2aWNlTnVtYmVyIjozLCJzZXJpYWxOdW1iZXIiOiIxMjA1MjQzIiwidmVudWVOYW1lIjoiQmFzcyBDb25jZXJ0IEhhbGwiLCJ2ZW51ZUNvZGUiOiJCQVNTIiwiY2hlY2twb2ludExheW91dElkIjozMDE4NzA4MywiY2hlY2twb2ludExheW91dE5hbWUiOiJTcGVjaWFsIEFyZWEgRGVtbyIsImNoZWNrcG9pbnRMYXlvdXRDb2RlIjoiQ0wuODI2OSIsInNwZWNpYWxBcmVhSWQiOjc0NTQ5LCJzcGVjaWFsQXJlYU5hbWUiOiJWSVAgQ2FwYWNpdHR5Iiwic3BlY2lhbEFyZWFNYXhDYXBhY2l0eSI6Miwic3BlY2lhbEFyZWFNYXhFbnRyeVBlclRpY2tldCI6bnVsbCwic3BlY2lhbEFyZWFSZXF1aXJlRW50cnlFeGl0Ijp0cnVlLCJjaGVja3BvaW50SWQiOjIyMTAwNiwiY2hlY2twb2ludE5hbWUiOiJFbnRyeSBDYXBhY2l0eSIsInBhcnRuZXJJZCI6ImdyZWctdGVzdCIsImRldmljZVR5cGUiOiJoYW5kaGVsZCIsImRhdGFBY2NvdW50SWQiOiIxMjkiLCJhY2Nlc3NvcnlTZXJpYWxOdW1iZXIiOm51bGwsImFjY2Vzc29yeU51bWJlciI6bnVsbCwidmVudWVUaW1lem9uZSI6IkFtZXJpY2EvQ2hpY2FnbyIsImlhdCI6MTc3MDE1NDc0NiwiZXhwIjoxNzcwMjQxMTQ2fQ.kUteH6mBiali2I8UMWxovcMSrI3P_Pi96px3PKKi8BH34ifkzNfi_lUXXXze_9op7qg1WD1oFSO03piwz0ulxFbyl9p_KboHqRIkzC5cnY2XPgIHsINncCcnOpjTavwUPJhTdyp8dxW85cBb2lt8Dg-7ndE5lFdFJr9XHQtlGRgLAzpTgtrsjYh_jj3badY0q_5isiwFmqkZPQoBKJca86W2kS_6vBgizSXv2cVkQ7FPcUVjY-mGSj9EERyrU6Rqqm4cTvRh9jVrIYKCbrkp2tm2F4uE8SDHJvBAT4NzGG3G7vctxkOlBtjeyU4VZmyQsc3TB2BWP1kn_1Bh3B2u9Q"
}Device Communication Service
- Endpoints for device management and communication
- Includes event retrieval, venue information, and device status updates
- Also includes the Wicket biometric registration endpoints (Verify PAC Token, Set Person ID)
Get Events
Retrieves a list of today's events available for scanning, along with critical configuration data such as barcode masks and NFC encryption keys used for offline validation.
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| Authorization required | string Example: Bearer dGVzdDp0ZXN0 Authorization with Bearer Auth |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| networkType | string or null Enum: "Wifi" "Mobile" "Wired" Device connected to internet. |
| wifiSSID | string or null If connected through Wifi, what is the ssid. |
| wifiBSSID | string or null If connected through Wifi, what is the bssid. |
| wifiChannel | integer or null If connected through Wifi, what is the channel. |
| mobileProvider | string or null If connected through Mobile, what is the provider. |
| networkSignal | string or null Networking signal level on the reader device at the time of scan.
|
| localIPAddress | string or null Local IP address of the device. |
| softwareMode | string or null Enum: "Handheld" "Pedestal" Software mode of the device. |
| accessorySerialNumber | string or null Serial number of the accessory. |
| accessoryFirmware | string or null Firmware version of the accessory. |
| accessoryModel | string or null Model of the accessory. |
| accessoryMake | string or null Maker of the accessory. |
| deviceTimestamp | string <date> Device date time in ISO format. |
Responses
Request samples
- Payload
- curl
{- "networkType": "Wifi",
- "wifiSSID": "string",
- "wifiBSSID": "string",
- "wifiChannel": 0,
- "mobileProvider": "string",
- "networkSignal": "string",
- "localIPAddress": "string",
- "softwareMode": "Handheld",
- "accessorySerialNumber": "string",
- "accessoryFirmware": "string",
- "accessoryModel": "string",
- "accessoryMake": "string",
- "deviceTimestamp": "2019-08-24"
}Response samples
- 200
- 401
- 500
{- "nfcKeys": {
- "apple": [
- {
- "ID": "string",
- "private_key": "string",
- "passTypeId": "string"
}
], - "google": [
- {
- "ID": "string",
- "private_key": "string",
- "collectorId": "string",
- "version": "string"
}
]
}, - "events": [
- {
- "eventName": "Event to test deploy",
- "eventId": "390:DEPLOY:TEST",
- "startDateTime": "2025-01-01T10:00:00",
- "endDateTime": "2025-01-02T10:00:00",
- "scanStartDateTime": "2025-05-01T10:00:00",
- "scanEndDateTime": "2025-07-01T10:00:00",
- "barcodeMasks": [
- "mask1",
- "mask2"
]
}
]
}Get Venues
Retrieves all venues configured for a given dataAccountId. Devices can use this to fetch newly-configured venues not present in the venue profile.
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| API-Authorization-Key required | string The api-authorization-key to identify the client. |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| dataAccountId required | string 3-digit client identifier |
| serialNumber required | string Device serial number |
| make required | string Device maker |
| model required | string Device model |
| networkType | string or null Enum: "Wifi" "Mobile" "Wired" Device connected to internet. |
| wifiSSID | string or null If connected through Wifi, what is the ssid. |
| wifiBSSID | string or null If connected through Wifi, what is the bssid. |
| wifiChannel | integer or null If connected through Wifi, what is the channel. |
| mobileProvider | string or null If connected through Mobile, what is the provider. |
| networkSignal | string or null Networking signal level on the reader device at the time of scan.
|
| localIPAddress | string or null Local IP address of the device. |
| softwareMode | string or null Enum: "Handheld" "Pedestal" Software mode of the device. |
| accessorySerialNumber | string or null Serial number of the accessory. |
| accessoryFirmware | string or null Firmware version of the accessory. |
| accessoryModel | string or null Model of the accessory. |
| accessoryMake | string or null Maker of the accessory. |
| deviceTimestamp | string <date> Device date time in ISO format. |
Responses
Request samples
- Payload
- curl
{- "dataAccountId": "129",
- "serialNumber": "0000000999",
- "make": "Janam",
- "model": "XT3",
- "networkType": "Wifi",
- "wifiSSID": "string",
- "wifiBSSID": "string",
- "wifiChannel": 0,
- "mobileProvider": "string",
- "networkSignal": "string",
- "localIPAddress": "string",
- "softwareMode": "Handheld",
- "accessorySerialNumber": "string",
- "accessoryFirmware": "string",
- "accessoryModel": "string",
- "accessoryMake": "string",
- "deviceTimestamp": "2019-08-24"
}Response samples
- 200
- 400
- 401
- 500
{- "venues": [
- {
- "facilityCode": "AAF",
- "title": "AAF FACILITY",
- "venueTimezone": "America/Los_Angeles"
}
]
}Ping
Verifies connectivity between the device and the Entry API. Often used by the device to test network reachability, API availability, and basic request/response formatting.
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| Authorization required | string Example: Bearer dGVzdDp0ZXN0 Authorization with Bearer Auth |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| geoLocation | string GPS location data from device OS |
| batteryPercentage | number Battery percentage from 0 to 100 |
| accessoryBatteryPercentage | number Accessory battery percentage from 0 to 100 |
| testMode | boolean Default: false If true, the scan will be processed in test mode |
| networkType | string or null Enum: "Wifi" "Mobile" "Wired" Device connected to internet. |
| wifiSSID | string or null If connected through Wifi, what is the ssid. |
| wifiBSSID | string or null If connected through Wifi, what is the bssid. |
| wifiChannel | integer or null If connected through Wifi, what is the channel. |
| mobileProvider | string or null If connected through Mobile, what is the provider. |
| networkSignal | string or null Networking signal level on the reader device at the time of scan.
|
| localIPAddress | string or null Local IP address of the device. |
| softwareMode | string or null Enum: "Handheld" "Pedestal" Software mode of the device. |
| accessorySerialNumber | string or null Serial number of the accessory. |
| accessoryFirmware | string or null Firmware version of the accessory. |
| accessoryModel | string or null Model of the accessory. |
| accessoryMake | string or null Maker of the accessory. |
| deviceTimestamp | string <date> Device date time in ISO format. |
Responses
Request samples
- Payload
- curl
{- "geoLocation": "37.7749,-122.4194",
- "batteryPercentage": "85",
- "accessoryBatteryPercentage": "35",
- "testMode": false,
- "networkType": "Wifi",
- "wifiSSID": "string",
- "wifiBSSID": "string",
- "wifiChannel": 0,
- "mobileProvider": "string",
- "networkSignal": "string",
- "localIPAddress": "string",
- "softwareMode": "Handheld",
- "accessorySerialNumber": "string",
- "accessoryFirmware": "string",
- "accessoryModel": "string",
- "accessoryMake": "string",
- "deviceTimestamp": "2019-08-24"
}Response samples
- 400
- 401
- 500
{- "error": {
- "message": [
- "string"
], - "error": "string",
- "statusCode": 400
}
}Verify PAC Token
Part of the Wicket facial recognition integration. Called by Wicket before registering a patron's facial biometrics, to confirm the PAC token passed to Wicket in the My Account registration redirect was created by Paciolan and has not been tampered with. The transactionId must match the most recent registration transaction, which prevents an old registration link from being replayed.
A 200 response indicates the PAC token was successfully verified (not expired and not tampered with). The response returns the patron's name and email address to streamline their registration with Wicket, plus a redirectUrl for Wicket to send the patron back to after registration is completed.
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| API-Authorization-Key required | string The api-authorization-key to identify the client. |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| pacToken required | string Encrypted PAC token containing the patron's patronId and clientId |
| transactionId required | string Transaction ID issued at registration; must match the value stored when the PAC token was minted. Ensures a registration link cannot be reused. |
Responses
Request samples
- Payload
- curl
{- "pacToken": "AeWkbNsi_OfggC7hRyea-d_3ZlkYEzzQpjQHiLNaAV...",
- "transactionId": "908214712480"
}Response samples
- 200
- 400
- 401
- 500
{- "emailAddress": "john.doe@example.com",
- "firstName": "John",
- "lastName": "Doe",
}Set Person ID
Part of the Wicket facial recognition integration. Webhook called by Wicket once a patron's facial scan registration is complete. Paciolan decrypts the PAC token to recover the patron's identity, then records Wicket's personId and a registration-completed timestamp against the patron's registration.
Returns an empty 200 body. Once the PAC token is verified, this endpoint always returns 200 — Paciolan owns any persistence retries internally, so Wicket should not retry on its own after a 200. Token expiration is not enforced here: by the time this webhook fires, the patron has already completed their facial scan.
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| API-Authorization-Key required | string The api-authorization-key to identify the client. |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| pacToken required | string Encrypted PAC token Paciolan issued during registration; contains the patron's patronId and clientId |
| personId required | string Wicket's identifier for the registered patron |
Responses
Request samples
- Payload
- curl
{- "pacToken": "AT3nFCGsAZARjjbtEFw-39GYwHSrSP3FYRHNvdi1lr...",
- "personId": "wkt_4e1c8b2a"
}Response samples
- 400
- 401
- 500
{- "message": [
- "personId should not be empty"
], - "error": "Bad Request",
- "statusCode": 400
}Scan Service
- Endpoints for ticket validation and lookup
- Handles barcode, NFC, and other ticket scanning operations
- Includes the Wicket facial recognition entry endpoints (Get Tickets, Post Validate)
Validate Scan
Validates a ticket or token scanned at a checkpoint and returns admit/stop status, reason codes, and event/ticket context. This is the primary entry/exit validation endpoint used during live operations.
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| Authorization required | string Example: Bearer dGVzdDp0ZXN0 Authorization with Bearer Auth |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| token required | string Barcode, access id, etc |
| inputType required | string Enum: "NFC" "Barcode" "Key" "Swipe" Method used to read the ticket/token |
| scanMode required | string Enum: "Entry" "Exit" Scanning operation mode |
| nfcType | string Enum: "Apple" "Google" If inputType is NFC, which wallet |
| barcodeType | string Enum: "Barcode" "QRCode" If inputType is barcode, which barcode symbology |
| testMode | boolean Default: false If true, the scan will be processed in test mode |
| networkType | string or null Enum: "Wifi" "Mobile" "Wired" Device connected to internet. |
| wifiSSID | string or null If connected through Wifi, what is the ssid. |
| wifiBSSID | string or null If connected through Wifi, what is the bssid. |
| wifiChannel | integer or null If connected through Wifi, what is the channel. |
| mobileProvider | string or null If connected through Mobile, what is the provider. |
| networkSignal | string or null Networking signal level on the reader device at the time of scan.
|
| localIPAddress | string or null Local IP address of the device. |
| softwareMode | string or null Enum: "Handheld" "Pedestal" Software mode of the device. |
| accessorySerialNumber | string or null Serial number of the accessory. |
| accessoryFirmware | string or null Firmware version of the accessory. |
| accessoryModel | string or null Model of the accessory. |
| accessoryMake | string or null Maker of the accessory. |
| deviceTimestamp | string <date> Device date time in ISO format. |
Responses
Request samples
- Payload
- curl
{- "token": "39000000000001",
- "inputType": "Barcode",
- "scanMode": "Entry",
- "nfcType": "Apple",
- "barcodeType": "Barcode",
- "testMode": false,
- "networkType": "Wifi",
- "wifiSSID": "string",
- "wifiBSSID": "string",
- "wifiChannel": 0,
- "mobileProvider": "string",
- "networkSignal": "string",
- "localIPAddress": "string",
- "softwareMode": "Handheld",
- "accessorySerialNumber": "string",
- "accessoryFirmware": "string",
- "accessoryModel": "string",
- "accessoryMake": "string",
- "deviceTimestamp": "2019-08-24"
}Response samples
- 200
- 400
- 401
- 500
{- "status": "Admit",
- "reasonCode": "OK",
- "reasonMessage": "Good Ticket",
- "eventId": "390:DEPLOY:TEST",
- "eventName": "Event to test deploy",
- "token": "39000000000001",
- "ticket": "TBD",
- "patronId": "3773396",
- "firstName": "John",
- "lastName": "Doe",
- "testMode": false,
- "seatInfo": {
- "level": "UPPER",
- "section": "05",
- "row": "6",
- "seat": "7",
- "altSeatLocationText": "Alternate Seat Location"
}
}Ticket Lookup
Performs a lookup of ticket details using a token or barcode, often used by support or admin tools. Returns full ticket info, seating details, and scan history for troubleshooting purposes.
path Parameters
| barcode required | string The ticket token to look up |
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| Authorization required | string Example: Bearer dGVzdDp0ZXN0 Authorization with Bearer Auth |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| inputType | string Enum: "NFC" "Barcode" "Key" "Swipe" Method used to read the ticket/token |
| nfcType | string Enum: "Apple" "Google" If inputType is NFC, which wallet |
| barcodeType | string Enum: "Barcode" "QRCode" If inputType is barcode, which barcode symbology |
| networkType | string or null Enum: "Wifi" "Mobile" "Wired" Device connected to internet. |
| wifiSSID | string or null If connected through Wifi, what is the ssid. |
| wifiBSSID | string or null If connected through Wifi, what is the bssid. |
| wifiChannel | integer or null If connected through Wifi, what is the channel. |
| mobileProvider | string or null If connected through Mobile, what is the provider. |
| networkSignal | string or null Networking signal level on the reader device at the time of scan.
|
| localIPAddress | string or null Local IP address of the device. |
| softwareMode | string or null Enum: "Handheld" "Pedestal" Software mode of the device. |
| accessorySerialNumber | string or null Serial number of the accessory. |
| accessoryFirmware | string or null Firmware version of the accessory. |
| accessoryModel | string or null Model of the accessory. |
| accessoryMake | string or null Maker of the accessory. |
| deviceTimestamp | string <date> Device date time in ISO format. |
Responses
Request samples
- Payload
- curl
{- "inputType": "Barcode",
- "nfcType": "Apple",
- "barcodeType": "Barcode",
- "networkType": "Wifi",
- "wifiSSID": "string",
- "wifiBSSID": "string",
- "wifiChannel": 0,
- "mobileProvider": "string",
- "networkSignal": "string",
- "localIPAddress": "string",
- "softwareMode": "Handheld",
- "accessorySerialNumber": "string",
- "accessoryFirmware": "string",
- "accessoryModel": "string",
- "accessoryMake": "string",
- "deviceTimestamp": "2019-08-24"
}Response samples
- 200
- 400
- 401
- 404
- 500
{- "eventId": "390:DEPLOY:TEST",
- "eventName": "Event to test deploy",
- "eventStartDateTime": "2025-01-01T10:00:00",
- "eventEndDateTime": "2025-01-02T10:00:00",
- "venue": {
- "name": "Titan Stadium",
- "code": "TS"
}, - "offset": "-08:00",
- "timeZone": "America/Los_Angeles",
- "token": "39000000000001",
- "ticket": "39000000000001",
- "patronId": "3773396",
- "firstName": "John",
- "lastName": "Doe",
- "seatInfo": {
- "level": "UPPER",
- "section": "05",
- "row": "6",
- "seat": "7",
- "altSeatLocationText": "Alternate Seat Location"
}, - "scanHistory": [
- {
- "deviceType": "handheld",
- "serialNumber": "123456789",
- "checkpointName": "Gate A",
- "reasonMessage": "Scan is valid",
- "barcodeType": "Barcode",
- "scanMode": "Entry",
- "testMode": false,
- "deviceNumber": 6,
- "deviceName": "Device for deploy validation",
- "checkpointLayoutName": "Layout for deploy validation",
- "venueName": "Titan Stadium",
- "nfcType": "Apple",
- "specialAreaName": "string",
- "checkpointLayoutCode": "CL.1",
- "scanTimestamp": "2025-05-19T10:00:00Z",
- "venueCode": "TS",
- "inputType": "Barcode",
- "reasonCode": "OK",
- "tokenType": "Barcode",
- "status": "Admit",
- "accessorySerialNumber": "123456789",
- "accessoryMake": "123456789",
- "accessoryModel": "Model X",
- "accessoryFirmware": "1.0.0",
- "deviceStatus": "Online",
- "softwareMode": "Handheld"
}
]
}Offline Scan Upload
Upload scan data collected while offline.
When the device is back online after a network issue, it notifies the server of the tickets that were scanned. The request payload is limited to 100 scans per request.
Path format: eventId => {dataAccountId:seasonCd:eventCd}
Note: The request payload must be raw gzip binary (not base64-encoded) for API Gateway to decompress correctly.
Creating the gzip file (example):
- Save the JSON array to
payload.json - Run:
gzip -c payload.json > payload.json.gz - Upload using curl
--data-binary @payload.json.gzwithContent-Encoding: gzip
path Parameters
| eventId required | string Event identifier in the format {dataAccountId:seasonCd:eventCd} Example: 111:AB:A1 |
header Parameters
| API-Authorization-Key required | string Unique per vendor. Used to authorize this endpoint (devices may not have a JWT yet). |
| PAC-Request-ID | string Integrator external request ID for traceability. If not provided, it will be automatically generated. |
| Content-Type required | string Default: application/json Payload content type (the gzipped content represents JSON). |
| Content-Encoding required | string Default: gzip Must be gzip. |
| Filename required | string Filename identifier in the format {serialNumber_timestamp} |
Request Body schema: application/json
Raw gzip-compressed binary containing a JSON payload (array of offline scan batches).
Responses
Request samples
- Payload
- curl
[- {
- "serialNumber": "123456789",
- "dataAccountId": "111",
- "venueCd": "XYZ",
- "deviceStatus": "Offline",
- "scanMode": "Entry",
- "eventId": "111:AB:A1",
- "eventStartDate": "2025-12-17T13:00:00",
- "eventEndDate": "2025-12-18T02:30:00",
- "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.jwtA...",
- "scans": [
- {
- "token": "ABC123456789",
- "status": "Admit",
- "scanTimestamp": "2025-10-02T18:32:45-05:00",
- "deviceTimestamp": "2025-10-02T18:32:45-05:00",
- "inputType": "Barcode",
- "barcodeType": "Barcode"
}, - {
- "token": "XYZ987654321",
- "status": "Stop",
- "scanTimestamp": "2025-10-02T18:32:45-05:00",
- "deviceTimestamp": "2025-10-02T18:32:45-05:00",
- "inputType": "NFC",
- "nfcType": "Apple"
}
]
}, - {
- "serialNumber": "123456789",
- "dataAccountId": "111",
- "venueCd": "ABC",
- "deviceStatus": "Offline",
- "scanMode": "Entry",
- "eventId": "111:AB:A1",
- "eventStartDate": "2025-12-17T13:00:00",
- "eventEndDate": "2025-12-18T02:30:00",
- "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.jwtB...",
- "scans": [
- {
- "token": "LMN456789012",
- "status": "Admit",
- "scanTimestamp": "2025-10-02T18:32:45-05:00",
- "deviceTimestamp": "2025-10-02T18:32:45-05:00",
- "inputType": "NFC",
- "nfcType": "Google"
}
]
}
]Response samples
- 200
- 400
- 500
{- "message": "Entry Offline Scan - Upload to S3 bucket entry-offline-scans successful at incoming/390/HUSKERS/LARGESCANTESTNFC/2026-02-13/1205243_feb_13_timestamp_here_11_07_am.json"
}Get Tickets
Part of the Wicket facial recognition integration. Called by Wicket after identifying a patron via facial recognition and resolving their PAC token. Returns all valid tickets for the patron at the current venue and time, grouped by event and sorted by closest scan start time.
Tickets are validated through the rules engine (correct event, correct gate, not already used, etc.) before being returned — only tickets that would be admitted are included. Wicket displays these tickets to the patron so they can select which one(s) to use for entry.
Requires a session created with the standard Create Session flow (sessions created with Create Session (Lite) cannot call this endpoint).
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| Authorization required | string Example: Bearer dGVzdDp0ZXN0 Authorization with Bearer Auth |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| pacToken required | string Encrypted PAC token identifying the patron. Contains the patron's patronId and clientId |
| networkType | string or null Enum: "Wifi" "Mobile" "Wired" Device connected to internet. |
| wifiSSID | string or null If connected through Wifi, what is the ssid. |
| wifiBSSID | string or null If connected through Wifi, what is the bssid. |
| wifiChannel | integer or null If connected through Wifi, what is the channel. |
| mobileProvider | string or null If connected through Mobile, what is the provider. |
| networkSignal | string or null Networking signal level on the reader device at the time of scan.
|
| localIPAddress | string or null Local IP address of the device. |
| softwareMode | string or null Enum: "Handheld" "Pedestal" Software mode of the device. |
| accessorySerialNumber | string or null Serial number of the accessory. |
| accessoryFirmware | string or null Firmware version of the accessory. |
| accessoryModel | string or null Model of the accessory. |
| accessoryMake | string or null Maker of the accessory. |
| deviceTimestamp | string <date> Device date time in ISO format. |
Responses
Request samples
- Payload
- curl
{- "pacToken": "AdtRrQu70IiuyX70RY4T-2WNeJ0WagUG8aN7O8jnfe...",
- "networkType": "Wifi",
- "wifiSSID": "string",
- "wifiBSSID": "string",
- "wifiChannel": 0,
- "mobileProvider": "string",
- "networkSignal": "string",
- "localIPAddress": "string",
- "softwareMode": "Handheld",
- "accessorySerialNumber": "string",
- "accessoryFirmware": "string",
- "accessoryModel": "string",
- "accessoryMake": "string",
- "deviceTimestamp": "2019-08-24"
}Response samples
- 200
- 400
- 401
- 404
- 422
- 500
{- "events": [
- {
- "eventId": "129:HUSKERS:BT01",
- "eventName": "Football vs. State University",
- "eventStartDateTime": "2026-03-23T19:00:00-07:00",
- "eventEndDateTime": "2026-03-23T22:00:00-07:00",
- "tickets": [
- {
- "barcode": "1234567890123456",
- "seatBlock": "13:11:1:23"
}
]
}
]
}Post Validate
Part of the Wicket facial recognition integration. Called by Wicket after a patron selects a ticket and is granted entry via facial recognition. Records the entry in scan history so the patron cannot re-enter the venue via barcode or NFC scanning.
No validation is performed — the tickets were already validated during the Get Tickets call. The scanTimestamp is used for idempotency: if this call is retried, barcodes whose scan history already contains that exact timestamp are skipped so entries are not double-recorded.
Requires a session created with the standard Create Session flow (sessions created with Create Session (Lite) cannot call this endpoint).
header Parameters
| PAC-Request-Id | string The integrator's external request ID for support traceablility and issue debugging. |
| Authorization required | string Example: Bearer dGVzdDp0ZXN0 Authorization with Bearer Auth |
| Content-Type required | string Default: application/json The only supported request type for this endpoint is application/json. |
Request Body schema: application/json
| pacToken required | string Encrypted PAC token identifying the patron. Contains the patron's patronId and clientId | ||||
required | Array of objects Tickets the patron is using to enter, each with its barcode and seat block | ||||
Array
| |||||
| eventId required | string Event identifier (daId:seasonCd:eventCd) for the event the patron is entering. All tickets share this event. | ||||
| eventName required | string Display name of the event | ||||
| eventStartDateTime required | string <date-time> Event start time | ||||
| eventEndDateTime required | string <date-time> Event end time | ||||
| scanTimestamp required | string <date-time> ISO 8601 timestamp of the scan event. Used for idempotency — retries sending the same | ||||
| firstName | string Patron's first name | ||||
| lastName | string Patron's last name | ||||
| networkType | string or null Enum: "Wifi" "Mobile" "Wired" Device connected to internet. | ||||
| wifiSSID | string or null If connected through Wifi, what is the ssid. | ||||
| wifiBSSID | string or null If connected through Wifi, what is the bssid. | ||||
| wifiChannel | integer or null If connected through Wifi, what is the channel. | ||||
| mobileProvider | string or null If connected through Mobile, what is the provider. | ||||
| networkSignal | string or null Networking signal level on the reader device at the time of scan.
| ||||
| localIPAddress | string or null Local IP address of the device. | ||||
| softwareMode | string or null Enum: "Handheld" "Pedestal" Software mode of the device. | ||||
| accessorySerialNumber | string or null Serial number of the accessory. | ||||
| accessoryFirmware | string or null Firmware version of the accessory. | ||||
| accessoryModel | string or null Model of the accessory. | ||||
| accessoryMake | string or null Maker of the accessory. | ||||
| deviceTimestamp | string <date> Device date time in ISO format. | ||||
Responses
Request samples
- Payload
- curl
{- "pacToken": "AdtRrQu70IiuyX70RY4T-2WNeJ0WagUG8aN7O8jnfe...",
- "tickets": [
- {
- "barcode": "1234567890123456",
- "seatBlock": "13:11:1:23"
}
], - "eventId": "129:HUSKERS:F100",
- "eventName": "Football vs. State University",
- "eventStartDateTime": "2026-03-23T19:00:00",
- "eventEndDateTime": "2026-03-23T22:00:00",
- "scanTimestamp": "2026-03-23T20:11:23-07:00",
- "firstName": "John",
- "lastName": "Doe",
- "networkType": "Wifi",
- "wifiSSID": "string",
- "wifiBSSID": "string",
- "wifiChannel": 0,
- "mobileProvider": "string",
- "networkSignal": "string",
- "localIPAddress": "string",
- "softwareMode": "Handheld",
- "accessorySerialNumber": "string",
- "accessoryFirmware": "string",
- "accessoryModel": "string",
- "accessoryMake": "string",
- "deviceTimestamp": "2019-08-24"
}Response samples
- 200
- 400
- 401
- 500
{- "message": "Entry recorded for [1234567890123456, 1234567890123457]"
}