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.
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
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.
Response
Returns a
PaginatedPassDeliveryTemplateResponse!
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.
Response
Returns a
PaginatedReportingRequestsResponse!
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.
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
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
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.
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
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.
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.
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 |
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 |
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 |
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 |
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 |
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: |
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 |
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 |
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 |
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)
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 |
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
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.
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
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
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 |
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 |
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 |
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
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
{"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.
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.
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"}