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.


GET/api/appconfiguration

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/api/appconfiguration/{identifier}

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.


POST/api/appconfiguration

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.


GET/api/appscan/list/{appConfigurationId}

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.


POST/api/appscan

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.