Breezin.io GQL API Reference

Welcome to the breezin.io API documentation. 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
# Production:
https://acs-enterprise-gateway-kocg34nsbq-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.19.110

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

getOrganisationPassDesignByTitle

Description

Get organisation pass design 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
  }
}
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": "abc123",
      "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": "xyz789",
      "backFields": BackFields,
      "downloadMessage": "xyz789",
      "downloadLogo": "abc123",
      "downloadBackground": "abc123"
    }
  }
}

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
    }
    lastModifiedDate
    lastDocID
  }
}
Variables
{"input": GetPaginatedBeaconRequest}
Response
{
  "data": {
    "getPaginatedBeacons": {
      "beacons": ["some-beacon-title"],
      "lastModifiedDate": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

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
    }
    lastCreated
    lastDocID
  }
}
Variables
{"input": GetPaginatedDistributionRequest}
Response
{
  "data": {
    "getPaginatedDistributionRequests": {
      "distributionDocs": [DistributionRequestRecord],
      "lastCreated": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

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
    }
    lastCreated
    lastDocID
  }
}
Variables
{"input": GetPaginatedInvalidationRequest}
Response
{
  "data": {
    "getPaginatedInvalidationRequests": {
      "invalidationDocs": [InvalidationRequestRecord],
      "lastCreated": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

getPaginatedInvoices

Description

getPaginatedInvoices returns a paginated list of Invoices for an Organisation.

Response

Returns a PaginatedInvoiceResponse!

Arguments
Name Description
input - GetPaginatedInvoiceRequest

Example

Query
query GetPaginatedInvoices($input: GetPaginatedInvoiceRequest) {
  getPaginatedInvoices(input: $input) {
    invoicesDocs {
      amount
      apiCharge
      billingPeriod
      dateOfInvoice
      dueDate
      invoiceNumber
      invoiceURL
      lastModified
      latePaymentTaskName
      longTermCharge
      longTermCount
      longTermPrice
      paymentCurrency
      paymentDate
      paymentGracePeriod
      paymentReminderPeriod
      paymentTerms
      payments
      platformCharge
      recurringPassCharge
      recurringPassCount
      recurringPassPrice
      shortTermCharge
      shortTermCount
      shortTermPrice
      shutoffPeriod
      shutOffReminderTaskName
      startOfInvoice
      status
      supportCharge
      supportPackage
      userCharge
      userCount
      userPrice
      vatAmount
      xUseCharge
      xUseCount
      xUsePrice
    }
    lastStartDate
    lastDocID
  }
}
Variables
{"input": GetPaginatedInvoiceRequest}
Response
{
  "data": {
    "getPaginatedInvoices": {
      "invoicesDocs": [Invoice],
      "lastStartDate": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

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
    }
    lastModifiedDate
    lastDocID
  }
}
Variables
{"input": GetPaginatedLocationRequest}
Response
{
  "data": {
    "getPaginatedLocations": {
      "locations": ["some-location-title"],
      "lastModifiedDate": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

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
      subject
      title
      type
    }
    lastCreatedTimestamp
    lastDocID
  }
}
Variables
{"input": GetPaginatedPassDeliveryTemplateRequest}
Response
{
  "data": {
    "getPaginatedPassDeliveryTemplates": {
      "passDeliveryTemplates": [PassDeliveryTemplate],
      "lastCreatedTimestamp": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

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
    }
    lastModifiedTimestamp
    lastDocID
  }
}
Variables
{"input": GetPaginatedPassDesignRequest}
Response
{
  "data": {
    "getPaginatedPassDesigns": {
      "passDesignDocs": [PassDesign],
      "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

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
    }
    lastDocID
    lastModifiedTimestamp
  }
}
Variables
{"input": GetPaginatedReportingRequestsRequest}
Response
{
  "data": {
    "getPaginatedReportingRequest": {
      "reportingRequestList": [ReportingRequest],
      "lastDocID": "some-doc-id",
      "lastModifiedTimestamp": "2023-03-23T17:21:00Z"
    }
  }
}

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
  }
}
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"
      }
    ]
  }
}

getPassesByExternalRefID

Description

getPassesByExternalRefID will attempt to fetch a list of Pass records which match on a specified ExternalRefernceID 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"
      }
    ]
  }
}

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": "abc123",
      "lastModified": "2023-03-23T17:21:00Z",
      "downloadURL": "xyz789"
    }
  }
}

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
  }
}
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
    }
  }
}

getUsageReporting

Description

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
  }
}
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
      }
    ]
  }
}

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"
    }
  }
}

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"
    }
  }
}

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"
    }
  }
}

verifyPassDesignTitleExists

Description

verifyPassDesignTitleExists will attempt to verify if a Pass Design title already exists within the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - VerifyPassDesignTitleExistsInput

Example

Query
query VerifyPassDesignTitleExists($input: VerifyPassDesignTitleExistsInput) {
  verifyPassDesignTitleExists(input: $input) {
    message
  }
}
Variables
{"input": VerifyPassDesignTitleExistsInput}
Response
{
  "data": {
    "verifyPassDesignTitleExists": {
      "message": "Response message containing results of API request"
    }
  }
}

Mutations

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"
    }
  }
}

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"
    }
  }
}

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"
    }
  }
}

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
    }
    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"
    }
  }
}

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"
    }
  }
}

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": "abc123"
    }
  }
}

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"
    }
  }
}

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"
    }
  }
}

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"
    }
  }
}

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"
    }
  }
}

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"
    }
  }
}

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"
    }
  }
}

Types

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": true
}

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

BackgroundColour 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 indentifier of a BLE beacon.
minor - Int Optional minor indentifier 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.
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"
}

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.

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

Boolean

Description

The Boolean scalar type represents true or false.

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.

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

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.

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": "abc123",
  "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
}

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.
Example
{"key": "some-key", "label": "Some Label", "position": 1}

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]}

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": "xyz789"
}

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": "abc123",
  "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"
}

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's email address. Please omit this value from the request, or set to empty string ('') 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, or set to empty string ('') if this filter is not required. Available values: 'Beacons', 'Billing', 'Distributions'. 'Invalidations', 'Geolocations', 'Login', 'Organisation', 'Pass Designs', 'Passes', 'Reporting', 'Serial Numbers', 'Signing', or 'Users'.

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

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.
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"
}

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"}

GetPaginatedBeaconRequest

Description

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

Fields
Input Field Description
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.

batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request. EG 10

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

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

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.

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

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

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.

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

GetPaginatedInvoiceRequest

Description

GetPaginatedInvoiceRequest will handle input values for retrieving a paginated list of Invoices 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

lastStartDate - Time

lastStartDate 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,
  "lastStartDate": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

GetPaginatedLocationRequest

Description

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

Fields
Input Field Description
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.

batchSize - Int!

batchSize controls the number of items which will be returned in the pagination request. EG 10

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

GetPaginatedPassDeliveryTemplateRequest

Description

Request payload for fetching paginated pass delivery templates.

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

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.

lastCreatedDate - Time

The Created timestamp 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.

Example
{
  "passTemplateType": "Email",
  "batchCount": 10,
  "lastDocID": "some-doc-id",
  "lastCreatedDate": "2023-03-23T17:21:00Z"
}

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

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.

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

GetPaginatedReportingRequestsRequest

Description

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

Fields
Input Field Description
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, AuditLogReport.

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.

batchSize - Int!

Batch size for controlling the number of items which will be returned in the pagination request. EG 10

startTime - Time!

Start Time timestamp for filtering DB records for report. This value will be compared against the LastModified timestamp of the reporting request records and the query will return any records modified after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.

endTime - Time!

End Time timestamp for filtering DB records for report. This value will be compared against the LastModified timestamp of the reporting request records and the query will return any records modified after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.

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

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"}

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.
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/"
}

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"}
  ]
}

Invoice

Description

Invoice is used for representing and breaking down the charge of an organisations usage for a billing cycle

Fields
Field Name Description
amount - Int! Total invoice amount to be charged to the organisation for the reported billing period. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 100000
apiCharge - Int! This value indicates how much of the total amount of the invoice was based on API charge. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 10000
billingPeriod - String! Indicated the period of time that the invoice covers. This will be a single month for Monthly billing customers, where it will be a range of 3 months for quarterly billing customers. Examaple: May 2023 or May 2023 - July 2023
dateOfInvoice - Time DateOfInvoice is the timestamp when the invoice was created for the organisation
Example: 2022-11-18T11:52:30+0000
dueDate - Time DueDate is the date that the organisation is expected to pay by
Example: 2022-11-18T11:52:30+0000
invoiceNumber - String! InvoiceNumber is a string used to uniquely identify the invoice within the breezin system
Example: 123456789
invoiceURL - String! invoiceURL is a URL pointing to a download link of an invoice.
lastModified - Time! lastModified shows the timestamp of when the Invoice was last updated.
Example: 2022-11-18T11:52:30+0000
latePaymentTaskName - String! latePaymentTaskName records the name of the Cloud Task item for processing Late Payment Invoice notifications via email.
longTermCharge - Int! This value indicates how much of the total amount of the invoice was based on Long-Term Pass Distribution charges. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 400
longTermCount - Int! The number of Long-Term passes which have been used to calculate the final longTermCharge value for the Invoice.
Example: 10
longTermPrice - Int! The price of a Long-Term pass for the Invoice billing period.
Example: 20
paymentCurrency - String! The currency that the organisation has agreed to pay in. Should be in currency code format, ISO 4217.
Example: GBP
paymentDate - Time The timestamp that the invoice should be paid by.
Example: 2022-11-18T11:52:30+0000
paymentGracePeriod - Int! paymentGracePeriod records the number of days after the due date for an Organisations Invoice before partial account restrictions are applied to the Organisation account.
paymentReminderPeriod - Int! paymentReminderPeriod controls the number of days after an invoice becomes overdue that the organisation will receive a reminder email about the overdue payment.
Example: 7
paymentTerms - Int! paymentTerms controls the number of days that an Organisation has to pay an invoice before it becomes overdue (days after invoice has been issued).
Example: 7
payments - [Int!]! payments contains a list of interim payments associated with an Invoice.
Example: [100000]
platformCharge - Int! This value indicates how much of the total amount of the invoice was based on the customers standard Platform charge. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 100000
recurringPassCharge - Int! This value indicates how much of the total amount of the invoice was based on Recurring yearly Pass charges. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 10000
recurringPassCount - Int! The number of yearly recurring passes which have been used to calculate the final recurringPassCharge value for the Invoice.
Example: 10
recurringPassPrice - Int! The price of recurring annual pass charges for the Invoice billing period.
Example: 20
shortTermCharge - Int! This value indicates how much of the total amount of the invoice was based on Short-Term Pass Distribution charges. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 400
shortTermCount - Int! The number of Short-Term passes which have been used to calculate the final shortTermCharge value for the Invoice.
Example: 10
shortTermPrice - Int! The price of a Short-Term pass for the Invoice billing period.
Example: 20
shutoffPeriod - Int! shutoffPeriod controls the number of days before an Organisation account is restricted after an invoice has become overdue for payment.
Example: 30
shutOffReminderTaskName - String! shutOffReminderTaskName records the name of the Cloud Task item for processing Organisation Shut-Off Reminder emails.
startOfInvoice - Time! The timestamp that the invoice is tracking charge accruement from.
Example: 2022-11-18T11:52:30+0000
status - String! Status shows if the invoice is in-progress, paid, overdue or pending payment.
Example: overdue-payment
supportCharge - Int! This value indicates how much of the total amount of the invoice was based on Support charges. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 100000
supportPackage - String! The customers support package. Bronze is the standard, free tier of customer support. Silver and Gold are premium support packages and incur monthly charges for the customer.
Example: Gold
userCharge - Int! This value indicates how much of the total amount of the invoice was based on User Account charges. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 300
userCount - Int! The number of user accounts which have been used to calculate the final userCharge value for the Invoice.
Example: 10
userPrice - Int! The price of a user account which has access to the Breezin platform.
Example: 300
vatAmount - Int! vatAmount contains the total UK VAT charge associated with the invoice.
Example: 1000
xUseCharge - Int! This value indicates how much of the total amount of the invoice was based on X-Use Pass Distribution charges. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 400
xUseCount - Int! The number of X-Use passes which have been used to calculate the final xUseCharge value for the Invoice.
Example: 10
xUsePrice - Int! The price of a Long-Term pass for the Invoice billing period.
Example: 20
Example
{
  "amount": 60720,
  "apiCharge": 10000,
  "billingPeriod": "June 2023",
  "dateOfInvoice": "2023-03-23T17:21:00Z",
  "dueDate": "2023-03-23T17:21:00Z",
  "invoiceNumber": "ABC00000001",
  "invoiceURL": "https://www.somelinktofile.com/",
  "lastModified": "2023-03-23T17:21:00Z",
  "latePaymentTaskName": "abc123",
  "longTermCharge": 30000,
  "longTermCount": 3000,
  "longTermPrice": 10,
  "paymentCurrency": "GBP",
  "paymentDate": "2023-03-23T17:21:00Z",
  "paymentGracePeriod": 42,
  "paymentReminderPeriod": 7,
  "paymentTerms": 30,
  "payments": [30000, 30720],
  "platformCharge": 10000,
  "recurringPassCharge": 0,
  "recurringPassCount": 0,
  "recurringPassPrice": 0,
  "shortTermCharge": 0,
  "shortTermCount": 0,
  "shortTermPrice": 0,
  "shutoffPeriod": 30,
  "shutOffReminderTaskName": "xyz789",
  "startOfInvoice": "2023-03-23T17:21:00Z",
  "status": "active",
  "supportCharge": 42,
  "supportPackage": "Bronze",
  "userCharge": 300,
  "userCount": 2,
  "userPrice": 600,
  "vatAmount": 10120,
  "xUseCharge": 0,
  "xUseCount": 0,
  "xUsePrice": 0
}

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"
}

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.
Example
{
  "beacons": ["some-beacon-title"],
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

PaginatedDistributionResponse

Description

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

Fields
Field Name Description
distributionDocs - [DistributionRequestRecord!]! 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.
Example
{
  "distributionDocs": [DistributionRequestRecord],
  "lastCreated": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

PaginatedInvalidationResponse

Description

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

Fields
Field Name Description
invalidationDocs - [InvalidationRequestRecord!]! 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.
Example
{
  "invalidationDocs": [InvalidationRequestRecord],
  "lastCreated": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

PaginatedInvoiceResponse

Description

PaginatedInvoiceResponse will return a paginated list of Invoices for an Organisation.

Fields
Field Name Description
invoicesDocs - [Invoice!]! Paginated list of Invoices
lastStartDate - Time lastStartDate 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.
Example
{
  "invoicesDocs": [Invoice],
  "lastStartDate": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

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.
Example
{
  "locations": ["some-location-title"],
  "lastModifiedDate": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

PaginatedPassDeliveryTemplateResponse

Description

Response from the server showing a list of returned pass delivery templates

Fields
Field Name Description
passDeliveryTemplates - [PassDeliveryTemplate] The pass delivery template list
lastCreatedTimestamp - Time The timestamp of the last returned document. Used to ensure that we return paginated results in the correct order
lastDocID - String The Unique id of the last document within the returned results. Ensures we fetch the next paginated list with unique records
Example
{
  "passDeliveryTemplates": [PassDeliveryTemplate],
  "lastCreatedTimestamp": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

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.
Example
{
  "passDesignDocs": [PassDesign],
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

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 - [ReportingRequest]! 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.
Example
{
  "reportingRequestList": [ReportingRequest],
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2023-03-23T17:21:00Z"
}

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"
}

PassDeliveryTemplate

Description

Pass delivery template will return a template for delivering a pass to an end user. This can be configured to send either emails, sms, whatsapp or iMessages.

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.
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",
  "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.

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

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.
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": 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": "xyz789",
  "downloadLogo": "abc123",
  "downloadBackground": "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
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"
}

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 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": "abc123",
  "status": "active",
  "created": "2023-03-23T17:21:00Z",
  "requester": "xyz789",
  "lastModified": "2023-03-23T17:21:00Z",
  "downloadURL": "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.
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
}

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
"xyz789"

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.
Example
{
  "customFieldData": {
    "membership_number": "1234567890001",
    "membership_name": "Some Name"
  },
  "externalReferenceID": "ab12cd34ef56",
  "payload": "abc123",
  "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"
}

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"

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": "abc123"}

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
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
}

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": "abc123"
}

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"}

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"}

VerifyPassDesignTitleExistsInput

Description

VerifyPassDesignTitleExistsInput will handle the input values for verifying if a pass design title already exists in the Cloud DB.

Fields
Input Field Description
passDesignTitle - String!

Title of the Pass Design to query DB to verify if it already exists.

Example
{"passDesignTitle": "Some Pass Design"}

VerifyTemplateTitleRequest

Description

VerifyTemplateTitleRequestBeaconRequest 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"}