Validate Passes
You can use Passcreator to keep track of and analyze the Scans of passes that usually happen at the POS system (if you're using Coupons) or at the entrance of an event (if you're using tickets).
Overview
The concept in general is that you define an App Configuration in the Passcreator online application that defines what pass template should be validated and what should happen after a pass has been scanned. There are two scan modes available: voiding passes after scanning, or saving attendance without voiding.
Using an App Configuration you can create App Scans. An App Scan is always tied to an App Configuration and represents a single event (=the Scan happened). You can save App Scans no matter if they have been valid. Passcreator is also able to store Scans of unknown pass IDs.
This concept is also used inside the Passcreator Companion App to validate passes. You should first read a list of App Configurations that have been created in the Passcreator online application. After you know what App Configuration should be used (because the user or you've selected it) you can submit App Scans to the Passcreator system.
List App Configurations
Returns a list of all App Configurations that have been created for the current account.
URL Parameters
This endpoint has no path or query parameters.
Example URL
Request URL
https://app.passcreator.com/api/appconfiguration
Authorization
- Name
Authorization- Type
- string
- (mandatory)
- Description
HTTP Authorization Header that contains your API key. Replace yourApiKeyHere in the example with your actual API key.
Example HTTP Header
HTTP header with authorization
GET /api/appconfiguration HTTP/1.1
Host: app.passcreator.com
Authorization: yourApiKeyHere
Returned Values
Returns a JSON-Array of App Configuration objects.
- Name
name- Type
- string
- (mandatory)
- Description
The name of the App Configuration.
- Name
configurationId- Type
- string
- (mandatory)
- Description
The unique ID (UUID) of the App Configuration.
- Name
passTemplateId- Type
- string | null
- (mandatory)
- Description
The unique ID of the Pass Template whose passes should be validated. If the ID is null, all passes will be validated, no matter which Pass Template has been used to create them.
- Name
passTemplateIds- Type
- array | null
- (mandatory)
- Description
Array of Pass Template IDs if multiple templates are assigned. If passTemplatedIDs is defined, passTemplateId will be ignored.
- Name
passTemplateName- Type
- string | null
- (mandatory)
- Description
The name of the Pass Template. Can be null if all passes should be validated.
- Name
createdOn- Type
- string
- (mandatory)
- Description
The date and time the configuration was created (customer timezone). Format: Y-m-d H:i:s
- Name
createdOnUtc- Type
- string
- (mandatory)
- Description
The date and time the configuration was created in UTC timezone. Format: Y-m-d H:i:s
- Name
scanMode- Type
- integer
- (mandatory)
- Description
Defines the validation behavior after a pass has been scanned:
- 0: Pass is voided after scan
- 1: Scan only notes attendance without voiding the pass
- Name
place- Type
- string
- (mandatory)
- Description
The place that has been specified in the App Configuration. Can be e.g. a room at your venue.
- Name
additionalProperties- Type
- array<object>
- (mandatory)
- Description
An array of additonal properties that should be asked for if a pass is scanned. The ID and the value the user has specified should be submitted when creating App Scans.
- Name
backgroundColor- Type
- string | null
- (mandatory)
- Description
Background color for the validation web app interface (hex color code).
- Name
textColor- Type
- string | null
- (mandatory)
- Description
Text color for the validation web app interface (hex color code).
- Name
timeToShowAutoSaveConfirmation- Type
- integer
- (mandatory)
- Description
Time in seconds to show the auto-save confirmation message.
- Name
type- Type
- integer
- (mandatory)
- Description
Configuration type:
- 0: App
- 1: URL
- Name
preventNegativeNumericValues- Type
- boolean
- (mandatory)
- Description
Whether negative numeric values are prevented in additional properties.
- Name
preventNegativeStoredValueBalance- Type
- boolean
- (mandatory)
- Description
Whether negative stored value balance is prevented during validation.
- Name
appConfigurationLinks- Type
- array<object>
- (mandatory)
- Description
Array of related App Configuration links and references.
- Name
appConfigurationLinks[].identifier- Type
- string
- (mandatory)
- Description
The unique ID (UUID) of the configuration link.
- Name
appConfigurationLinks[].branchLink- Type
- string
- (mandatory)
- Description
The deep link URL for configuring the validation app.
- Name
appConfigurationLinks[].canChangeConfig- Type
- boolean
- (mandatory)
- Description
Whether the configuration can be changed via this link.
- Name
appConfigurationLinks[].createdOn- Type
- string
- (mandatory)
- Description
The date and time the link was created. Format: Y-m-d H:i:s
- Name
appConfigurationLinks[].expired- Type
- boolean
- (mandatory)
- Description
Whether the configuration link has expired.
- Name
appConfigurationLinks[].unlockPin- Type
- string
- (mandatory)
- Description
The PIN code required to use this configuration link if it has expired.
- Name
appConfigurationLinks[].usedOn- Type
- string | null
- (mandatory)
- Description
The date and time when the link was last used. null if never used.
- Name
appConfigurationLinks[].expirationDate- Type
- string
- (mandatory)
- Description
The date and time when the link expires. Format: Y-m-d H:i:s
- Name
appConfigurationLinks[].isValid- Type
- boolean
- (mandatory)
- Description
Whether the link is currently valid (not expired).
- Name
appConfigurationLinks[].validTo- Type
- string
- (mandatory)
- Description
The date and time until when the link is valid. Format: Y-m-d H:i:s.
Example Response
Success Response
[
{
"name": "Example configuration",
"configurationId": "098b099f-4ec2-4281-bd08-d3cec64642ef",
"passTemplateId": null,
"passTemplateIds": null,
"passTemplateName": null,
"createdOn": "2025-11-12 16:06:09",
"createdOnUtc": "2025-11-12 16:06:09",
"scanMode": 1,
"place": "",
"validValidationPlaces": null,
"additionalProperties": [
{
"type": "boolean",
"name": "Allowed to send marketing mails?",
"id": 0
},
{
"type": "unicode",
"name": "Tell us about you",
"id": 1
},
{
"type": "double",
"name": "Transaction value",
"id": 2
}
],
"backgroundColor": null,
"textColor": null,
"timeToShowAutoSaveConfirmation": 5,
"type": 0,
"preventNegativeNumericValues": false,
"preventNegativeStoredValueBalance": false,
"appConfigurationLinks": [
{
"identifier": "b7df61cd-3ead-4379-8a94-e192c87096ff",
"branchLink": "https://example.test-app.link/CSYw9rjTeYb",
"canChangeConfig": false,
"createdOn": "2025-11-12 16:06:09",
"expired": false,
"unlockPin": "066969",
"usedOn": null,
"expirationDate": "2025-11-12 18:06:09",
"isValid": true,
"validTo": "2025-11-12 18:06:09"
}
]
},
{
"name": "Second example configuration",
"configurationId": "e5c9eee4-038b-41e1-acac-e0edb344c993",
"passTemplateId": null,
"passTemplateIds": null,
"passTemplateName": null,
"createdOn": "2025-01-03 09:33:15",
"createdOnUtc": "2025-01-03 09:33:15",
"scanMode": 0,
"place": "Room 1",
"validValidationPlaces": null,
"additionalProperties": [],
"backgroundColor": null,
"textColor": null,
"timeToShowAutoSaveConfirmation": 5,
"type": 0,
"preventNegativeNumericValues": false,
"preventNegativeStoredValueBalance": false,
"appConfigurationLinks": []
}
]
Response Status Codes
- Name
200- Type
- integer
- (mandatory)
- Description
Success - Returns the list of App Configurations.
- Name
401- Type
- integer
- (mandatory)
- Description
Unauthorized - Invalid or missing API key.
Usage Notes
The configurations returned are those accessible to your API key based on your account permissions.
Get Information About an App Configuration
Returns information about the App Configuration specified by its identifier.
Path Parameters
- Name
identifier- Type
- string
- (mandatory)
- Description
The unique identifier (UUID) of the App Configuration. Replace {identifier} in the URL with your actual App Configuration UUID.
Example URL
Request URL
https://app.passcreator.com/api/appconfiguration/d0a467cf-391a-4b89-a00e-dc57a56d7b7b
Authorization
- Name
Authorization- Type
- string
- (mandatory)
- Description
HTTP Authorization Header that contains your API key. Replace yourApiKeyHere in the example with your actual API key.
Example HTTP Header
HTTP header
GET /api/appconfiguration/{identifier} HTTP/1.1
Host: app.passcreator.com
Authorization: yourApiKeyHere
Returned Values
Returns a single App Configuration object.
- Name
name- Type
- string
- (mandatory)
- Description
The name of the App Configuration.
- Name
configurationId- Type
- string
- (mandatory)
- Description
The unique ID (UUID) of the App Configuration.
- Name
passTemplateId- Type
- string | null
- (mandatory)
- Description
The unique ID of the Pass Template whose passes should be validated. If the ID is null, all passes will be validated, no matter which Pass Template has been used to create them.
- Name
passTemplateIds- Type
- array | null
- (mandatory)
- Description
Array of Pass Template IDs if multiple templates are assigned.
- Name
passTemplateName- Type
- string | null
- (mandatory)
- Description
The name of the Pass Template. Can be null if all passes should be validated.
- Name
createdOn- Type
- string
- (mandatory)
- Description
The date and time the configuration was created (customer timezone). Format: Y-m-d H:i:s
- Name
createdOnUtc- Type
- string
- (mandatory)
- Description
The date and time the configuration was created in UTC timezone. Format: Y-m-d H:i:s
- Name
scanMode- Type
- integer
- (mandatory)
- Description
Defines the validation behavior after a pass has been scanned:
- 0: Pass is voided after scan
- 1: Scan only notes attendance without voiding the pass
- Name
place- Type
- string
- (mandatory)
- Description
The place that has been specified in the App Configuration. Can be e.g. a room at your venue.
- Name
validValidationPlaces- Type
- array | null
- (mandatory)
- Description
Array of validation places that are valid for this App Configuration.
- Name
additionalProperties- Type
- array<object>
- (mandatory)
- Description
An array of additonal properties that should be asked for if a pass is scanned. The ID and the value the user has specified should be submitted when creating App Scans.
- Name
backgroundColor- Type
- string | null
- (mandatory)
- Description
Background color for the validation web app interface (hex color code).
- Name
textColor- Type
- string | null
- (mandatory)
- Description
Text color for the validation web app interface (hex color code).
- Name
timeToShowAutoSaveConfirmation- Type
- integer
- (mandatory)
- Description
Time in seconds to show the auto-save confirmation message.
- Name
type- Type
- integer
- (mandatory)
- Description
Configuration type:
- 0: App
- 1: URL
- Name
preventNegativeNumericValues- Type
- boolean
- (mandatory)
- Description
Whether negative numeric values are prevented in additional properties.
- Name
preventNegativeStoredValueBalance- Type
- boolean
- (mandatory)
- Description
Whether negative stored value balance is prevented during validation.
- Name
appConfigurationLinks- Type
- array<object>
- (mandatory)
- Description
Array of related App Configuration links and references.
- Name
appConfigurationLinks[].identifier- Type
- string
- (mandatory)
- Description
The unique ID (UUID) of the configuration link.
- Name
appConfigurationLinks[].branchLink- Type
- string
- (mandatory)
- Description
The deep link URL for configuring the validation app.
- Name
appConfigurationLinks[].canChangeConfig- Type
- boolean
- (mandatory)
- Description
Whether the configuration can be changed via this link.
- Name
appConfigurationLinks[].createdOn- Type
- string
- (mandatory)
- Description
The date and time the link was created. Format: Y-m-d H:i:s
- Name
appConfigurationLinks[].expired- Type
- boolean
- (mandatory)
- Description
Whether the configuration link has expired.
- Name
appConfigurationLinks[].unlockPin- Type
- string
- (mandatory)
- Description
The PIN code required to use this configuration link if it is expired.
- Name
appConfigurationLinks[].usedOn- Type
- string | null
- (mandatory)
- Description
The date and time when the link was last used. null if never used.
- Name
appConfigurationLinks[].expirationDate- Type
- string
- (mandatory)
- Description
The date and time when the link expires. Format: Y-m-d H:i:s
- Name
appConfigurationLinks[].isValid- Type
- boolean
- (mandatory)
- Description
Whether the link is currently valid (not expired).
- Name
appConfigurationLinks[].validTo- Type
- string
- (mandatory)
- Description
The date and time until when the link is valid. Format: Y-m-d H:i:s
Example Response
Success Response
{
"name": "Example configuration",
"configurationId": "098b099f-4ec2-4281-bd08-d3cec64642ef",
"passTemplateId": null,
"passTemplateIds": null,
"passTemplateName": null,
"createdOn": "2025-11-12 16:06:09",
"createdOnUtc": "2025-11-12 16:06:09",
"scanMode": 1,
"place": "",
"validValidationPlaces": null,
"additionalProperties": [
{
"type": "boolean",
"name": "Allowed to send marketing mails?",
"id": 0
},
{
"type": "unicode",
"name": "Tell us about you",
"id": 1
},
{
"type": "double",
"name": "Transaction value",
"id": 2
}
],
"backgroundColor": null,
"textColor": null,
"timeToShowAutoSaveConfirmation": 5,
"type": 0,
"preventNegativeNumericValues": false,
"preventNegativeStoredValueBalance": false,
"appConfigurationLinks": [
{
"identifier": "b7df61cd-3ead-4379-8a94-e192c87096ff",
"branchLink": "https://example.test-app.link/CSYw9rjTeYb",
"canChangeConfig": false,
"createdOn": "2025-11-12 16:06:09",
"expired": false,
"unlockPin": "066969",
"usedOn": null,
"expirationDate": "2025-11-12 18:06:09",
"isValid": true,
"validTo": "2025-11-12 18:06:09"
}
]
}
Response Status Codes
- Name
200- Type
- integer
- (mandatory)
- Description
Success - Returns the App Configuration.
- Name
401- Type
- integer
- (mandatory)
- Description
Unauthorized - Invalid or missing API key.
- Name
404- Type
- integer
- (mandatory)
- Description
Not Found - App Configuration with the specified identifier does not exist.
Usage Notes
Use this endpoint to retrieve detailed information about a specific App Configuration, including its validation rules and additional properties.
Create an App Configuration
Creates a new App Configuration.
URL Parameters
This endpoint has no path or query parameters.
Example URL
Request URL
https://app.passcreator.com/api/appconfiguration
Authorization
- Name
Authorization- Type
- string
- (mandatory)
- Description
HTTP Authorization Header that contains your API key. Replace yourApiKeyHere in the example with your actual API key.
Example HTTP Header
HTTP header
POST /api/appconfiguration HTTP/1.1
Host: app.passcreator.com
Authorization: yourApiKeyHere
Content-Type: application/json
Request Body
- Name
name- Type
- string
- (mandatory)
- Description
The name of the App Configuration.
- Name
scanMode- Type
- integer
- (mandatory)
- Description
Defines the validation behavior after a pass has been scanned:
- 0: Pass is voided after scan
- 1: Scan only notes attendance without voiding the pass
- Name
passTemplateId- Type
- string | null
- (optional)
- Description
The unique ID (UUID) of the Pass Template whose passes should be validated. If not provided, set to null, or set to an empty string, all passes will be validated regardless of which Pass Template was used to create them.
- Name
type- Type
- integer
- (optional)
- Description
Default: 0 (App)
Configuration type:- 0: App
- 1: URL
If not provided or invalid value, will default to 0.
- Name
place- Type
- string
- (optional)
- Description
Default: empty string
The place that has been specified in the App Configuration. Can be e.g. a room at your venue.
- Name
backgroundColor- Type
- string | null
- (optional)
- Description
Background color for the validation web app interface (hex color code).
- Name
textColor- Type
- string | null
- (optional)
- Description
Text color for the validation web app interface (hex color code).
- Name
additionalProperties- Type
- array<object>
- (optional)
- Description
An array of additonal properties that should be asked for if a pass is scanned. The ID and the value the user has specified should be submitted when creating App Scans. A valid additional property always consists of two parameters: the name of the property and the type. Currently supported types are unicode (text values), double (numeric values) and boolean.
- Name
showStoredValue- Type
- boolean
- (optional)
- Description
Whether to show the stored value during scanning.
- Name
incrementStoredValue- Type
- boolean
- (optional)
- Description
Whether to allow incrementing the stored value during scanning.
- Name
preventNegativeNumericValues- Type
- boolean
- (optional)
- Description
Whether to prevent negative numeric values in additional properties during scanning.
- Name
preventNegativeStoredValueBalance- Type
- boolean
- (optional)
- Description
Whether to prevent the stored value balance from going negative during scanning.
Example Request
Request body
{
"name": "Example configuration",
"passTemplateId": "",
"scanMode": 1,
"additionalProperties": [
{
"type": "boolean",
"name": "Allowed to send marketing mails?"
},
{
"type": "unicode",
"name": "Tell us about you"
},
{
"type": "double",
"name": "Transaction value"
}
]
}
Returned Values
Returns the created App Configuration with additional system-generated fields.
- Name
configuration- Type
- array<object>
- (mandatory)
- Description
An array containing the created configuration object.
- Name
configuration[].name- Type
- string
- (mandatory)
- Description
The name of the App Configuration.
- Name
configuration[].configurationId- Type
- string
- (mandatory)
- Description
The unique ID (UUID) of the created App Configuration.
- Name
configuration[].passTemplateId- Type
- string | null
- (mandatory)
- Description
The unique ID of the Pass Template whose passes should be validated. null if all passes are validated.
- Name
configuration[].passTemplateIds- Type
- array | null
- (mandatory)
- Description
Array of Pass Template IDs if multiple templates are assigned.
- Name
configuration[].passTemplateName- Type
- string | null
- (mandatory)
- Description
The name of the Pass Template. null if all passes are validated.
- Name
configuration[].createdOn- Type
- string
- (mandatory)
- Description
The date and time the configuration was created (customer timezone). Format: Y-m-d H:i:s
- Name
configuration[].createdOnUtc- Type
- string
- (mandatory)
- Description
The date and time the configuration was created in UTC timezone. Format: Y-m-d H:i:s
- Name
configuration[].scanMode- Type
- integer
- (mandatory)
- Description
Defines the validation behavior after a pass has been scanned:
- 0: Pass is voided after scan
- 1: Scan only notes attendance without voiding the pass
- Name
configuration[].place- Type
- string
- (mandatory)
- Description
The place specified in the App Configuration (e.g., a room at your venue).
- Name
configuration[].validValidationPlaces- Type
- array | null
- (mandatory)
- Description
Array of validation places that are valid for this App Configuration.
- Name
configuration[].additionalProperties- Type
- array<object>
- (mandatory)
- Description
An array of additional properties that should be asked for if a pass is scanned. Each property has been assigned a system-generated id. The ID and the value the user has specified should be submitted when creating App Scans.
- Name
configuration[].backgroundColor- Type
- string | null
- (mandatory)
- Description
Background color for the validation web app interface (hex color code).
- Name
configuration[].textColor- Type
- string | null
- (mandatory)
- Description
Text color for the validation web app interface (hex color code).
- Name
configuration[].timeToShowAutoSaveConfirmation- Type
- integer
- (mandatory)
- Description
Time in seconds to show the auto-save confirmation message.
- Name
configuration[].type- Type
- integer
- (mandatory)
- Description
Configuration type:
- 0: App
- 1: URL
- Name
configuration[].preventNegativeNumericValues- Type
- boolean
- (mandatory)
- Description
Whether negative numeric values are prevented in additional properties.
- Name
configuration[].preventNegativeStoredValueBalance- Type
- boolean
- (mandatory)
- Description
Whether negative stored value balance is prevented during validation.
- Name
configuration[].appConfigurationLinks- Type
- array
- (mandatory)
- Description
Array of related App Configuration links and references.
- Name
configurationLink- Type
- string
- (mandatory)
- Description
A configuration link is automatically created that can be used to configure the app.
- Name
configurationLinkId- Type
- string
- (mandatory)
- Description
The unique ID (UUID) of the configuration link.
- Name
validTo- Type
- string
- (mandatory)
- Description
The date and time until when the configuration link is valid (customer timezone). Format: Y-m-d H:i:s
- Name
validToUtc- Type
- string
- (mandatory)
- Description
The date and time until when the configuration link is valid in UTC timezone. Format: Y-m-d H:i:s
Example Response
Success Response
{
"configuration": [
{
"name": "Example configuration",
"configurationId": "be0937ca-3bac-40b9-b189-45ec70e0cbe5",
"passTemplateId": null,
"passTemplateIds": null,
"passTemplateName": null,
"createdOn": "2025-11-12 16:06:09",
"createdOnUtc": "2025-11-12 16:06:09",
"scanMode": 1,
"place": "",
"validValidationPlaces": null,
"additionalProperties": [
{
"type": "boolean",
"name": "Allowed to send marketing mails?",
"id": 0
},
{
"type": "unicode",
"name": "Tell us about you",
"id": 1
},
{
"type": "double",
"name": "Transaction value",
"id": 2
}
],
"backgroundColor": null,
"textColor": null,
"timeToShowAutoSaveConfirmation": 5,
"type": 0,
"preventNegativeNumericValues": false,
"preventNegativeStoredValueBalance": false,
"appConfigurationLinks": []
}
],
"configurationLink": "https://example.test-app.link/CSYw9rjTeYb",
"configurationLinkId": "b7df61cd-3ead-4379-8a94-e192c87096ff",
"validTo": "2025-11-12 18:06:09",
"validToUtc": "2025-11-12 18:06:09"
}
Response Status Codes
- Name
200- Type
- integer
- (mandatory)
- Description
Success - App Configuration created successfully.
- Name
400- Type
- integer
- (mandatory)
- Description
Bad Request - Invalid input parameters.
- Name
401- Type
- integer
- (mandatory)
- Description
Unauthorized - Invalid or missing API key.
Usage Notes
Additional properties allow you to collect custom data during the scanning process. Each property has a type (unicode, double, or boolean) and a name. The system will automatically assign an ID to each property which should be used when creating App Scans.
List App Scans (Paginated)
Returns a list of all scans based on the given criteria ordered by created on date starting at the given index (start-parameter). The pageSize defines how many results you'll get with one request.
You can optionally use the createdSince parameter to only return scans that have been created or modified since the given date.
Path Parameters
- Name
appConfigurationId- Type
- string
- (optional)
- Description
The ID of the app configuration you want to get scans for. If not specified, returns scans for all configurations.
Query Parameters
- Name
start- Type
- integer
- (optional)
- Description
Default: 0
The offset where the query should start.
- Name
pageSize- Type
- integer
- (optional)
- Description
Default: 100, maximum: 100
The number of results per query.
- Name
createdSince- Type
- string
- (optional)
- Description
A date in the format Y-m-d H:i (e.g. 2021-07-01 15:30). If set, the result set will only include scans that have been created at or after that date and time.
Example URL
Request URL
https://app.passcreator.com/api/appscan/list/74019cd8-f8e1-4ca5-a366-7c64d494cf2f?start=0&pageSize=100
With date filter
https://app.passcreator.com/api/appscan/list/74019cd8-f8e1-4ca5-a366-7c64d494cf2f?createdSince=2017-05-01%2020:55:00&start=0&pageSize=100
Authorization
- Name
Authorization- Type
- string
- (mandatory)
- Description
HTTP Authorization Header that contains your API key. Replace yourApiKeyHere in the example with your actual API key.
Example HTTP Header
HTTP header
GET /api/appscan/list/{appConfigurationId}?start=0&pageSize=100 HTTP/1.1
Host: app.passcreator.com
Authorization: yourApiKeyHere
Returned Values
JSON-Array containing an information about the query and the results (these are the actual scans).
- Name
query- Type
- object
- (mandatory)
- Description
Information about the current query.
- Name
query.start- Type
- integer
- (mandatory)
- Description
Default: 0
The start parameter you've specified.
- Name
query.pageSize- Type
- integer
- (mandatory)
- Description
Default: 100
The pageSize you've specified.
- Name
query.self- Type
- string
- (mandatory)
- Description
The URL of the current request.
- Name
query.next- Type
- string
- (mandatory)
- Description
The URL of the next page. If no next parameter is returned this means you've reached the end of the list.
- Name
total- Type
- integer
- (mandatory)
- Description
The total number of results for your query.
- Name
results- Type
- array<object>
- (mandatory)
- Description
An array of scans.
- Name
results[].scanStatus- Type
- integer
- (mandatory)
- Description
The status of the scan:
- 0: Pass was known and has been voided after scan
- 1: Pass was known but already voided
- 2: Pass was known and attendance saved
- 3: Pass not found
- Name
results[].createdOn- Type
- string
- (mandatory)
- Description
The date and time the scan was created (customer timezone). Format: Y-m-d H:i:s
- Name
results[].createdOnUtc- Type
- string
- (mandatory)
- Description
The date and time the scan was created in UTC timezone. Format: Y-m-d H:i:s
- Name
results[].passId- Type
- string
- (mandatory)
- Description
The unique ID (UUID) of the pass that was scanned.
- Name
results[].passGeneratedId- Type
- string
- (mandatory)
- Description
The system-generated ID of the pass.
- Name
results[].passSearchString- Type
- string
- (mandatory)
- Description
A searchable string containing pass data fields concatenated with pipes.
- Name
results[].passData- Type
- string
- (mandatory)
- Description
Additional pass data.
- Name
results[].passVoided- Type
- boolean
- (mandatory)
- Description
Whether the pass has been voided.
- Name
results[].passUserProvidedId- Type
- string
- (mandatory)
- Description
The user-provided ID for the pass if specified.
- Name
results[].passTemplateGuid- Type
- string
- (mandatory)
- Description
The unique ID (UUID) of the pass template used to create this pass.
- Name
results[].passTemplateName- Type
- string
- (mandatory)
- Description
The name of the pass template.
- Name
results[].appConfigurationId- Type
- string
- (mandatory)
- Description
The unique ID (UUID) of the App Configuration used for this scan.
- Name
results[].place- Type
- string
- (mandatory)
- Description
The place where the scan occurred.
- Name
results[].scannedBarcodeValue- Type
- string
- (mandatory)
- Description
The barcode value that was scanned.
- Name
results[].appScanId- Type
- string
- (mandatory)
- Description
The unique ID (UUID) of this app scan.
- Name
results[].deviceName- Type
- string
- (mandatory)
- Description
The name of the device that performed the scan.
- Name
results[].additionalPropertiesScan- Type
- array
- (mandatory)
- Description
Additional properties collected during the scan.
- Name
results[].additionalProperties- Type
- object
- (mandatory)
- Description
Additional properties associated with the pass at the time of scan. Keys are property IDs, values are the property values.
- Name
results[].storedValue- Type
- number | null
- (mandatory)
- Description
The stored value of the pass at the time of scan. null if not applicable.
Example Response
Success Response
{
"query": {
"start": 0,
"pageSize": 2,
"self": "https://app.passcreator.com/api/appscan/list/74019cd8-f8e1-4ca5-a366-7c64d494cf2f?start=0&pageSize=2",
"next": "https://app.passcreator.com/api/appscan/list/74019cd8-f8e1-4ca5-a366-7c64d494cf2f?start=2&pageSize=2"
},
"total": 147,
"results": [
{
"scanStatus": 1,
"createdOn": "2025-10-17 03:38:43",
"createdOnUtc": "2025-10-17 07:38:43",
"passId": "362f41e0-287c-47ee-a041-0231c40e0627",
"passGeneratedId": "swvcgbqzvz1reovpto60100e7c02b52",
"passSearchString": "",
"passData": "",
"passVoided": false,
"passUserProvidedId": "",
"passTemplateGuid": "a57911fa-e2ff-4178-a100-b2eec8e4a254",
"passTemplateName": "Demo Template",
"appConfigurationId": "74019cd8-f8e1-4ca5-a366-7c64d494cf2f",
"place": "Room 1",
"scannedBarcodeValue": "swvcgbqzvz1reovpto60100e7c02b52",
"appScanId": "0158a0b3-d9f8-498c-a8c1-ebf662842704",
"deviceName": "iPhone",
"additionalPropertiesScan": [],
"additionalProperties": {
"5cb1a40ac68f80.15012600": "John Doe",
"600fcc67eb2a77.20005647": "example@example.com"
},
"storedValue": null
},
{
"scanStatus": 1,
"createdOn": "2025-10-17 03:38:36",
"createdOnUtc": "2025-10-17 07:38:36",
"passId": "a3d1bd05-0a45-4d2a-8d3d-55535ba446ed",
"passGeneratedId": "1d3zi2kkzv060h00jz68f1f21bb5053",
"passSearchString": "",
"passData": "",
"passVoided": false,
"passUserProvidedId": "",
"passTemplateGuid": "f277d988-500b-4ed2-aa0e-e1692a19bc44",
"passTemplateName": "Event Ticket",
"appConfigurationId": "6c1858ce-e206-4372-881b-0c84a947bf66",
"place": "Entrance A",
"scannedBarcodeValue": "1d3zi2kkzv060h00jz68f1f21bb5053",
"appScanId": "90af53f3-5eee-48ca-949f-348d32551445",
"deviceName": "iPad",
"additionalPropertiesScan": [],
"additionalProperties": {},
"storedValue": null
}
]
}
Response Status Codes
- Name
200- Type
- integer
- (mandatory)
- Description
Success - Returns the paginated list of scans.
- Name
401- Type
- integer
- (mandatory)
- Description
Unauthorized - Invalid or missing API key.
- Name
404- Type
- integer
- (mandatory)
- Description
Not Found - App Configuration with the specified identifier does not exist.
Usage Notes
The start and pageSize parameters define the pagination. For example, the first page is start=0 and pageSize=100, the second page is start=100 and pageSize=100. The maximum pageSize is 100.
Create an App Scan
Creates a new App Scan using the values submitted as JSON payload.
URL Parameters
This endpoint has no path or query parameters.
Example URL
Request URL
https://app.passcreator.com/api/appscan
Authorization
- Name
Authorization- Type
- string
- (mandatory)
- Description
HTTP Authorization Header that contains your API key. Replace yourApiKeyHere in the example with your actual API key.
Example HTTP Header
HTTP header
POST /api/appscan HTTP/1.1
Host: app.passcreator.com
Authorization: yourApiKeyHere
Content-Type: application/json
Request Body
- Name
appConfigurationId- Type
- string
- (mandatory)
- Description
The unique ID of the App Configuration that is tied to this App Scan.
- Name
scanStatus- Type
- integer
- (mandatory)
- Description
The status of the scan that occurred:
- 0: Pass was known and has been voided after it has been scanned
- 1: Pass was known but it has already been voided and is therefore not valid
- 2: Pass was known and the attendance of a user has been saved
- 3: Pass hasn't been found, which happens if an invalid Barcode is scanned. This can happen e.g. if you've deleted passes or a Barcode value that is invalid in general has been scanned
- Name
passId- Type
- string | null
- (mandatory)
- Description
The identifier of the pass that was found if any. Specify null if no pass was found.
- Name
scannedBarcodeValue- Type
- string
- (mandatory)
- Description
The value of the Barcode that has been scanned.
- Name
deviceName- Type
- string
- (mandatory)
- Description
The name of the device that has been used to scan the pass.
- Name
createdOn- Type
- string
- (mandatory)
- Description
The date and time when the App Scan has happend (format: 2017-05-01 20:10:04).
- Name
setVoided- Type
- boolean
- (optional)
- Description
Indicates if the pass should be voided (marked invalid) afterwards. This triggers a Push Update on the user's Smartphone and greys out the Barcode of the pass.
- Name
additionalProperties- Type
- object
- (optional)
- Description
An array consisting of the IDs of the additional property as key and it's value as value of the array.
Example Request
Request body
{
"appConfigurationId": "d348b157-e15b-445b-a1e3-0d26101f3b20",
"passId": "198b5f2f-ae59-4b1f-8d43-7726dc9a738c",
"scanStatus": 1,
"createdOn": "2017-05-17 08:00:00",
"scannedBarcodeValue": "58ff47678758f4.39729240",
"deviceName": "My iPhone",
"setVoided": true,
"additionalProperties": {
"1": "value1",
"2": "value2"
}
}
Returned Values
- Name
appScanId- Type
- string
- (mandatory)
- Description
The unique identifier (UUID) of the App Scan that has been created.
- Name
scanStatus- Type
- integer
- (mandatory)
- Description
The final status of the scan after server-side validation and business logic has been applied. May differ from the request scanStatus if the server determines a different status (e.g., for check-in/check-out modes).
- 0: Pass was known and has been voided after scan
- 1: Pass was known but already voided
- 2: Pass was known and attendance saved
- 3: Pass not found
- Name
location- Type
- string | null
- (mandatory)
- Description
Location information associated with the scan.
- Name
success- Type
- boolean
- (mandatory)
- Description
Whether the scan was created successfully.
Example Response
Success Response
{
"appScanId": "4c19c1e8-b14a-4846-a597-5b53fcdb8a92",
"scanStatus": 2,
"location": null,
"success": true
}
Response Status Codes
- Name
201- Type
- integer
- (mandatory)
- Description
Created - App Scan created successfully.
- Name
400- Type
- integer
- (mandatory)
- Description
Bad Request - Invalid input parameters.
- Name
401- Type
- integer
- (mandatory)
- Description
Unauthorized - Invalid or missing API key.
- Name
404- Type
- integer
- (mandatory)
- Description
Not Found - App Configuration or Pass Instance not found, or customer mismatch.