Breezin Pass Management UAT GraphQL API Documentation

Welcome to the breezin.io GraphQL API documentation for our Pass Management UAT Test Environment. Here you will find the available queries, mutations and types to interact with our system using API Integration.

Contact

Breezin API Support

support@breezin.io

API Endpoints
# UAT:
https://acs-enterprise-gateway-ys5g5rekcq-nw.a.run.app/query
Headers
# Bearer token used to authenticate API integration
Authorization: Bearer <YOUR_TOKEN_HERE>
Callback API Endpoint
# Breezin.io Static Callback IP For Whitelisting
34.32.20.197

What Is GraphQL?

GraphQL (Graph Query Language) is a technology that helps solve the problems of over and under-fetching data which frequently happens with REST services. It's easy to install, with a large number of supported libraries for many programming languages. If you're just dipping your toes into the GQL lake, it's recommended to read the GQL documentation available here.

Can I use REST?

We have a full suite of REST API Endpoints which can be used instead of GraphQL, please see our REST API documentation here.

Where do I find my API Token?

Please login to the Breezin Web Portal and retrieve the API Token from your account details.

Server Callbacks

Pass Distribution And Invalidation Result Server Callbacks

When a batch distribution or invalidation is complete, we'll email you with the results by default. You can also configure a callback URL so that you will receive this data as a CSV download link, allowing you to programatically process the results. Below covers the request we will send to your API callback URL.
Request

Returns a json payload. Contains successCount, failureCount, successResultsURL and failureResultsURL.

Expected Responses From Your Server
Status Code Description
200 OK - Send when successfully received

Example

Request From Breezin Server
{
    "requestID": 1 ,
    "successCount": 1,
    "successResultsURL": "www.some-link-to-csv.com",
    "failureCount": "1",
    "failureResultsURL": "www.some-link-to-csv.com",
}

Status Callbacks

Pass Callbacks

When a pass status has been modified by the system, or a user interacting with the pass, a callback notification can be triggered to inform you of its status changing. This can be used to track which passes are active, updatable or removed from a customers digital wallet.

Request

Apple and Google passes will return "Redeemed" on first install.

Apple will send "Registered" and "Deregistered" messages when activating or deactivating automatic pass updates.

Google will send "Removed" when removing a pass from a digital wallet.

DeviceOS Field Variables
DeviceOS Description
Apple Pass has been installed to an Apple Device.
Google Pass has been installed to a Google Device.
Status Field Variables
Status Description
Redeemed Apple and Google: Pass has been installed to a digital wallet.
Registered Apple Only: Pass has reactivated automatic updates.
Deregistered Apple Only: Pass has deactivated automatic updates, or been uninstalled from the digital wallet.
Removed Google Only: Pass has been deleted and removed from the digital wallet.
Expected Responses From Your Server
Status Code Description
200 OK - Send when successfully received

Example

Request From Breezin Server
{
    "serialNumber": "123400000001",
    "deviceOS": "Google",
    "status": "Redeemed",
}

Queries

Beacons

fetchActiveBeaconList

Description

fetchActiveBeaconList will attempt to retrieve a list of active Beacon titles from the Cloud DB for an Organisation.

Response

Returns a FetchActiveBeaconListResponse!

Arguments
Name Description
input - FetchActiveBeaconListRequest

Example

Query
query FetchActiveBeaconList($input: FetchActiveBeaconListRequest) {
  fetchActiveBeaconList(input: $input) {
    beaconsList
  }
}
Variables
{"input": FetchActiveBeaconListRequest}
Response
{
  "data": {
    "fetchActiveBeaconList": {
      "beaconsList": ["xyz789"]
    }
  }
}

fetchBeaconByTitle

Description

fetchBeaconByTitle will attempt to retrieve an Organisation's Beacon from the Cloud DB by Beacon title.

Response

Returns a Beacon!

Arguments
Name Description
input - FetchBeaconByTitleRequest

Example

Query
query FetchBeaconByTitle($input: FetchBeaconByTitleRequest) {
  fetchBeaconByTitle(input: $input) {
    title
    proximityUUID
    major
    minor
    messageText
    created
    creator
    lastModified
    modifier
    status
  }
}
Variables
{"input": FetchBeaconByTitleRequest}
Response
{
  "data": {
    "fetchBeaconByTitle": {
      "title": "Some Title",
      "proximityUUID": "ABA71543-A2C5-4FB1-AFCF-A3AB01234567",
      "major": 27201,
      "minor": 43985,
      "messageText": "Welcome to our facility. Access your pass here!",
      "created": "2023-03-23T17:21:00Z",
      "creator": "example@email.com",
      "lastModified": "2023-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "status": "active"
    }
  }
}

getPaginatedBeacons

Description

getPaginatedBeacons returns a paginated list of BLE Beacon records for an Organisation's account.

Response

Returns a PaginatedBeaconResponse!

Arguments
Name Description
input - GetPaginatedBeaconRequest

Example

Query
query GetPaginatedBeacons($input: GetPaginatedBeaconRequest) {
  getPaginatedBeacons(input: $input) {
    beacons {
      title
      proximityUUID
      major
      minor
      messageText
      created
      creator
      lastModified
      modifier
      status
    }
    lastModifiedDate
    lastDocID
    lastTitle
    totalNumberOfRecords
  }
}
Variables
{"input": GetPaginatedBeaconRequest}
Response
{
  "data": {
    "getPaginatedBeacons": {
      "beacons": ["some-beacon-title"],
      "lastModifiedDate": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "lastTitle": "xyz789",
      "totalNumberOfRecords": Int64
    }
  }
}

verifyBeaconExists

Description

verifyBeaconExists will attempt to verify if a Beacon title is available for creating a new Beacon.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - VerifyBeaconExistsRequest

Example

Query
query VerifyBeaconExists($input: VerifyBeaconExistsRequest) {
  verifyBeaconExists(input: $input) {
    message
  }
}
Variables
{"input": VerifyBeaconExistsRequest}
Response
{
  "data": {
    "verifyBeaconExists": {
      "message": "Response message containing results of API request"
    }
  }
}

Branding

fetchBrandingColorByTitle

Description

fetchBrandingColorByTitle will attempt to retrieve an Organisation's Branding Color from the Cloud DB.

Response

Returns a BrandingColor!

Arguments
Name Description
input - FetchBrandingColorByTitleRequest

Example

Query
query FetchBrandingColorByTitle($input: FetchBrandingColorByTitleRequest) {
  fetchBrandingColorByTitle(input: $input) {
    title
    colorHexCode
    creator
    created
    modifier
    lastModified
    titleLowercase
  }
}
Variables
{"input": FetchBrandingColorByTitleRequest}
Response
{
  "data": {
    "fetchBrandingColorByTitle": {
      "title": "Some Title",
      "colorHexCode": "xyz789",
      "creator": "example@email.com",
      "created": "2023-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "lastModified": "2023-03-23T17:21:00Z",
      "titleLowercase": "abc123"
    }
  }
}

fetchPaginatedBrandingColors

Description

fetchPaginatedBrandingColors will attempt to retrieve a paginated list of Organisation Branding Colors from the Cloud DB.

Arguments
Name Description
input - FetchPaginatedBrandingColorsRequest

Example

Query
query FetchPaginatedBrandingColors($input: FetchPaginatedBrandingColorsRequest) {
  fetchPaginatedBrandingColors(input: $input) {
    brandingColors {
      title
      colorHexCode
      creator
      created
      modifier
      lastModified
      titleLowercase
    }
    lastModifiedDate
    lastDocID
    lastTitle
    totalNumberOfRecords
  }
}
Variables
{"input": FetchPaginatedBrandingColorsRequest}
Response
{
  "data": {
    "fetchPaginatedBrandingColors": {
      "brandingColors": [BrandingColor],
      "lastModifiedDate": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "lastTitle": "abc123",
      "totalNumberOfRecords": Int64
    }
  }
}

Customer Support Details

fetchPaginatedCustomerSupportDetails

Description

fetchPaginatedCustomerSupportDetails will attempt to retrieve a pagianted list of Organisation's Customer Support Details from the Cloud DB.

Example

Query
query FetchPaginatedCustomerSupportDetails($input: FetchPaginatedCustomerSupportDetailsRequest) {
  fetchPaginatedCustomerSupportDetails(input: $input) {
    customerSupportDetailList {
      title
      titleLowercase
      type
      value
      status
      created
      creator
      lastModified
      modifier
    }
    lastModifiedDate
    lastDocID
    lastTitle
    totalNumberOfRecords
  }
}
Variables
{"input": FetchPaginatedCustomerSupportDetailsRequest}
Response
{
  "data": {
    "fetchPaginatedCustomerSupportDetails": {
      "customerSupportDetailList": [
        CustomerSupportDetail
      ],
      "lastModifiedDate": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "lastTitle": "abc123",
      "totalNumberOfRecords": Int64
    }
  }
}

getCustomerSupportDetailByTitle

Description

getCustomerSupportDetailByTitle will attempt to retrieve an Organisation's Customer Support Detail from the Cloud DB.

Response

Returns a CustomerSupportDetail!

Arguments
Name Description
input - GetCustomerSupportDetailByTitleRequest

Example

Query
query GetCustomerSupportDetailByTitle($input: GetCustomerSupportDetailByTitleRequest) {
  getCustomerSupportDetailByTitle(input: $input) {
    title
    titleLowercase
    type
    value
    status
    created
    creator
    lastModified
    modifier
  }
}
Variables
{"input": GetCustomerSupportDetailByTitleRequest}
Response
{
  "data": {
    "getCustomerSupportDetailByTitle": {
      "title": "Some Title",
      "titleLowercase": "xyz789",
      "type": "Some type",
      "value": "Some Value",
      "status": "active",
      "created": "2023-03-23T17:21:00Z",
      "creator": "example@email.com",
      "lastModified": "2023-03-23T17:21:00Z",
      "modifier": "example@email.com"
    }
  }
}

Distribution

fetchDistributionDocByID

Description

fetchDistributionDocByID will attempt to retrieve the distribution doc by docId for an Organisation from the Cloud DB.

Response

Returns a DistributionRequestRecord!

Arguments
Name Description
input - FetchDistributionDocByIdRequest

Example

Query
query FetchDistributionDocByID($input: FetchDistributionDocByIdRequest) {
  fetchDistributionDocByID(input: $input) {
    batchCount
    isBatchRequest
    jobIssuer
    passDesignTitle
    passType
    created
    failureCount
    failureResults
    status
    successCount
    successResults
    projectedCost
    pricePerPass
    appleRedemptions
    googleRedemptions
  }
}
Variables
{"input": FetchDistributionDocByIdRequest}
Response
{
  "data": {
    "fetchDistributionDocByID": {
      "batchCount": 10,
      "isBatchRequest": true,
      "jobIssuer": "example@email.com",
      "passDesignTitle": "Some Pass Design",
      "passType": "LongTerm",
      "created": "2023-03-23T17:21:00Z",
      "failureCount": 1,
      "failureResults": "https://www.somelinktofile.com/",
      "status": "active",
      "successCount": 9,
      "successResults": "https://www.somelinktofile.com/",
      "projectedCost": 90,
      "pricePerPass": 10,
      "appleRedemptions": 5,
      "googleRedemptions": 4
    }
  }
}

getPaginatedDistributionRequests

Description

getPaginatedDistributionRequests returns a paginated list of Distribution requests for an Organisation.

Response

Returns a PaginatedDistributionResponse!

Arguments
Name Description
input - GetPaginatedDistributionRequest

Example

Query
query GetPaginatedDistributionRequests($input: GetPaginatedDistributionRequest) {
  getPaginatedDistributionRequests(input: $input) {
    distributionDocs {
      batchCount
      isBatchRequest
      jobIssuer
      passDesignTitle
      passType
      created
      failureCount
      failureResults
      status
      successCount
      successResults
      projectedCost
      pricePerPass
      appleRedemptions
      googleRedemptions
      docID
    }
    lastCreated
    lastDocID
    totalNumberOfRecords
  }
}
Variables
{"input": GetPaginatedDistributionRequest}
Response
{
  "data": {
    "getPaginatedDistributionRequests": {
      "distributionDocs": [DistributionRequestWithID],
      "lastCreated": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "totalNumberOfRecords": Int64
    }
  }
}

Dynamic Keys

fetchActiveDynamicKeyList

Description

fetchActiveDynamicKeyList will attempt to fetch a list of Active Dynamic Keys for an Organisation.

Arguments
Name Description
input - FetchActiveDynamicKeyListRequest

Example

Query
query FetchActiveDynamicKeyList($input: FetchActiveDynamicKeyListRequest) {
  fetchActiveDynamicKeyList(input: $input) {
    dynamicKeyList
  }
}
Variables
{"input": FetchActiveDynamicKeyListRequest}
Response
{
  "data": {
    "fetchActiveDynamicKeyList": {
      "dynamicKeyList": ["xyz789"]
    }
  }
}

fetchDynamicKeyByTitle

Description

fetchDynamicKeyByTitle will attempt to fetch a DynamicKey record from the Cloud DB which matches on a provided title for the Dynamic Key.

Response

Returns a DynamicKey!

Arguments
Name Description
input - FetchDynamicKeyByTitleRequest

Example

Query
query FetchDynamicKeyByTitle($input: FetchDynamicKeyByTitleRequest) {
  fetchDynamicKeyByTitle(input: $input) {
    created
    creator
    description
    lastModified
    modifier
    status
    title
  }
}
Variables
{"input": FetchDynamicKeyByTitleRequest}
Response
{
  "data": {
    "fetchDynamicKeyByTitle": {
      "created": "2023-03-23T17:21:00Z",
      "creator": "example@email.com",
      "description": "Some description",
      "lastModified": "2023-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "status": "active",
      "title": "Some Title"
    }
  }
}

fetchPaginatedDynamicKeys

Description

fetchPaginatedDynamicKeys will attempt to fetch a paginated list of Dynamic Keys from the Cloud DB.

Arguments
Name Description
input - FetchPaginatedDynamicKeysRequest

Example

Query
query FetchPaginatedDynamicKeys($input: FetchPaginatedDynamicKeysRequest) {
  fetchPaginatedDynamicKeys(input: $input) {
    dynamicKeys {
      created
      creator
      description
      lastModified
      modifier
      status
      title
    }
    lastModifiedTimestamp
    lastTitle
    lastDocID
    totalNumberOfRecords
  }
}
Variables
{"input": FetchPaginatedDynamicKeysRequest}
Response
{
  "data": {
    "fetchPaginatedDynamicKeys": {
      "dynamicKeys": [DynamicKey],
      "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
      "lastTitle": "abc123",
      "lastDocID": "some-doc-id",
      "totalNumberOfRecords": Int64
    }
  }
}

verifyDynamicKeyTitleAvailable

Description

verifyDynamicKeyTitleAvailable will attampt to verify if a Dynamic Key Title is available for creating a new Dymanic Key record in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - VerifyDynamicKeyTitleAvailableRequest

Example

Query
query VerifyDynamicKeyTitleAvailable($input: VerifyDynamicKeyTitleAvailableRequest) {
  verifyDynamicKeyTitleAvailable(input: $input) {
    message
  }
}
Variables
{"input": VerifyDynamicKeyTitleAvailableRequest}
Response
{
  "data": {
    "verifyDynamicKeyTitleAvailable": {
      "message": "Response message containing results of API request"
    }
  }
}

Geolocations

fetchActiveLocationList

Description

fetchActiveLocationList will attempt to retrieve a list of active Location titles from the Cloud DB for an Organisation.

Arguments
Name Description
input - FetchActiveLocationListRequest

Example

Query
query FetchActiveLocationList($input: FetchActiveLocationListRequest) {
  fetchActiveLocationList(input: $input) {
    locationsList
  }
}
Variables
{"input": FetchActiveLocationListRequest}
Response
{
  "data": {
    "fetchActiveLocationList": {
      "locationsList": ["xyz789"]
    }
  }
}

fetchLocationByTitle

Description

fetchLocationByTitle will attempt to retrieve an Organisation's GeoLocation from the Cloud DB by GeoLocation title.

Response

Returns a Geolocation!

Arguments
Name Description
input - FetchLocationByTitleRequest

Example

Query
query FetchLocationByTitle($input: FetchLocationByTitleRequest) {
  fetchLocationByTitle(input: $input) {
    title
    altitude
    created
    creator
    lastModified
    latitude
    longitude
    messageText
    modifier
    status
  }
}
Variables
{"input": FetchLocationByTitleRequest}
Response
{
  "data": {
    "fetchLocationByTitle": {
      "title": "Some Title",
      "altitude": 10,
      "created": "2023-03-23T17:21:00Z",
      "creator": "example@email.com",
      "lastModified": "2023-03-23T17:21:00Z",
      "latitude": 56.484146760301854,
      "longitude": -3.018581082165732,
      "messageText": "Welcome to our facility. Access your pass here!",
      "modifier": "example@email.com",
      "status": "active"
    }
  }
}

getPaginatedLocations

Description

getPaginatedLocations returns a paginated list of Location records for an Organisation's account.

Response

Returns a PaginatedLocationResponse!

Arguments
Name Description
input - GetPaginatedLocationRequest

Example

Query
query GetPaginatedLocations($input: GetPaginatedLocationRequest) {
  getPaginatedLocations(input: $input) {
    locations {
      title
      altitude
      created
      creator
      lastModified
      latitude
      longitude
      messageText
      modifier
      status
    }
    lastModifiedDate
    lastDocID
    lastTitle
    totalNumberOfRecords
  }
}
Variables
{"input": GetPaginatedLocationRequest}
Response
{
  "data": {
    "getPaginatedLocations": {
      "locations": ["some-location-title"],
      "lastModifiedDate": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "lastTitle": "abc123",
      "totalNumberOfRecords": Int64
    }
  }
}

verifyLocationExists

Description

verifyLocationExists will attempt to verify if a Location title is available for creating a new Location.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - VerifyLocationExistsRequest

Example

Query
query VerifyLocationExists($input: VerifyLocationExistsRequest) {
  verifyLocationExists(input: $input) {
    message
  }
}
Variables
{"input": VerifyLocationExistsRequest}
Response
{
  "data": {
    "verifyLocationExists": {
      "message": "Response message containing results of API request"
    }
  }
}

Invalidation

fetchInvalidationDocByID

Description

fetchInvalidationDocByID will attempt to retrieve the invalidation doc by docId for an Organisation from the Cloud DB.

Response

Returns an InvalidationRequestRecord!

Arguments
Name Description
input - FetchInvalidationDocByIdRequest

Example

Query
query FetchInvalidationDocByID($input: FetchInvalidationDocByIdRequest) {
  fetchInvalidationDocByID(input: $input) {
    batchCount
    isBatchRequest
    jobIssuer
    created
    failureCount
    failureResults
    status
    successCount
    successResults
    expiryTimestamp
  }
}
Variables
{"input": FetchInvalidationDocByIdRequest}
Response
{
  "data": {
    "fetchInvalidationDocByID": {
      "batchCount": 10,
      "isBatchRequest": true,
      "jobIssuer": "example@email.com",
      "created": "2023-03-23T17:21:00Z",
      "failureCount": 1,
      "failureResults": "https://www.somelinktofile.com/",
      "status": "active",
      "successCount": 9,
      "successResults": "https://www.somelinktofile.com/",
      "expiryTimestamp": "2023-03-23T17:21:00Z"
    }
  }
}

getPaginatedInvalidationRequests

Description

getPaginatedInvalidationRequests returns a paginated list of Invalidation requests for an Organisation.

Response

Returns a PaginatedInvalidationResponse!

Arguments
Name Description
input - GetPaginatedInvalidationRequest

Example

Query
query GetPaginatedInvalidationRequests($input: GetPaginatedInvalidationRequest) {
  getPaginatedInvalidationRequests(input: $input) {
    invalidationDocs {
      batchCount
      isBatchRequest
      jobIssuer
      created
      failureCount
      failureResults
      status
      successCount
      successResults
      expiryTimestamp
      docID
    }
    lastCreated
    lastDocID
    totalNumberOfRecords
  }
}
Variables
{"input": GetPaginatedInvalidationRequest}
Response
{
  "data": {
    "getPaginatedInvalidationRequests": {
      "invalidationDocs": [
        InvalidationRequestRecordWithID
      ],
      "lastCreated": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "totalNumberOfRecords": Int64
    }
  }
}

Pass Delivery

fetchActivePassDeliveryList

Description

fetchActivePassDeliveryList will attempt to retrieve a list of active Pass Delivery Template titles from the Cloud DB for an Organisation.

Arguments
Name Description
input - FetchActivePassDeliveryListRequest

Example

Query
query FetchActivePassDeliveryList($input: FetchActivePassDeliveryListRequest) {
  fetchActivePassDeliveryList(input: $input) {
    emailList
    smsList
  }
}
Variables
{"input": FetchActivePassDeliveryListRequest}
Response
{
  "data": {
    "fetchActivePassDeliveryList": {
      "emailList": ["abc123"],
      "smsList": ["abc123"]
    }
  }
}

getPaginatedPassDeliveryTemplates

Description

getPaginatedPassDeliveryTemplates returns a paginated list of pass delivery templates.

Arguments
Name Description
input - GetPaginatedPassDeliveryTemplateRequest

Example

Query
query GetPaginatedPassDeliveryTemplates($input: GetPaginatedPassDeliveryTemplateRequest) {
  getPaginatedPassDeliveryTemplates(input: $input) {
    passDeliveryTemplates {
      body
      created
      creator
      footer
      imageURL
      lastModified
      modifier
      preheader
      status
      subject
      title
      type
    }
    lastModifiedTimestamp
    lastDocID
    lastTitle
    totalNumberOfRecords
  }
}
Variables
{"input": GetPaginatedPassDeliveryTemplateRequest}
Response
{
  "data": {
    "getPaginatedPassDeliveryTemplates": {
      "passDeliveryTemplates": [PassDeliveryTemplate],
      "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "lastTitle": "xyz789",
      "totalNumberOfRecords": Int64
    }
  }
}

verifyDeliveryTemplateAvailable

Description

verifyDeliveryTemplateAvailable will attempt to verify if a Pass Delivery Template title is available for creating a new template.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - VerifyTemplateTitleRequest

Example

Query
query VerifyDeliveryTemplateAvailable($input: VerifyTemplateTitleRequest) {
  verifyDeliveryTemplateAvailable(input: $input) {
    message
  }
}
Variables
{"input": VerifyTemplateTitleRequest}
Response
{
  "data": {
    "verifyDeliveryTemplateAvailable": {
      "message": "Response message containing results of API request"
    }
  }
}

Pass Designs

fetchPaginatedPassDesignsForDynamicKey

Description

fetchPaginatedPassDesignsForDynamicKey will attempt to fetch a paginated list of PassDesign details where the pass design contains a specific Dynamic Key value.

Example

Query
query FetchPaginatedPassDesignsForDynamicKey($input: FetchPaginatedPassDesignsForDynamicKeyRequest) {
  fetchPaginatedPassDesignsForDynamicKey(input: $input) {
    passDesignSummaryList {
      title
      type
      status
    }
    lastModifiedTimestamp
    lastDocID
    totalNumberOfRecords
  }
}
Variables
{"input": FetchPaginatedPassDesignsForDynamicKeyRequest}
Response
{
  "data": {
    "fetchPaginatedPassDesignsForDynamicKey": {
      "passDesignSummaryList": [
        DynamicKeysPassDesignSummary
      ],
      "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "totalNumberOfRecords": Int64
    }
  }
}

getOrganisationPassDesignByTitle

Description

getOrganisationPassDesignByTitle fetches a pass design given a pass design title.

Response

Returns a PassDesign!

Arguments
Name Description
input - GetPassDesignByTitleRequest

Example

Query
query GetOrganisationPassDesignByTitle($input: GetPassDesignByTitleRequest) {
  getOrganisationPassDesignByTitle(input: $input) {
    backgroundColor {
      red
      green
      blue
    }
    countryCode
    issuingOrganisation
    passBrandingLogo {
      sourceURI
      description
      fileName
    }
    passIcon {
      sourceURI
      description
      fileName
    }
    metaData {
      created
      creator
      lastModified
      modifier
    }
    passDesignDefaultFields {
      cardTitle
      cardTitleLabel
      header
      subheader
    }
    passImage {
      sourceURI
      description
      fileName
    }
    serialPrefix
    title
    isNFCEnabled
    primaryFields {
      size
      items {
        ...DynamicFieldItemFragment
      }
    }
    secondaryFields {
      size
      items {
        ...DynamicFieldItemFragment
      }
    }
    auxiliaryFields {
      size
      items {
        ...DynamicFieldItemFragment
      }
    }
    dynamicFieldKeys
    appleRedemptions
    googleRedemptions
    totalDistributionCount
    lastDistributionDate
    barcodeType
    backFields {
      size
      items {
        ...BackFieldItemFragment
      }
    }
    downloadMessage
    downloadLogo
    downloadBackground
    totalInvalidationCount
    customerSupportDetailList
    customerSupportMessage
  }
}
Variables
{"input": GetPassDesignByTitleRequest}
Response
{
  "data": {
    "getOrganisationPassDesignByTitle": {
      "backgroundColor": BackgroundColor,
      "countryCode": "en-GB",
      "issuingOrganisation": "Some Organisation",
      "passBrandingLogo": Image,
      "passIcon": Image,
      "metaData": MetaData,
      "passDesignDefaultFields": PassDesignDefaultFields,
      "passImage": Image,
      "serialPrefix": "xyz789",
      "title": "Some Title",
      "isNFCEnabled": false,
      "primaryFields": DynamicFields,
      "secondaryFields": DynamicFields,
      "auxiliaryFields": DynamicFields,
      "dynamicFieldKeys": ["membership_number", "membership_name"],
      "appleRedemptions": 5,
      "googleRedemptions": 4,
      "totalDistributionCount": 10,
      "lastDistributionDate": "2023-03-23T17:21:00Z",
      "barcodeType": "abc123",
      "backFields": BackFields,
      "downloadMessage": "abc123",
      "downloadLogo": "abc123",
      "downloadBackground": "abc123",
      "totalInvalidationCount": 42,
      "customerSupportDetailList": [
        "xyz789"
      ],
      "customerSupportMessage": "abc123"
    }
  }
}

getPaginatedPassDesigns

Description

getPaginatedPassDesigns returns a paginated list of Pass Designs for an Organisation.

Response

Returns a PaginatedPassDesignResponse!

Arguments
Name Description
input - GetPaginatedPassDesignRequest

Example

Query
query GetPaginatedPassDesigns($input: GetPaginatedPassDesignRequest) {
  getPaginatedPassDesigns(input: $input) {
    passDesignDocs {
      backgroundColor {
        ...BackgroundColorFragment
      }
      countryCode
      issuingOrganisation
      passBrandingLogo {
        ...ImageFragment
      }
      passIcon {
        ...ImageFragment
      }
      metaData {
        ...MetaDataFragment
      }
      passDesignDefaultFields {
        ...PassDesignDefaultFieldsFragment
      }
      passImage {
        ...ImageFragment
      }
      serialPrefix
      title
      isNFCEnabled
      primaryFields {
        ...DynamicFieldsFragment
      }
      secondaryFields {
        ...DynamicFieldsFragment
      }
      auxiliaryFields {
        ...DynamicFieldsFragment
      }
      dynamicFieldKeys
      appleRedemptions
      googleRedemptions
      totalDistributionCount
      lastDistributionDate
      barcodeType
      backFields {
        ...BackFieldsFragment
      }
      downloadMessage
      downloadLogo
      downloadBackground
      totalInvalidationCount
      customerSupportDetailList
      customerSupportMessage
    }
    lastModifiedTimestamp
    lastDocID
    totalNumberOfRecords
  }
}
Variables
{"input": GetPaginatedPassDesignRequest}
Response
{
  "data": {
    "getPaginatedPassDesigns": {
      "passDesignDocs": [PassDesign],
      "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "totalNumberOfRecords": Int64
    }
  }
}

Passes

getPassesByExternalRefID

Description

getPassesByExternalRefID will attempt to fetch a list of Pass records which match on a specified ExternalReferenceID value.

Response

Returns [UserPass!]!

Arguments
Name Description
input - GetPassesByExternalRefIDRequest

Example

Query
query GetPassesByExternalRefID($input: GetPassesByExternalRefIDRequest) {
  getPassesByExternalRefID(input: $input) {
    deviceOS
    dynamicFieldData
    dynamicFieldKeys
    dynamicFieldValues
    dynamicFields {
      id
      position
      row
      value
    }
    externalReferenceID
    expiredTimestamp
    isExpired
    isRedeemed
    isRemoved
    metaData {
      created
      creator
      lastModified
      modifier
    }
    passDesignTitle
    redeemedTimestamp
    removedTimestamp
    registered
    registeredTimestamp
    serial {
      cardNumber
      prefix
      serialNumber
    }
    genericObjectDefaultFields {
      cardTitle
      cardTitleLabel
      header
      subheader
    }
    passDeliveryDetails {
      deliveryMethod
      deliveryAddress
      deliverySalutation
      deliveryName
      deliveryTemplate
    }
    beacons
    locations
    payload
  }
}
Variables
{"input": GetPassesByExternalRefIDRequest}
Response
{
  "data": {
    "getPassesByExternalRefID": [
      {
        "deviceOS": "Apple",
        "dynamicFieldData": {
          "membership_number": "1234567890001",
          "membership_name": "Some Name"
        },
        "dynamicFieldKeys": ["membership_number", "membership_name"],
        "dynamicFieldValues": ["1234567890001", "Some Name"],
        "dynamicFields": [
          {
            "membership_number": "1234567890001",
            "membership_name": "Some Name"
          },
          {
            "membership_number": "1234567890002",
            "membership_name": "Another Name"
          }
        ],
        "externalReferenceID": "ab12cd34ef56",
        "expiredTimestamp": "2023-03-23T17:21:00Z",
        "isExpired": true,
        "isRedeemed": true,
        "isRemoved": true,
        "metaData": MetaData,
        "passDesignTitle": "Some Pass Design",
        "redeemedTimestamp": "2023-03-23T17:21:00Z",
        "removedTimestamp": "2023-03-23T17:21:00Z",
        "registered": true,
        "registeredTimestamp": "2023-03-23T17:21:00Z",
        "serial": Serial,
        "genericObjectDefaultFields": GenericObjectDefaultFields,
        "passDeliveryDetails": PassDeliveryDetails,
        "beacons": ["some-beacon-title"],
        "locations": ["some-location-title"],
        "payload": "abc123"
      }
    ]
  }
}

Reporting

getPaginatedReportingRequest

Description

getPaginatedReportingRequest will attempt to fetch the paginated reporting requests.

Arguments
Name Description
input - GetPaginatedReportingRequestsRequest

Example

Query
query GetPaginatedReportingRequest($input: GetPaginatedReportingRequestsRequest) {
  getPaginatedReportingRequest(input: $input) {
    reportingRequestList {
      reportType
      status
      created
      requester
      lastModified
      downloadURL
      reportID
    }
    lastDocID
    lastModifiedTimestamp
    totalNumberOfRecords
  }
}
Variables
{"input": GetPaginatedReportingRequestsRequest}
Response
{
  "data": {
    "getPaginatedReportingRequest": {
      "reportingRequestList": [ReportingRequestWithID],
      "lastDocID": "some-doc-id",
      "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
      "totalNumberOfRecords": Int64
    }
  }
}

getPassDesignMonthlyReport

Description

getPassDesignMonthlyReport fetches the pass design report for a given pass design title and reporting period.

Response

Returns [PassDesignReport!]!

Arguments
Name Description
input - GetPassDesignMonthlyReportRequest

Example

Query
query GetPassDesignMonthlyReport($input: GetPassDesignMonthlyReportRequest) {
  getPassDesignMonthlyReport(input: $input) {
    appleCount
    distributionCount
    googleCount
    invalidationCount
    lastModified
    reportingPeriod
    appleRedemptionsCount
    googleRedemptionsCount
  }
}
Variables
{"input": GetPassDesignMonthlyReportRequest}
Response
{
  "data": {
    "getPassDesignMonthlyReport": [
      {
        "appleCount": 5,
        "distributionCount": [
          0,
          0,
          2,
          0,
          0,
          0,
          3,
          0,
          0,
          0,
          0,
          1,
          0,
          0,
          0,
          0,
          0,
          2,
          0,
          0,
          0,
          0,
          2,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "googleCount": 4,
        "invalidationCount": [
          0,
          0,
          0,
          0,
          1,
          0,
          0,
          0,
          0,
          0,
          0,
          1,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          2,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "lastModified": "2023-03-23T17:21:00Z",
        "reportingPeriod": "June 2023",
        "appleRedemptionsCount": [42],
        "googleRedemptionsCount": [42]
      }
    ]
  }
}

getReportingRequestByReportID

Description

getReportingRequestByReportID will attempt to get the reporting request for provided Report ID.

Response

Returns a ReportingRequest!

Arguments
Name Description
input - GetReportingRequestByReportIDRequest

Example

Query
query GetReportingRequestByReportID($input: GetReportingRequestByReportIDRequest) {
  getReportingRequestByReportID(input: $input) {
    reportType
    status
    created
    requester
    lastModified
    downloadURL
  }
}
Variables
{"input": GetReportingRequestByReportIDRequest}
Response
{
  "data": {
    "getReportingRequestByReportID": {
      "reportType": "xyz789",
      "status": "active",
      "created": "2023-03-23T17:21:00Z",
      "requester": "xyz789",
      "lastModified": "2023-03-23T17:21:00Z",
      "downloadURL": "xyz789"
    }
  }
}

getUsageReporting

Description

getUsageReporting fetches the usage reporting of an organisation for a given time period. Takes in a date in the format of 'Month Year', eg 'October 2022'.

Response

Returns [UsageReport!]!

Arguments
Name Description
input - ReportingPeriod

Example

Query
query GetUsageReporting($input: ReportingPeriod) {
  getUsageReporting(input: $input) {
    lastModified
    longTermInvalidationCount
    longTermPassesCount
    recurringPassesCount
    reportingPeriod
    shortTermInvalidationCount
    shortTermPassesCount
    userCount
    xUseInvalidationCount
    xUsePassesCount
    appleRedemptions
    googleRedemptions
    passDesignDistributions
    appleRedemptionsCount
    googleRedemptionsCount
    passDeliverySmsUkCount
    passDeliverySmsWorldCount
    passDeliveryEmailCount
  }
}
Variables
{"input": ReportingPeriod}
Response
{
  "data": {
    "getUsageReporting": [
      {
        "lastModified": "2023-03-23T17:21:00Z",
        "longTermInvalidationCount": [
          0,
          0,
          0,
          0,
          1,
          0,
          0,
          0,
          0,
          0,
          0,
          1,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "longTermPassesCount": [
          0,
          0,
          2,
          0,
          0,
          0,
          3,
          0,
          0,
          0,
          0,
          1,
          0,
          0,
          0,
          0,
          0,
          2,
          0,
          0,
          0,
          0,
          2,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "recurringPassesCount": 0,
        "reportingPeriod": "June 2023",
        "shortTermInvalidationCount": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "shortTermPassesCount": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "userCount": 2,
        "xUseInvalidationCount": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "xUsePassesCount": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "appleRedemptions": 5,
        "googleRedemptions": 4,
        "passDesignDistributions": {
          "membership_number": "1234567890001",
          "membership_name": "Some Name"
        },
        "appleRedemptionsCount": [42],
        "googleRedemptionsCount": [42],
        "passDeliverySmsUkCount": [42],
        "passDeliverySmsWorldCount": [42],
        "passDeliveryEmailCount": [42]
      }
    ]
  }
}

Serial Numbers

getPaginatedSerialNumbers

Description

getPaginatedSerialNumbers will attempt to retrieve a paginated batch of Serial Number records from the Cloud DB.

Arguments
Name Description
input - GetPaginatedSerialNumbersRequest

Example

Query
query GetPaginatedSerialNumbers($input: GetPaginatedSerialNumbersRequest) {
  getPaginatedSerialNumbers(input: $input) {
    serialNumberList {
      cardNumberLength
      initialCardNumber
      latestCardNumber
      prefix
      prefixLength
      created
      creator
      lastModified
      modifier
      maximumCardNumber
      reservedRanges {
        ...ReservedSerialRangeFragment
      }
      prefixNumber
      isAssigned
    }
    lastModifiedTimestamp
    lastDocID
    totalNumberOfRecords
  }
}
Variables
{"input": GetPaginatedSerialNumbersRequest}
Response
{
  "data": {
    "getPaginatedSerialNumbers": {
      "serialNumberList": [SerialNumberDetails],
      "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "totalNumberOfRecords": Int64
    }
  }
}

getSerialNumberByPrefix

Description

getSerialNumberByPrefix will attempt to fetch serial numbers for an Organisations API integration.

Response

Returns a SerialNumberDetails!

Arguments
Name Description
input - GetBySerialPrefixRequest

Example

Query
query GetSerialNumberByPrefix($input: GetBySerialPrefixRequest) {
  getSerialNumberByPrefix(input: $input) {
    cardNumberLength
    initialCardNumber
    latestCardNumber
    prefix
    prefixLength
    created
    creator
    lastModified
    modifier
    maximumCardNumber
    reservedRanges {
      count
      end
      processed
      start
    }
    prefixNumber
    isAssigned
  }
}
Variables
{"input": GetBySerialPrefixRequest}
Response
{
  "data": {
    "getSerialNumberByPrefix": {
      "cardNumberLength": 12,
      "initialCardNumber": "00000001",
      "latestCardNumber": 11,
      "prefix": "1101",
      "prefixLength": 4,
      "created": "2023-03-23T17:21:00Z",
      "creator": "example@email.com",
      "lastModified": "2023-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "maximumCardNumber": Int64,
      "reservedRanges": [ReservedSerialRange],
      "prefixNumber": 42,
      "isAssigned": false
    }
  }
}

getSerialNumberPrefixList

Description

getSerialNumberPrefixList will attempt to retrieve a list of Serial Number prefixes from the Cloud DB for an Organisation.

Arguments
Name Description
input - GetSerialNumberPrefixListRequest

Example

Query
query GetSerialNumberPrefixList($input: GetSerialNumberPrefixListRequest) {
  getSerialNumberPrefixList(input: $input) {
    serialNumberPrefixList
  }
}
Variables
{"input": GetSerialNumberPrefixListRequest}
Response
{
  "data": {
    "getSerialNumberPrefixList": {
      "serialNumberPrefixList": ["abc123"]
    }
  }
}

Users

getPaginatedOrgUsers

Description

getPaginatedOrgUsers will attempt to retrieve a paginated list of Organisation User accounts from the Cloud DB.

Response

Returns a GetPaginatedOrgUsersResponse!

Arguments
Name Description
input - GetPaginatedOrgUsersRequest

Example

Query
query GetPaginatedOrgUsers($input: GetPaginatedOrgUsersRequest) {
  getPaginatedOrgUsers(input: $input) {
    usersList {
      email
      fullName
      isEmailVerified
      roles
      status
      profilePictureURL
      created
      lastModified
    }
    lastModifiedDate
    lastDocID
    lastName
    totalNumberOfRecords
  }
}
Variables
{"input": GetPaginatedOrgUsersRequest}
Response
{
  "data": {
    "getPaginatedOrgUsers": {
      "usersList": [OrganisationUserDetails],
      "lastModifiedDate": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id",
      "lastName": "xyz789",
      "totalNumberOfRecords": Int64
    }
  }
}

getUserDetailsByEmail

Description

getUserDetailsByEmail will attempt to retrieve an Organisation's User by Email from the Cloud DB.

Response

Returns an OrganisationUserDetails!

Arguments
Name Description
input - GetUserDetailsByEmailRequest

Example

Query
query GetUserDetailsByEmail($input: GetUserDetailsByEmailRequest) {
  getUserDetailsByEmail(input: $input) {
    email
    fullName
    isEmailVerified
    roles
    status
    profilePictureURL
    created
    lastModified
  }
}
Variables
{"input": GetUserDetailsByEmailRequest}
Response
{
  "data": {
    "getUserDetailsByEmail": {
      "email": "example@email.com",
      "fullName": "abc123",
      "isEmailVerified": true,
      "roles": ["Pass-Issuer", "Pass-Editor", "Billing-Admin", "Api-Dev"],
      "status": "active",
      "profilePictureURL": "xyz789",
      "created": "2023-03-23T17:21:00Z",
      "lastModified": "2023-03-23T17:21:00Z"
    }
  }
}

Mutations

Beacons

activateBeacon

Description

activateBeacon will attempt to mark a Beacon as Active in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ActivateBeaconRequest

Example

Query
mutation ActivateBeacon($input: ActivateBeaconRequest) {
  activateBeacon(input: $input) {
    message
  }
}
Variables
{"input": ActivateBeaconRequest}
Response
{
  "data": {
    "activateBeacon": {
      "message": "Response message containing results of API request"
    }
  }
}

archiveBeacon

Description

archiveBeacon will attempt to mark a Beacon as Archived in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ArchiveBeaconRequest

Example

Query
mutation ArchiveBeacon($input: ArchiveBeaconRequest) {
  archiveBeacon(input: $input) {
    message
  }
}
Variables
{"input": ArchiveBeaconRequest}
Response
{
  "data": {
    "archiveBeacon": {
      "message": "Response message containing results of API request"
    }
  }
}

createNewBeacon

Description

createNewBeacon will attempt to upload a new BLE Beacon to the system based on user input.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - BeaconRequest

Example

Query
mutation CreateNewBeacon($input: BeaconRequest) {
  createNewBeacon(input: $input) {
    message
  }
}
Variables
{"input": BeaconRequest}
Response
{
  "data": {
    "createNewBeacon": {
      "message": "Response message containing results of API request"
    }
  }
}

updateBeacon

Description

updateBeacon will attempt to update an existing Beacon record based on user input.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - BeaconRequest

Example

Query
mutation UpdateBeacon($input: BeaconRequest) {
  updateBeacon(input: $input) {
    message
  }
}
Variables
{"input": BeaconRequest}
Response
{
  "data": {
    "updateBeacon": {
      "message": "Response message containing results of API request"
    }
  }
}

Billing

uploadOrgPurchaseOrderNumber

Description

uploadOrgPurchaseOrderNumber will attempt to upload a new Purchase Order Number for including within an Organisation's Invoices.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UploadOrgPurchaseOrderNumberRequest

Example

Query
mutation UploadOrgPurchaseOrderNumber($input: UploadOrgPurchaseOrderNumberRequest) {
  uploadOrgPurchaseOrderNumber(input: $input) {
    message
  }
}
Variables
{"input": UploadOrgPurchaseOrderNumberRequest}
Response
{
  "data": {
    "uploadOrgPurchaseOrderNumber": {
      "message": "Response message containing results of API request"
    }
  }
}

Branding

createBrandingColor

Description

createBrandingColor will attempt to create a new branding color for an Organisation's account.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateBrandingColorRequest

Example

Query
mutation CreateBrandingColor($input: CreateBrandingColorRequest) {
  createBrandingColor(input: $input) {
    message
  }
}
Variables
{"input": CreateBrandingColorRequest}
Response
{
  "data": {
    "createBrandingColor": {
      "message": "Response message containing results of API request"
    }
  }
}

deleteBrandingColor

Description

deleteBrandingColor will attempt to remove an Organisation's Branding Color from the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - DeleteBrandingColorRequest

Example

Query
mutation DeleteBrandingColor($input: DeleteBrandingColorRequest) {
  deleteBrandingColor(input: $input) {
    message
  }
}
Variables
{"input": DeleteBrandingColorRequest}
Response
{
  "data": {
    "deleteBrandingColor": {
      "message": "Response message containing results of API request"
    }
  }
}

updateBrandingColor

Description

updateBrandingColor will attempt to update the details of an Organisation's Branding Color in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateBrandingColorRequest

Example

Query
mutation UpdateBrandingColor($input: UpdateBrandingColorRequest) {
  updateBrandingColor(input: $input) {
    message
  }
}
Variables
{"input": UpdateBrandingColorRequest}
Response
{
  "data": {
    "updateBrandingColor": {
      "message": "Response message containing results of API request"
    }
  }
}

Customer Support Details

activateCustomerSupportDetail

Description

activateCustomerSupportDetail will attempt to activate an existing customer support detail for an Organisation's account.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ActivateCustomerSupportDetailRequest

Example

Query
mutation ActivateCustomerSupportDetail($input: ActivateCustomerSupportDetailRequest) {
  activateCustomerSupportDetail(input: $input) {
    message
  }
}
Variables
{"input": ActivateCustomerSupportDetailRequest}
Response
{
  "data": {
    "activateCustomerSupportDetail": {
      "message": "Response message containing results of API request"
    }
  }
}

archiveCustomerSupportDetail

Description

archiveCustomerSupportDetail will attempt to archive an existing customer support detail for an Organisation's account.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ArchiveCustomerSupportDetailRequest

Example

Query
mutation ArchiveCustomerSupportDetail($input: ArchiveCustomerSupportDetailRequest) {
  archiveCustomerSupportDetail(input: $input) {
    message
  }
}
Variables
{"input": ArchiveCustomerSupportDetailRequest}
Response
{
  "data": {
    "archiveCustomerSupportDetail": {
      "message": "Response message containing results of API request"
    }
  }
}

createCustomerSupportDetail

Description

createCustomerSupportDetail will attempt to create a new customer support detail for an Organisation's account.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateCustomerSupportDetailRequest

Example

Query
mutation CreateCustomerSupportDetail($input: CreateCustomerSupportDetailRequest) {
  createCustomerSupportDetail(input: $input) {
    message
  }
}
Variables
{"input": CreateCustomerSupportDetailRequest}
Response
{
  "data": {
    "createCustomerSupportDetail": {
      "message": "Response message containing results of API request"
    }
  }
}

updateCustomerSupportDetail

Description

updateCustomerSupportDetail will attempt to update an existing customer support detail for an Organisation's account.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateCustomerSupportDetailRequest

Example

Query
mutation UpdateCustomerSupportDetail($input: UpdateCustomerSupportDetailRequest) {
  updateCustomerSupportDetail(input: $input) {
    message
  }
}
Variables
{"input": UpdateCustomerSupportDetailRequest}
Response
{
  "data": {
    "updateCustomerSupportDetail": {
      "message": "Response message containing results of API request"
    }
  }
}

Distribution

distributeIndividualPass

Description

distributeIndividualPass will attempt to create the pass download links for an individual distribution request. Pass Distribution results will be returned in the response body from this endpoint. Please note that Individual Distribution is limited to 25 passes per request. If you wish to create more within a single request, please look at Batch Distribution or Distribution via CSV Upload.

Response

Returns a DistributionResponse!

Arguments
Name Description
input - DistributionRequest

Example

Query
mutation DistributeIndividualPass($input: DistributionRequest) {
  distributeIndividualPass(input: $input) {
    successList {
      customFieldData
      externalReferenceID
      payload
      passDownloadLink
      serialNumber
      deliveryMethod
      deliveryAddress
      deliverySalutation
      deliveryName
      deliveryTemplate
      beacons
      locations
      expiredTimestamp
      passApiKey
      notes
    }
    failureList {
      dynamicFieldData
      externalReferenceID
      payload
      deliveryMethod
      deliveryAddress
      deliverySalutation
      deliveryName
      deliveryTemplate
      beacons
      locations
      expiredTimestamp
      error
    }
  }
}
Variables
{"input": DistributionRequest}
Response
{
  "data": {
    "distributeIndividualPass": {
      "successList": [
        {
          "customFieldData": {
            "membership_number": "1234567890001",
            "membership_name": "Some Name"
          },
          "passDownloadLink": "https://www.breezin.io/pass-download?details=cdcjw34e345730489fmrfkjsdfg8fger435tyjergf98sdfg098430594rjkerfdsfo87gydsfg345t8",
          "serialNumber": "110100000001"
        },
        {
          "customFieldData": {
            "membership_number": "1234567890002",
            "membership_name": "Another Name"
          },
          "passDownloadLink": "https://www.breezin.io/pass-download?details=aser124e345730489fmrfkjsdfg8fger435tyjergf98sdfg098430594rjkerfdsfo87gydsfg345t8",
          "serialNumber": "110100000002"
        }
      ],
      "failureList": [
        {
          "dynamicFieldData": {
            "membership_number": "1234567890003",
            "membership_name": "Some Name"
          },
          "error": "Some Failure reason"
        },
        {
          "dynamicFieldData": {
            "membership_number": "1234567890004",
            "membership_name": "Another Name"
          },
          "error": "Another Failure reason"
        }
      ]
    }
  }
}

distributePassBatch

Description

distributePassBatch will attempt to create a list of pass download links based on the users request. Please note that Batch Distribution will process the passes through the Breezin Platform and the requester will be notified over email when the batch is complete. API Integration will email the final results to any users with Owner, Admin, Pass-Issuer and Api-Dev permissions.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - DistributionRequest

Example

Query
mutation DistributePassBatch($input: DistributionRequest) {
  distributePassBatch(input: $input) {
    message
  }
}
Variables
{"input": DistributionRequest}
Response
{
  "data": {
    "distributePassBatch": {
      "message": "Response message containing results of API request"
    }
  }
}

distributePassesCSV

Description

distributePassesCSV will attempt to process a CSV file of passes for Distribution. Please note that there is a 32mb limit on file uploads. Distribution via CSV upload will be processed through the Breezin Platform and the requester will be notified over email when the batch is complete. API Integration will email the final results to any users with Owner, Admin, Pass-Issuer and Api-Dev permissions.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - DistributionRequestCSV

Example

Query
mutation DistributePassesCSV($input: DistributionRequestCSV) {
  distributePassesCSV(input: $input) {
    message
  }
}
Variables
{"input": DistributionRequestCSV}
Response
{
  "data": {
    "distributePassesCSV": {
      "message": "Response message containing results of API request"
    }
  }
}

Dynamic Keys

archiveDynamicKey

Description

archiveDynamicKey will attempt to mark an existing Dynamic Key as archived. Please note that once a Dynamic Key is marked as archived then it will no longer be able to be assigned to any Pass Designs unless it is re-activated.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ArchiveDynamicKeyRequest

Example

Query
mutation ArchiveDynamicKey($input: ArchiveDynamicKeyRequest) {
  archiveDynamicKey(input: $input) {
    message
  }
}
Variables
{"input": ArchiveDynamicKeyRequest}
Response
{
  "data": {
    "archiveDynamicKey": {
      "message": "Response message containing results of API request"
    }
  }
}

createDynamicKey

Description

createDynamicKey will attempt to create a new Dynamic Key record for an Organisation in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateDynamicKeyRequest

Example

Query
mutation CreateDynamicKey($input: CreateDynamicKeyRequest) {
  createDynamicKey(input: $input) {
    message
  }
}
Variables
{"input": CreateDynamicKeyRequest}
Response
{
  "data": {
    "createDynamicKey": {
      "message": "Response message containing results of API request"
    }
  }
}

reactivateDynamicKey

Description

reactivateDynamicKey will attempt to re-active an archived Dynamic Key in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ReactivateDynamicKeyRequest

Example

Query
mutation ReactivateDynamicKey($input: ReactivateDynamicKeyRequest) {
  reactivateDynamicKey(input: $input) {
    message
  }
}
Variables
{"input": ReactivateDynamicKeyRequest}
Response
{
  "data": {
    "reactivateDynamicKey": {
      "message": "Response message containing results of API request"
    }
  }
}

updateDynamicKey

Description

updateDynamicKey will attempt to update an existing Dynamic Key record for an Organisation in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateDynamicKeyRequest

Example

Query
mutation UpdateDynamicKey($input: UpdateDynamicKeyRequest) {
  updateDynamicKey(input: $input) {
    message
  }
}
Variables
{"input": UpdateDynamicKeyRequest}
Response
{
  "data": {
    "updateDynamicKey": {
      "message": "Response message containing results of API request"
    }
  }
}

Geolocations

activateLocation

Description

activateLocation will attempt to mark a Location as Active in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ActivateLocationRequest

Example

Query
mutation ActivateLocation($input: ActivateLocationRequest) {
  activateLocation(input: $input) {
    message
  }
}
Variables
{"input": ActivateLocationRequest}
Response
{
  "data": {
    "activateLocation": {
      "message": "Response message containing results of API request"
    }
  }
}

archiveLocation

Description

archiveLocation will attempt to mark a Location as Archived in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ArchiveLocationRequest

Example

Query
mutation ArchiveLocation($input: ArchiveLocationRequest) {
  archiveLocation(input: $input) {
    message
  }
}
Variables
{"input": ArchiveLocationRequest}
Response
{
  "data": {
    "archiveLocation": {
      "message": "Response message containing results of API request"
    }
  }
}

createNewLocation

Description

createNewLocation will attempt to upload a new Location based on user input.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateUpdateLocationRequest

Example

Query
mutation CreateNewLocation($input: CreateUpdateLocationRequest) {
  createNewLocation(input: $input) {
    message
  }
}
Variables
{"input": CreateUpdateLocationRequest}
Response
{
  "data": {
    "createNewLocation": {
      "message": "Response message containing results of API request"
    }
  }
}

updateLocation

Description

updateLocation will attempt to update an existing Location record based on user input.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateUpdateLocationRequest

Example

Query
mutation UpdateLocation($input: CreateUpdateLocationRequest) {
  updateLocation(input: $input) {
    message
  }
}
Variables
{"input": CreateUpdateLocationRequest}
Response
{
  "data": {
    "updateLocation": {
      "message": "Response message containing results of API request"
    }
  }
}

Invalidation

invalidateBatchPasses

Description

invalidateBatchPasses will attempt to process Pass Invalidation (expiry) based on the provided list of passes. Please note that Batch Invalidation will be processed through the Breezin Platform and the requester will be notified over email when the batch is complete. API Integration will email the final results to any users with Owner, Admin, Pass-Issuer and Api-Dev permissions.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - InvalidationRequest

Example

Query
mutation InvalidateBatchPasses($input: InvalidationRequest) {
  invalidateBatchPasses(input: $input) {
    message
  }
}
Variables
{"input": InvalidationRequest}
Response
{
  "data": {
    "invalidateBatchPasses": {
      "message": "Response message containing results of API request"
    }
  }
}

invalidateIndividualPass

Description

invalidateIndividualPass will attempt to process Pass Invalidation (expiry) based on the provided list of passes. Pass Invalidation results will be returned in the response body from this endpoint. Please note that Individual Invalidation is limited to 25 passes per request. If you wish to expire more passes within a single request, please look at Batch Invalidation or Invalidation via CSV Upload.

Response

Returns an InvalidationResponse!

Arguments
Name Description
input - InvalidationRequest

Example

Query
mutation InvalidateIndividualPass($input: InvalidationRequest) {
  invalidateIndividualPass(input: $input) {
    successList
    failureList {
      serialNumber
      error
    }
  }
}
Variables
{"input": InvalidationRequest}
Response
{
  "data": {
    "invalidateIndividualPass": {
      "successList": [
        "110100000001",
        "110100000002",
        "110100002101",
        "110100000589"
      ],
      "failureList": [
        {"serialNumber": "110100000003", "error": "Some Failure reason"},
        {"serialNumber": "110100000004", "error": "Another Failure reason"}
      ]
    }
  }
}

invalidatePassesCSV

Description

invalidatePassesCSV will attempt to process a CSV file of passes for Invalidation (expiry). Please note that there is a 32mb limit on file uploads. Invalidation via CSV Upload will be processed through the Breezin Platform and the requester will be notified over email when the batch is complete. API Integration will email the final results to any users with Owner, Admin, Pass-Issuer and Api-Dev permissions.

Response

Returns a ResponseMessage

Arguments
Name Description
input - InvalidationRequestCSV

Example

Query
mutation InvalidatePassesCSV($input: InvalidationRequestCSV) {
  invalidatePassesCSV(input: $input) {
    message
  }
}
Variables
{"input": InvalidationRequestCSV}
Response
{
  "data": {
    "invalidatePassesCSV": {
      "message": "Response message containing results of API request"
    }
  }
}

Pass Delivery

activatePassDeliveryTemplate

Description

activatePassDeliveryTemplate will attempt to mark a Pass Delivery Template as Active in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ActivatePassDeliveryTemplateRequest

Example

Query
mutation ActivatePassDeliveryTemplate($input: ActivatePassDeliveryTemplateRequest) {
  activatePassDeliveryTemplate(input: $input) {
    message
  }
}
Variables
{"input": ActivatePassDeliveryTemplateRequest}
Response
{
  "data": {
    "activatePassDeliveryTemplate": {
      "message": "Response message containing results of API request"
    }
  }
}

archivePassDeliveryTemplate

Description

archivePassDeliveryTemplate will attempt to mark a Pass Delivery Template as Archived in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ArchivePassDeliveryTemplateRequest

Example

Query
mutation ArchivePassDeliveryTemplate($input: ArchivePassDeliveryTemplateRequest) {
  archivePassDeliveryTemplate(input: $input) {
    message
  }
}
Variables
{"input": ArchivePassDeliveryTemplateRequest}
Response
{
  "data": {
    "archivePassDeliveryTemplate": {
      "message": "Response message containing results of API request"
    }
  }
}

createNewPassDeliveryTemplate

Description

createNewPassDeliveryTemplate will attempt to upload a new Pass Delivery Template based on user input.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - PassDeliveryTemplateRequest

Example

Query
mutation CreateNewPassDeliveryTemplate($input: PassDeliveryTemplateRequest) {
  createNewPassDeliveryTemplate(input: $input) {
    message
  }
}
Variables
{"input": PassDeliveryTemplateRequest}
Response
{
  "data": {
    "createNewPassDeliveryTemplate": {
      "message": "Response message containing results of API request"
    }
  }
}

updatePassDeliveryTemplate

Description

updatePassDeliveryTemplate will attempt to update the details of a Pass Delivery Template based on user input.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - PassDeliveryTemplateRequest

Example

Query
mutation UpdatePassDeliveryTemplate($input: PassDeliveryTemplateRequest) {
  updatePassDeliveryTemplate(input: $input) {
    message
  }
}
Variables
{"input": PassDeliveryTemplateRequest}
Response
{
  "data": {
    "updatePassDeliveryTemplate": {
      "message": "Response message containing results of API request"
    }
  }
}

Pass Designs

activatePassDesign

Description

activatePassDesign will attempt to mark an Organisation's Pass Design record as Active in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ActivatePassDesignRequest

Example

Query
mutation ActivatePassDesign($input: ActivatePassDesignRequest) {
  activatePassDesign(input: $input) {
    message
  }
}
Variables
{"input": ActivatePassDesignRequest}
Response
{
  "data": {
    "activatePassDesign": {
      "message": "Response message containing results of API request"
    }
  }
}

archivePassDesign

Description

archivePassDesign will attempt to mark an Organisation's Pass Design record as Archived in the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ArchivePassDesignRequest

Example

Query
mutation ArchivePassDesign($input: ArchivePassDesignRequest) {
  archivePassDesign(input: $input) {
    message
  }
}
Variables
{"input": ArchivePassDesignRequest}
Response
{
  "data": {
    "archivePassDesign": {
      "message": "Response message containing results of API request"
    }
  }
}

Passes

externalPassDownload

Description

externalPassDownload will allow an organisation to control the Pass Download flow from an external application (EG end-user does not get redirected to the Breezin public pass download page). Please note that this will require that the external application uses the specific Add To Wallet buttons for Apple Wallet / Google Wallet. After creating a Distribution request, please provide the 1passApiKey to this endpoint. Upon success, this endpoint will return a URL which will allow the end-user to download their pass. The external application should redirect the user to the returned URL automatically.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ExternalPassDownloadRequest

Example

Query
mutation ExternalPassDownload($input: ExternalPassDownloadRequest) {
  externalPassDownload(input: $input) {
    message
  }
}
Variables
{"input": ExternalPassDownloadRequest}
Response
{
  "data": {
    "externalPassDownload": {
      "message": "Response message containing results of API request"
    }
  }
}

forgetUserDetailsForPass

Description

forgetUserDetailsForPass will attempt to update a pass record to remove the end-users personal details from the cloud DB (GDPR - Right to be forgotten). Please note that this endpoint will expire the pass record (if not already expired), before removing the end-users personal details within 3 days of the request being received.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ForgetUserDetailsForPassRequest

Example

Query
mutation ForgetUserDetailsForPass($input: ForgetUserDetailsForPassRequest) {
  forgetUserDetailsForPass(input: $input) {
    message
  }
}
Variables
{"input": ForgetUserDetailsForPassRequest}
Response
{
  "data": {
    "forgetUserDetailsForPass": {
      "message": "Response message containing results of API request"
    }
  }
}

updatePassPayload

Description

updatePassPayload will attempt to update an active pass to set a new payload value to be scanned via NFC / Barcodes.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdatePassPayloadRequest

Example

Query
mutation UpdatePassPayload($input: UpdatePassPayloadRequest) {
  updatePassPayload(input: $input) {
    message
  }
}
Variables
{"input": UpdatePassPayloadRequest}
Response
{
  "data": {
    "updatePassPayload": {
      "message": "Response message containing results of API request"
    }
  }
}

updatePassUserDetails

Description

updatePassUserDetails will attempt to update the dynamic data fields shown on an end user's active digital pass.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdatePassUserDetails

Example

Query
mutation UpdatePassUserDetails($input: UpdatePassUserDetails) {
  updatePassUserDetails(input: $input) {
    message
  }
}
Variables
{"input": UpdatePassUserDetails}
Response
{
  "data": {
    "updatePassUserDetails": {
      "message": "Response message containing results of API request"
    }
  }
}

Reporting

generateAuditLogReport

Description

generateAuditLogReport will attempt to generate a new Audit Log report for an Organisation's activity within the Breezin platform.

Response

Returns an AuditLogReportResponse!

Arguments
Name Description
input - GenerateAuditLogReportRequest

Example

Query
mutation GenerateAuditLogReport($input: GenerateAuditLogReportRequest) {
  generateAuditLogReport(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GenerateAuditLogReportRequest}
Response
{
  "data": {
    "generateAuditLogReport": {
      "message": "Response message containing results of API request",
      "reportID": "xyz789"
    }
  }
}

generatePassDeliveryReport

Description

generatePassDeliveryReport will attempt to generate a new Pass Delivery report for an Organisation's Pass Delivery requests within the Breezin platform.

Response

Returns a PassDeliveryReportResponse!

Arguments
Name Description
input - GeneratePassDeliveryReportRequest

Example

Query
mutation GeneratePassDeliveryReport($input: GeneratePassDeliveryReportRequest) {
  generatePassDeliveryReport(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GeneratePassDeliveryReportRequest}
Response
{
  "data": {
    "generatePassDeliveryReport": {
      "message": "Response message containing results of API request",
      "reportID": "abc123"
    }
  }
}

generatePassReport

Description

generatePassReport will attempt to generate a pass report based on user input. Please note that there is a 3 month limit on report generation. Report generation will be processed through the Breezin Platform and the requester will be notified over email when the report is available for download.

Response

Returns a PassReportResponse!

Arguments
Name Description
input - PassReportRequest

Example

Query
mutation GeneratePassReport($input: PassReportRequest) {
  generatePassReport(input: $input) {
    message
    reportID
  }
}
Variables
{"input": PassReportRequest}
Response
{
  "data": {
    "generatePassReport": {
      "message": "Response message containing results of API request",
      "reportID": "abc123"
    }
  }
}

Users

activateOrgUser

Description

activateOrgUser will attempt to mark an Organisation's User Account as Active.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ActivateOrgUserRequest

Example

Query
mutation ActivateOrgUser($input: ActivateOrgUserRequest) {
  activateOrgUser(input: $input) {
    message
  }
}
Variables
{"input": ActivateOrgUserRequest}
Response
{
  "data": {
    "activateOrgUser": {
      "message": "Response message containing results of API request"
    }
  }
}

archiveOrgUser

Description

archiveOrgUser will attempt to mark an Organisation's User Account as archived.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ArchiveOrgUserRequest

Example

Query
mutation ArchiveOrgUser($input: ArchiveOrgUserRequest) {
  archiveOrgUser(input: $input) {
    message
  }
}
Variables
{"input": ArchiveOrgUserRequest}
Response
{
  "data": {
    "archiveOrgUser": {
      "message": "Response message containing results of API request"
    }
  }
}

Types

ActivateBeaconRequest

Description

ActivateBeaconRequest will control the input structure when requesting to mark a Beacon as Active in the Cloud DB.

Fields
Input Field Description
title - String!

Title of the Beacon to mark as Active.

Example
{"title": "Some Title"}

ActivateCustomerSupportDetailRequest

Description

ActivateCustomerSupportDetailRequest will control the input structure when requesting to activate an Organisation's Customer Support Detail from the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Customer Support Detail to be activated in the Cloud DB.

Example
{"title": "Some Title"}

ActivateLocationRequest

Description

ActivateLocationRequest will control the input structure when requesting to mark a Location as Active in the Cloud DB.

Fields
Input Field Description
title - String!

Title of the Location to mark as Active.

Example
{"title": "Some Title"}

ActivateOrgUserRequest

Description

ActivateOrgUserRequest will control the input structure when requesting to Activate an Organisation User account.

Fields
Input Field Description
userEmail - String!

The email address of the Organisation User to be marked as Active.

Example
{"userEmail": "abc123"}

ActivatePassDeliveryTemplateRequest

Description

ActivatePassDeliveryTemplateRequest will control the input structure when requesting to mark a Pass Delivery Template as Active in the Cloud DB.

Fields
Input Field Description
title - String!

Title of the Pass Delivery Template to mark as Active.

Example
{"title": "Some Title"}

ActivatePassDesignRequest

Description

ActivatePassDesignRequest will control the input structure when requesting to Activate an Organisation's Pass Design.

Fields
Input Field Description
title - String!

The title of the Pass Design record to be Activated.

Example
{"title": "Some Title"}

ArchiveBeaconRequest

Description

ArchiveBeaconRequest will control the input structure when requesting to mark a Beacon as Archived in the Cloud DB.

Fields
Input Field Description
title - String!

Title of the Beacon to mark as Archived.

Example
{"title": "Some Title"}

ArchiveCustomerSupportDetailRequest

Description

ArchiveCustomerSupportDetailRequest will control the input structure when requesting to archive an Organisation's Customer Support Detail from the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Customer Support Detail to be archived in the Cloud DB.

Example
{"title": "Some Title"}

ArchiveDynamicKeyRequest

Description

ArchiveDynamicKeyRequest will control the input structure when requesting to archive a Dynamic Key record in the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Dynamic Key to mark as archived in the Cloud DB.

Example
{"title": "Some Title"}

ArchiveLocationRequest

Description

ArchiveLocationRequest will control the input structure when requesting to mark a Location as Archived in the Cloud DB.

Fields
Input Field Description
title - String!

Title of the Location to mark as Archived.

Example
{"title": "Some Title"}

ArchiveOrgUserRequest

Description

ArchiveOrgUserRequest will control the input structure when requesting to archive an Organisation User account.

Fields
Input Field Description
userEmail - String!

The email address of the Organisation User to be marked as archived.

Example
{"userEmail": "abc123"}

ArchivePassDeliveryTemplateRequest

Description

ArchivePassDeliveryTemplateRequest will control the input structure when requesting to mark a Pass Delivery Template as Archived in the Cloud DB.

Fields
Input Field Description
title - String!

Title of the Pass Delivery Template to mark as Archived.

Example
{"title": "Some Title"}

ArchivePassDesignRequest

Description

ArchivePassDesignRequest will control the input structure when requesting to archive an Organisation's Pass Design.

Fields
Input Field Description
title - String!

The title of the Pass Design record to be archived.

Example
{"title": "Some Title"}

AuditLogReportResponse

Description

AuditLogReportResponse will control the response structure when requesting a new Audit Log Report via the API.

Fields
Field Name Description
message - String! Response message for the request to generate new Audit Log report.
reportID - String! Unique ID for the reporting request within the system.
Example
{
  "message": "Response message containing results of API request",
  "reportID": "xyz789"
}

BackFieldItem

Description

BackFieldItem contains the details for back field item of a pass design.

Fields
Field Name Description
key - String! Key used to inject personalised content into a back field of a pass record.
label - String! Label field for a back field item on a pass record.
position - Int! Position of the back field item on a pass record.
value - String! Value to store the static field content for a Back Field list item.
isDynamic - Boolean! Boolean flag to record whether the data for a back field item is statically, or dynamically, populated at pass distribution.
Example
{
  "key": "some-key",
  "label": "Some Label",
  "position": 1,
  "value": "Some Value",
  "isDynamic": false
}

BackFields

Description

BackFields forms the generic struct to handle the back field data associated with a pass design.

Fields
Field Name Description
size - Int! The number of Back Fields configured for the pass design.
items - [BackFieldItem!]! List of Back field items for the pass design.
Example
{"size": 42, "items": [BackFieldItem]}

BackgroundColor

Description

BackgroundColor contains the RGB background colour used when rendering the pass on a device

Fields
Field Name Description
red - Int! Controls the Red component of an RGB value. Range: 0 - 255.
green - Int! Controls the Green component of an RGB value. Range: 0 - 255.
blue - Int! Controls the Blue component of an RGB value. Range: 0 - 255.
Example
{"red": 42, "green": 42, "blue": 42}

Beacon

Description

Beacon forms the generic struct to handle the structure of a BLE Beacon record for an Organisation.

Fields
Field Name Description
title - String! Name assigned to the BLE Beacon.
proximityUUID - String! The unique identifier of a BLE beacon.
major - Int Optional major identifier of a BLE beacon.
minor - Int Optional minor identifier of a BLE beacon.
messageText - String! MessageText is used to define the contents of the Apple Push Notification when a pass is in range of the BLE Beacon.
created - Time! Timestamp of when the BLE Beacon record was first created.
creator - String! The user which was responsible for initially creating the BLE Beacon record.
lastModified - Time! Timestamp of when the BLE Beacon record was last modified.
modifier - String! The user which was responsible for the last update of the BLE Beacon record.
status - String! The current status of the Beacon record. Please note that the available values are: Draft, Active or Archived.
Example
{
  "title": "Some Title",
  "proximityUUID": "ABA71543-A2C5-4FB1-AFCF-A3AB01234567",
  "major": 27201,
  "minor": 43985,
  "messageText": "Welcome to our facility. Access your pass here!",
  "created": "2023-03-23T17:21:00Z",
  "creator": "example@email.com",
  "lastModified": "2023-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "status": "active"
}

BeaconRequest

Description

BeaconRequest will handle the input data for creating a new Beacon within the system.

Fields
Input Field Description
title - String!

Name assigned to the BLE Beacon.

proximityUUID - String!

The unique identifier of a BLE beacon.

major - Int

Optional major identifier of a BLE beacon. Please note value must be within the range 0 to 65535

minor - Int

Optional minor identifier of a BLE beacon. Please note value must be within the range 0 to 65535

messageText - String!

MessageText is used to define the contents of the Apple Lock Screen Notification when a pass is in range of the BLE Beacon.

status - String!

Status of the Beacon to save to the Cloud DB. Available options are: 'Draft', 'Active' or 'Archived'.

Example
{
  "title": "Some Title",
  "proximityUUID": "ABA71543-A2C5-4FB1-AFCF-A3AB01234567",
  "major": 27201,
  "minor": 43985,
  "messageText": "Welcome to our facility. Access your pass here!",
  "status": "active"
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

BrandingColor

Description

BrandingColor controls the structure of a Branding Color record from the Cloud DB.

Fields
Field Name Description
title - String! Title of the Branding Color record.
colorHexCode - String! Hex Code of the Branding Color record.
creator - String! Email Address of the user account who first created the Branding Color record.
created - Time! Timestamp of when the Branding Color record was first created within the system.
modifier - String! Email Address of the user account who last edited the Branding Color record.
lastModified - Time! Timestamp of when the Branding Color record was last modified within the system.
titleLowercase - String! Title of the Branding Color record in lower case format.
Example
{
  "title": "Some Title",
  "colorHexCode": "xyz789",
  "creator": "example@email.com",
  "created": "2023-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "lastModified": "2023-03-23T17:21:00Z",
  "titleLowercase": "xyz789"
}

CreateBrandingColorRequest

Description

CreateBrandingColorRequest will control the input structure when requesting to create a new Branding Color record for an Organisation in the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Branding Color to create in the Cloud DB for an organisation.

colorHexCode - String!

The Hex value of the Branding Color.

Example
{
  "title": "Some Title",
  "colorHexCode": "abc123"
}

CreateCustomerSupportDetailRequest

Description

CreateCustomerSupportDetailRequest will control the input structure when requesting to create a new Customer Support Detail record for an Organisation in the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Customer Support Detail to create in the Cloud DB for an organisation.

type - String!

The type of Customer Support Detail to create: Can be Email Address, Phone Number, Whatsapp or Web Link

value - String!

The value of the Customer Support Detail to be created.

Example
{"title": "Some Title", "type": "Some type", "value": "Some Value"}

CreateDynamicKeyRequest

Description

CreateDynamicKeyRequest will control the input structure when requesting to create a new Dynamic Key record for an Organisation in the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Dynamic Key to create in the Cloud DB for an organisation.

description - String!

A human-readable description for the Dynamic Key value to record the intended usage of the Dynamic Key record.

Example
{"title": "Some Title", "description": "Some description"}

CreateUpdateLocationRequest

Description

CreateUpdateLocationRequest will handle the input data for creating/updating a location within the system.

Fields
Input Field Description
title - String!

Title defines the name of a location.

altitude - Float

Optional Altitude value to allow multi-story facilities to define the height of the specific location offering (EG shopping mall).

latitude - Float!

The latitude co-ordinate of the Geolocation. Value should be specified in the range -90.0 through +90.0, both inclusive.

longitude - Float!

The longitude co-ordinate of the Geolocation. Value should be specified in the range -180.0 through +180.0, both inclusive.

messageText - String!

MessageText for the Apple push notification a end-user receives when they enter the Geolocation.

status - String!

Status of the Location to save to the Cloud DB. Available options are: 'Draft', 'Active' or 'Archived'.

Example
{
  "title": "Some Title",
  "altitude": 10,
  "latitude": 56.484146760301854,
  "longitude": -3.018581082165732,
  "messageText": "Welcome to our facility. Access your pass here!",
  "status": "active"
}

CustomerSupportDetail

Description

CustomerSupportDetail controls the structure of a Customer Support Detail record from the Cloud DB.

Fields
Field Name Description
title - String! The title of the Customer Support Detail to create in the Cloud DB for an organisation.
titleLowercase - String! Title of the Customer Support Detail in lower case format.
type - String! The type of Customer Support Detail to create: Can be Email Address, Phone Number, Whatsapp or Web Link
value - String! The value of the Customer Support Detail.
status - String! Current status of the Customer Support Detail record. Available options are 'Active' or 'Archived'.
created - Time! Timestamp of when the Customer Support Detail record was first created within the system.
creator - String! Email Address of the user account who first created the Customer Support Detail record.
lastModified - Time! Timestamp of when the Customer Support Detail record was last modified within the system.
modifier - String! Email Address of the user account who last edited the Customer Support Detail record.
Example
{
  "title": "Some Title",
  "titleLowercase": "abc123",
  "type": "Some type",
  "value": "Some Value",
  "status": "active",
  "created": "2023-03-23T17:21:00Z",
  "creator": "example@email.com",
  "lastModified": "2023-03-23T17:21:00Z",
  "modifier": "example@email.com"
}

DeleteBrandingColorRequest

Description

DeleteBrandingColorRequest will control the input structure when requesting to remove an Organisation's Branding Color from the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Branding Color record to be removed from the Cloud DB.

Example
{"title": "Some Title"}

DistributionPassDetailsInput

Description

Structure for handling individual pass details within a distribution request.

Fields
Input Field Description
externalReferenceID - String!

Unique Reference ID for the end-user in external customer system. This will enable you to reference their external account details to within our system (EG get all passes for end-user, expire all passes for end user). This should be set to an empty string when not required.

payload - String

Optional value to override NFC/Barcode scan value of the pass record. This value has a 64 byte limit and must contain only ASCII characters. Please note that this value can be skipped from the request, resulting in the pass using it's unique serial number when scanned via NFC / Barcodes. When this value is assigned, the pass record will still be assigned a unique serial number, for indexing purposes. Please note this value can be used to assign the same payload to all of an end-users passes (EG 'AccountID', 'MemberNumber', 'CustomerID', etc)

dynamicFields - Map!

Dynamic values to be injected into a pass instance at pass distribution. Please note that there is a maximum limit of 300 characters for a front-of-pass field, and a maximum limit of 1200 characters for a back-of-pass field.

deliveryMethod - String

Value to control if the Breezin platform should deliver the pass download link directly to the intended recipient. Possible values are: 'None', 'Email', or 'SMS'. This value can be omitted from request, set to null, or set to 'None' if pass delivery is not required.

deliveryAddress - String

Value to control the address details for delivering pass download link. This value should be set to the intended recipient's 'mobile number' or 'email address' when selected to deliver pass at distribution time. Value can be omitted from request, set to null, or set to '' if pass delivery is not required.

deliverySalutation - String

Value to define the salutation for pass delivery message. Please note that this will be followed by the deliveryName value for pass delivery message. EG 'Hello', 'Dear', etc. Value can be omitted from request, set to null, or set to '' if pass delivery is not required.

deliveryName - String

Value to define the name of the end-user for personalising pass delivery message. Please note that this will be added beside the Salutation value. EG 'Mr C Menmuir', 'Curtis', 'Curtis Menmuir', etc. Value can be omitted from request, set to null, or set to '' if pass delivery is not required.

deliveryTemplate - String

Value to define the title of the pass delivery template to be used for delivering pass to end user. EG 'email-default'. Please note that the selected template should reflect the type of pass delivery selected under the 'deliveryMethod' field. Value can be omitted from request, set to null, or set to '' if pass delivery is not required.

beacons - [String!]

Optional string array to define the names of the BLE beacons which should be associated with a Pass record. Please note that Google Wallet passes do not support BLE Beacons at this time. Maximum of 10 Beacons can be specified per pass record. Value can be omitted from request, or set to null, if BLE Beacons are not required.

locations - [String!]

Optional string array to define the names of the Geolocations which should be associated with a Pass record. Please note that Google Wallet passes do not support Geolocations at this time. Maximum of 10 Locations can be specified per pass record. Value can be omitted from request, or set to null, if Geolocations are not required.

expiredTimestamp - Time

Optional timestamp value to record if an expiry timestamp should be associated to the pass record at distribution. Value can be omitted from request, or set to null, if pass expiry is not required at distribution time (eg long running membership pass). Please note that pass expiry cannot be set to over a year in advance from the time of distribution.

serialNumber - String

Optional serial number value for specifying serial number when they are managed externally from the Breezin platform. Please note that this value will only be used when Organisation has external serial numbers enabled, and pass design is set to use an external serial number.

Example
{
  "externalReferenceID": "ab12cd34ef56",
  "payload": "xyz789",
  "dynamicFields": {
    "membership_number": "1234567890001",
    "membership_name": "Some Name"
  },
  "deliveryMethod": "Email",
  "deliveryAddress": "example@email.com",
  "deliverySalutation": "Hi",
  "deliveryName": "Jane Doe",
  "deliveryTemplate": "email-default",
  "beacons": ["some-beacon-title"],
  "locations": ["some-location-title"],
  "expiredTimestamp": "2023-03-23T17:21:00Z",
  "serialNumber": "110100000001"
}

DistributionRequest

Description

Request body for generating pass download links for specific end user's. Please note that each entry with the dynamicFields array will represent an individual pass instance.

Fields
Input Field Description
title - String!

Title of pass design

passDetails - [DistributionPassDetailsInput!]!

Array of distribution details for all passes to be distributed within the request.

startTime - Time

Timestamp of when pass download link becomes valid. Omit this value from request / set to null if pass download link should be valid immediately.

endTime - Time

Expiry time of pass download link. Omit this value from request / set to null if pass download link should be available until pass has been installed to a device.

Example
{
  "title": "Some Pass Design Title",
  "passDetails": [DistributionPassDetailsInput],
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z"
}

DistributionRequestCSV

Description

Request body for distributing passes based on an uploaded CSV file. Please note that each row within the CSV file will represent an individual pass record.

Fields
Input Field Description
title - String!

Title of pass design

file - Upload!

CSV file containing distribution details for passes to be issued. Please note that there is a 32mb limit on file uploads.

startTime - Time

Timestamp of when pass download link becomes valid. Omit this value from request / set to null if pass download link should be valid immediately.

endTime - Time

Expiry time of pass download link. Omit this value from request / set to null if pass download link should be available until pass has been installed to a device.

Example
{
  "title": "Some Pass Design Title",
  "file": Upload,
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z"
}

DistributionRequestRecord

Description

DistributionRequestRecord contains the format for creating a pass distribution request

Fields
Field Name Description
batchCount - Int! The number of passes to be distributed for request.
isBatchRequest - Boolean! Boolean flag to record if request was Individual or Batch Distribution request.
jobIssuer - String! Email address of the system user who issued Distribution request.
passDesignTitle - String! Name of the Pass Design template used for distributing passes.
passType - String! The type of pass used for Distribution. EG LongTerm, ShortTerm, etc.
created - Time! Timestamp of when the Distribution request was created within the system.
failureCount - Int! The number of records which failed to be distributed as part of this request. Please note that these passes will not be charged to account.
failureResults - String! Download link to a CSV file containing failure records along with a failure reason.
status - String! The status of the Distribution request. EG In-Progress, Complete, etc.
successCount - Int! The number of passes which were successfully Distributed as part of this request.
successResults - String! Download link to a CSV file containing success records for this Distribution request.
projectedCost - Int! Estimated cost at creation of Distribution request. Please note that any passes which fail to Distribute will not be charged to account.
pricePerPass - Int! The cost per pass for each record within the Distribution request.
appleRedemptions - Int The number of passes from the Distribution request which were installed successfully to an Apple device.
googleRedemptions - Int The number of passes from the Distribution request which were installed successfully to an Android device.
Example
{
  "batchCount": 10,
  "isBatchRequest": false,
  "jobIssuer": "example@email.com",
  "passDesignTitle": "Some Pass Design",
  "passType": "LongTerm",
  "created": "2023-03-23T17:21:00Z",
  "failureCount": 1,
  "failureResults": "https://www.somelinktofile.com/",
  "status": "active",
  "successCount": 9,
  "successResults": "https://www.somelinktofile.com/",
  "projectedCost": 90,
  "pricePerPass": 10,
  "appleRedemptions": 5,
  "googleRedemptions": 4
}

DistributionRequestWithID

Description

DistributionRequestWithID controls the structure of a Distribution Request document which contains the Document ID for the record.

Fields
Field Name Description
batchCount - Int! The number of passes to be distributed for request.
isBatchRequest - Boolean! Boolean flag to record if request was Individual or Batch Distribution request.
jobIssuer - String! Email address of the system user who issued Distribution request.
passDesignTitle - String! Name of the Pass Design template used for distributing passes.
passType - String! The type of pass used for Distribution. EG LongTerm, ShortTerm, etc.
created - Time! Timestamp of when the Distribution request was created within the system.
failureCount - Int! The number of records which failed to be distributed as part of this request. Please note that these passes will not be charged to account.
failureResults - String! Download link to a CSV file containing failure records along with a failure reason.
status - String! The status of the Distribution request. EG In-Progress, Complete, etc.
successCount - Int! The number of passes which were successfully Distributed as part of this request.
successResults - String! Download link to a CSV file containing success records for this Distribution request.
projectedCost - Int! Estimated cost at creation of Distribution request. Please note that any passes which fail to Distribute will not be charged to account.
pricePerPass - Int! The cost per pass for each record within the Distribution request.
appleRedemptions - Int The number of passes from the Distribution request which were installed successfully to an Apple device.
googleRedemptions - Int The number of passes from the Distribution request which were installed successfully to an Android device.
docID - String! The unique Document ID of the distribution record.
Example
{
  "batchCount": 10,
  "isBatchRequest": false,
  "jobIssuer": "example@email.com",
  "passDesignTitle": "Some Pass Design",
  "passType": "LongTerm",
  "created": "2023-03-23T17:21:00Z",
  "failureCount": 1,
  "failureResults": "https://www.somelinktofile.com/",
  "status": "active",
  "successCount": 9,
  "successResults": "https://www.somelinktofile.com/",
  "projectedCost": 90,
  "pricePerPass": 10,
  "appleRedemptions": 5,
  "googleRedemptions": 4,
  "docID": "abc123"
}

DistributionResponse

Description

Response body containing the Success and Failure results for a distribution request.

Fields
Field Name Description
successList - [SuccessListItem] Array of links to pass downloads, and the map of dynamic data assigned to pass
failureList - [FailureListItem] Array of failed pass distribution requests; contains the dynamic data requested for the pass instance, and the failure reason given by the system
Example
{
  "successList": [
    {
      "customFieldData": {
        "membership_number": "1234567890001",
        "membership_name": "Some Name"
      },
      "passDownloadLink": "https://www.breezin.io/pass-download?details=cdcjw34e345730489fmrfkjsdfg8fger435tyjergf98sdfg098430594rjkerfdsfo87gydsfg345t8",
      "serialNumber": "110100000001"
    },
    {
      "customFieldData": {
        "membership_number": "1234567890002",
        "membership_name": "Another Name"
      },
      "passDownloadLink": "https://www.breezin.io/pass-download?details=aser124e345730489fmrfkjsdfg8fger435tyjergf98sdfg098430594rjkerfdsfo87gydsfg345t8",
      "serialNumber": "110100000002"
    }
  ],
  "failureList": [
    {
      "dynamicFieldData": {
        "membership_number": "1234567890003",
        "membership_name": "Some Name"
      },
      "error": "Some Failure reason"
    },
    {
      "dynamicFieldData": {
        "membership_number": "1234567890004",
        "membership_name": "Another Name"
      },
      "error": "Another Failure reason"
    }
  ]
}

DynamicField

Description

DynamicField is used to track the full details of a custom data field on a pass record. This will include positioning details as well as the display value for a specific pass record.

Fields
Field Name Description
id - String! ID of a specific custom data field.
position - Int! Position of custom data field within a row on the pass.
row - Int! Row value of the custom data field within a pass.
value - String! Value to be displayed for custom data field on a pass.
Example
{"id": "some-id", "position": 1, "row": 1, "value": "Some Value"}

DynamicFieldItem

Description

DynamicFieldItem contains the dynamic field item for customizing what is presented on a pass

Fields
Field Name Description
key - String! Dynamic Data key used to inject personalised content into a pass record.
label - String! Label field for Dynamic Data field on pass.
position - Int! Position of Dynamic Data field within a row on the pass.
isDynamic - Boolean! Boolean flag to record whether the data for a front of pass field item is statically or dynamically assigned. If dynamically then the value should be provided at pass distribution time.
value - String! Value to store the static field content for a Front of pass Field list item. Please note that this value will be ignored for dynamically assigned fields.
Example
{
  "key": "some-key",
  "label": "Some Label",
  "position": 1,
  "isDynamic": true,
  "value": "Some Value"
}

DynamicFields

Description

DynamicFields contains the dynamic fields for customizing what is presented on a pass

Fields
Field Name Description
size - Int! The number of Dynamic Fields configured for the pass.
items - [DynamicFieldItem!]! List of Dynamic field keys for pass.
Example
{"size": 42, "items": [DynamicFieldItem]}

DynamicKey

Description

DynamicKey controls the DB structure for a Dynamic Key record which is used to inject personal details into an end-user's digital pass.

Fields
Field Name Description
created - Time! Timestamp of when the Dynamic Key record was first created within the platform.
creator - String! Email address of the system user who first created the Dynamic Key record within the platform.
description - String! Human readable description to explain the use case for the Dynamic Key record.
lastModified - Time! Timestamp of when the Dynamic Key record was last updated within the platform.
modifier - String! Email address of the system user who last updated the Dynamic Key record within the platform.
status - String! The current status of the Dynamic Key record. Please note that the available values are: active or archived.
title - String! The title of the Dynamic Key record. Please note that this will be the field name used to inject personal details in to a pass record at distribution time.
Example
{
  "created": "2023-03-23T17:21:00Z",
  "creator": "example@email.com",
  "description": "Some description",
  "lastModified": "2023-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "status": "active",
  "title": "Some Title"
}

DynamicKeysPassDesignSummary

Description

DynamicKeysPassDesignSummary will control the structure of the Pass Design summary details when requesting a paginated list of PassDesign details where the pass design contains a specific Dynamic Key value.

Fields
Field Name Description
title - String! Title of the Pass Design record.
type - String! Type of the Pass Design record, EG: 'Generic', 'Event', etc.
status - String! Status of the Pass Design record, EG: 'active', 'archived', or 'draft'.
Example
{"title": "Some Title", "type": "Some type", "status": "active"}

ExternalPassDownloadRequest

Description

ExternalPassDownloadRequest controls the request structure for downloading a pass via API. This can be used to download a pass from within an external application, EG without visiting the Breezin Pass Download web page.

Fields
Input Field Description
deviceOS - String!

The Device OS for the pass to download.
Example: Either Apple or Google

encryptedDetails - String!

The encrypted details string to generate the pass from
Example: 0F020A2412424A4C1D...

Example
{
  "deviceOS": "Apple",
  "encryptedDetails": "abc123"
}

FailureListItem

Description

Returned when a distribution request for a pass fails. Contains the pass that failed's custom fields, external reference ID, as well as a reason why an error occurred whilst distributing a specific pass record.

Fields
Field Name Description
dynamicFieldData - Map Dynamic field data for pass distribution request that failed
externalReferenceID - String! Unique Reference ID for the end-user in external customer system. This will enable you to reference their external account details to within our system (EG get all passes for end-user, expire all passes for end user). This should be set to an empty string when not required.
payload - String Value to control the payload which is scanned from the pass record via NFC or Barcode.
deliveryMethod - String! Value to control if the Breezin platform should deliver the pass download link directly to the intended recipient. Possible values are: 'None', 'Email', or 'SMS'.
deliveryAddress - String! Value to control the address details for delivering pass download link. This value should be set to the intended recipient's 'mobile number' or 'email address' when selected to deliver pass at distribution time.
deliverySalutation - String! The salutation message for formatting the pass delivery message.
deliveryName - String! The name of the end-user for personalising pass delivery message.
deliveryTemplate - String! The Pass Delivery Template to be used to format the pass delivery message.
beacons - [String!] String array containing the names of the BLE beacons which were requested to be associated with the Pass record.
locations - [String!] String array containing the names of the Geolocations which were requested to be associated with the Pass record.
expiredTimestamp - Time Value to record if an expiry timestamp was associated to the pass record at distribution.
error - String Error related to failure
Example
{
  "dynamicFieldData": {
    "membership_number": "1234567890001",
    "membership_name": "Some Name"
  },
  "externalReferenceID": "ab12cd34ef56",
  "payload": "xyz789",
  "deliveryMethod": "Email",
  "deliveryAddress": "example@email.com",
  "deliverySalutation": "Hi",
  "deliveryName": "Jane Doe",
  "deliveryTemplate": "email-default",
  "beacons": ["some-beacon-title"],
  "locations": ["some-location-title"],
  "expiredTimestamp": "2023-03-23T17:21:00Z",
  "error": "Message explaining reason for error"
}

FetchActiveBeaconListRequest

Description

FetchActiveBeaconListRequest will control the input structure when requesting to fetch a list of Active Beacons for an Organisation.

Example
{}

FetchActiveBeaconListResponse

Description

FetchActiveBeaconListResponse will control the response structure for a request to fetch a list of Active Beacons for an Organisation.

Fields
Field Name Description
beaconsList - [String!]! List of titles for an Organisation's active Beacon records.
Example
{"beaconsList": ["abc123"]}

FetchActiveDynamicKeyListRequest

Description

FetchActiveDynamicKeyListRequest will control the input structure when requesting to fetch a list of Active Dynamic Keys for an Organisation.

Example
{}

FetchActiveDynamicKeyListResponse

Description

FetchActiveDynamicKeyListResponse will control the response structure for a request to fetch a list of Active Dynamic Keys for an Organisation.

Fields
Field Name Description
dynamicKeyList - [String!]! List of titles for an Organisation's active Dynamic Key records.
Example
{"dynamicKeyList": ["abc123"]}

FetchActiveLocationListRequest

Description

FetchActiveLocationListRequest will control the input structure when requesting to fetch a list of Active Locations for an Organisation.

Example
{}

FetchActiveLocationListResponse

Description

FetchActiveLocationListResponse will control the response structure for a request to fetch a list of Active Locations for an Organisation.

Fields
Field Name Description
locationsList - [String!]! List of titles for an Organisation's active Location records.
Example
{"locationsList": ["xyz789"]}

FetchActivePassDeliveryListRequest

Description

FetchActivePassDeliveryListRequest will control the input structure when requesting to fetch a list of Active Pass Delivery Templates for an Organisation.

Example
{}

FetchActivePassDeliveryListResponse

Description

FetchActiveBeaconListResponse will control the response structure for a request to fetch a list of Active Pass Delivery Template titles for an Organisation.

Fields
Field Name Description
emailList - [String!]! List of titles for an Organisation's active Email Pass Delivery Template records.
smsList - [String!]! List of titles for an Organisation's active SMS Pass Delivery Template records.
Example
{
  "emailList": ["abc123"],
  "smsList": ["abc123"]
}

FetchBeaconByTitleRequest

Description

FetchBeaconByTitleRequest will control the input structure when requesting to retrieve a beacon from the Cloud DB by title.

Fields
Input Field Description
title - String!

Title of an Organisation's beacon record to search for within the Cloud DB.

Example
{"title": "Some Title"}

FetchBrandingColorByTitleRequest

Description

FetchBrandingColorByTitleRequest will control the input structure when requesting to fetch an Organisation's branding color from the Cloud DB.

Fields
Input Field Description
title - String!

Title of the Branding Color record to fetch from the Cloud DB.

Example
{"title": "Some Title"}

FetchDistributionDocByIdRequest

Description

FetchDistributionDocByIdRequest controls the input structure when requesting to fetch an Organisation's Distribution by Doc id from the Cloud DB.

Fields
Input Field Description
distributionID - String!

Distribution Id of the document also referred as DocId

Example
{"distributionID": "xyz789"}

FetchDynamicKeyByTitleRequest

Description

* FetchDynamicKeyByTitleRequest will control the input structure when requesting to retrieve a Dynamic Key record from the Cloud DB by title.

Fields
Input Field Description
title - String!

The title of the Dynamic Key to search for in the Cloud DB.

Example
{"title": "Some Title"}

FetchInvalidationDocByIdRequest

Description

FetchInvalidationDocByIdRequest controls the input structure when requesting to fetch an Organisation's Invalidation by Doc id from the Cloud DB.

Fields
Input Field Description
invalidationID - String!

Invalidation Id of the document also referred as DocId

Example
{"invalidationID": "xyz789"}

FetchLocationByTitleRequest

Description

FetchLocationByTitleRequest will control the input structure when requesting to retrieve a geo-location from the Cloud DB by title.

Fields
Input Field Description
title - String!

Title of an Organisation's geo-location record to search for within the Cloud DB.

Example
{"title": "Some Title"}

FetchPaginatedBrandingColorsRequest

Description

* FetchPaginatedBrandingColorsRequest will control the input structure when requesting to fetch a paginated list of Organisation Branding Colors from the Cloud DB.

Fields
Input Field Description
batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first', 'oldest-first', 'name-ascending', or 'name-descending'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastModifiedDate - Time

lastModifiedDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastTitle - String

lastTitle is the unique Title related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

Example
{
  "batchSize": 10,
  "sortFilter": "abc123",
  "lastDocID": "some-doc-id",
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastTitle": "xyz789"
}

FetchPaginatedBrandingColorsResponse

Description

* FetchPaginatedBrandingColorsResponse will control the response structure when requesting to fetch a paginated list of Organisation Branding Colors from the Cloud DB.

Fields
Field Name Description
brandingColors - [BrandingColor!]! Paginated list of Branding Color records for an Organisation.
lastModifiedDate - Time lastModifiedDate of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastTitle - String The Title of the last document within the returned results. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "brandingColors": [BrandingColor],
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "lastTitle": "xyz789",
  "totalNumberOfRecords": Int64
}

FetchPaginatedCustomerSupportDetailsRequest

Description

FetchPaginatedCustomerSupportDetailsRequest will control the input structure when requesting to fetch a paginated list of Organisation Customer Support Details from the Cloud DB.

Fields
Input Field Description
batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

typeFilter - String

Optional filter option to limit the pagination results to return a specified type of Customer Support Detail. Available type filter options: 'Email Address', 'Phone Number', 'Whatsapp' or 'Web Link'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

statusFilter - String

Optional filter option to limit the pagination results to return Customer Support Details with a specified status value. Available status filter options: 'Active' or 'Archived'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first', 'oldest-first', 'name-ascending', or 'name-descending'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastModifiedDate - Time

lastModifiedDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastTitle - String

lastTitle is the unique Title related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

Example
{
  "batchSize": 10,
  "typeFilter": "abc123",
  "statusFilter": "xyz789",
  "sortFilter": "xyz789",
  "lastDocID": "some-doc-id",
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastTitle": "xyz789"
}

FetchPaginatedCustomerSupportDetailsResponse

Description

FetchPaginatedCustomerSupportDetailsResponse will control the response structure when requesting to fetch a paginated list of Organisation Customer Support Details from the Cloud DB.

Fields
Field Name Description
customerSupportDetailList - [CustomerSupportDetail!]! Paginated list of Customer Support Detail records for an Organisation.
lastModifiedDate - Time lastModifiedDate of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastTitle - String The Title of the last document within the returned results. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "customerSupportDetailList": [CustomerSupportDetail],
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "lastTitle": "abc123",
  "totalNumberOfRecords": Int64
}

FetchPaginatedDynamicKeysRequest

Description

FetchPaginatedDynamicKeysRequest will control the input structure when requesting to retrieve a paginated batch of Dynamic Keys from the Cloud DB.

Fields
Input Field Description
batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

statusFilter - String

Optional filter option to limit the pagination results to return Dynamic Keys with a specified status value. Available status filter options: 'active' or 'archived'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first', 'oldest-first', 'name-ascending', or 'name-descending'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

lastModifiedTimestamp - Time

lastModifiedDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastTitle - String

lastTitle is the unique Title related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

Example
{
  "batchSize": 10,
  "statusFilter": "xyz789",
  "sortFilter": "xyz789",
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastTitle": "abc123",
  "lastDocID": "some-doc-id"
}

FetchPaginatedDynamicKeysResponse

Description

FetchPaginatedDynamicKeysResponse will control the response structure when requesting to retrieve a paginated batch of Dynamic Keys from the Cloud DB.

Fields
Field Name Description
dynamicKeys - [DynamicKey!]! Paginated list of Dynamic Keys from the Cloud DB.
lastModifiedTimestamp - Time lastModifiedDate of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastTitle - String lastTitle for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "dynamicKeys": [DynamicKey],
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastTitle": "xyz789",
  "lastDocID": "some-doc-id",
  "totalNumberOfRecords": Int64
}

FetchPaginatedPassDesignsForDynamicKeyRequest

Description

FetchPaginatedPassDesignsForDynamicKeyRequest will control the input structure when requesting a paginated list of PassDesign details where the pass design contains a specific Dynamic Key value.

Fields
Input Field Description
title - String

Title of the Dynamic Key to query Cloud DB for retrieving matching Pass Design Summary records.

batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

lastModifiedTimestamp - Time

lastModifiedDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

Example
{
  "title": "Some Title",
  "batchSize": 10,
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

FetchPaginatedPassDesignsForDynamicKeyResponse

Description

FetchPaginatedPassDesignsForDynamicKeyResponse will control the response structure when requesting a paginated list of PassDesign details where the pass design contains a specific Dynamic Key value.

Fields
Field Name Description
passDesignSummaryList - [DynamicKeysPassDesignSummary!]! List of Pass Design Summary details.
lastModifiedTimestamp - Time lastModifiedDate of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "passDesignSummaryList": [DynamicKeysPassDesignSummary],
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "totalNumberOfRecords": Int64
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

ForgetUserDetailsForPassRequest

Description

ForgetUserDetailsForPassRequest will control the input structure for requesting the a pass record is updated to remove an end-users personal details.

Fields
Input Field Description
serialNumber - String!

Unique serial number of pass record for user details to be forgotten. Please note that their pass will be expired before removing user personal details from platform. Personal details will be removed within 3 days of request being received.

Example
{"serialNumber": "110100000001"}

GenerateAuditLogReportRequest

Description

GenerateAuditLogReportRequest will control the input structure for requesting a new Audit Log report to be generated.

Fields
Input Field Description
startTime - Time!

Timestamp to control initial start point of report generation for Audit Log records. Please note there is a 7 day maximum limit on Audit Log report generation.

endTime - Time!

Timestamp to control the end point of report generation for Audit Log records. Please note there is a 7 day maximum limit on Audit Log report generation.

emailAddresses - [String!]!

List of email addresses to receive the report download link via email once report generation complete. This can be set to an empty array if not required to receive email results.

emailAddressFilter - String

Filter option for specifying the report to be filtered to a specific system user email address. Please omit this value from the request, set to empty string ('') or set to 'all' if this filter is not required.

categoryFilter - String

Filter option for specifying the report to be filtered to a specific category of audit events. Please omit this value from the request, set to empty string ('') or set to 'all' if this filter is not required. Available values: 'Beacons', 'Billing', 'Distributions', 'Dynamic Keys', 'Invalidations', 'Geolocations', 'Login', 'Organisation', 'Pass Designs', 'Passes', 'Reporting', 'Serial Numbers', 'Signing', or 'Users'.

reportFields - [String]

The fields we wish to return within the CSV report. Omitting this value from the request will result in all fields being included in the final report CSV. Available values: 'Timestamp', 'Email Address', 'Category', 'Event', and 'Identifier'.

Example
{
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["xyz789"],
  "emailAddressFilter": "abc123",
  "categoryFilter": "xyz789",
  "reportFields": ["xyz789"]
}

GeneratePassDeliveryReportRequest

Description

GeneratePassDeliveryReportRequest will control the input structure for requesting a new Pass Delivery report to be generated.

Fields
Input Field Description
startTime - Time!

Timestamp to control initial start point of report generation for Pass Delivery records. Please note there is a 30 day maximum limit on Pass Delivery report generation.

endTime - Time!

Timestamp to control the end point of report generation for Pass Delivery records. Please note there is a 30 day maximum limit on Pass Delivery report generation.

emailAddresses - [String!]!

List of email addresses to receive the report download link via email once report generation complete. This can be set to an empty array if not required to receive email results.

deliveryTypeFilter - String

Filter option for specifying the report to be filtered to a specific delivery type for Pass Delivery reporting records. Please omit this value from the request, set to empty string ('') or set to 'all' if this filter is not required. Available values are: 'Email', 'SMS UK' or 'SMS World'.

statusFilter - String

Filter option for specifying the report to be filtered to a specific status of Pass Delivery reporting records. Please omit this value from the request, set to empty string ('') or set to 'all' if this filter is not required. Available values: 'Processing', 'Sent', 'Delivered', or 'Failed'.

reportFields - [String]

The fields we wish to return within the CSV report. Omitting this value from the request will result in all fields being included in the final report CSV. Available values: 'Created', 'Last Modified', 'Delivery Type', 'Delivery Address', 'Delivery Salutation', 'Delivery Name', 'Delivery Template', 'Status', and 'Distribution ID'.

Example
{
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["xyz789"],
  "deliveryTypeFilter": "abc123",
  "statusFilter": "xyz789",
  "reportFields": ["xyz789"]
}

GenericObjectDefaultFields

Description

GenericObjectDefaultFields is used to add the generic default fields to a Pass record.

Fields
Field Name Description
cardTitle - String! Title field for a specific pass record.
cardTitleLabel - String Label string for pass title field.
header - String! Header field for a specific pass record.
subheader - String Optional SubHeader field for a specific pass record.
Example
{
  "cardTitle": "Some Title",
  "cardTitleLabel": "Some Label",
  "header": "Some Header",
  "subheader": "Some Subheader"
}

Geolocation

Description

Geolocation forms the generic struct to handle the structure of a location record for an Organisation for trigger push notifications based on Geolocations.

Fields
Field Name Description
title - String! Name assigned to the Geolocation co-ordinates.
altitude - Float Optional Altitude value to allow multi-story facilities to define the height of the specific location offering (EG shopping mall).
created - Time! Timestamp of when the Geolocation record was first created.
creator - String! The user which was responsible for initially creating the Geolocation record.
lastModified - Time! Timestamp of when the Geolocation record was last modified.
latitude - Float! The latitude co-ordinate of the Geolocation.
longitude - Float! The longitude co-ordinate of the Geolocation.
messageText - String! The message text to be displayed in a notification when the pass enters the geolocation co-ordinates (Push notification to Apple Devices).
modifier - String! The user which was responsible for the last update of the Geolocation record.
status - String! The current status of the Geolocation record. Please note that the available values are: Draft, Active or Archived.
Example
{
  "title": "Some Title",
  "altitude": 10,
  "created": "2023-03-23T17:21:00Z",
  "creator": "example@email.com",
  "lastModified": "2023-03-23T17:21:00Z",
  "latitude": 56.484146760301854,
  "longitude": -3.018581082165732,
  "messageText": "Welcome to our facility. Access your pass here!",
  "modifier": "example@email.com",
  "status": "active"
}

GetBySerialPrefixRequest

Description

GetBySerialPrefixRequest

Fields
Input Field Description
serialPrefix - String!

The prefix of the serial number sequence for which we want to fetch.

Example
{"serialPrefix": "xyz789"}

GetCustomerSupportDetailByTitleRequest

Description

GetCustomerSupportDetailByTitleRequest will control the input structure when requesting to fetch a Customer Support Detail record from the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Customer Support Detail to fetch from the Cloud DB.

Example
{"title": "Some Title"}

GetPaginatedBeaconRequest

Description

GetPaginatedBeaconRequest will handle input values for retrieving a paginated list of BLE Beacon records from the database.

Fields
Input Field Description
batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

statusFilter - String

Optional filter option to limit the pagination results to return Beacons with a specified status value. Available status filter options: 'Draft', 'Active' or 'Archived'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first', 'oldest-first', 'name-ascending', or 'name-descending'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastModifiedDate - Time

lastModifiedDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastTitle - String

lastTitle is the unique Title related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

Example
{
  "batchSize": 10,
  "statusFilter": "xyz789",
  "sortFilter": "xyz789",
  "lastDocID": "some-doc-id",
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastTitle": "xyz789"
}

GetPaginatedDistributionRequest

Description

GetPaginatedDistributionRequest will handle input values for retrieving a paginated list of Distribution requests for an Organisation.

Fields
Input Field Description
batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

lastCreated - Time

lastCreated is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

statusFilter - String

Optional filter option to limit the pagination results to return Distribution requests with a specified status value. Available status filter options: 'In Progress' or 'Complete'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

typeFilter - String

Optional filter option to limit the pagination results to return Distribution requests with a specified type value. Available status filter options: 'Manual' or 'Batch'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first' or 'oldest-first'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

Example
{
  "batchSize": 10,
  "lastCreated": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "statusFilter": "xyz789",
  "typeFilter": "xyz789",
  "sortFilter": "xyz789"
}

GetPaginatedInvalidationRequest

Description

GetPaginatedInvalidationRequest will handle input values for retrieving a paginated list of Invalidation requests for an Organisation.

Fields
Input Field Description
batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

lastCreated - Time

lastCreated is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

statusFilter - String

Optional filter option to limit the pagination results to return Invalidation requests with a specified status value. Available status filter options: 'In Progress' or 'Complete'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

typeFilter - String

Optional filter option to limit the pagination results to return Invalidation requests with a specified type value. Available status filter options: 'Manual' or 'Batch'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first' or 'oldest-first'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

Example
{
  "batchSize": 10,
  "lastCreated": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "statusFilter": "xyz789",
  "typeFilter": "xyz789",
  "sortFilter": "xyz789"
}

GetPaginatedLocationRequest

Description

GetPaginatedLocationRequest will handle input values for retrieving a paginated list of Location records for an Organisation's account.

Fields
Input Field Description
batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

statusFilter - String

Optional filter option to limit the pagination results to return Locations with a specified status value. Available status filter options: 'Draft', 'Active' or 'Archived'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first', 'oldest-first', 'name-ascending', or 'name-descending'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastModifiedDate - Time

lastModifiedDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastTitle - String

lastTitle is the unique Title related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

Example
{
  "batchSize": 10,
  "statusFilter": "xyz789",
  "sortFilter": "abc123",
  "lastDocID": "some-doc-id",
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastTitle": "xyz789"
}

GetPaginatedOrgUsersRequest

Description

GetPaginatedOrgUsersRequest will control the input structure when requesting to retrieve a paginated list of Organisation Users.

Fields
Input Field Description
batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

statusFilter - String

Optional filter option to limit the pagination results to return Organisation Users with a specified status value. Available status filter options: 'Active' or 'Archived'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first', 'oldest-first', 'name-ascending' or 'name-descending'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

lastModifiedDate - Time

lastModifiedDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastName - String

lastName is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

Example
{
  "batchSize": 10,
  "statusFilter": "abc123",
  "sortFilter": "xyz789",
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "lastName": "xyz789"
}

GetPaginatedOrgUsersResponse

Description

GetPaginatedOrgUsersResponse controls the response structure when requesting to retrieve a paginated list of Organisation User account details.

Fields
Field Name Description
usersList - [OrganisationUserDetails!]! Paginated list of Organisation User Accounts.
lastModifiedDate - Time lastModifiedDate time of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastName - String lastName for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "usersList": [OrganisationUserDetails],
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "lastName": "xyz789",
  "totalNumberOfRecords": Int64
}

GetPaginatedPassDeliveryTemplateRequest

Description

GetPaginatedPassDeliveryTemplateRequest controls the input structure when requesting to fetch a list of paginated pass delivery templates from the Cloud DB.

Fields
Input Field Description
passTemplateType - String

The type of delivery template we wish to fetch. Options: All, SMS or Email

batchCount - Int

The number of templates we wish to return in our request, EG: 10. Please note there is a maximum limit of 25 for batch size.

statusFilter - String

Optional filter option to limit the pagination results to return Pass Delivery Templates with a specified status value. Available status filter options: 'Draft', 'Active' or 'Archived'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first', 'oldest-first', 'name-ascending', or 'name-descending'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

lastDocID - String

The DocID of the last document in previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastModifiedTimestamp - Time

lastModifiedTimestamp is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastTitle - String

lastTitle is the unique Title related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

Example
{
  "passTemplateType": "Email",
  "batchCount": 10,
  "statusFilter": "xyz789",
  "sortFilter": "abc123",
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastTitle": "abc123"
}

GetPaginatedPassDesignRequest

Description

GetPaginatedPassDesignRequest will handle input values for retrieving a paginated list of Pass Designs for an Organisation.

Fields
Input Field Description
batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

lastModifiedTimestamp - Time

lastModifiedTimestamp is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

statusFilter - String

Optional filter option to limit the pagination results to return Pass Designs with a specified status value. Available status filter options: 'active', 'draft', or 'archived'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

typeFilter - String

Optional filter option to limit the pagination results to return Pass Designs with a specified type value. Available type filter options: 'Generic', 'Loyalty', or 'Event'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

serialFilter - String

Optional filter option to limit the pagination results to return Pass Designs which are assigned a specific Serial Number Prefix value, EG: '0001'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

usageFilter - String

Optional filter option to limit the pagination results to return Pass Designs with a specified UsageLimit value. Available type filter options: 'LongTerm', 'ShortTerm', or 'X_Use'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first', 'oldest-first', 'name-ascending', or 'name-descending'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

Example
{
  "batchSize": 10,
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "statusFilter": "xyz789",
  "typeFilter": "abc123",
  "serialFilter": "abc123",
  "usageFilter": "abc123",
  "sortFilter": "xyz789"
}

GetPaginatedReportingRequestsRequest

Description

GetPaginatedReportingRequestsRequest will handle the input structure to get paginated Reporting Requests.

Fields
Input Field Description
batchSize - Int!

Batch size for controlling the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

reportType - String

The type of the Reporting Request. You can omit this value, set to to empty string, or set to all if filter is not required. Supported reporting values: PassReport, PassDelieryReport, or AuditLogReport.

statusFilter - String

Optional filter option to limit the pagination results to return records with a specified status value. Available status filter options: 'in-progress' or 'complete'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first' or 'oldest-first'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastModifiedTimestamp - Time

Last Modified Timestamp value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.

Example
{
  "batchSize": 10,
  "reportType": "abc123",
  "statusFilter": "abc123",
  "sortFilter": "xyz789",
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z"
}

GetPaginatedSerialNumbersRequest

Description

GetPaginatedSerialNumbersRequest will control the input structure when requesting to fetch a paginated batch of Serial Numbers.

Fields
Input Field Description
batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request, EG 10. Please note there is a maximum limit of 25 for batch size.

statusFilter - String

Optional filter option to limit the pagination results to return Serial Numbers with a specified status value. Available status filter options: 'Assigned' or 'Not Assigned'. Please note that if this filter is not required, then please omit the value from the request, or set to 'all'.

sortFilter - String

Optional filter option to set the sorting method for ordering the pagination output of the response. Available values are: 'newest-first' or 'oldest-first'. If this value is not provided then the function will default to using the 'newest-first' sorting method.

lastModifiedTimestamp - Time

lastModifiedDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

lastDocID - String

lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.

Example
{
  "batchSize": 10,
  "statusFilter": "xyz789",
  "sortFilter": "abc123",
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

GetPaginatedSerialNumbersResponse

Description

GetPaginatedSerialNumbersResponse will control the response structure when requesting to retrieve a paginated batch of Serial Numbers.

Fields
Field Name Description
serialNumberList - [SerialNumberDetails!]! Paginated list of Serial Number records from the Cloud DB.
lastModifiedTimestamp - Time lastModifiedDate of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "serialNumberList": [SerialNumberDetails],
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "totalNumberOfRecords": Int64
}

GetPassDesignByTitleRequest

Description

Payload to fetch an pass design by it's title

Fields
Input Field Description
title - String!

The title of the pass design to fetch

Example
{"title": "Some Title"}

GetPassDesignMonthlyReportRequest

Description

Payload to fetch a pass design report by it's title and reporting period (and organisation name if a HT user)

Fields
Input Field Description
passDesignTitle - String!

Title of the Pass Design included in the report.

reportingPeriod - String!

Reporting Period represents the month and year period for the data included in the report. EG July 2023

Example
{"passDesignTitle": "Some Pass Design", "reportingPeriod": "June 2023"}

GetPassesByExternalRefIDRequest

Description

GetPassesByExternalRefIDRequest will handle input values to retrieve a list of passes which match on a specified externalReferenceID value.

Fields
Input Field Description
externalReferenceID - String!

Unique Reference ID for the end-user in external customer system. This will require the externalReferenceID value to be set at Pass Distribution.

Example
{"externalReferenceID": "ab12cd34ef56"}

GetReportingRequestByReportIDRequest

Description

GetReportingRequestByReportIDRequest will handle the input structure to get the Reporting Request by specified Report ID.

Fields
Input Field Description
reportID - String!

The unique ID of the Reporting Request.

Example
{"reportID": "xyz789"}

GetSerialNumberPrefixListRequest

Description

GetSerialNumberPrefixListRequest will control the input structure for retrieving a list of the Pass Design prefixes for an Organisation.

Example
{}

GetSerialNumberPrefixListResponse

Description

GetSerialNumberPrefixListResponse will control the response structure when retrieving a list of the Pass Design prefixes for an Organisation.

Fields
Field Name Description
serialNumberPrefixList - [String!]! List of Serial Number prefixes for an Organisation.
Example
{"serialNumberPrefixList": ["abc123"]}

GetUserDetailsByEmailRequest

Description

GetUserDetailsByEmailRequest will control the input structure when requesting to retrieve an Org User by Email from the Cloud DB.

Fields
Input Field Description
email - String!

The Email Address of the user record to search for in the Cloud DB.

Example
{"email": "example@email.com"}

Image

Description

Image contains data used to present an image on a pass

Fields
Field Name Description
sourceURI - String! Public URL where the image is hosted.
description - String! Plaintext description of the image for screen-readers.
fileName - String! Name of the image file.
Example
{
  "sourceURI": "https://www.somelinktofile.com/",
  "description": "Some description",
  "fileName": "Some file name"
}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
42

Int64

Description

Int64 scalar used to handle support for 64bit integer values.

Example
Int64

InvalidationFailureListItem

Description

Returned when an invalidation request for a pass fails. Contains the serial number of the pass that failed, as well as a description of why the pass failed to be expired.

Fields
Field Name Description
serialNumber - String! The serial number is the full unique identifier of a pass. EG prefix + card number.
error - String! Error message to explain why the pass was unable to be expired.
Example
{"serialNumber": "110100000001", "error": "Message explaining reason for error"}

InvalidationRequest

Description

Request body for invalidating active passes on specific end user's devices. Please note that each entry with the serialNumbers array will represent an individual pass instance.

Fields
Input Field Description
serialNumbers - [String!]!

List of serial numbers for passes to be invalidated.

expiryTime - Time

Optional timestamp to set the ExpiryTime of when the user's pass should be invalidated. If this value is omitted from the request, then ExpiryTime will be set to current time. Please note that passes may take up to 24 hours to expire on the end-user's device. There is also a limit on how far in advance that an expiry date can be assigned to a pass, this will be limited to the next anniversary date of the pass (since creation) + 1 year.

Example
{
  "serialNumbers": ["110100000001", "110100000005", "110100001021"],
  "expiryTime": "2023-03-23T17:21:00Z"
}

InvalidationRequestCSV

Description

Request body for invalidating passes based on an uploaded CSV file. Please note that each row within the CSV file will represent an individual pass record.

Fields
Input Field Description
file - Upload!

The file to upload as part of the request.

expiryTime - Time

Optional timestamp to set the ExpiryTime of when the user's pass should be invalidated. If this value is omitted from the request, then ExpiryTime will be set to current time. Please note that passes may take up to 24 hours to expire on the end-user's device. There is also a limit on how far in advance that an expiry date can be assigned to a pass, this will be limited to the next anniversary date of the pass (since creation) + 1 year.

Example
{"file": Upload, "expiryTime": "2023-03-23T17:21:00Z"}

InvalidationRequestRecord

Description

InvalidationRequestRecord contains the format for creating a pass invalidation request

Fields
Field Name Description
batchCount - Int! The number of passes to be expired for the Invalidation request.
isBatchRequest - Boolean! Boolean flag to record if request was am Individual or Batch Invalidation request.
jobIssuer - String! User who issued Pass Invalidation request.
created - Time! Timestamp of when the Pass Invalidation request was created within the system.
failureCount - Int! The number of records which failed to be expired as part of this request.
failureResults - String! Download link to a CSV file containing failure records along with a failure reason.
status - String! The status of the Invalidation request. EG In-Progress, Complete, etc.
successCount - Int! The number of passes which were successfully expired as part of this request.
successResults - String! Download link to a CSV file containing success records for this Pass Invalidation request.
expiryTimestamp - Time! Timestamp to record the expiry time of the passes within this invalidation request.
Example
{
  "batchCount": 10,
  "isBatchRequest": true,
  "jobIssuer": "example@email.com",
  "created": "2023-03-23T17:21:00Z",
  "failureCount": 1,
  "failureResults": "https://www.somelinktofile.com/",
  "status": "active",
  "successCount": 9,
  "successResults": "https://www.somelinktofile.com/",
  "expiryTimestamp": "2023-03-23T17:21:00Z"
}

InvalidationRequestRecordWithID

Description

InvalidationRequestRecordWithID controls the structure of a Pass Invalidation Request document which contains the Document ID for the record.

Fields
Field Name Description
batchCount - Int! The number of passes to be expired for the Invalidation request.
isBatchRequest - Boolean! Boolean flag to record if request was am Individual or Batch Invalidation request.
jobIssuer - String! User who issued Pass Invalidation request.
created - Time! Timestamp of when the Pass Invalidation request was created within the system.
failureCount - Int! The number of records which failed to be expired as part of this request.
failureResults - String! Download link to a CSV file containing failure records along with a failure reason.
status - String! The status of the Invalidation request. EG In-Progress, Complete, etc.
successCount - Int! The number of passes which were successfully expired as part of this request.
successResults - String! Download link to a CSV file containing success records for this Pass Invalidation request.
expiryTimestamp - Time! Timestamp to record the expiry time of the passes within this invalidation request.
docID - String! The unique Document ID of the Invalidation record.
Example
{
  "batchCount": 10,
  "isBatchRequest": true,
  "jobIssuer": "example@email.com",
  "created": "2023-03-23T17:21:00Z",
  "failureCount": 1,
  "failureResults": "https://www.somelinktofile.com/",
  "status": "active",
  "successCount": 9,
  "successResults": "https://www.somelinktofile.com/",
  "expiryTimestamp": "2023-03-23T17:21:00Z",
  "docID": "xyz789"
}

InvalidationResponse

Description

Response body containing the Success and Failure results for an invalidation request.

Fields
Field Name Description
successList - [String!]! Array of serial numbers of passes which have been expired.
failureList - [InvalidationFailureListItem!]! Array of passes which have failed to be expired; contains the serial number of the failure record, and the failure reason given by the system
Example
{
  "successList": [
    "110100000001",
    "110100000002",
    "110100002101",
    "110100000589"
  ],
  "failureList": [
    {"serialNumber": "110100000003", "error": "Some Failure reason"},
    {"serialNumber": "110100000004", "error": "Another Failure reason"}
  ]
}

Map

Description

Map scalar used to handle Map types from Golang. Please note that these values will either be in map[string]string or []map[string]string format based on the requested endpoint.

Example
{"membership_number": "1234567890001", "membership_name": "Some Name"}

MetaData

Description

MetaData is used to store data associated with creation and modification events

Fields
Field Name Description
created - Time! Timestamp when the record was initially created.
creator - String! User which originally created the record.
lastModified - Time! Timestamp when the record was last updated.
modifier - String! User which made the last modifications to the record.
Example
{
  "created": "2023-03-23T17:21:00Z",
  "creator": "example@email.com",
  "lastModified": "2023-03-23T17:21:00Z",
  "modifier": "example@email.com"
}

OrganisationUserDetails

Description

OrganisationUserDetails controls the response structure of an Organisation User key account details when requesting a paginated list of org users.

Fields
Field Name Description
email - String! Email address of the Organisation User.
fullName - String! Full Name of the Organisation User.
isEmailVerified - Boolean! Boolean flag to highlight whether the Organisation User has verified their email address.
roles - [String!]! Roles contains a string list of the RBAC permissions of the user account.
status - String! Current status of the organisation user. Available values are 'Active' or 'Archived'.
profilePictureURL - String Public URL to user's account profile picture (when set).
created - Time! Timestamp of when the user account was first created within the platform.
lastModified - Time! Timestamp of when the user account was last edited within the platform.
Example
{
  "email": "example@email.com",
  "fullName": "xyz789",
  "isEmailVerified": true,
  "roles": ["Pass-Issuer", "Pass-Editor", "Billing-Admin", "Api-Dev"],
  "status": "active",
  "profilePictureURL": "xyz789",
  "created": "2023-03-23T17:21:00Z",
  "lastModified": "2023-03-23T17:21:00Z"
}

PaginatedBeaconResponse

Description

PaginatedBeaconResponse forms the generic struct to handle the response values when retrieving a list of paginated BLE Beacons for an Organisation.

Fields
Field Name Description
beacons - [Beacon!]! Paginated BLE Beacon records for organisation.
lastModifiedDate - Time lastModifiedDate of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastTitle - String The Title of the last document within the returned results. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "beacons": ["some-beacon-title"],
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "lastTitle": "xyz789",
  "totalNumberOfRecords": Int64
}

PaginatedDistributionResponse

Description

PaginatedDistributionResponse will return a paginated list of Distribution requests for an Organisation.

Fields
Field Name Description
distributionDocs - [DistributionRequestWithID!]! Paginated list of Distribution requests
lastCreated - Time lastCreated time of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "distributionDocs": [DistributionRequestWithID],
  "lastCreated": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "totalNumberOfRecords": Int64
}

PaginatedInvalidationResponse

Description

PaginatedInvalidationResponse will return a paginated list of Invalidation requests for an Organisation.

Fields
Field Name Description
invalidationDocs - [InvalidationRequestRecordWithID!]! Paginated list of Invalidation requests.
lastCreated - Time lastCreated time of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "invalidationDocs": [InvalidationRequestRecordWithID],
  "lastCreated": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "totalNumberOfRecords": Int64
}

PaginatedLocationResponse

Description

PaginatedLocationResponse forms the generic struct to handle the response values when retrieving a list of paginated locations for an Organisation.

Fields
Field Name Description
locations - [Geolocation!]! Paginated location records for organisation.
lastModifiedDate - Time lastModifiedDate of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastTitle - String The Title of the last document within the returned results. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "locations": ["some-location-title"],
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "lastTitle": "xyz789",
  "totalNumberOfRecords": Int64
}

PaginatedPassDeliveryTemplateResponse

Description

PaginatedPassDeliveryTemplateResponse controls the response structure when requesting to fetch a list of paginated pass delivery templates from the Cloud DB

Fields
Field Name Description
passDeliveryTemplates - [PassDeliveryTemplate] The paginated Pass Delivery Template list.
lastModifiedTimestamp - Time lastModifiedTimestamp time of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String The Unique Document ID of the last document within the returned results. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastTitle - String The Title of the last document within the returned results. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "passDeliveryTemplates": [PassDeliveryTemplate],
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "lastTitle": "abc123",
  "totalNumberOfRecords": Int64
}

PaginatedPassDesignResponse

Description

PaginatedPassDesignResponse will return a paginated list of Pass Designs for an Organisation.

Fields
Field Name Description
passDesignDocs - [PassDesign!]! Paginated list of Pass Designs
lastModifiedTimestamp - Time lastModifiedTimestamp time of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "passDesignDocs": [PassDesign],
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id",
  "totalNumberOfRecords": Int64
}

PaginatedReportingRequestsResponse

Description

PaginatedReportingRequestsResponse will control the response structure to a request for fetching a batch of paginated Reporting Request records from the Cloud DB for an Organisation.

Fields
Field Name Description
reportingRequestList - [ReportingRequestWithID]! Paginated list of Reporting Request records for an Organisation.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastModifiedTimestamp - Time lastModifiedTimestamp is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.
totalNumberOfRecords - Int64 Total number of records which match query (EG total number of records to fetch from pagination batches). Please note that this value will be returned on the initial query only.
Example
{
  "reportingRequestList": [ReportingRequestWithID],
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "totalNumberOfRecords": Int64
}

PassDeliveryDetails

Description

Pass Delivery Details used for delivering pass download link to end-user.

Fields
Field Name Description
deliveryMethod - String! Value to specific if the Breezin platform delivered the pass download link directly to the intended recipient. Possible values are: 'None', 'Email', or 'SMS'.
deliveryAddress - String! The delivery address details used to deliver the pass download link to the recipient.
deliverySalutation - String! The salutation message used to format the pass delivery message.
deliveryName - String! The name of the end-user used to personalise the pass delivery message.
deliveryTemplate - String! The Pass Delivery Template used to format the pass delivery message.
Example
{
  "deliveryMethod": "Email",
  "deliveryAddress": "example@email.com",
  "deliverySalutation": "Hi",
  "deliveryName": "Jane Doe",
  "deliveryTemplate": "email-default"
}

PassDeliveryReportResponse

Description

PassDeliveryReportResponse will control the response structure when requesting a new Pass Delivery Report via the API.

Fields
Field Name Description
message - String! Response message for the request to generate new Pass Delivery report.
reportID - String! Unique ID for the reporting request within the system.
Example
{
  "message": "Response message containing results of API request",
  "reportID": "xyz789"
}

PassDeliveryTemplate

Description

PassDeliveryTemplate will control the structure of a Pass Delivery Template save to the Cloud DB.

Fields
Field Name Description
body - String! The main body text of our message.
created - Time! The date that we created our template on
creator - String! The user that generated this template
footer - String! The footer to end our message template; EG Thank you for using Breezin
imageURL - String! The image URL to attach to the top of the image. This should be a PNG or JPG, as SVG images are not rendered within most mail clients.
lastModified - Time! Last time this template was modified
modifier - String! The person who modified this template
preheader - String! The header that is shown before the main header within an email.
status - String! Current status of the Pass Delivery Template. Available options are: 'Draft', 'Active' or 'Archived'.
subject - String! The subject title of the email
title - String! The title of the template within Breezin, used as an identifer. Eg special-offer-email-template
type - String! The type of template to use: Can be Email, SMS, iMessage or WhatsApp
Example
{
  "body": "Some body",
  "created": "2023-03-23T17:21:00Z",
  "creator": "example@email.com",
  "footer": "Some footer",
  "imageURL": "https://www.somelinktofile.com/",
  "lastModified": "2023-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "preheader": "Some preheader",
  "status": "active",
  "subject": "Some subject",
  "title": "Some Title",
  "type": "Some type"
}

PassDeliveryTemplateRequest

Description

PassDeliveryTemplateRequest will handle the input data for generating a new Pass Delivery Template within the system.

Fields
Input Field Description
title - String!

Title for new Pass Delivery Template

body - String!

Body value for populating in Pass Delivery message at distribution time. Please note that this string can be separated into numerous lines using the HTML line break characters, EG <br/><br/>

footer - String!

Footer value for populating in Pass Delivery message at distribution time. Please note that this string can be separated into numerous lines using the HTML line break characters, EG <br/><br/>

imageURL - String!

Public URL pointing to image to be used when sending Pass Delivery message at distribution time.

preheader - String!

Preheader value for populating in Pass Delivery message at distribution time.

subject - String!

Subject value for populating in Pass Delivery message at distribution time.

type - String!

Delivery Type of the Pass Delivery Template. EG SMS, Email, etc.

status - String!

Status of the Pass Delivery Template to save to the Cloud DB. Available options are: 'Draft', 'Active' or 'Archived'.

Example
{
  "title": "Some Title",
  "body": "Some body",
  "footer": "Some footer",
  "imageURL": "https://www.somelinktofile.com/",
  "preheader": "Some preheader",
  "subject": "Some subject",
  "type": "Some type",
  "status": "active"
}

PassDesign

Description

PassDesign forms the generic struct for all types of pass design

Fields
Field Name Description
backgroundColor - BackgroundColor! Background color of the pass in RGB format.
countryCode - String! Country code in format en-GB
issuingOrganisation - String! The name of the organisation issuing the pass
passBrandingLogo - Image! Large logo image used on a pass
passIcon - Image! Icon image used for company branding on device notifications.
metaData - MetaData! MetaData associated with Pass Design record. EG Created and Last Modified timestamps.
passDesignDefaultFields - PassDesignDefaultFields! Default fields for Pass Design. These include Card Header and Title values.
passImage - Image Optional Image field for Pass Design.
serialPrefix - String! Serial Number prefix to generate passes for a specific pass design.
title - String! Name of the Pass Design record.
isNFCEnabled - Boolean! Boolean flag to track whether the pass should enable NFC / fallback to barcode for authentication.
primaryFields - DynamicFields Dynamic data fields which are positioned in the first row of the Pass Design template.
secondaryFields - DynamicFields Dynamic data fields which are positioned in the second row of the Pass Design template.
auxiliaryFields - DynamicFields Dynamic data fields which are positioned on the back fields of the Pass Design template.
dynamicFieldKeys - [String] List of dynamic field keys for injecting personal details for this Pass Design record at Distribution time.
appleRedemptions - Int! Total count of Apple Wallet passes which were installed to a device using this Pass Design template.
googleRedemptions - Int! Total count of Google Wallet passes which were installed to a device using this Pass Design template.
totalDistributionCount - Int! Total count of generated passes for this Pass Design template record.
lastDistributionDate - Time Timestamp to track the last distribution request which generated Passes using this Pass Design Template.
barcodeType - String Type of barcode to be used for passes which are generated from this Pass Design.
backFields - BackFields Back field data for the passes which are generated from this Pass Design.
downloadMessage - String! Download Message Text for the pass download screen.
downloadLogo - String! Download Logo for the pass download screen.
downloadBackground - String! Download Background for the background of the pass download screen.
totalInvalidationCount - Int! Total count of expired passes for this Pass Design template record.
customerSupportDetailList - [String] List of titles for Customer Support Details which have been assigned to the Pass Design record. These Customer Support Details will be visible on the Public Pass Download page within the Breezin website when an end-user attempts to install their pass.
customerSupportMessage - String Custom message to display on Pass Download screen for Customer Support Details.
Example
{
  "backgroundColor": BackgroundColor,
  "countryCode": "en-GB",
  "issuingOrganisation": "Some Organisation",
  "passBrandingLogo": Image,
  "passIcon": Image,
  "metaData": MetaData,
  "passDesignDefaultFields": PassDesignDefaultFields,
  "passImage": Image,
  "serialPrefix": "xyz789",
  "title": "Some Title",
  "isNFCEnabled": true,
  "primaryFields": DynamicFields,
  "secondaryFields": DynamicFields,
  "auxiliaryFields": DynamicFields,
  "dynamicFieldKeys": ["membership_number", "membership_name"],
  "appleRedemptions": 5,
  "googleRedemptions": 4,
  "totalDistributionCount": 10,
  "lastDistributionDate": "2023-03-23T17:21:00Z",
  "barcodeType": "abc123",
  "backFields": BackFields,
  "downloadMessage": "xyz789",
  "downloadLogo": "xyz789",
  "downloadBackground": "abc123",
  "totalInvalidationCount": 42,
  "customerSupportDetailList": ["abc123"],
  "customerSupportMessage": "abc123"
}

PassDesignDefaultFields

Description

PassDesignDefaultFields contains data relevant to the pass title and headings

Fields
Field Name Description
cardTitle - String! Title field for a specific pass record.
cardTitleLabel - String Label string for pass title field.
header - String! Header field for a specific pass record.
subheader - String Optional SubHeader field for a specific pass record.
Example
{
  "cardTitle": "Some Title",
  "cardTitleLabel": "Some Label",
  "header": "Some Header",
  "subheader": "Some Subheader"
}

PassDesignReport

Description

PassDesignReport contains the report for an organisations pass design for a given period

Fields
Field Name Description
appleCount - Int! Apple count represents the number of pass designs that were redeemed on Apple devices
distributionCount - [Int!]! Distribution count represents the number of distributions over the span of a month
googleCount - Int! Google count represents the number of pass designs that were redeemed on Google devices
invalidationCount - [Int!]! Invalidation count represents the number of invalidations over the span of a month
lastModified - Time! Last modified timestamp denotes the time in which the report was last changed
reportingPeriod - String! Reporting period represents the month and year that the report data includes
appleRedemptionsCount - [Int!]! Number of Apple Passes redeemed per day of the month.
googleRedemptionsCount - [Int!]! Number of Google Passes redeemed per day of the month.
Example
{
  "appleCount": 5,
  "distributionCount": [
    0,
    0,
    2,
    0,
    0,
    0,
    3,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ],
  "googleCount": 4,
  "invalidationCount": [
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ],
  "lastModified": "2023-03-23T17:21:00Z",
  "reportingPeriod": "June 2023",
  "appleRedemptionsCount": [42],
  "googleRedemptionsCount": [42]
}

PassReportRequest

Description

PassReportRequest will handle the input data for generating a pass report (CSV).

Fields
Input Field Description
startTime - Time!

Timestamp to control initial start point of report generation for pass records.

endTime - Time!

Timestamp to control the end point of report generation for pass records.

passDesignFilter - String

List of Pass Design titles for filtering report data. Please omit this value from the request or set to an empty array to include report data on all Passes.

reportFields - [String!]!

The fields we wish to return within the CSV report.
Example: ["Serial Number"]

Example
{
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "passDesignFilter": "abc123",
  "reportFields": ["abc123"]
}

PassReportResponse

Description

PassReportResponse will control the response structure when requesting a new Pass Report via the API.

Fields
Field Name Description
message - String! Response message for the request to generate new pass report.
reportID - String! Unique ID for the reporting request within the system.
Example
{
  "message": "Response message containing results of API request",
  "reportID": "xyz789"
}

ReactivateDynamicKeyRequest

Description

ReactivateDynamicKeyRequest will control the input structure when requesting to re-active an archived Dynamic Key in the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Dynamic Key to mark as active in the Cloud DB.

Example
{"title": "Some Title"}

ReportingPeriod

Description

A period of time to fetch invoices by.

Fields
Input Field Description
reportingPeriod - String!

The reporting period to return invoices for.
Example: October 2022`

Example
{"reportingPeriod": "June 2023"}

ReportingRequest

Description

ReportingRequest will control the response structure when searching for a reporting request in the DB.

Fields
Field Name Description
reportType - String! The type of the report the request was registered or raised against. Supported values: PassReport, 'PassDeliveryReport', or AuditLogReport.
status - String! The current status of the request (EG in-progress or complete)
created - Time! Timestamp of when the reporting request was raised.
requester - String! The email address of the system user who's requested the report.
lastModified - Time! Timestamp of when the reporting request record was last updated within the platform.
downloadURL - String! The URL link to download the generated CSV file of the report stored in the cloud bucket.
Example
{
  "reportType": "xyz789",
  "status": "active",
  "created": "2023-03-23T17:21:00Z",
  "requester": "xyz789",
  "lastModified": "2023-03-23T17:21:00Z",
  "downloadURL": "xyz789"
}

ReportingRequestWithID

Description

ReportingRequestWithID will control the response structure when searching for a reporting request in the DB.

Fields
Field Name Description
reportType - String! The type of the report the request was registered or raised against. Supported values: PassReport, 'PassDeliveryReport', or AuditLogReport.
status - String! The current status of the request (EG in-progress or complete)
created - Time! Timestamp of when the reporting request was raised.
requester - String! The email address of the system user who's requested the report.
lastModified - Time! Timestamp of when the reporting request record was last updated within the platform.
downloadURL - String! The URL link to download the generated CSV file of the report stored in the cloud bucket.
reportID - String! The unique ID of the reporting request record.
Example
{
  "reportType": "abc123",
  "status": "active",
  "created": "2023-03-23T17:21:00Z",
  "requester": "xyz789",
  "lastModified": "2023-03-23T17:21:00Z",
  "downloadURL": "xyz789",
  "reportID": "xyz789"
}

ReservedSerialRange

Description

ReservedSerialRange controls the structure of a reserved range of card numbers within a serial sequence.

Fields
Field Name Description
count - Int64! The total count of serial number
end - Int64! End of serial range
processed - Boolean! Number of processed serials
start - Int64! Start of serial range
Example
{
  "count": Int64,
  "end": Int64,
  "processed": true,
  "start": Int64
}

ResponseMessage

Description

ResponseMessage is a generic string response from a Breezin API request. This message will provide the result of an action.

Fields
Field Name Description
message - String! The message returned from the service.
Example
{"message": "Response message containing results of API request"}

Serial

Description

Serial contains the serial details for a specific pass record

Fields
Field Name Description
cardNumber - String! Card Number is the main section of a passes unique identifier and is incremented every time a pass is distributed for a specific Pass Design Template.
Example: 00000001
prefix - String! Prefix is the first section of a passes unique identifier and is used to represent the Pass Design Template used.
Example: 1234
serialNumber - String! The serial number is the full unique identifier of a pass. EG prefix + card number.
Example: 123400000001
Example
{"cardNumber": "00000001", "prefix": "1101", "serialNumber": "110100000001"}

SerialNumberDetails

Description

SerialNumberDetails controls the structure of a valid Serial Number sequence within the system.

Fields
Field Name Description
cardNumberLength - Int! The number of digits which follow the Prefix value to define the full serial number of a pass.
initialCardNumber - String! The initial card number of the serial number sequence. Please note this value can be used to reserve a range within a card number sequence. EG 123400000001 or 123420000000.
latestCardNumber - Int64! The latest card number generated from this serial number sequence. Please note that incrementing this value by 1 will reveal the next number available in the sequence.
prefix - String! Prefix is the first section of a passes unique identifier and is used to represent the Pass Design Template used.
prefixLength - Int! The length of the Prefix used for the serial number sequence.
created - Time! Email address of the user which created the serial number sequence.
creator - String! Timestamp of when the serial number sequence was created.
lastModified - Time! Timestamp of when the serial number sequence was last modified.
modifier - String! Email address of the user which last edited the serial number sequence.
maximumCardNumber - Int64! The largest card number allowed within the sequence.
reservedRanges - [ReservedSerialRange] A list of reserved ranges within the serial sequence. These reserved ranges can be assigned to plastic cards to ensure no clashes occur between plastic and digital passes.
prefixNumber - Int! The prefix value for the serial sequence recorded as an integer.
isAssigned - Boolean! Bool flag to track whether a Serial Number Prefix range is assigned to a Pass Design.
Example
{
  "cardNumberLength": 12,
  "initialCardNumber": "00000001",
  "latestCardNumber": 11,
  "prefix": "1101",
  "prefixLength": 4,
  "created": "2023-03-23T17:21:00Z",
  "creator": "example@email.com",
  "lastModified": "2023-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "maximumCardNumber": Int64,
  "reservedRanges": [ReservedSerialRange],
  "prefixNumber": 42,
  "isAssigned": true
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

SuccessListItem

Description

Returned when a distribution request for a pass is successful. Contains the dynamic field data, the download link, external reference ID, and the unique Serial Number for the created pass record.

Fields
Field Name Description
customFieldData - Map Dynamic field data used to populate personal details on a users pass
externalReferenceID - String! Unique Reference ID for the end-user in external customer system. This will enable you to reference their external account details to within our system (EG get all passes for end-user, expire all passes for end user). This should be set to an empty string when not required.
payload - String Value to control the payload which is scanned from the pass record via NFC or Barcode.
passDownloadLink - String! Download link to install pass on a users device
serialNumber - String! The serial number is the full unique identifier of a pass. EG prefix + card number.
deliveryMethod - String! Value to control if the Breezin platform should deliver the pass download link directly to the intended recipient. Possible values are: 'None', 'Email', or 'SMS'.
deliveryAddress - String! The delivery address details for delivering pass download link.
deliverySalutation - String! The salutation message for formatting the pass delivery message.
deliveryName - String! The name of the end-user for personalising pass delivery message.
deliveryTemplate - String! The Pass Delivery Template to be used to format the pass delivery message
beacons - [String!] String array containing the names of the BLE beacons which have been associated with the Pass record. Please note that Google Wallet passes do not support BLE Beacons at this time.
locations - [String!] String array containing the names of the Geolocations which have be associated with the Pass record. Please note that Google Wallet passes do not support Geolocations at this time.
expiredTimestamp - Time Value to record if an expiry timestamp was associated to the pass record at distribution.
passApiKey - String Value to store and return the pass in encrypted format, to allow for a pass to be redeemed via the API endpoint.
notes - String Field to record any notes regarding the pass being distributed (EG when front-of-pass fields are truncated due to max row length).
Example
{
  "customFieldData": {
    "membership_number": "1234567890001",
    "membership_name": "Some Name"
  },
  "externalReferenceID": "ab12cd34ef56",
  "payload": "xyz789",
  "passDownloadLink": "https://www.breezin.io/pass-download?details=cdcjw34e345730489fmrfkjsdfg8fger435tyjergf98sdfg098430594rjkerfdsfo87gydsfg345t8",
  "serialNumber": "110100000001",
  "deliveryMethod": "Email",
  "deliveryAddress": "example@email.com",
  "deliverySalutation": "Hi",
  "deliveryName": "Jane Doe",
  "deliveryTemplate": "email-default",
  "beacons": ["some-beacon-title"],
  "locations": ["some-location-title"],
  "expiredTimestamp": "2023-03-23T17:21:00Z",
  "passApiKey": "abc123",
  "notes": "xyz789"
}

Time

Description

Time scaler used to handle Golang's time.Time values. Please provide any timestamp values in YYYY-MM-DDThh:mm:ssZ format as this is compliant with ISO 8601 and RFC 3339. EG 2006-01-02T15:04:05-07:00, 2022-02-26T01:30:00Z, 2022-04-01T08:00:00+01:00

Example
"2023-03-23T17:21:00Z"

UpdateBrandingColorRequest

Description

UpdateBrandingColorRequest will control the input structure when requesting to update an Organisation's branding color in the Cloud DB.

Fields
Input Field Description
title - String!

The existing title of the Branding Color record to be updated.

newTitle - String

Optional field to update the title of an existing branding color.

newColorHexCode - String

Optional field to update the Hex Code of an Organisation's branding color.

Example
{
  "title": "Some Title",
  "newTitle": "abc123",
  "newColorHexCode": "xyz789"
}

UpdateCustomerSupportDetailRequest

Description

UpdateCustomerSupportDetailRequest will control the input structure when requesting to update an existing Customer Support Detail record for an Organisation in the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Customer Support Detail to update in the Cloud DB for an organisation.

type - String

Optional type of Customer Support Detail to update: Can be Email Address, Phone Number, Whatsapp or Web Link

value - String

Optional value of the Customer Support Detail to be updated.

Example
{"title": "Some Title", "type": "Some type", "value": "Some Value"}

UpdateDynamicKeyRequest

Description

UpdateDynamicKeyRequest will control the input structure when requesting to update an existing Dynamic Key record for an Organisation in the Cloud DB.

Fields
Input Field Description
title - String!

The title of the Dynamic Key to update in the Cloud DB for an organisation.

description - String!

An updated human-readable description for the Dynamic Key value to record the intended usage of the Dynamic Key record.

Example
{"title": "Some Title", "description": "Some description"}

UpdatePassPayloadRequest

Description

UpdatePassPayloadRequest will control the input structure for requesting that an active pass record is updated with a new payload value for NFC / Barcodes.

Fields
Input Field Description
serialNumber - String!

Unique Serial Number ID of the active pass to be updated with a new payload value.

payload - String!

Value to be updated on an active pass for scanning the pass via NFC / Barcodes.

Example
{
  "serialNumber": "110100000001",
  "payload": "abc123"
}

UpdatePassUserDetails

Description

UpdatePassUserDetails contains the payload for updating a user's details.

Fields
Input Field Description
serialNumber - String!

Serial Number is the unique identifier for a specific users pass

dynamicFieldData - Map

Custom field data to be populated on a specific pass record. Please provide all custom field values with an update request when you intend to update pass fields. This value can be omitted from the request if you do not want to update these pass fields. An empty map can be provided if you intend to clear all of the custom field data from the pass record (please note this should only be done if keys are removed from pass deisgn record).

beacons - [String]

List of titles of BLE beacons to be associated with a specific pass record. Please provide all titles which should be associated with the pass in an update request (when you intend to update pass beacons). Beacons are not support by Google Wallet at this time, and there is a maximum limit of 10 beacons per pass record. This value can be omitted from the request if you do not want to update these pass fields. An empty array can be provided if you intend to clear all of the beacons associated with the pass record.

locations - [String]

List of titles of Geolocations to be associated with a specific pass record. Please provide all titles which should be associated with the pass in an update request (when you intend to update pass locations). Geolocations are not support by Google Wallet at this time, and there is a maximum limit of 10 locations per pass record. This value can be omitted from the request if you do not want to update these pass fields. An empty array can be provided if you intend to clear all of the locations associated with the pass record.

Example
{
  "serialNumber": "110100000001",
  "dynamicFieldData": {
    "membership_number": "1234567890001",
    "membership_name": "Some Name"
  },
  "beacons": ["some-beacon-title"],
  "locations": ["some-location-title"]
}

Upload

Description

Upload scalar used for single file uploads to a GraphQL endpoint (eg CSV / Image). Please see this StackOverflow post on how to use Postman to handle file uploads in GraphQL requests.

Example
Upload

UploadOrgPurchaseOrderNumberRequest

Description

UploadOrgPurchaseOrderNumberRequest will control the input structure for uploading a new Purchase Order Number for including within an Organisation's Invoices.

Fields
Input Field Description
purchaseOrderNumber - String!

The PO Number to be applied to an Organisation's account. Please note that this Purchase Order Number will appear within subsequent Invoices generated within the system.

Example
{"purchaseOrderNumber": "xyz789"}

UsageReport

Description

UsageReport contains the details of a months worth of usage for an organisation

Fields
Field Name Description
lastModified - Time! lastModified specifies the timestamp of when the reporting doc was last updated.
Example: 2022-11-18T11:52:30+0000
longTermInvalidationCount - [Int!]! longTermInvalidationCount gives the total number of long term passes invalidated.
Example: 50
longTermPassesCount - [Int!]! longTermPassesCount gives the total number of long term passes issued
Example: 50
recurringPassesCount - Int! recurringPassesCount gives the total number of yearly recurring passes which have renewed within this reporting period.
Example: 60
reportingPeriod - String! reportingPeriod specifies the month and year covered by a specific report.
Example: October 2022
shortTermInvalidationCount - [Int!]! shortTermInvalidationCount gives the total number of short term passes the organisation has invalidated.
Example: 10
shortTermPassesCount - [Int!]! shortTermPassesCount gives the number of short term passes the organisation has issued for the month.
Example: 11
userCount - Int! userCount gives the total number of Organisation users within this reporting period.
Example: 6
xUseInvalidationCount - [Int!]! xUseInvalidationCount gives the number of xUse passes that the organisation has invalided for this month .
Example: 19
xUsePassesCount - [Int!]! xUsePassesCount gives the number of xUse passes that the organisation has created for this month.
Example: 10
appleRedemptions - Int! Number of apple passes redeemed
googleRedemptions - Int! Number of google passes redeemed
passDesignDistributions - Map! Map containing a breakdown of pass distributions per pass design for reporting period.
appleRedemptionsCount - [Int!]! Number of Apple Passes redeemed per day of the month.
googleRedemptionsCount - [Int!]! Number of Google Passes redeemed per day of the month.
passDeliverySmsUkCount - [Int!]! Number of Pass Delivery SMS messages sent within the UK per day of the month.
passDeliverySmsWorldCount - [Int!]! Number of Pass Delivery SMS messages sent to Rest Of World per day of the month.
passDeliveryEmailCount - [Int!]! Number of Pass Delivery Email messages sent per day of the month.
Example
{
  "lastModified": "2023-03-23T17:21:00Z",
  "longTermInvalidationCount": [
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ],
  "longTermPassesCount": [
    0,
    0,
    2,
    0,
    0,
    0,
    3,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ],
  "recurringPassesCount": 0,
  "reportingPeriod": "June 2023",
  "shortTermInvalidationCount": [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ],
  "shortTermPassesCount": [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ],
  "userCount": 2,
  "xUseInvalidationCount": [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ],
  "xUsePassesCount": [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ],
  "appleRedemptions": 5,
  "googleRedemptions": 4,
  "passDesignDistributions": {
    "membership_number": "1234567890001",
    "membership_name": "Some Name"
  },
  "appleRedemptionsCount": [42],
  "googleRedemptionsCount": [42],
  "passDeliverySmsUkCount": [42],
  "passDeliverySmsWorldCount": [42],
  "passDeliveryEmailCount": [42]
}

UserPass

Description

UserPass forms the generic struct to handle a user's pass records from the DB.

Fields
Field Name Description
deviceOS - String! Device type which has installed the pass. EG 'Apple' or 'Google'.
dynamicFieldData - Map DynamicFieldData is used to track the full details of custom data on a pass record.
dynamicFieldKeys - [String!] dynamicFieldKeys is used to track which keys are used for custom data on a pass record.
dynamicFieldValues - [String!] dynamicFieldValues is used to track which values are used for custom data on a pass record.
dynamicFields - [DynamicField!] DynamicFieldData is used to track the full details of custom data on a pass record.
externalReferenceID - String! Unique Reference ID for the end-user in external customer system. This will enable you to reference their external account details to within our system (EG get all passes for end-user, expire all passes for end user). This should be set to an empty string when not required.
expiredTimestamp - Time Timestamp to record when the pass was expired on a end-users device.
isExpired - Boolean! Boolean flag to record if a Pass has been expired on a end-users device.
isRedeemed - Boolean! Boolean flag to record if a Pass has been installed onto an end-users device.
isRemoved - Boolean! Boolean flag to record if a Pass has been removed from an end-users device.
metaData - MetaData! Meta Data related to a specific pass record.
passDesignTitle - String! Title of the Pass Design Template used to format a specific pass record.
redeemedTimestamp - Time Timestamp to record when the pass was installed onto an end-users device.
removedTimestamp - Time Timestamp to record when the pass was removed from an end-users device.
registered - Boolean! Flag to record if a specific pass has been registered to a device.
registeredTimestamp - Time Timestamp to record when the Wallet application on an end-users device has notified us that a pass has been installed.
serial - Serial! Serial details for a pass instance.
genericObjectDefaultFields - GenericObjectDefaultFields Generic default fields for a Pass record.
passDeliveryDetails - PassDeliveryDetails Pass Delivery Details used for delivering pass download link to end-user.
beacons - [String] String array containing the names of the BLE beacons which have been associated with the Pass record. Please note that Google Wallet passes do not support BLE Beacons at this time.
locations - [String] String array containing the names of the Geolocations which have be associated with the Pass record. Please note that Google Wallet passes do not support Geolocations at this time.
payload - String Optional value to override NFC/Barcode scan value of the pass record. This value has a 64 byte limit and must contain only ASCII characters. Please note that this value can be skipped from the request, resulting in the pass using it's unique serial number when scanned via NFC / Barcodes. When this value is assigned, the pass record will still be assigned a unique serial number, for indexing purposes. Please note this value can be used to assign the same payload to all of an end-users passes (EG 'AccountID', 'MemberNumber', 'CustomerID', etc)
Example
{
  "deviceOS": "Apple",
  "dynamicFieldData": {
    "membership_number": "1234567890001",
    "membership_name": "Some Name"
  },
  "dynamicFieldKeys": ["membership_number", "membership_name"],
  "dynamicFieldValues": ["1234567890001", "Some Name"],
  "dynamicFields": [
    {"membership_number": "1234567890001", "membership_name": "Some Name"},
    {"membership_number": "1234567890002", "membership_name": "Another Name"}
  ],
  "externalReferenceID": "ab12cd34ef56",
  "expiredTimestamp": "2023-03-23T17:21:00Z",
  "isExpired": true,
  "isRedeemed": true,
  "isRemoved": true,
  "metaData": MetaData,
  "passDesignTitle": "Some Pass Design",
  "redeemedTimestamp": "2023-03-23T17:21:00Z",
  "removedTimestamp": "2023-03-23T17:21:00Z",
  "registered": true,
  "registeredTimestamp": "2023-03-23T17:21:00Z",
  "serial": Serial,
  "genericObjectDefaultFields": GenericObjectDefaultFields,
  "passDeliveryDetails": PassDeliveryDetails,
  "beacons": ["some-beacon-title"],
  "locations": ["some-location-title"],
  "payload": "xyz789"
}

VerifyBeaconExistsRequest

Description

VerifyBeaconExistsRequest will handle the input values for verifying if a Beacon title is available for creating a new record.

Fields
Input Field Description
title - String!

The requested title for a new Beacon record.

Example
{"title": "Some Title"}

VerifyDynamicKeyTitleAvailableRequest

Description

VerifyDynamicKeyTitleAvailableRequest will control the input structure when requesting to verify if a Dynamic Key Title is available for creating a new Dymanic Key record in the Cloud DB.

Fields
Input Field Description
title - String!

The title of a new Dynamic Key to verify if the title already exists or not.

Example
{"title": "Some Title"}

VerifyLocationExistsRequest

Description

VerifyLocationExistsRequest will handle the input values for verifying if a Location title is available for creating a new record.

Fields
Input Field Description
title - String!

The requested title for a new Location record.

Example
{"title": "Some Title"}

VerifyTemplateTitleRequest

Description

VerifyTemplateTitleRequest will handle the input data for verifying if a Pass Delivery Template title is available for creating a new template.

Fields
Input Field Description
deliveryTitle - String!

Requested title for a new Pass Delivery Template.

Example
{"deliveryTitle": "Some Title"}