1.Revision History & Notes #

Last updated Febuary 03, 2020

DateDescriptionSection
03/09/20Added a new Generic API: getPassIdsSection 8.4
02/25/20The generatePassById and deletePassData APIs have been moved to a Generic API section, 8.2 and 8.3, since they are the same for all pass types and have been removed from each pass type.

Also the sections 6 and 7 for different layouts for Loyalty Card, have been merged into a single section, i.e. section 6. So section 8, 9, 10 and 11 have now become section 7, 8, 9, 10 respectively

All sections
02/14/20Made updates to generatePass, updatePassData, getPassData and getPassTemplate APIs for Gift Card.

The param “event-id” has been renamed to “event-number” in the request for generatePass and updatePassData APIs, and in the response for getPassData and getPassTemplate APIs, for Gift Card.

Made updates to getPassData and getPassTemplate APIs for Loyalty Card. The secondary-rewards-tier field has been removed from the response of both the APIs, since the field is no longer supported by GPay.

New APIs added: createPassTemplate and updatePassTemplate, for all Pass Types, which can be used to create or update a Pass Template.

generatePass – section 3.2

updatePassData – section 3.4

getPassData – section 3.5

getPassTemplate – section 3.7

getPassData – section 6.5

getPassTemplate – section 6.7

createPassTemplate –
Sections 3.10, 4.10, 5.10, 6.10, 8.10

updatePassTemplate – Sections 3.11, 4.11, 5.11, 6.11, 8.11

02/03/20Added API calls for the new loyalty card layout 2.7.0 Loyalty Card Layout 2
7.1 Introduction to Loyalty Card Layout 2
7.2 GeneratePass
7.3 GeneratePassbyId
7.4 UpdatePassData
7.5 GetPassData
7.6 DeletePassData
7.7 GetPassTemplate
7.8 CreatePassIssuanceLink
7.9 UpdatePassIssuance Link
01/27/20Added new API calls for CreatePassIssuanceLink and UpdatePassIssuanceLink for all pass types.
Added new error codes for the Issuance Link APIs.Added a new section for encryption and checksum algorithms for the Issuance Link APIs.
CreatePassIssuanceLink – 3.8, 4.8, 5.8, 6.8, 7.8, 8.8
UpdatePassIssuance Link – 3.9, 4.9, 5.9, 6.9, 7.9, 8.9Error Codes – 10.2Encryption & Checksum Algorithms – 10.3
08/22/19Renamed the API param names, for ‘Event ticket’:
“event-gate” renamed to “event-custom-value-1”
“seat-section” renamed to “event-custom-value-2”
“seat-row” renamed to “event-custom-value-3”
“seat-number” renamed to “event-custom-value-4”
5.0 Event Ticket
5.2 GeneratePass
5.4 UpdatePassData
5.5 GetPassData
5.7 GetPassTemplate
07/02/19Added a new node called “reference-data” in the “generatepass” APIs for all pass types and the “installed” and “uninstalled” response examples for Apple Wallet and Google Pay.
With the new node “reference-data”, the customer can add additional information related to the pass and passback the same information in the postback.
generatepass – 3.2, 4.2, 5.2, 6.2, 7.2, 8.2
Notification Examples – 9.1
06/20/19Removed error codes that were related to ‘reference-id’.
The following error codes were removed:
E813, E829, AND E833
10.2 Error Codes
06/19/19Removed the param “reference-id” for all pass types from “generatepass” and “getpassdata” API requests and request examples. ‘reference-id’ has also been removed from notification examples and notification parameters.
Added a new node “priority” in the “updatepassdata” API. The node “priority” will add the update request to the front of the queue if it is set as true in the request. The node “priority” accepts the following values: ‘true’ or ‘false’
generatepass – 3.2, 4.2, 5.2, 6.2, 7.2
getpassdata – 3.5, 4.5, 5.5, 6.5, 7.5Notification Examples – 9.1Notification Parameters 9.2updatepassdata – 3.4, 4.4, 5.4, 6.4, 7.4
06/13/19Added images to the introduction sections to display where each field used in the API calls appears on the passes for both Apple Wallet and Google Pay.3.1 Introduction to Gift Cards
4.1 Introduction to Boarding Passes
5.1 Introduction to Event Tickets
6.1 Introduction to Loyalty Cards
7.1 Introduction to Coupons
06/12/19The section for Error Codes, formerly section 8, has been moved to the Appendix under section 9.29.2 Error Codes
06/11/19Section 9.0 was renamed from ‘Expiration Timezone Names and Timestamp Value’ to ‘Appendix’. The section for expiration timezone names and timestamp values was added as subsection 9.1 in the Appendix.9.0 Appendix
9.1 Expiration Timezone Names and Timestamp Value
05/30/2019Removed the param “pass-status” for all pass types from the “generatepass” APIs.generatepass – 3.2, 4.2, 5.2, 6.2, 7.2
05/16/2019Added new introduction sections containing related Parameters to the specific pass type at the beginning of each section.3.1 Introduction to Gift Cards
4.1 Introduction to Boarding Passes
5.1 Introduction to Event Tickets
6.1 Introduction to Loyalty Cards
7.1 Introduction to Coupons
05/09/2019Added the new param “pass-update-notification” for all pass types under the “updatepassdata” APIs.updatepassdata – 3.4, 4.4, 5.4, 6.4, 7.4
04/02/2019Removed the param “barcode-text” from “generatepass” and “updatepassdata” APIs.generatepass – 3.2, 4.2, 5.2, 6.2, 7.2
updatepassdata – 3.4, 4.4, 5.4, 6.4, 7.4
03/06/2019The param “expiration-timezone” has been added to the “generatepass” and “updatepassdata” APIs for all pass types.generatepass – 3.2, 4.2, 5.2, 6.2, 7.2
updatepassdata – 3.4, 4.4, 5.4, 6.4, 7.4
03/01/2019For Google Pay, when ‘expiration-timestamp’ is set for coupons and gift cards, the timestamp will appear in the app below the pass. If the timestamp is future dated, the label will display as “expires” and if it is backdated then it will display as “expired”.
The parameter “expiration-timestamp” will overwrite the pass expiration date set in the Pass Template Builder. If an empty value is passed or the param is not set in the request, the template value will be considered. For “expiration-timezone”, the timezone value will be considered only if the timestamp is set, otherwise, it will be ignored. The full timezone name is accepted in API calls. A list of valid timezone names is given at the end of this guide in section 9.1.The response examples for ‘getpassdata’ and ‘getpasstemplate’ APIs have been updated for all pass types.The “pass-id” parameter has been added to the error responses for all pass types.
generatepass -3.2, 7.2
updatepassdata – 3.4, 7.4Expiration Timezone Names and Timestamp Value – 9.1
02/08/2019The “updatepassdata” and “generatepass” APIs now accept a parameter named “pass-status”. The parameter “pass-status” accepts the following values: “redeemed”, “expired”, “voided”, “active”.
Using pass-status values, excluding “active”, will expire the pass in both the Apple Wallet and Google Pay app. The status will also be displayed on the back of the Apple Wallet pass and the bottom of the Google Pay pass in the app.For Google Pay, when ‘pass-status’ is set to ‘expired’, ’voided’, or ‘redeemed’, the pass is displayed under expired passes listing in the Google Pay app.
generatepass – 3.2, 4.2, 5.2, 6.2, 7.2
updatepassdata – 3.4, 4.4, 5.4, 6.4, 7.4

End.

2.Introduction #

Skycore’s Mobile Wallet API v3 documentation is intended to be used as a guide to generate passes, generate passes by id, update pass data, get pass data, delete pass data, and get pass templates. API calls are listed below for each of the following pass types: Gift Cards, Boarding Passes, Event Tickets, Loyalty Cards, and Coupons. Each API call listed below will show an example of a successful request and response. This documentation also provides information about error codes and the text associated with each error code as well as postback codes and their parameters. If you are experiencing difficulties while using our API, please contact our support team.

2.2.Definitions #

Pass: Any mention of “Pass” in this guide refers to a Gift Card, Boarding Pass, Event Ticket, Loyalty Card or Coupon.

Pass Template: Any mention of “Pass Template” in this guide refers to a template that is created for a certain pass type and contains generic pass data.

API: Any mention of “API” in this guide refers to the API calls used to trigger the following actions: generate passes, generate passes by id, update pass data, get pass data, delete pass data, or get pass templates.

Postback: Any mention of “Postback” in this guide refers to a notification that is sent to you regarding information about your Mobile Wallet passes.

Wallet: Any mention of “Wallet” in this guide refers to the Mobile Wallet apps Apple Wallet and Google Pay.

3.Gift Card #

3.1.Introduction to Gift Cards #

The following image shows where the fields used in the API calls will appear on gift cards for both Apple Wallet and Google Pay. Any fields shown on gift cards but not linked to the key in the image are required in the Pass Template Builder, therefore, they will always be shown on the pass. In this case, those fields are the Merchant Name and the ‘Last Updated’ field.

Mobile Wallet Gift card

The following table provides a detailed description of certain variables that can be used in each API call for gift cards. The following text fields from the Pass Template Builder are not dynamic, therefore, you will not see these fields in the API calls for gift cards: Merchant Name, Message 1, Message 2, Text Module, Info Module, Home Page URI, Link 1 and Link 2. The format column explains whether the variable is mandatory or optional.

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
 pass-template-idMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThe unique Pass Template ID used to reference a particular Pass Template.
pass-idMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThe identifier from your system to identify the pass or pass data uniquely.
reference-dataOptional, Alphanumeric (a-zA-Z0-9)This is used for adding additional information related to the pass.
barcode-valueOptional, Alphanumeric (a-zA-Z0-9)The unique barcode value associated with a specific pass-id.
expiration-timestampOptional. “expiration-timestamp” should be in UTC. Example: 2013-02-19T15:54:50ZThe timezone offset is ignored and always considers the timestamp in UTC.
expiration-timezoneOptional. “expiration-timezone” should be in long name format. Example: America/New_YorkUse the long names listed in section 9.1 for your reference
card-numberMandatory, Alphanumeric (a-zA-Z0-9)The gift card number. This number appears below the barcode on both Apple Wallet and Google Pay Passes.
card-balanceOptional, Numeric (0-9)The monetary value or balance of the gift card.
card-pinOptional, Alphanumeric (a-zA-Z0-9)The PIN number for the gift card. Most gift cards use a PIN number as an additional security method for authentication purposes.
event-idOptional, Alphanumeric (a-zA-Z0-9)The event id field is used by some merchants to further identify the gift card.
relevant-locations (1-10) (relevant-1, relevant-2, etc..)Optional, Alphanumeric (a-zA-Z0-9) Format: “key”:”relevant-1″, “latitude”:”COORDINATES”, “longitude”:”COORDINATES”, “relevant-text”:”RELEVANCE TEXT”Custom relevant text is only applicable for Apple Wallet Passes. If you set a relevant location, Android devices will display default text. When adding more than one relevant location, be sure to change the “key” to relevant-2, relevant-3, etc..
ibeacons (1-10) (ibeacon-1, ibeacon-2, etc..)Optional, Alphanumeric (a-zA-Z0-9) Format: “key”:”ibeacon-1″, “proximity-uuid”:”UUID VALUE”, “major”:”MAJOR VALUE”, “minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”ibeacons are only applicable for Apple Wallet Passes. When adding more than one ibeacon, be sure to change the “key” to ibeacon-2, ibeacon-3, etc..

3.2.GeneratePass #

The generate pass API will generate a unique installation link for a gift card. If you try to call this API again without changing the ‘pass-id’ field, it will return an error message and fail to generate the installation link for the gift card. To call this API again successfully, you will need to use a different ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request: Gift card

 

{
    "action":"generatepass",
    "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj",
    "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41",
    "pass-id":"Gift Card_1",
    "reference-data": {
  "email": "joy@gmail.com",
  "phone": "61855742",
  "transaction-id": "96"
          },
    "pass-data":{
        "barcode-value":"ASDE96325",
        "card-number":"9632545",
        "card-balance":"65",
        "card-pin":"4236",
        "event-id":"JAN_456",
                "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
        "expiration-timezone":"Australia/Sydney",
        "relevant-locations":[
            {
                "key":"relevant-1",
                "latitude":"42.369169",
                "longitude":"-71.237371",
                "relevant-text":"Come grab some popcorn!"
            }
        ],
        "ibeacons":[
            {
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    }
}

 

 

{
   "action":"generatepass",
   "api-key":"API KEY",
   "pass-template-id":"PASS TEMPLATE ID",
   "pass-id":"UNIQUE CUSTOMER PASS ID",
   "reference-data": {
	"Reference": "reference data of the customer",
		     },
   "pass-data":{
        "barcode-value":"BARCODE VALUE",
        "card-number":"CARD NUMBER VALUE",
        "card-balance":"GIFT CARD BALANCE",
        "card-pin":"PIN VALUE",
        "event-id":"EVENT ID VALUE",
        "additional-image":"ADDITIONAL IMAGE",
        "expiration-timestamp”:”EXPIRATION TIMESTAMP”,
        "expiration-timezone":"TIMEZONE",
        "relevant-locations":[        	// 10 fields         
         { 
            "key":"relevant-1",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         { 
            "key":"relevant-2",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         …
      ],
      "ibeacons":[                    	 // 10 fields         
         {  
            "key":"ibeacon-1",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
         {  
            "key":"ibeacon-2",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
         …
      ]
   }
}

Request Example: Gift card

{  
    "action":"generatepass",
    "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj",
    "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41",
    "pass-id":"Gift Card_1",
    "reference-data": {
	"email": "joy@gmail.com",
	"phone": "61855742",
	"transaction-id": "96"
		      },
    "pass-data":{  
        "barcode-value":"ASDE96325",
        "card-number":"9632545",
        "card-balance":"65",
        "card-pin":"4236",
        "event-id":"JAN_456",
                "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
        "expiration-timezone":"Australia/Sydney",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.369169",
                "longitude":"-71.237371",
                "relevant-text":"Come grab some popcorn!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    }
}

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
   "pass-install-url":"https://dev-d2c.skycore.com/wallet/dc/eazt0sq3r4",
   "tracking-id":"EDRZKf-JTDiY-EJZ"
}

Response Failure Example:

{
    "status":"Failure",
    "error-code":"E830",
    "error-message":"Internal Error. The pass was not generated."
}

3.3.UpdatePassData #

The update pass data API is used to update pass data for a gift card that has already been installed on a device. If you do not add a new “pass-id’ for the gift card, you will receive an error message and the gift card will not be updated until you add a new ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template. The field for ‘pass-status’ will accept the following values: “redeemed”, “expired”, “voided”, “active”.

Request Example: Gift card

{  
    "action":"updatepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID",
    "new-pass-id":"NEW UNIQUE CUSTOMER PASS ID",
    "priority":"PRIORITY",
    "pass-data":{  
        "barcode-value":"BARCODE VALUE",
        "card-number":"PASS CARD VALUE",
        "card-balance":"GIFT CARD BALANCE",
        "card-pin":"PIN VALUE",
        "event-id":"EVENT ID VALUE",
        "additional-image":"ADDITIONAL IMAGE",
        "pass-status":"STATUS OF THE PASS",
        "pass-update-notification":"NOTIFICATION FOR PASS UPDATE",
        "expiration-timestamp:”EXPIRATION TIMESTAMP”,
        "expiration-timezone":"TIMEZONE",
        "relevant-locations":[        	// 10 fields         
         { 
            "key":"relevant-1",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         { 
            "key":"relevant-2",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         …
      ],
      "ibeacons":[                    	 // 10 fields         
         {  
            "key":"ibeacon-1",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
         {  
            "key":"ibeacon-2",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
         …
      ]
   }
}

Request Example: Gift card

{  
    "action":"updatepassdata",
    "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "pass-id":"Gift card_1",
    "new-pass-id":"Gift card_2",
    "priority":"true",
    "pass-data":{  
        "barcode-value":"ASDFGH123",
        "card-number":"9632545",
        "card-balance":"65",
        "card-pin":"4236",
        "event-id":"JAN_456",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
         "pass-status":"active",
        "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
        "expiration-timezone":"Australia/Sydney",
        "pass-update-notification":"Pass has been updated with new values",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.369169",
                "longitude":"-71.237371",
                "relevant-text":"Come grab some popcorn!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    }
}

 

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
   "tracking-id":"EDRYpq-GAxbE-EKE"
}

Response Failure Example:

{
    "status" : "Failure",
    "error-code" : "E809",
    "error-message" : "Internal Error. The pass was not updated."
}

3.4.GetPassData #

The get pass data API is used to retrieve data for a specific gift card that has already been installed on a device. This data may include the gift card holder’s name or the gift card balance. If you do not enter the correct ‘pass-id’ for the gift card that you are trying to retrieve, you will receive an error code. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request

{
    "action":"getpassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID"
}

Request Example

{  
   "action":"getpassdata",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-id":"rockonrock2020"
}

Response Success Example: Gift card

{  
    "status":"Success",
    "pass-id":"161783893285c2f4bcc68660",
    "pass-template-id":"59c4fb740f5a3a4c6bb7f1170d8b982b0ceb6b4",
    "pass-data":{  
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c206bde7531a.png",
        "merchant-name":"GIFT CARD - 24-12",
        "barcode-value":"ASDH678",
        "card-number":"8965",
        "card-balance":"AFN9",
        "card-pin":"334234",
        "event-id":"C",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "message1":"hiii",
        "message2":"hiii",
        "message3":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://dev-app.skycore.com/platform/wallet/pass-template-builder-wallet.php#",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E808",
    "error-message":"The pass-id value is invalid."
}

3.5.GetPassTemplate #

The get Pass Template API is used to retrieve a specific gift card Pass Template. To retrieve the specific gift card Pass Template you will need the correct ‘pass-template-id’ associated with the Pass Template.

Request

{
    "action":"getpasstemplate",
    "api-key":"API KEY",
    "pass-template-id":"CARD TEMPLATE ID"
}

Request Example:

{  
   "action":"getpasstemplate",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41"
}

Response Success Example: Gift card

{  
    "status":"Success",
    "pass-template-id":"182258f43033a386202e86e68213b584e64762fa",
    "pass-template":{  
        "pass-name":"Gift Card 24-12",
        "pass-type":"Gift Card",
        "organization":"JOY",
        "description":"Mobile Wallet Card by JOY",
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c206bde7531a.png",
        "merchant-name":"GIFT CARD - 24-12",       
        "barcode-value":"ASDH678",       
        "card-number":"8965",
        "card-balance":"AFN9",
        "card-pin":"334234",
        "event-id":"C",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "message1":"hiii",
        "message2":"hiii",
        "message3":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://dev-app.skycore.com/platform/wallet/pass-template-builder-wallet.php#",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E802",
    "error-message":"The pass-template-id value is invalid."
}

3.8.CreatePassTemplate #

The CreatePassTemplate API is used to create a Pass Template for a gift card Pass. The following table provides a detailed description of certain variables that can be used in each API call to create or update Pass Templates for gift cards. The required params for a gift card Pass Template are: action, api-key, pass-template-type, pass-template-name, merchant-name, background-color, card-number, barcode-type, text-color, and description.

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-typeMandatory. The expected value is “gift-card”This defines the type of Pass that will be used for creating the Pass Template.
pass-template-nameMandatory. Alphanumeric (A-Za-z0-9)This is used as an internal name to identify the Pass Template.
merchant-logoOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Apple Wallet Passes. Rectangular images are required
merchant-logo-gpayOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Google passes. Circular images are preferred. Any image that is not circular will be masked into a circular image.
merchant-nameMandatory, Alphanumeric (A-Za-z0-9)This is the Merchant Name for the Gift Card. If “merchant-logo” is set then this value won’t be displayed on Apple Wallet Passes.
strip-imageOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThe strip image is displayed below the logo and Merchant Name on both Apple Wallet and Google Pay Passes, as a rectangular image across the middle of the Pass.
background-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the background color of the Pass, for both Apple Wallet and Google Pay Passes.
card-numberMandatory, Alphanumeric (A-Za-z0-9)The gift card number appears below the barcode on both Apple Wallet and Google Pay Passes.
card-balanceOptional, Numeric (0-9)The monetary value or balance of the gift card. The currency will always be considered as US$.
card-pin-labelOptional, Alphanumeric (A-Za-z0-9)The label for the card-pin field. If not set but “card-pin” is set, then a default value “PIN” will be used on the Pass.
card-pinOptional, Alphanumeric (A-Za-z0-9)The PIN number for the gift card. Most gift cards use a PIN number as an additional security method for authentication purposes.
event-number-labelOptional, Alphanumeric (A-Za-z0-9)The label for “event-number” field. If not set and “event-number” is set, then a default value “EVENT NUMBER” will be used on the pass.
event-numberOptional, Alphanumeric (A-Za-z0-9)The event number field is used by some merchants to further identify the gift card.
message1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message1 field.
message1Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of apple pass, and below the pass for Google.
message2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message2 field.
message2Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of apple pass, and below the pass for Google.
text-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the text-module field.
text-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay.
info-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the info-module field.
info-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay. When the Pass Status is updated, this field value is updated with the appropriate message reflecting the status.
home-page-uri-labelOptional, Alphanumeric (A-Za-z0-9)The label for the home page URI.
home-page-uriOptional, Alphanumeric (A-Za-z0-9)This field is used to display any web page link which may contain any additional information about the Passes. The links are clickable on both Apple Wallet and Google Pay Passes and will open in a browser.
link1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link1 field.
link1-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link1 field value.
link1Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link1-type field, this field can have an email id, a geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link1-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
link2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link2 field.
link2-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link2 field value.
link2Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link2-type field, this field can have an email id, geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link2-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
text-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the text color for Apple Wallet Passes only. Google controls the color for the values displayed on the Google Pay Pass, which is either black or white, based on the background color of the Pass.
descriptionMandatory, Alphanumeric (A-Za-z0-9)This field provides a description for the pass, which is used as a voice-over to describe Passes for blind or low vision users for Apple Wallet Passes only.
linked-appsOptional, Alphanumeric (A-Za-z0-9)This is a comma-separated list of iTunes apps, which are displayed on the back of the apple passes.
ibeaconsOptional, Alphanumeric (A-Za-z0-9).Format:
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”
ibeacons are only applicable for Apple Wallet Passes. They are used to display messages on the lock screens of IOS mobile devices based on the values set.
additional-imageOptional, Alphanumeric (A-Za-z0-9). Web URLThis image is displayed only on Google Pay Passes, in the area below the pass in between the additional details.
additional-image-textOptional, Alphanumeric (A-Za-z0-9)This value provides information that is linked to the additional image.
expiry-dateOptional, Alphanumeric (A-Za-z0-9)

Format:
mm/dd/yyyy hour:min AM/PM

The date/time value for the Pass expiration, if not set specifically for individual Passes.
expiration-timezoneOptional, Alphanumeric (A-Za-z0-9)The timezone name. E.g. America/New_York. Use the long names listed in section 9.1.
barcode-typeMandatory, Alphabetic (A-Za-z). Accepted values: “QRCODE”, “AZTEC”, “PDF417”, or “CODE128”The barcode type for all Passes installed using this Pass Template.
barcode-valueOptional, Alphanumeric (A-Za-z0-9)This is the default barcode value, which will be used for Passes if no value is provided.
autogenerate-barcode-valuesOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”.This field defines if the barcode values will be generated automatically for Passes.
autogenerate-barcode-value-typeOptional, Alphabetic (A-Za-z). Accepted values: “Numeric”, “Alphabet”, or “Alphanumeric”.This field defines the type of barcode values that will be auto-generated for Passes if the autogenerate-barcode-values is set to “True”.
autogenerate-barcode-value-lengthOptional, Numeric (0-9). Accepted values: 10 – 100This field defines the length of the auto-generated barcode value for Passes if the autogenerate-barcode-values is set to “True”.
relevant-locationsOptional, Alphanumeric (a-zA-Z0-9)

Format:
“latitude”:”COORDINATES”, “longitude”:”COORDINATES”, “relevant-text”:”RELEVANCE TEXT”

These fields are used to display text information for Passes, when the device that the Pass is installed on is detected at the relevant location. The locations are defined by the latitude/longitude co-ordinates. The relevant-text is the message displayed for Apple Wallet Passes. For Google Pay Passes, a predefined message is displayed.
disable-pass-sharingOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”This field defines if Passes installed for this Pass Template can be installed on multiple devices or not.
never-installed-ttlOptional, Numeric (0-9)This field sets the number of hours post which an uninstalled pass will be archived.
never-installed-archive-timestampOptional, Numeric (0-9)This field, if set, defines the timestamp post which an uninstalled timestamp will be archived. This value will be considered if never-installed-ttl is also set.
expired-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which an expired pass will be archived.
redeemed-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a redeemed pass will be archived.
voided-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a voided pass will be archived.

Request: Gift Card

{
   "action": "createPassTemplate",
   "api-key": "ApiKey",
   "pass-template-type": "gift-card",
   "pass-template-name": "PassTemplateName",
   "appearance" : {
        "merchant-logo": "IMAGE PATH",
        "merchant-logo-gpay": "IMAGE PATH",
        "merchant-name": "MERCHANT NAME",
        "strip-image": "IMAGE PATH",
        "background-color": "COLOR HASH CODE"
    },
    "universal-fields": {
        "card-number": "GIFT CARD NUMBER"
        "card-balance": "CARD BALANCE VALUE", 
        "card-pin-label": "PIN LABEL",
        "card-pin": "PIN VALUE", 
        “event-number-label” : “EVENT NUMBER LABEL”,
        "event-number": "EVENT NUMBER VALUE",
        "message1-label" : "MESSAGE 1 LABEL",
        "message1": "MESSAGE 1 TEXT",	    
        "message2-label" : "MESSAGE 2 LABEL",
        "message2": "MESSAGE 2 TEXT",
        "text-module-label" : "TEXT MODULE LABEL",
        "text-module": "TEXT MODULE VALUE",
        "info-module-label" : "INFO MODULE LABEL",
        "info-module": "INFO MODULE VALUE",
        "home-page-uri-label" : "TEXT FOR HOME PAGE URI",
        "home-page-uri": "HOME PAGE LINK",
        "link1-label" : "TEXT FOR ADDITIONAL LINK 1",
        "link1": "ADDITIONAL LINK 1",
        “link1-type” : “TYPE OF LINK”,
        "link2-label" : "TEXT FOR ADDITIONAL LINK 2",
        "link2": "ADDITIONAL LINK 2",
        “link2-type” : “TYPE OF LINK”,
    },
    "apple-wallet-fields": {
	"text-color": "COLOR HASH CODE",
	"description": "Pass description used for VoiceOver Information",
	"linked-apps": "COMMA SEPARATED LIST OF ITUNES STORE ID",
	"ibeacons":[{  
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
	},
    "gpay-fields" : {
	"additional-image": "ADDITIONAL IMAGE URL",
	"additional-image-text": "Image Description"
    },    
    "expiration-fields" : {
        "expiry-date": "EXPIRATION TIMESTAMP",
        "expiry-timezone": "VALID TIMEZONE NAME" 
    },
    "barcode-fields" : {
        "barcode-type": "BARCODE TYPE",
        "barcode-value": "DEFAULT BARCODE VALUE",    
        "autogenerate-barcode-values":true, // boolean
        "autogenerate-barcode-value-type": "VALUE TYPE FOR AUTO GENERATED BARCODES",
        "autogenerate-barcode-value-length": "LENGTH OF AUTO GENERATED BARCODE VALUES"
    }
    "relevant-locations":[{ 
        "latitude":"COORDINATES",
        "longitude":"COORDINATES",
        "relevant-text":"RELEVANCE TEXT"
    },
    "disable-pass-sharing": "TRUE OR FALSE",
    "pass-data-archive-settings": {
	"never-installed-ttl":"NUMBER OF HOURS POST WHICH PASS RECORDS WILL BE ARCHIVED IF NOT INSTALLED", //either this or below option can bet set
	"never-installed-archive-timestamp": "TIMESTAMP WHEN NON INSTALLED PASS RECORDS ARE TO BE ARCHIVED",
	"expired-pass-ttl": "NUMBER OF HOURS POST WHICH EXPIRED PASSES WILL BE ARCHIVED",
	"redeemed-pass-ttl": "NUMBER OF HOURS POST WHICH REDEEMED PASSES WILL BE ARCHIVED",
	"voided-pass-ttl": "NUMBER OF HOURS POST WHICH VOIDED PASSES WILL BE ARCHIVED"
     }
}

Request Example: Gift Card

{ 
    "action":"createPassTemplate",
    "api-key":"UX4G4ijIIkutK2ex1q2wY1iwA3y8cdFmEj",
    "pass-template-type":"gift-card",
    "pass-template-name":"GIft-card-1",
    "appearance":{ 
        "merchant-logo":"https://www.freepngimg.com/thumb/usa/2-2-america-flag-png-file.png",
        "merchant-logo-gpay":"https://www.cryptoninjas.net/wp-content/uploads/2017/07/dash-apple-768x432.png",
        "merchant-name":"MERCHANT NAME",
        "strip-image":"https://www.cryptoninjas.net/wp-content/uploads/2017/07/dash-apple-768x432.png",
        "background-color":"#c24e4e"
    },
    "universal-fields":{ 
        "card-number":"1233123",
        "card-balance":"12",
        "card-pin":"12123",
        "event-number":"221",
        "message1-label":"Disclaimer",
        "message1":"This gift card was created for demo purposes only and has no real monetary value.",
        "message2-label":"Online Redemption Instructions",
        "message2":"Enter the number shown below the barcode when prompted",
        "text-module-label":"Terms",
        "text-module":"Save $1 on any drink! Excludes milkshakes and bottled beverages.",
        "info-module-label":"Information",
        "info-module":"Pull up this coupon at checkout",
        "home-page-uri-label":"Website",
        "home-page-uri":"https://www.google.com",
        "link1-label":"Support",
        "link1":"joy@gmail.com",
        "link1-type":"email",
        "link2-label":"Call",
        "link2":"2312312",
        "link2-type":"phone"
    },
    "apple-wallet-fields":{ 
        "text-color":"#ffffff",
        "description":"Mobile Wallet Pass by ABC-1",
        "linked-apps":"123123",
        "ibeacons":[ 
            { 
                "proximity-uuid":"33333",
                "major":"123123",
                "minor":"123123",
                "relevant-text":"Come grab some popcorn!"
            },
            { 
                "proximity-uuid":"111111",
                "major":"1236541",
                "minor":"156321",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    },
    "gpay-fields":{ 
        "additional-image":"https://www.freepngimg.com/thumb/usa/2-2-america-flag-png-file.png",
        "additional-image-text":"Image Description"
    },
    "expiration-fields":{ 
        "expiry-date":"12/30/2019 11:16 AM",
        "expiry-timezone":"Asia/Kolkata"
    },
    "barcode-fields":{ 
        "barcode-type":"QRCODE",
        "barcode-value":"12025511",
        "autogenerate-barcode-values":false,
        "autogenerate-barcode-value-type":"numeric",
        "autogenerate-barcode-value-length":"10"
    },
    "relevant-locations":[ 
        { 
            "latitude":"45.30",
            "longitude":"72.86",
            "relevant-text":"Come grab some popcorn!"
        },
        { 
            "latitude":"19.30",
            "longitude":"72.86",
            "relevant-text":"Come grab some popcorn!"
        }
    ],
    "disable-pass-sharing":false,
    "pass-data-archive-settings":{ 
        "never-installed-ttl":"12",
        "never-installed-archive-timestamp":"1/1/2020 11:19 AM",
        "expired-pass-ttl":"12",
        "redeemed-pass-ttl":"1",
        "voided-pass-ttl":"1"
    }
}

Response Success Example:

{ 
    "status":"Success",
    "pass-template-type":"gift-card",
    "pass-template-name":"GIft-card-1",
    "pass-template-id":"f346b2e48123c000e56d0dba08455ae77488c7b7"
}

Response Failure Example:

{ 
"status":"Failure",
"error-code":"E816",
"error-message":"card-number is invalid. Please remove if any special characters and try again."
}

3.9.UpdatePassTemplate #

The UpdatePassTemplate API is used to update an existing Pass Template for a gift card Pass.

Request: Gift Card

{
   "action": "updatePassTemplate",
   "api-key": "ApiKey",
   "pass-template-type": "gift-card",
   "pass-template-name": "PassTemplateName",
   "appearance" : {
        "merchant-logo": "IMAGE PATH",
        "merchant-logo-gpay": "IMAGE PATH",
        "merchant-name": "MERCHANT NAME",
        "strip-image": "IMAGE PATH",
        "background-color": "COLOR HASH CODE"
    },
    "universal-fields": {
        "card-number": "GIFT CARD NUMBER"
        "card-balance": "CARD BALANCE VALUE", 
        "card-pin-label": "PIN LABEL",
        "card-pin": "PIN VALUE", 
        “event-number-label” : “EVENT NUMBER LABEL”,
        "event-number": "EVENT NUMBER VALUE",
        "message1-label" : "MESSAGE 1 LABEL",
        "message1": "MESSAGE 1 TEXT",	    
        "message2-label" : "MESSAGE 2 LABEL",
        "message2": "MESSAGE 2 TEXT",
        "text-module-label" : "TEXT MODULE LABEL",
        "text-module": "TEXT MODULE VALUE",
        "info-module-label" : "INFO MODULE LABEL",
        "info-module": "INFO MODULE VALUE",
        "home-page-uri-label" : "TEXT FOR HOME PAGE URI",
        "home-page-uri": "HOME PAGE LINK",
        "link1-label" : "TEXT FOR ADDITIONAL LINK 1",
        "link1": "ADDITIONAL LINK 1",
        “link1-type” : “TYPE OF LINK”,
        "link2-label" : "TEXT FOR ADDITIONAL LINK 2",
        "link2": "ADDITIONAL LINK 2",
        “link2-type” : “TYPE OF LINK”,
    },
    "apple-wallet-fields": {
	"text-color": "COLOR HASH CODE",
	"description": "Pass description used for VoiceOver Information",
	"linked-apps": "COMMA SEPARATED LIST OF ITUNES STORE ID",
	"ibeacons":[{  
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
	},
    "gpay-fields" : {
	"additional-image": "ADDITIONAL IMAGE URL",
	"additional-image-text": "Image Description"
    },    
    "expiration-fields" : {
        "expiry-date": "EXPIRATION TIMESTAMP",
        "expiry-timezone": "VALID TIMEZONE NAME" 
    },
    "barcode-fields" : {
        "barcode-type": "BARCODE TYPE",
        "barcode-value": "DEFAULT BARCODE VALUE",    
        "autogenerate-barcode-values":true, // boolean
        "autogenerate-barcode-value-type": "VALUE TYPE FOR AUTO GENERATED BARCODES",
        "autogenerate-barcode-value-length": "LENGTH OF AUTO GENERATED BARCODE VALUES"
    }
    "relevant-locations":[{ 
        "latitude":"COORDINATES",
        "longitude":"COORDINATES",
        "relevant-text":"RELEVANCE TEXT"
    },
    "disable-pass-sharing": "TRUE OR FALSE",
    "pass-data-archive-settings": {
	"never-installed-ttl":"NUMBER OF HOURS POST WHICH PASS RECORDS WILL BE ARCHIVED IF NOT INSTALLED", //either this or below option can bet set
	"never-installed-archive-timestamp": "TIMESTAMP WHEN NON INSTALLED PASS RECORDS ARE TO BE ARCHIVED",
	"expired-pass-ttl": "NUMBER OF HOURS POST WHICH EXPIRED PASSES WILL BE ARCHIVED",
	"redeemed-pass-ttl": "NUMBER OF HOURS POST WHICH REDEEMED PASSES WILL BE ARCHIVED",
	"voided-pass-ttl": "NUMBER OF HOURS POST WHICH VOIDED PASSES WILL BE ARCHIVED"
     }
}

Request Example: Gift Card

{ 
    "action":"updatePassTemplate",
    "api-key":"UX4G4ijIIkutK2ex1q2wY1iwA3y8cdFmEj",
    "pass-template-type":"gift-card",
    "pass-template-name":"GIft-card-1",
    "appearance":{ 
        "merchant-logo":"https://www.freepngimg.com/thumb/usa/2-2-america-flag-png-file.png",
        "merchant-logo-gpay":"https://www.cryptoninjas.net/wp-content/uploads/2017/07/dash-apple-768x432.png",
        "merchant-name":"MERCHANT NAME",
        "strip-image":"https://www.cryptoninjas.net/wp-content/uploads/2017/07/dash-apple-768x432.png",
        "background-color":"#c24e4e"
    },
    "universal-fields":{ 
        "card-number":"1233123",
        "card-balance":"12",
        "card-pin":"12123",
        "event-number":"221",
        "message1-label":"Disclaimer",
        "message1":"This gift card was created for demo purposes only and has no real monetary value.",
        "message2-label":"Online Redemption Instructions",
        "message2":"Enter the number shown below the barcode when prompted",
        "text-module-label":"Terms",
        "text-module":"Save $1 on any drink! Excludes milkshakes and bottled beverages.",
        "info-module-label":"Information",
        "info-module":"Pull up this coupon at checkout",
        "home-page-uri-label":"Website",
        "home-page-uri":"https://www.google.com",
        "link1-label":"Support",
        "link1":"joy@gmail.com",
        "link1-type":"email",
        "link2-label":"Call",
        "link2":"2312312",
        "link2-type":"phone"
    },
    "apple-wallet-fields":{ 
        "text-color":"#ffffff",
        "description":"Mobile Wallet Pass by ABC-1",
        "linked-apps":"123123",
        "ibeacons":[ 
            { 
                "proximity-uuid":"33333",
                "major":"123123",
                "minor":"123123",
                "relevant-text":"Come grab some popcorn!"
            },
            { 
                "proximity-uuid":"111111",
                "major":"1236541",
                "minor":"156321",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    },
    "gpay-fields":{ 
        "additional-image":"https://www.freepngimg.com/thumb/usa/2-2-america-flag-png-file.png",
        "additional-image-text":"Image Description"
    },
    "expiration-fields":{ 
        "expiry-date":"12/30/2019 11:16 AM",
        "expiry-timezone":"Asia/Kolkata"
    },
    "barcode-fields":{ 
        "barcode-type":"QRCODE",
        "barcode-value":"12025511",
        "autogenerate-barcode-values":false,
        "autogenerate-barcode-value-type":"numeric",
        "autogenerate-barcode-value-length":"10"
    },
    "relevant-locations":[ 
        { 
            "latitude":"45.30",
            "longitude":"72.86",
            "relevant-text":"Come grab some popcorn!"
        },
        { 
            "latitude":"19.30",
            "longitude":"72.86",
            "relevant-text":"Come grab some popcorn!"
        }
    ],
    "disable-pass-sharing":false,
    "pass-data-archive-settings":{ 
        "never-installed-ttl":"12",
        "never-installed-archive-timestamp":"1/1/2020 11:19 AM",
        "expired-pass-ttl":"12",
        "redeemed-pass-ttl":"1",
        "voided-pass-ttl":"1"
    }
}

Response Success Example:

{ 
    "status":"Success",
    "pass-template-type":"gift-card",
    "pass-template-name":"GIft-card-1",
    "pass-template-id":"f346b2e48123c000e56d0dba08455ae77488c7b7"
}

Response Failure Example:

{ 
"status":"Failure",
"error-code":"E816",
"error-message":"card-number is invalid. Please remove if any special characters and try again."
}

4.Boarding Pass #

4.1.Introduction to Boarding Passes #

The following image shows where the fields used in the API calls will appear on boarding passes for both Apple Wallet and Google Pay. Any fields shown on boarding passes but not linked to the key in the image are required in the Pass Template Builder, therefore, they will always be shown on the pass. In this case, those fields are the Airline Name, Origin/Destination Airports, Terminal/Gate, Flight Number, Boarding Time, Boarding Door, and Scheduled/Estimated Departure Time.

Mobile Wallet Boarding Pass

The following table provides a detailed description of certain variables that can be used in each API call for boarding passes. The following text fields from the Pass Template Builder are not dynamic, therefore, you will not see these fields in the API calls for boarding passes: Carrier Airline Name, Origin Airport IATA Code, Destination Airport IATA Code, Origin Terminal Value, Origin Gate Value, Flight Number, Boarding Time, Boarding Door, Gate Closing Time, Scheduled/Estimated Departure Time, Scheduled/Estimated Arrival Time, Destination Terminal, Destination Gate, Message 1, Message 2, Text Module, Info Module, Home Page URI, Link 1 and Link 2. The format column explains whether the variable is mandatory or optional.

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-idMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

The unique Pass Template ID used to reference a particular Pass Template.
pass-idMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThe identifier from your system to identify the pass or pass data uniquely.
reference-dataOptional, Alphanumeric (a-zA-Z0-9)This is used for adding additional information related to the pass.
barcode-valueOptional, Alphanumeric (a-zA-Z0-9)The unique barcode value associated with a specific pass-id.
expiration-timestampOptional. “expiration-timestamp” should be in UTC. Example: 2013-02-19T15:54:50ZThe timezone offset is ignored and always considers the timestamp in UTC.
expiration-timezoneOptional. “expiration-timezone” should be in long name format. Example: America/New_YorkUse the long names listed in section 9.1 for your reference.
boarding-seat-classOptional, Alphanumeric (a-zA-Z0-9)This indicates the boarding cabin or class, such as ‘Economy’ or ‘First’.
passenger-nameMandatory, Alphanumeric (a-zA-Z0-9)The name of the passenger associated with the pass-id for the boarding pass.
boarding-groupMandatory, Alphanumeric (a-zA-Z0-9)The group or zone that this passenger will board with, such as ‘3’.
seat-numberMandatory, Alphanumeric (a-zA-Z0-9)The passenger’s seat number.
confirmation-numberMandatory, Alphanumeric (a-zA-Z0-9)The passenger’s confirmation number.
ticket-numberOptional, Alphanumeric (a-zA-Z0-9)The passenger’s ticket number
boarding-positionMandatory, Alphanumeric (a-zA-Z0-9)The value of the boarding position for the passenger, such as ‘1’.
sequence-numberOptional, Alphanumeric (a-zA-Z0-9)The sequence number on the boarding pass for the passenger, such as ‘49’.
frequent-flyer-program-nameOptional, Alphanumeric (a-zA-Z0-9)Add the frequent flyer program name, if applicable.
frequent-flyer-name-numberOptional, Alphanumeric (a-zA-Z0-9)Add the passenger’s frequent flyer number, if applicable.
relevant-locations (1-10) (relevant-1, relevant-2, etc..)Optional, Alphanumeric (a-zA-Z0-9) Format:
“key”:”relevant-1″,
“latitude”:”COORDINATES”,
“longitude”:”COORDINATES”,
“relevant-text”:”RELEVANCE TEXT”
Custom relevant text is only applicable for Apple Wallet Passes. If you set a relevant location, Android devices will display default text. When adding more than one relevant location, be sure to change the “key” to relevant-2, relevant-3, etc..
ibeacons (1-10) (ibeacon-1, ibeacon-2, etc..)Optional, Alphanumeric (a-zA-Z0-9)
Format:
“key”:”ibeacon-1″,
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”
ibeacons are only applicable for Apple Wallet Passes. When adding more than one ibeacon, be sure to change the “key” to ibeacon-2, ibeacon-3, etc..

4.2.GeneratePass #

The generate pass API will generate a unique installation link for a boarding pass. If you try to call this API again without changing the ‘pass-id’ field, it will return an error message and fail to generate the installation link for the boarding pass. To call this API again successfully, you will need to use a different ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request: Boarding Pass

{  
   "action":"generatepass",
   "api-key":"API KEY",
   "pass-template-id":"PASS TEMPLATE ID",
   "pass-id":"UNIQUE CUSTOMER PASS ID",
   "reference-data": {
      "Reference": "reference data of the customer",
		      },
   "pass-data":{  
      "barcode-value":"BARCODE VALUE",
      "boarding-Seat-class":"BOARDING SEAT CLASS/CABIN VALUE",
      "passenger-name":"PASSENGER NAME VALUE",
      "boarding-group":"BOARDING GROUP VALUE",
      "seat-number":"SEAT NUMBER VALUE",
      "confirmation-number":"RESERVATION CONFIRMATION CODE VALUE",
      "ticket-number":"RESERVATION ETICKET NUMBER VALUE ",
      "boarding-position":"BOARDING POSITION VALUE ",
      "sequence-number":"SEQUENCE NUMBER VALUE",
      "frequent-flyer-name-number ":"FREQUENT FLYER NUMBER VALUE",
      "additional-image":"ADDITIONAL IMAGE",
      "expiration-timestamp”:”EXPIRATION TIMESTAMP”,
      "expiration-timezone":"TIMEZONE",
      "relevant-locations":[        	// 10 fields         
         { 
            "key":"relevant-1",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         { 
            "key":"relevant-2",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         …
      ],
      "ibeacons":[                    	 // 10 fields         
         {  
            "key":"ibeacon-1",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
         {  
            "key":"ibeacon-2",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
         …
      ]
   }
}

Request Example: Boarding Pass

{  
   "action":"generatepass",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj",
   "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41",
   "pass-id":"Boarding pass_1",
   "reference-data": {
      "email": "joy@gmail.com",
      "phone": "61855742",
      "transaction-id": "96"
		     },
   "pass-data":{  
      "barcode-value":"ASDE96325",
      "boarding-Seat-class":"F",
      "passenger-name":"Alex John",
      "boarding-group":"A",
      "seat-number":"69W",
      "confirmation-number":"96345",
      "ticket-number":"ET963256",
      "boarding-position":"Front",
      "sequence-number":"496325",
      "frequent-flyer-name-number":"Boeing 4563",
      "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
      "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
      "expiration-timezone":"Australia/Sydney",
      "relevant-locations":[  
         { 
            "key":"relevant-1",
            "latitude":"42.369169",
            "longitude":"-71.237371",
            "relevant-text":"Come grab some popcorn!"
         }
      ],
      "ibeacons":[  
         { 
            "key":"ibeacon-1",
            "proximity-uuid":"111111",
            "major":"222222",
            "minor":"3333333",
            "relevant-text":"Come grab some popcorn!"
         }
      ]
   }
}

 

 

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
   "pass-install-url":"https://d2c.skycore.com/wallet/dc/eazt0sq3r4",
    "tracking-id":"EDRZKf-JTDiY-EJZ"
}

Response Failure Example:

{
    "status":"Failure",
    "error-code":"E830",
    "error-message":"Internal Error. The pass was not generated.",
     "pass-id":"rockonrock2020"
}

4.3.UpdatePassData #

The update pass data API is used to update pass data for a boarding pass that has already been installed on a device. If you do not add a new “pass-id’ for the boarding pass, you will receive an error message and the boarding pass will not be updated until you add a new ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template. The field for ‘pass-status’ will accept the following values: “redeemed”, “expired”, “voided”, “active”.

Request: Boarding Pass

{  
    "action":"updatepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID",
    "new-pass-id":"NEW UNIQUE CUSTOMER PASS ID",
    "priority":"PRIORITY",
    "pass-data":{  
        "barcode-value":"BARCODE VALUE",
        "boarding-Seat-class":"BOARDING SEAT CLASS/CABIN VALUE",
        "passenger-name":"PASSENGER NAME VALUE",
        "boarding-group":"BOARDING GROUP VALUE",
        "seat-number":"SEAT NUMBER VALUE",
        "confirmation-number":"RESERVATION CONFIRMATION CODE VALUE",
        "ticket-number":"RESERVATION ETICKET NUMBER VALUE ",
        "boarding-position":"BOARDING POSITION VALUE ",
        "sequence-number":"SEQUENCE NUMBER VALUE",
        "frequent-flyer-name-number ":"FREQUENT FLYER NUMBER VALUE",
        "additional-image":"ADDITIONAL IMAGE",
        "expiration-timestamp”:”EXPIRATION TIMESTAMP”,
        "pass-update-notification":"NOTIFICATION FOR PASS UPDATE",
        "relevant-locations":[        	// 10 fields            
            {  
                "key":"relevant-1",
                "latitude":"COORDINATES",
                "longitude":"COORDINATES",
                "relevant-text":"RELEVANCE TEXT"
            },
            {  
                "key":"relevant-2",
                "latitude":"COORDINATES",
                "longitude":"COORDINATES",
                "relevant-text":"RELEVANCE TEXT"
            },
            …
        ],
        "ibeacons":[            	            // 10 fields            
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"UUID VALUE",
                "major":"MAJOR VALUE",
                "minor":"MINOR VALUE",
                "relevant-text":"RELEVANCE TEXT"
            },
            {  
                "key":"ibeacon-2",
                "proximity-uuid":"UUID VALUE",
                "major":"MAJOR VALUE",
                "minor":"MINOR VALUE",
                "relevant-text":"RELEVANCE TEXT"
            },
            …
        ]
    }
}

Request Example: Boarding Pass

{  
    "action":"updatepassdata",
    "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "pass-id":"Boarding pass_1",
    "new-pass-id":" Boarding pass_2",
    "priority":"true",
    "pass-data":{  
        "barcode-value":"ASDE96325",
        "boarding-Seat-class":"F",
        "passenger-name":"Alex John",
        "boarding-group":"A",
        "seat-number":"69W",
        "confirmation-number":"96345",
        "ticket-number":"ET963256",
        "boarding-position":"Front",
        "sequence-number":"496325",
        "frequent-flyer-name-number ":"Boeing 4563",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
        "pass-update-notification":"Pass has been updated with new values",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.369169",
                "longitude":"-71.237371",
                "relevant-text":"Come grab some popcorn!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    }
}

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
    "tracking-id":"EDRYpq-GAxbE-EKE"
}

Response Failure Example:

{
    "status" : "Failure",
    "error-code" : "E809",
    "error-message" : "Internal Error. The pass was not updated.",
    "pass-id":"rockonrock2020"
}

4.4.GetPassData #

The get pass data API is used to retrieve data, such as the passenger name, for a specific boarding pass that has already been installed on a device. If you do not enter the correct ‘pass-id’ for the boarding pass that you are trying to retrieve, you will receive an error code. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request

{
    "action":"getpassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID"
}

Request Example

{  
   "action":"getpassdata",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-id":"rockonrock2020"
}

Response Success Example: Boarding pass

{  
    "status":"Success",
    "pass-id":"161783893285c2f4bcc68660",
    "pass-template-id":"511c4fb740f5a3a4c6bb7f1170d8b982b0ceb6b4",
    "pass-data":{  
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c2086da831b5.png",
        "carrier-airline-name":"BOARDING PASS 24-12",
        "footer-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c2086ecd0fe4.png",
        "strip-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c2086dea9343.png",
        "barcode-value":"ASDH678",
        "barcode-text":"CODE963",
        "origin-airport-code":"BOM",
        "origin-airport-name":"Mumbai",
        "destination-airport-code":"DEL",
        "destination-airport-name":"Delhi",
        "origin-terminal":"3",
        "origin-gate":"C",
        "boarding-seat-class ":"C",
        "boarding-date-time":"Dec 25, 2018, 12:32 PM",
        "flight-number":"AI1234",      
        "passenger-name":" SANTHOSH KUMAR",
        "boarding-group":"ABC",
        "seat-number":"WE-45",
        "confirmation-number":"2131333443",
        "scheduled-departure-time":"Dec 24, 2018, 12:33 PM",
        "ticket-number ":"533333",
        "scheduled-arrival-time ":"Dec 24, 2018, 12:34 PM",
        "arrival-terminal ":"T-9",
        "arrival-gate":"D",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
        "boarding-position":"Front",
        "sequence-number":"96325874",
        "boarding-door":"Back",
        "frequent-flyer-name-number":"Air asia 456987",
        "message1":"hiii",
        "message2":"hiii",
        "message3":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://www.skycore.com",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E808",
    "error-message":"The pass-id value is invalid.",
    "pass-id":"rockonrock2020"
}

4.5.GetPassTemplate #

The get Pass Template API is used to retrieve a specific Pass Template for a boarding pass. To retrieve the specific Pass Template for the boarding pass, you will need the correct ‘pass-template-id’ associated with the Pass Template.

Request:

{
    "action":"getpasstemplate",
    "api-key":"API KEY",
    "pass-template-id":"CARD TEMPLATE ID"
}

Request Example:

{  
   "action":"getpasstemplate",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41"
}

Response Success Example: Boarding pass

{  
    "status":"Success",
    "pass-template-id":"65b9b95d984458079df52029fcd20ec78329fada",
    "pass-template":{  
        "pass-name":"BOARDING PASS 24-12",
        "pass-type":"Boarding Pass",
        "organization":"JOY",
        "description":"Mobile Wallet Card by JOY",
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c2086da831b5.png",
        "carrier-airline-name":"BOARDING PASS 24-12",
        "footer-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c2086ecd0fe4.png",
        "strip-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c2086dea9343.png",
        "barcode-value":"ASDH678",
        "barcode-text":"CODE963",
        "origin-airport-code":"BOM",
        "origin-airport-name":"Mumbai",
        "destination-airport-code":"DEL",
        "destination-airport-name":"Delhi",
        "origin-terminal":"3",
        "origin-gate":"C",
        "boarding-seat-class ":"C",
        "boarding-date-time":"Dec 25, 2018, 12:32 PM",
        "flight-number":"AI 1234",
        "passenger-name":" SANTHOSH KUMAR",
        "boarding-group":"FIXED ",
        "seat-number":"WE-45",
        "confirmation-number":"2131333443",
        "scheduled-departure-time":"Dec 24, 2018, 12:33 PM",
        "ticket-number":"533333",
        "scheduled-arrival-time":"Dec 24, 2018, 12:34 PM",
        "arrival-terminal":"T-9",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
        "arrival-gate":"D",
        "boarding-position":"Front",
        "sequence-number":"96325874",
        "boarding-door":"Back",
        "frequent-flyer-name-number":"Air asia 456987",
         "message1":"hiii",
        "message2":"hiii",
        "message3":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://www.skycore.com",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E802",
    "error-message":"The pass-template-id value is invalid.",
    "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41"
}

4.8.CreatePassTemplate #

The CreatePassTemplate API is used to create a Pass Template for a boarding pass. The following table provides a detailed description of certain variables that can be used in each API call to create or update Pass Templates for boarding passes. The required params for a boarding pass Pass Template are: action, api-key, pass-template-type, pass-template-name, carrier-airline-name, background-color, origin-airport, destination-airport, passenger-name, boarding-position, boarding-group, seat-number, origin-terminal, origin-gate, flight-number-label, flight-number, boarding-time, confirmation-number, departure-time, barcode-type, text-color, description, relevance-date-time, relevance-date-timezone

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-typeMandatory. The expected value is “boarding pass”This defines the type of Pass that will be used for creating the Pass Template.
pass-template-nameMandatory. Alphanumeric (A-Za-z0-9)This is used as an internal name to identify the Pass Template.
carrier-airline-logoOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Apple Wallet Passes. Rectangular images are required
carrier-airline-logo-gpayOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Google passes. Circular images are preferred. Any image that is not circular will be masked into a circular image.
carrier-airline-nameMandatory, Alphanumeric (A-Za-z0-9)This is the airline name for the boarding pass. If “carrier-airline-logo” is set then this value won’t be displayed on Apple Wallet Passes.
carrier-alliance-logoOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is displayed as a small icon denoting the carrier alliance logo and is shown above the barcode on Apple Wallet Passes and below the barcode on Google Pay Passes.
background-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the background color of the Pass, for both Apple Wallet and Google Pay Passes.
origin-airport-labelOptional, Alphanumeric (A-Za-z0-9)The origin airport name.
origin-airportMandatory, Alphabetic (A-Za-z)The 3 letter IATA code for the origin airport.
destination-airport-labelOptional, Alphanumeric (A-Za-z0-9)The destination airport name.
destination-airportMandatory, Alphabetic (A-Za-z)The 3 letter IATA code for the destination airport.
passenger-nameMandatory, Alphanumeric (A-Za-z0-9)The passenger name value specified here will be used to generate static passes.
boarding-positionMandatory, Alphanumeric (A-Za-z0-9)The boarding position on the flight.
boarding-group-labelOptional, Alphabetic (A-Za-z). Accepted values: “Group” or “Zone”The boarding policy for the flight.
boarding-groupMandatory, Alphanumeric (A-Za-z0-9)The boarding group for the flight.
seat-numberMandatory, Alphanumeric (A-Za-z0-9)The seat number for the passenger boarding the flight.
origin-terminalMandatory, Alphanumeric (A-Za-z0-9)The departure terminal for the flight.
origin-gateMandatory, Alphanumeric (A-Za-z0-9)The departure gate for the flight.
flight-number-labelMandatory, Alphanumeric (A-Za-z0-9)The 2 letter IATA code for the arline
flight-numberMandatory, Alphanumeric (A-Za-z0-9)The 3 or 4 letter/number flight number.
boarding-timeMandatory, Alphanumeric (A-Za-z0-9).

mm/dd/yyyy hour:min AM/PM

The local date/time value for the flight boarding time.
boarding-seat-class-labelOptional, Alphabetic (A-Za-z). Accepted values: “Cabin” or “Class”The boarding seat class policy.
boarding-seat-classOptional, Alphanumeric (A-Za-z0-9)The boarding seat class for the flight.
sequence-numberOptional, Alphanumeric (A-Za-z0-9)The sequence number of the flight.
boarding-doorOptional, Alphabetic (A-Za-z). Accepted values: “Front” or “Back”The boarding door value.
confirmation-numberMandatory, Alphanumeric (A-Za-z0-9)The reservation confirmation code for the flight ticket. This value is used to generate a static pass.
ticket-numberOptional, Alphanumeric (A-Za-z0-9)The ticket number for the passenger. This value is used to generate a static pass.
frequent-flyer-name-numberOptional, Alphanumeric (A-Za-z0-9)The frequent flyer name and number for the passenger. This value is used to generate a static pass.
gate-closing-timeOptional, Alphanumeric (A-Za-z0-9).

mm/dd/yyyy hour:min AM/PM

The local date/time value for the gate closing time.
departure-timeMandatory, Alphanumeric (A-Za-z0-9).

mm/dd/yyyy hour:min AM/PM

The local date/time value for the flight departure time.
estimated-departure-timeOptional, Alphanumeric (A-Za-z0-9).

mm/dd/yyyy hour:min AM/PM

The local date/time value for the estimated flight departure time. If this is left empty, the scheduled time will be displayed on the Pass.
arrival-timeOptional, Alphanumeric (A-Za-z0-9).

mm/dd/yyyy hour:min AM/PM

The local date/time value for the flight arrival time.
estimated-arrival-timeOptional, Alphanumeric (A-Za-z0-9).

mm/dd/yyyy hour:min AM/PM

The local date/time value for the estimated flight arrival time. If this is left empty, the scheduled time will be displayed on the Pass.
arrival-terminalOptional, Alphanumeric (A-Za-z0-9)The arrival terminal name for the flight.
arrival-gateOptional, Alphanumeric (A-Za-z0-9)The arrival gate name for the flight.
message1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message1 field.
message1Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of apple pass, and below the pass for Google.
message2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message2 field.
message2Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of apple pass, and below the pass for Google.
text-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the text-module field.
text-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay.
info-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the info-module field.
info-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay. When the Pass Status is updated, this field value is updated with the appropriate message reflecting the status.
home-page-uri-labelOptional, Alphanumeric (A-Za-z0-9)The label for the home page URI.
home-page-uriOptional, Alphanumeric (A-Za-z0-9)This field is used to display any web page link which may contain any additional information about the Passes. The links are clickable on both Apple Wallet and Google Pay Passes and will open in a browser.
link1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link1 field.
link1-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link1 field value.
link1Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link1-type field, this field can have an email id, a geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link1-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
link2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link2 field.
link2-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link2 field value.
link2Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link2-type field, this field can have an email id, geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link2-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
text-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the text color for Apple Wallet Passes only. Google controls the color for the values displayed on the Google Pay Pass, which is either black or white, based on the background color of the Pass.
descriptionMandatory, Alphanumeric (A-Za-z0-9)This field provides a description for the pass, which is used as a voice-over to describe Passes for blind or low vision users for Apple Wallet Passes only.
linked-appsOptional, Alphanumeric (A-Za-z0-9)This is a comma-separated list of iTunes apps, which are displayed on the back of the apple passes.
relevance-date-timeMandatory, Alphanumeric (A-Za-z0-9).

mm/dd/yyyy hour:min AM/PM

The relevance date/time for the Pass. This is set as 3 hours prior to the boarding time by Google Pay. To make this consistent for Apple Wallet Passes, you should set this to 3 hours as well.
relevance-date-timezoneMandatory, Alphanumeric (A-Za-z0-9)The timezone name. E.g. America/New_York. Use the long names listed under section 9.1.
ibeaconsOptional, Alphanumeric (A-Za-z0-9).Format:
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”
ibeacons are only applicable for Apple Wallet Passes. They are used to display messages on the lock screens of IOS mobile devices based on the values set.
additional-imageOptional, Alphanumeric (A-Za-z0-9). Web URLThis image is displayed only on Google Pay Passes, in the area below the pass in between the additional details.
additional-image-textOptional, Alphanumeric (A-Za-z0-9)This value provides information that is linked to the additional image.
strip-imageOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThe strip image is displayed below the airline logo and name only on Google Pay Passes, as a rectangular image throughout the width of the Pass.
expiry-dateOptional, Alphanumeric (A-Za-z0-9)

Format:
mm/dd/yyyy hour:min AM/PM

The date/time value for the Pass expiration, if not set specifically for individual Passes.
expiration-timezoneOptional, Alphanumeric (A-Za-z0-9)The timezone name. E.g. America/New_York. Use the long names listed in section 9.1.
barcode-typeMandatory, Alphabetic (A-Za-z). Accepted values: “QRCODE”, “AZTEC”, “PDF417”, or “CODE128”The barcode type for all Passes installed using this Pass Template.
barcode-valueOptional, Alphanumeric (A-Za-z0-9)This is the default barcode value, which will be used for Passes if no value is provided.
autogenerate-barcode-valuesOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”.This field defines if the barcode values will be generated automatically for Passes.
autogenerate-barcode-value-typeOptional, Alphabetic (A-Za-z). Accepted values: “Numeric”, “Alphabet”, or “Alphanumeric”.This field defines the type of barcode values that will be auto-generated for Passes if the autogenerate-barcode-values is set to “True”.
autogenerate-barcode-value-lengthOptional, Numeric (0-9). Accepted values: 10 – 100This field defines the length of the auto-generated barcode value for Passes if the autogenerate-barcode-values is set to “True”.
relevant-locationsOptional, Alphanumeric (a-zA-Z0-9)

Format:
“latitude”:”COORDINATES”, “longitude”:”COORDINATES”, “relevant-text”:”RELEVANCE TEXT”

These fields are used to display text information for Passes, when the device that the Pass is installed on is detected at the relevant location. The locations are defined by the latitude/longitude co-ordinates. The relevant-text is the message displayed for Apple Wallet Passes. For Google Pay Passes, a predefined message is displayed.
disable-pass-sharingOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”This field defines if Passes installed for this Pass Template can be installed on multiple devices or not.
never-installed-ttlOptional, Numeric (0-9)This field sets the number of hours post which an uninstalled pass will be archived.
never-installed-archive-timestampOptional, Numeric (0-9)This field, if set, defines the timestamp post which an uninstalled timestamp will be archived. This value will be considered if never-installed-ttl is also set.
expired-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which an expired pass will be archived.
redeemed-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a redeemed pass will be archived.
voided-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a voided pass will be archived.

Request: Boarding Pass

{
   "action" : "createPassTemplate",
   "api-key" : "API KEY",
   "pass-template-type" : "boarding-pass"
   "pass-template-name" : “Pass Template Name",
   “appearance” : {
	“carrier-airline-logo” : “IMAGE PATH”,
	“carrier-airline-logo-gpay” : “IMAGE PATH”,
	“carrier-airline-name” : “AIRLINE NAME”,
	“carrier-alliance-logo” : “IMAGE PATH”,
	“background-color” : “COLOR HASH CODE”
   },
   “universal-fields” : {
	"origin-airport-label" : “ORIGIN AIRPORT NAME”,
	“origin-airport” : “3 LETTER IATA CODE OF ORIGIN AIRPORT”,
	"destination-airport-label" : “DESTINATION AIRPORT NAME”,
	“destination-airport” : “3 LETTER IATA CODE OF DESTINATION AIRPORT”,
	“passenger-name” : “PASSENGER NAME”,
	“boarding-position” : “BOARDING POSITION”,
	"boarding-group-label" : “BOARDING POLICY”,
	“boarding-group” : “BOARDING GROUP”,
	“seat-number” : “SEAT NUMBER”,
	“origin-terminal” : “ORIGINAL TERMINAL”,
	“origin-gate” : “ORIGIN GATE”,
	"flight-number-label" : “3 LETTER IATA CODE OF AIRLINE”,
	“flight-number” : “3 or 4 DIGIT LETTERS FLIGHT NUMBER”,
	“boarding-time” : “LOCAL BOARDING TIME FROM ORIGIN”,
	"boarding-seat-class-label" : “BOARDING SEAT CLASS POLICY”,
	“boarding-seat-class” : “BOARDING SEAT CLASS”,
	"sequence-number" : "SEQUENCE NUMBER",
	“boarding-door” : “BOARDING DOOR”,
	“confirmation-number” : “RESERVATION CONFIRMATION CODE”,
	“ticket-number” : “ETICKET NUMBER”,
	“frequent-flyer-name-number” : “FREQUENT FLYER NAME AND NUMBER”,
	“gate-closing-time” : “LOCAL GATE CLOSING DATE-TIME”,
	“departure-time” : “SCHEDULED DEPARTURE DATE-TIME”,
	“estimated-departure-time” : “ESTIMATED DEPARTURE DATE-TIME”,
	“arrival-time” : “SCHEDULED ARRIVAL DATE-TIME”,
	“estimated-arrival-time” : “ESTIMATED ARRIVAL DATE-TIME”,
	“arrival-terminal” : “ARRIVAL TERMINAL”,
	“arrival-gate” : “ARRIVAL GATE”,	
	"message1-label" : "MESSAGE 1 LABEL",
            "message1": "MESSAGE 1 TEXT",	    
            "message2-label" : "MESSAGE 2 LABEL",
            "message2": "MESSAGE 2 TEXT",
            "text-module-label" : "TEXT MODULE LABEL",
            "text-module": "TEXT MODULE VALUE",
            "info-module-label" : "INFO MODULE LABEL",
            "info-module": "INFO MODULE VALUE",
        	"home-page-uri-label" : "TEXT FOR HOME PAGE URI",
        	"home-page-uri": "HOME PAGE LINK",
       	 "link1-label" : "TEXT FOR ADDITIONAL LINK 1",
        	 "link1": "ADDITIONAL LINK 1",
	“link1-type” : “TYPE OF LINK”,
       	 "link2-label" : "TEXT FOR ADDITIONAL LINK 2",
       	 "link2": "ADDITIONAL LINK 2",
	“link2-type” : “TYPE OF LINK”,
   “apple-wallet-fields” : {
	“text-color” : “COLOR HASH CODE”,
	“description” : “Pass description used for VoiceOver Information”,
	“linked-apps” : “COMMA SEPARATED LIST OF ITUNES STORE ID”,
	“relevance-date-time” : “RELEVANT DATE-TIME FOR THE PASS”,
	“relevance-date-timezone” : “TIMEZONE NAME FOR RELEVANCE DATE-TIME FOR THE PASS”,
	"ibeacons" : [   // 10 fields        
		{  
		"proximity-uuid":"UUID VALUE",
		 "major":"MAJOR VALUE",
		 "minor":"MINOR VALUE",
		 "relevant-text":"RELEVANCE TEXT”
 		},
		{  
		"proximity-uuid":"UUID VALUE",
		 "major":"MAJOR VALUE",
		 "minor":"MINOR VALUE",
		 "relevant-text":"RELEVANCE TEXT”
         	},
         	…
     	 ]
   },
   “gpay-fields” : {
	"additional-image": "ADDITIONAL IMAGE URL",
	"additional-image-text": "Image Description",
	“strip-image” : “IMAGE PATH”
   },
   “expiration-fields” : {
	"expiry-date": "EXPIRATION TIMESTAMP",
        "expiry-timezone": "VALID TIMEZONE NAME" 
   },
   “barcode-fields” : {
	“barcode-type” : “BARCODE TYPE”,
        "barcode-value" : "DEFAULT BARCODE VALUE",    
	"autogenerate-barcode-values" : true, // boolean
	“autogenerate-barcode-value-type” : “VALUE TYPE FOR AUTO GENERATED BARCODES”, //available options - Numeric, Alphabet, Alphanumeric
	“autogenerate-barcode-value-length” : “LENGTH OF AUTO GENERATED BARCODE VALUES”
   },
   "relevant-locations":[  // 10 fields         
	{ 
    	"latitude":"COORDINATES",
    	"longitude":"COORDINATES",
    	"relevant-text":"RELEVANCE TEXT”
	},
        { 
       "latitude":"COORDINATES",
        "longitude":"COORDINATES",
        "relevant-text":"RELEVANCE TEXT”
       	},
   ],
   "disable-pass-sharing":"TRUE OR FALSE",
   "pass-data-archive-settings": {
	"never-installed-ttl":"NUMBER OF HOURS POST WHICH PASS RECORDS WILL BE ARCHIVED IF NOT INSTALLED", //either this or below option can bet set
	"never-installed-archive-timestamp": "TIMESTAMP WHEN NON INSTALLED PASS RECORDS ARE TO BE ARCHIVED",
	"expired-pass-ttl": "NUMBER OF HOURS POST WHICH EXPIRED PASSES WILL BE ARCHIVED",
	"redeemed-pass-ttl": "NUMBER OF HOURS POST WHICH REDEEMED PASSES WILL BE ARCHIVED",
	"voided-pass-ttl": "NUMBER OF HOURS POST WHICH VOIDED PASSES WILL BE ARCHIVED"
   }
}

Request Example: Boarding Pass

{ 
    "action":"createPassTemplate",
    "api-key":"UX4G4ijIIkutwseexyAY1iwA3y8cdFmEj",
    "pass-template-type":"boarding-pass",
    "pass-template-name":"boarding pass-1",
    "appearance":{ 
        "carrier-airline-logo":"https://www.cryptoninjas.net/wp-content/uploads/2017/07/dash-apple-768x432.png",
        "carrier-airline-logo-gpay":"https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
        "carrier-airline-name":"Skycore airlines",
        "carrier-alliance-logo":"https://www.freepngimg.com/thumb/plane/4-plane-png-image.png",
        "background-color":"#349e6d"
    },
    "universal-fields":{ 
        "origin-airport-label":"BOSTON",
        "origin-airport":"BOS",
        "destination-airport-label":"Los Angeles",
        "destination-airport":"LAX",
        "passenger-name":"Joy",
        "boarding-position":"12",
        "boarding-group-label":"zone",
        "boarding-group":"5",
        "seat-number":"6325W",
        "origin-terminal":"T-9",
        "origin-gate":"G-C",
        "flight-number-label":"A1",
        "flight-number":"3213",
        "boarding-time":"1/1/2020 11:01 AM",
        "boarding-seat-class-label":"cabin",
        "boarding-seat-class":"cabin-9",
        "sequence-number":"213 12",
        "boarding-door":"front",
        "confirmation-number":"231223213",
        "ticket-number":"E-9852",
        "frequent-flyer-name-number":"F12344",
        "gate-closing-time":"12/30/2019 11:16 AM",
        "departure-time":"12/30/2019 11:16 AM",
        "estimated-departure-time":"12/30/2019 11:16 AM",
        "arrival-time":"12/30/2019 11:16 AM",
        "estimated-arrival-time":"12/30/2019 11:16 AM",
        "arrival-terminal":"ARRIVAL TERMINAL",
        "arrival-gate":"AG-6",
        "message1-label":"DEPATURE TIME",
        "message1":"Sun, Feb 10 at 8:00 PM",
        "message2-label":"ARRIVAL TIME",
        "message2":"Mon, Feb 10 at 8:00 PM",
        "text-module-label":"RUNTIME",
        "text-module":"2hrs 13min",
        "info-module-label":"SEATS",
        "info-module":"H1",
        "home-page-uri-label":"Website",
        "home-page-uri":"https://www.skycore.com/",
        "link1-label":"Start point",
        "link1":"32.05,56.36",
        "link1-type":"geo-location",
        "link2-label":"destination",
        "link2":"https://www.google.com/maps/@23.0028669,72.5157813,17z",
        "link2-type":"map-link"
    },
    "apple-wallet-fields":{ 
        "text-color":"#ffffff",
        "description":"Mobile Wallet Pass by SKYCORE",
        "linked-apps":"2123123",
        "relevance-date-time":"12/30/2019 11:00 AM",
        "relevance-date-timezone":"Asia/Kolkata",
        "ibeacons":[ 
            { 
                "proximity-uuid":"123213",
                "major":"123213",
                "minor":"21321",
                "relevant-text":"Come grab some popcorn!"
            },
            { 
                "proximity-uuid":"123123",
                "major":"12312",
                "minor":"12321",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    },
    "gpay-fields":{ 
        "additional-image":"https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
        "additional-image-text":"Image Description",
        "strip-image":"https://www.freepngimg.com/thumb/taj_mahal/1-2-taj-mahal-png-clipart.png"
    },
    "expiration-fields":{ 
        "expiry-date":"12/30/2019 11:16 AM",
        "expiry-timezone":"Asia/Kolkata"
    },
    "barcode-fields":{ 
        "barcode-type":"AZTEC",
        "barcode-value":"12025511",
        "autogenerate-barcode-values":true,
        "autogenerate-barcode-value-type":"Alphanumeric",
        "autogenerate-barcode-value-length":"15"
    },
    "relevant-locations":[ 
        { 
            "latitude":"119.26",
            "longitude":"72.96",
            "relevant-text":"Come grab some popcorn!"
        },
        { 
            "latitude":"18.36",
            "longitude":"75.36",
            "relevant-text":"Come grab some popcorn!"
        }
    ],
    "disable-pass-sharing":false,
    "pass-data-archive-settings":{ 
        "never-installed-ttl":"1",
        "never-installed-archive-timestamp":"1/1/2020 11:19 AM",
        "expired-pass-ttl":"1",
        "redeemed-pass-ttl":"1",
        "voided-pass-ttl":"1"
    }
}

Response Success Example:

{ 
    "status":"Success",
    "pass-template-type":"boarding-pass",
    "pass-template-name":"boarding pass-1",
    "pass-template-id":"02f0b481234c7265cf656571af45d13120ef4868"
}

Response Failure Example:

{ 
    "status":"Failure",
    "error-code":"E922",
    "error-message":"The relevant-1 latitude value is invalid."
}

4.9.UpdatePassTemplate #

The UpdatePassTemplate API is used to update an existing Pass Template for a boarding pass.

Request: Boarding Pass

{
   "action" : "updatePassTemplate",
   "api-key" : "API KEY",
   "pass-template-type" : "boarding-pass"
   "pass-template-name" : “Pass Template Name",
   “appearance” : {
	“carrier-airline-logo” : “IMAGE PATH”,
	“carrier-airline-logo-gpay” : “IMAGE PATH”,
	“carrier-airline-name” : “AIRLINE NAME”,
	“carrier-alliance-logo” : “IMAGE PATH”,
	“background-color” : “COLOR HASH CODE”
   },
   “universal-fields” : {
	"origin-airport-label" : “ORIGIN AIRPORT NAME”,
	“origin-airport” : “3 LETTER IATA CODE OF ORIGIN AIRPORT”,
	"destination-airport-label" : “DESTINATION AIRPORT NAME”,
	“destination-airport” : “3 LETTER IATA CODE OF DESTINATION AIRPORT”,
	“passenger-name” : “PASSENGER NAME”,
	“boarding-position” : “BOARDING POSITION”,
	"boarding-group-label" : “BOARDING POLICY”,
	“boarding-group” : “BOARDING GROUP”,
	“seat-number” : “SEAT NUMBER”,
	“origin-terminal” : “ORIGINAL TERMINAL”,
	“origin-gate” : “ORIGIN GATE”,
	"flight-number-label" : “3 LETTER IATA CODE OF AIRLINE”,
	“flight-number” : “3 or 4 DIGIT LETTERS FLIGHT NUMBER”,
	“boarding-time” : “LOCAL BOARDING TIME FROM ORIGIN”,
	"boarding-seat-class-label" : “BOARDING SEAT CLASS POLICY”,
	“boarding-seat-class” : “BOARDING SEAT CLASS”,
	"sequence-number" : "SEQUENCE NUMBER",
	“boarding-door” : “BOARDING DOOR”,
	“confirmation-number” : “RESERVATION CONFIRMATION CODE”,
	“ticket-number” : “ETICKET NUMBER”,
	“frequent-flyer-name-number” : “FREQUENT FLYER NAME AND NUMBER”,
	“gate-closing-time” : “LOCAL GATE CLOSING DATE-TIME”,
	“departure-time” : “SCHEDULED DEPARTURE DATE-TIME”,
	“estimated-departure-time” : “ESTIMATED DEPARTURE DATE-TIME”,
	“arrival-time” : “SCHEDULED ARRIVAL DATE-TIME”,
	“estimated-arrival-time” : “ESTIMATED ARRIVAL DATE-TIME”,
	“arrival-terminal” : “ARRIVAL TERMINAL”,
	“arrival-gate” : “ARRIVAL GATE”,	
	"message1-label" : "MESSAGE 1 LABEL",
            "message1": "MESSAGE 1 TEXT",	    
            "message2-label" : "MESSAGE 2 LABEL",
            "message2": "MESSAGE 2 TEXT",
            "text-module-label" : "TEXT MODULE LABEL",
            "text-module": "TEXT MODULE VALUE",
            "info-module-label" : "INFO MODULE LABEL",
            "info-module": "INFO MODULE VALUE",
        	"home-page-uri-label" : "TEXT FOR HOME PAGE URI",
        	"home-page-uri": "HOME PAGE LINK",
       	 "link1-label" : "TEXT FOR ADDITIONAL LINK 1",
        	 "link1": "ADDITIONAL LINK 1",
	“link1-type” : “TYPE OF LINK”,
       	 "link2-label" : "TEXT FOR ADDITIONAL LINK 2",
       	 "link2": "ADDITIONAL LINK 2",
	“link2-type” : “TYPE OF LINK”,
   “apple-wallet-fields” : {
	“text-color” : “COLOR HASH CODE”,
	“description” : “Pass description used for VoiceOver Information”,
	“linked-apps” : “COMMA SEPARATED LIST OF ITUNES STORE ID”,
	“relevance-date-time” : “RELEVANT DATE-TIME FOR THE PASS”,
	“relevance-date-timezone” : “TIMEZONE NAME FOR RELEVANCE DATE-TIME FOR THE PASS”,
	"ibeacons" : [   // 10 fields        
		{  
		"proximity-uuid":"UUID VALUE",
		 "major":"MAJOR VALUE",
		 "minor":"MINOR VALUE",
		 "relevant-text":"RELEVANCE TEXT”
 		},
		{  
		"proximity-uuid":"UUID VALUE",
		 "major":"MAJOR VALUE",
		 "minor":"MINOR VALUE",
		 "relevant-text":"RELEVANCE TEXT”
         	},
         	…
     	 ]
   },
   “gpay-fields” : {
	"additional-image": "ADDITIONAL IMAGE URL",
	"additional-image-text": "Image Description",
	“strip-image” : “IMAGE PATH”
   },
   “expiration-fields” : {
	"expiry-date": "EXPIRATION TIMESTAMP",
        "expiry-timezone": "VALID TIMEZONE NAME" 
   },
   “barcode-fields” : {
	“barcode-type” : “BARCODE TYPE”,
        "barcode-value" : "DEFAULT BARCODE VALUE",    
	"autogenerate-barcode-values" : true, // boolean
	“autogenerate-barcode-value-type” : “VALUE TYPE FOR AUTO GENERATED BARCODES”, //available options - Numeric, Alphabet, Alphanumeric
	“autogenerate-barcode-value-length” : “LENGTH OF AUTO GENERATED BARCODE VALUES”
   },
   "relevant-locations":[  // 10 fields         
	{ 
    	"latitude":"COORDINATES",
    	"longitude":"COORDINATES",
    	"relevant-text":"RELEVANCE TEXT”
	},
        { 
       "latitude":"COORDINATES",
        "longitude":"COORDINATES",
        "relevant-text":"RELEVANCE TEXT”
       	},
   ],
   "disable-pass-sharing":"TRUE OR FALSE",
   "pass-data-archive-settings": {
	"never-installed-ttl":"NUMBER OF HOURS POST WHICH PASS RECORDS WILL BE ARCHIVED IF NOT INSTALLED", //either this or below option can bet set
	"never-installed-archive-timestamp": "TIMESTAMP WHEN NON INSTALLED PASS RECORDS ARE TO BE ARCHIVED",
	"expired-pass-ttl": "NUMBER OF HOURS POST WHICH EXPIRED PASSES WILL BE ARCHIVED",
	"redeemed-pass-ttl": "NUMBER OF HOURS POST WHICH REDEEMED PASSES WILL BE ARCHIVED",
	"voided-pass-ttl": "NUMBER OF HOURS POST WHICH VOIDED PASSES WILL BE ARCHIVED"
   }
}

Request Example: Boarding Pass

{ 
    "action":"updatePassTemplate",
    "api-key":"UX4G4ijIIkutwseexyAY1iwA3y8cdFmEj",
    "pass-template-type":"boarding-pass",
    "pass-template-name":"boarding pass-1",
    "appearance":{ 
        "carrier-airline-logo":"https://www.cryptoninjas.net/wp-content/uploads/2017/07/dash-apple-768x432.png",
        "carrier-airline-logo-gpay":"https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
        "carrier-airline-name":"Skycore airlines",
        "carrier-alliance-logo":"https://www.freepngimg.com/thumb/plane/4-plane-png-image.png",
        "background-color":"#349e6d"
    },
    "universal-fields":{ 
        "origin-airport-label":"BOSTON",
        "origin-airport":"BOS",
        "destination-airport-label":"Los Angeles",
        "destination-airport":"LAX",
        "passenger-name":"Joy",
        "boarding-position":"12",
        "boarding-group-label":"zone",
        "boarding-group":"5",
        "seat-number":"6325W",
        "origin-terminal":"T-9",
        "origin-gate":"G-C",
        "flight-number-label":"A1",
        "flight-number":"3213",
        "boarding-time":"1/1/2020 11:01 AM",
        "boarding-seat-class-label":"cabin",
        "boarding-seat-class":"cabin-9",
        "sequence-number":"213 12",
        "boarding-door":"front",
        "confirmation-number":"231223213",
        "ticket-number":"E-9852",
        "frequent-flyer-name-number":"F12344",
        "gate-closing-time":"12/30/2019 11:16 AM",
        "departure-time":"12/30/2019 11:16 AM",
        "estimated-departure-time":"12/30/2019 11:16 AM",
        "arrival-time":"12/30/2019 11:16 AM",
        "estimated-arrival-time":"12/30/2019 11:16 AM",
        "arrival-terminal":"ARRIVAL TERMINAL",
        "arrival-gate":"AG-6",
        "message1-label":"DEPATURE TIME",
        "message1":"Sun, Feb 10 at 8:00 PM",
        "message2-label":"ARRIVAL TIME",
        "message2":"Mon, Feb 10 at 8:00 PM",
        "text-module-label":"RUNTIME",
        "text-module":"2hrs 13min",
        "info-module-label":"SEATS",
        "info-module":"H1",
        "home-page-uri-label":"Website",
        "home-page-uri":"https://www.skycore.com/",
        "link1-label":"Start point",
        "link1":"32.05,56.36",
        "link1-type":"geo-location",
        "link2-label":"destination",
        "link2":"https://www.google.com/maps/@23.0028669,72.5157813,17z",
        "link2-type":"map-link"
    },
    "apple-wallet-fields":{ 
        "text-color":"#ffffff",
        "description":"Mobile Wallet Pass by SKYCORE",
        "linked-apps":"2123123",
        "relevance-date-time":"12/30/2019 11:00 AM",
        "relevance-date-timezone":"Asia/Kolkata",
        "ibeacons":[ 
            { 
                "proximity-uuid":"123213",
                "major":"123213",
                "minor":"21321",
                "relevant-text":"Come grab some popcorn!"
            },
            { 
                "proximity-uuid":"123123",
                "major":"12312",
                "minor":"12321",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    },
    "gpay-fields":{ 
        "additional-image":"https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
        "additional-image-text":"Image Description",
        "strip-image":"https://www.freepngimg.com/thumb/taj_mahal/1-2-taj-mahal-png-clipart.png"
    },
    "expiration-fields":{ 
        "expiry-date":"12/30/2019 11:16 AM",
        "expiry-timezone":"Asia/Kolkata"
    },
    "barcode-fields":{ 
        "barcode-type":"AZTEC",
        "barcode-value":"12025511",
        "autogenerate-barcode-values":true,
        "autogenerate-barcode-value-type":"Alphanumeric",
        "autogenerate-barcode-value-length":"15"
    },
    "relevant-locations":[ 
        { 
            "latitude":"119.26",
            "longitude":"72.96",
            "relevant-text":"Come grab some popcorn!"
        },
        { 
            "latitude":"18.36",
            "longitude":"75.36",
            "relevant-text":"Come grab some popcorn!"
        }
    ],
    "disable-pass-sharing":false,
    "pass-data-archive-settings":{ 
        "never-installed-ttl":"1",
        "never-installed-archive-timestamp":"1/1/2020 11:19 AM",
        "expired-pass-ttl":"1",
        "redeemed-pass-ttl":"1",
        "voided-pass-ttl":"1"
    }
}

Response Success Example:

{ 
    "status":"Success",
    "pass-template-type":"boarding-pass",
    "pass-template-name":"boarding pass-1",
    "pass-template-id":"02f0b481234c7265cf656571af45d13120ef4868"
}

Response Failure Example:

{ 
    "status":"Failure",
    "error-code":"E922",
    "error-message":"The relevant-1 latitude value is invalid."
}

5.Event Ticket #

5.1.Introduction to Event Tickets #

The following image shows where the fields used in the API calls will appear on event tickets for both Apple Wallet and Google Pay. Any fields shown on event tickets but not linked to the key in the image are required in the Pass Template Builder, therefore, they will always be shown on the pass. In this case, those fields are the Event Name, Venue Name, Event Start Time, and Venue Address.

The following table provides a detailed description of certain variables that can be used in each API call for event tickets. The following text fields from the Pass Template Builder are not dynamic, therefore, you will not see these fields in the API calls for event tickets: Event Name, Event Start/End Time, Venue Address, Doors Open Date/Time, Terms, Message 1, Message 2, Text Module, Info Module, Home Page URI, Link 1 and Link 2. The format column explains whether the variable is mandatory or optional. The format column explains whether the variable is mandatory or optional. Be advised that you may have set custom labels in the Pass Template Builder for ‘event-gate’, ‘seat-section’, ‘seat-row’, and ‘seat-number’.

Params/VariablesFormatDescription
actionMandatory, Alphabetic

(a-zA-Z)

This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

This is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-idMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

The unique Pass Template ID used to reference a particular Pass Template.
pass-idMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

The identifier from your system to identify the pass or pass data uniquely.
reference-dataOptional, Alphanumeric

(a-zA-Z0-9)

This is used for adding additional information related to the pass.
barcode-valueOptional, Alphanumeric

(a-zA-Z0-9)

The unique barcode value associated with a specific pass-id.
expiration-timestampOptional.

“expiration-timestamp” should be in UTC.

Example: 2013-02-19T15:54:50Z

The timezone offset is ignored and always considers the timestamp in UTC.
expiration-timezoneOptional.

“expiration-timezone” should be in long name format.

Example: America/New_York

Use the long names listed in section 9.1 for your reference.
event-custom-value-1Optional, Alphanumeric

(a-zA-Z0-9)

The value for custom label 1 that was set in the Pass Template Builder.
event-custom-value-2Optional, Alphanumeric

(a-zA-Z0-9)

The value for custom label 2 that was set in the Pass Template Builder.
event-custom-value-3Optional, Alphanumeric

(a-zA-Z0-9)

The value for custom label 3 that was set in the Pass Template Builder.
event-custom-value-4Optional, Alphanumeric

(a-zA-Z0-9)

The value for custom label 4 that was set in the Pass Template Builder.
ticket-holderOptional, Alphanumeric

(a-zA-Z0-9)

The name of the ticket holder for the event.
ticket-typeOptional, Alphanumeric

(a-zA-Z0-9)

The ticket type, such as ‘Adult’, ‘Child’, or ‘E-ticket’.
ticket-numberOptional, Alphanumeric

(a-zA-Z0-9)

The ticket number for the ticket holder.
confirmation-numberOptional, Alphanumeric

(a-zA-Z0-9)

The ticket holder’s purchase confirmation number.
face-valueOptional, Numeric

(0-9)

The face value of the ticket for the event.
relevant-locations (1-10)

(relevant-1, relevant-2, etc..)

Optional, Alphanumeric

(a-zA-Z0-9)

Format:
“key”:”relevant-1″,
“latitude”:”COORDINATES”,
“longitude”:”COORDINATES”,
“relevant-text”:”RELEVANCE TEXT”

Custom relevant text is only applicable for Apple Wallet Passes. If you set a relevant location, Android devices will display default text. When adding more than one relevant location, be sure to change the “key” to relevant-2, relevant-3, etc..
ibeacons (1-10)

(ibeacon-1, ibeacon-2, etc..)

Optional, Alphanumeric

(a-zA-Z0-9)

Format:
“key”:”ibeacon-1″,
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”

ibeacons are only applicable for Apple Wallet Passes. When adding more than one ibeacon, be sure to change the “key” to ibeacon-2, ibeacon-3, etc..

5.2.GeneratePass #

The generate pass API will generate a unique installation link for an event ticket. If you try to call this API again without changing the ‘pass-id’ field, it will return an error message and fail to generate the installation link for the event ticket. To call this API again successfully, you will need to use a different ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request: Event Ticket

{  
   "action":"generatepass",
   "api-key":"API KEY",
   "pass-template-id":"PASS TEMPLATE ID",
   "pass-id":"UNIQUE CUSTOMER PASS ID",
   "reference-data": {
      "Reference": "reference data of the customer",
		     },
   "pass-data":{  
      "barcode-value":"BARCODE VALUE",
      "event-custom-value-1":" EVENT GATE VALUE",
      "event-custom-value-2":" SEAT SECTION VALUE",
      "event-custom-value-3":"SEAT ROW VALUE",
      "event-custom-value-4":"SEAT VALUE",
      "ticket-holder":" TICKET HOLDER VALUE",
      "ticket-type":"TICKET TYPE VALUE",
      "additional-image":"ADDITIONAL IMAGE",
      "ticket-number":"TICKET NUMBER VALUE",
      "confirmation-number":"RESERVATION CONFIRMATION CODE VALUE",
      "face-value":"TICKET VALUE",
      "additional-image":"ADDITIONAL IMAGE",
      "expiration-timestamp”:”EXPIRATION TIMESTAMP”,
      "expiration-timezone":"TIMEZONE",
      "relevant-locations":[        	// 10 fields         
         { 
            "key":"relevant-1",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         { 
            "key":"relevant-2",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         …
      ],
      "ibeacons":[                    	 // 10 fields         
         { 
            "key":"ibeacon-1",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
         { 
            "key":"ibeacon-2",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
        …
      ]
   }
}

 

Request Example: Event Ticket

{  
   "action":"generatepass",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj",
   "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41",
   "pass-id":"Event Ticket_1",
   "reference-data": {
      "email": "joy@gmail.com",
      "phone": "61855742",
      "transaction-id": "96"
		     },
   "pass-data":{  
      "barcode-value":"ASDE96325",
      "event-custom-value-1":"5",
      "event-custom-value-2":"4",
      "event-custom-value-3":"A",
      "event-custom-value-4":"W69",
      "ticket-holder":"Pilip Das",
      "ticket-type":"Electronic",
      "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
      "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
      "expiration-timezone":"Australia/Sydney",
      "ticket-number":"496325",
      "confirmation-number":"896",
      "face-value":"86",
      "relevant-locations":[  
         { 
            "key":"relevant-1",
            "latitude":"42.369169",
            "longitude":"-71.237371",
            "relevant-text":"Come grab some popcorn!"
         }
      ],
      "ibeacons":[  
         { 
            "key":"ibeacon-1",
            "proximity-uuid":"111111",
            "major":"222222",
            "minor":"3333333",
            "relevant-text":"Come grab some popcorn!"
         }
      ]
   }
}

 

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
   "pass-install-url":"https://d2c.skycore.com/wallet/dc/eazt0sq3r4",
   "tracking-id":"EDRZKf-JTDiY-EJZ"
}

Response Failure Example:

{
    "status":"Failure",
    "error-code":"E830",
    "error-message":"Internal Error. The pass was not generated.",
    "pass-id":"rockonrock2020"
}

5.3.UpdatePassData #

The update pass data API is used to update pass data for an event ticket that has already been installed on a device. If you do not add a new “pass-id’ for the event ticket, you will receive an error message and the event ticket will not be updated until you add a new ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template. The field for ‘pass-status’ will accept the following values: “redeemed”, “expired”, “voided”, “active”.

Request: Event Ticket

{  
    "action":"updatepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID",
    "new-pass-id ":"NEW UNIQUE CUSTOMER PASS ID",
    "priority":"PRIORITY",
    "pass-data":{  
        "barcode-value":"BARCODE VALUE",
        "event-custom-value-1":" EVENT GATE VALUE",
        "event-custom-value-2":" SEAT SECTION VALUE",
        "event-custom-value-3":"SEAT ROW VALUE",
        "event-custom-value-4":"SEAT VALUE",
        "ticket-holder":" TICKET HOLDER VALUE",
        "ticket-type":"TICKET TYPE VALUE",
        "additional-image":"ADDITIONAL IMAGE",
        "ticket-number":"TICKET NUMBER VALUE",
        "confirmation-number":"RESERVATION CONFIRMATION CODE VALUE",
        "face-value":"TICKET VALUE", 
        "expiration-timestamp”:”EXPIRATION TIMESTAMP”,
        "pass-update-notification":"NOTIFICATION FOR PASS UPDATE",
        "relevant-locations":[        	// 10 fields            
            {  
                "key":"relevant-1",
                "latitude":"COORDINATES",
                "longitude":"COORDINATES",
                "relevant-text":"RELEVANCE TEXT"
            },
            {  
                "key":"relevant-2",
                "latitude":"COORDINATES",
                "longitude":"COORDINATES",
                "relevant-text":"RELEVANCE TEXT"
            },
            …
        ],
  	   "ibeacons":[            	            // 10 fields            
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"UUID VALUE",
                "major":"MAJOR VALUE",
                "minor":"MINOR VALUE",
                "relevant-text":"RELEVANCE TEXT"
            },
            {  
                "key":"ibeacon-2",
                "proximity-uuid":"UUID VALUE",
                "major":"MAJOR VALUE",
                "minor":"MINOR VALUE",
                "relevant-text":"RELEVANCE TEXT"
            },
            …
        ]
    }
}

Request Example: Event Ticket

{  
    "action":"updatepassdata",
    "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "pass-id":"Event ticket_1",
    "new-pass-id":" Event ticket _2",
    "priority":"true",
    "pass-data":{  
        "barcode-value":"ASDE96325",
        "event-custom-value-1":"5",
        "event-custom-value-2":"4",
        "event-custom-value-3":"A",
        "event-custom-value-4":"W69",
        "ticket-holder":"Pilip Das",
        "ticket-type":"Electronic",
       "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "ticket-number":"496325",
        "confirmation-number":"896",
        "face-value":"86",
        "pass-status": "active"
        "pass-update-notification":"Pass has been updated with new values",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.369169",
                "longitude":"-71.237371",
                "relevant-text":"Come grab some popcorn!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    }
}

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
    "tracking-id":"EDRYpq-GAxbE-EKE"
}

Response Failure Example:

{
    "status" : "Failure",
    "error-code" : "E809",
    "error-message" : "Internal Error. The pass was not updated.",
 "pass-id":"Event ticket_1"
}

5.4.GetPassData #

The get pass data API is used to retrieve data, such as the ticket holder’s name, for a specific event ticket that has already been installed on a device. If you do not enter the correct ‘pass-id’ for the event ticket that you are trying to retrieve, you will receive an error code. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request

{
    "action":"getpassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID"
}

Request Example

{  
   "action":"getpassdata",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-id":"rockonrock2020"
}

Response Success Example: Event ticket

{  
    "status":"Success",
    "pass-id":"16178389328-5c2f43f8750b9",
    "pass-template-id":"49c4f9b740f5a3a4c6bb7f1170d8b982b0ceb6b4",
    "pass-data":{  
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c1a0313e2b8a7.png",
        "event-name":"ROCK ON ROCK",
        "strip-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c1a033c7c087f.png",
        "barcode-value":"ASDH678",
        "barcode-text":"CODE963",
        "venue-name":"BOSTON",      
        "event-start-time":"Dec 20, 2018, 2:00 PM",
        "event-end-time ":"Dec 20, 2018, 5:00 PM",
        "event-custom-value-1":"door 1",
        "event-custom-value-2":"C",
        "event-custom-value-3":"A",
        "event-custom-value-4":"96W",
        "doors-open-time ":"Dec 20, 2018, 1:30 PM",
        "venue-address":"123 Fake St ",
        "ticket-holder ":"AKASH",
        "ticket-type ":"Electronic",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”:"2019-02-01T10:46:46+00:00”,
        "ticket-number ":"123123",
        "confirmation-number":"533333",
        "face-value":"$10.00",
        "terms-conditions":"New ticket issued. Schedule preponed by one day",
        "message1":"hiii",
        "message2":"price",
        "text-message":"hi all",
        "info-message":"hi all",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://www.skycore.com",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E808",
    "error-message":"The pass-id value is invalid.",
    "pass-id":"16178389328-5c2f43f8750b9"
}

5.5.GetPassTemplate #

The get Pass Template API is used to retrieve a specific event ticket Pass Template. To retrieve the specific event ticket Pass Template you will need the correct ‘pass-template-id’ associated with the Pass Template.

Request:

{
    "action":"getpasstemplate",
    "api-key":"API KEY",
    "pass-template-id":"CARD TEMPLATE ID"
}

Request Example:

{  
   "action":"getpasstemplate",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "Pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41"
}

Response Success Example: Event ticket

{  
    "status":"Success",
    "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41",
    "pass-template":{  
        "pass-name":"ROCK ON ROCK TICKET",
        "pass-type":"Event Ticket",
        "organization":"JOY",
        "description":"Mobile Wallet Card by JOY",
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c1a0313e2b8a7.png",
        "event-name":"ROCK ON ROCK",
        "strip-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c1a033c7c087f.png",
        "barcode-value":"ASDH678",
        "barcode-text":"CODE963",
        "venue-name":"BOSTON",
        "event-start-time":"Dec 20, 2018, 2:00 PM",
        "event-end-time ":"Dec 20, 2018, 5:00 PM",
        "event-custom-value-1":"door 1",
        "event-custom-value-2":"C",
        "event-custom-value-3":"A",
        "event-custom-value-4":"96W",
        "doors-open ":"Dec 20, 2018, 1:30 PM",
        "venue-address":"123 Fake St ",
        "ticket-holder ":"AKASH",
        "ticket-type ":"Electronic",
       "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”: null,
        "ticket-number ":"123123",
        "confirmation-number":"533333",
        "face-value":"$10.00",
        "Terms-conditions":"visit on elec.com for more details",
        "message1":"hiii",
        "message2":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://www.skycore.com",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E802",
    "error-message":"The pass-template-id value is invalid.",
    "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41"
}

5.8.CreatePassTemplate #

The CreatePassTemplate API is used to create a Pass Template for an event ticket Pass. The following table provides a detailed description of certain variables that can be used in each API call to create or update Pass Templates for event tickets. The required params for an event ticket Pass Template are: action, api-key, pass-template-type, pass-template-name, event-name, background-color, venue-name, venue-address,barcode-type, text-color, description, relevance-date-time, relevance-date-timezone

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-typeMandatory. The expected value is “event-ticket”This defines the type of Pass that will be used for creating the Pass Template.
pass-template-nameMandatory. Alphanumeric (A-Za-z0-9)This is used as an internal name to identify the Pass Template.
logoOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Apple Wallet Passes. Rectangular images are required
logo-gpayOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Google passes. Circular images are preferred. Any image that is not circular will be masked into a circular image.
event-nameMandatory, Alphanumeric (A-Za-z0-9)This is the Event Name for the event ticket. If “logo” is set then this value won’t be displayed on Apple Wallet Passes.
strip-imageOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThe strip image is displayed below the logo and Event Name on Apple Wallet and Google Pay Passes, as a rectangular image throughout the width of the Pass.
background-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the background color of the Pass, for both Apple Wallet and Google Pay Passes.
venue-nameMandatory, Alphanumeric (A-Za-z0-9)The name of the event venue.
event-start-timeOptional, Alphanumeric (A-Za-z0-9).

mm/dd/yyyy hour:min AM/PM

The event start date/time value.
event-start-time-timezoneOptional, Alphanumeric (A-Za-z0-9)The timezone name for event start time. E.g. America/New_York. Use the names listed under section 10.1
event-custom-value-1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the custom-value-1 field. If not set then a default value “GATE” will be used on the Pass.
event-custom-value-1Optional, Alphanumeric (A-Za-z0-9)This field can be used to set any value. This value is used to generate a static Pass.
event-custom-value-2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the custom-value-2 field. If not set then a default value “SECTION” will be used on the Pass.
event-custom-value-2Optional, Alphanumeric (A-Za-z0-9)This field can be used to set any value. This value is used to generate a static Pass.
event-custom-value-3-labelOptional, Alphanumeric (A-Za-z0-9)The label for the custom-value-3 field. If not set then a default value “ROW” will be used on the Pass.
event-custom-value-3Optional, Alphanumeric (A-Za-z0-9)This field can be used to set any value. This value is used to generate a static Pass.
event-custom-value-4-labelOptional, Alphanumeric (A-Za-z0-9)The label for the custom-value-4 field. If not set then a default value “SEAT” will be used on the Pass.
event-custom-value-4Optional, Alphanumeric (A-Za-z0-9)This field can be used to set any value. This value is used to generate a static Pass.
ticket-holderOptional, Alphanumeric (A-Za-z0-9)The ticket holder’s name for the event ticket. This value is used while generating a static Pass.
venue-addressMandatory, Alphanumeric (A-Za-z0-9)The address for the event venue.
doors-open-time-labelOptional, Alphanumeric (A-Za-z0-9). Accepted values: “Doors Open” or “Gates Open”The label for the doors-open-time field.
doors-open-timeOptional Alphanumeric (A-Za-z0-9)

mm/dd/yyyy hour:min AM/PM

The doors open date/time value for the event.
doors-open-timezoneOptional. Alphanumeric (A-Za-z0-9)The timezone name for doors open time. E.g. America/New_York. Use the names listed under section 10.1
event-end-timeOptional, Alphanumeric (A-Za-z0-9)

mm/dd/yyyy hour:min AM/PM

The event end date/time value.
event-end-timezoneOptional, Alphanumeric (A-Za-z0-9)The timezone name for the event end time. E.g. America/New_York. Use the names listed under section 10.1
ticket-typeOptional, Alphanumeric (A-Za-z0-9)The event ticket type value. This value is used to generate a static Pass.
ticket-numberOptional, Alphanumeric (A-Za-z0-9)The number for the event ticket. This value is used to generate a static Pass.
confirmation-number-labelOptional, Alphanumeric (A-Za-z0-9). Accepted values: “Confirmation Code”, “Confirmation Number”, “Order Number” or “Reservation Number”The label for the confirmation-number field.
confirmation-numberOptional, Alphanumeric (A-Za-z0-9)The reservation confirmation number for the event ticket. This is used to generate a static Pass.
face-valueOptional, Numeric (0-9)The monetary value for the event ticket. The currency will always be considered as US$. This value is use to generate a static Pass.
terms-conditionsOptional, Alphanumeric (A-Za-z0-9)The terms and conditions for the event.
message1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message1 field.
message1Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of apple pass, and below the pass for Google.
message2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message2 field.
message2Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of apple pass, and below the pass for Google.
text-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the text-module field.
text-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay.
info-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the info-module field.
info-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay. When the Pass Status is updated, this field value is updated with the appropriate message reflecting the status.
home-page-uri-labelOptional, Alphanumeric (A-Za-z0-9)The label for the home page URI.
home-page-uriOptional, Alphanumeric (A-Za-z0-9)This field is used to display any web page link which may contain any additional information about the Passes. The links are clickable on both Apple Wallet and Google Pay Passes and will open in a browser.
link1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link1 field.
link1-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link1 field value.
link1Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link1-type field, this field can have an email id, a geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link1-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
link2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link2 field.
link2-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link2 field value.
link2Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link2-type field, this field can have an email id, geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link2-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
text-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the text color for Apple Wallet Passes only. Google controls the color for the values displayed on the Google Pay Pass, which is either black or white, based on the background color of the Pass.
descriptionMandatory, Alphanumeric (A-Za-z0-9)This field provides a description for the pass, which is used as a voice-over to describe Passes for blind or low vision users for Apple Wallet Passes only.
linked-appsOptional, Alphanumeric (A-Za-z0-9)This is a comma-separated list of iTunes apps, which are displayed on the back of the apple passes.
relevance-date-timeMandatory, Alphanumeric (A-Za-z0-9).

mm/dd/yyyy hour:min AM/PM

The relevance date/time for the Pass. This is set as 3 hours prior to the event start time by Google Pay. To make this consistent for Apple Wallet Passes, you should set this to 3 hours as well.
relevance-date-timezoneMandatory, Alphanumeric (A-Za-z0-9)The timezone name. E.g. America/New_York. Use the long names listed under section 10.1.
ibeaconsOptional, Alphanumeric (A-Za-z0-9).Format:
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”
ibeacons are only applicable for Apple Wallet Passes. They are used to display messages on the lock screens of IOS mobile devices based on the values set.
additional-imageOptional, Alphanumeric (A-Za-z0-9). Web URLThis image is displayed only on Google Pay Passes, in the area below the pass in between the additional details.
additional-image-textOptional, Alphanumeric (A-Za-z0-9)This value provides information that is linked to the additional image.
expiry-dateOptional, Alphanumeric (A-Za-z0-9)

Format:
mm/dd/yyyy hour:min AM/PM

The date/time value for the Pass expiration, if not set specifically for individual Passes.
expiration-timezoneOptional, Alphanumeric (A-Za-z0-9)The timezone name. E.g. America/New_York. Use the long names listed in section 9.1.
barcode-typeMandatory, Alphabetic (A-Za-z). Accepted values: “QRCODE”, “AZTEC”, “PDF417”, or “CODE128”The barcode type for all Passes installed using this Pass Template.
barcode-valueOptional, Alphanumeric (A-Za-z0-9)This is the default barcode value, which will be used for Passes if no value is provided.
autogenerate-barcode-valuesOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”.This field defines if the barcode values will be generated automatically for Passes.
autogenerate-barcode-value-typeOptional, Alphabetic (A-Za-z). Accepted values: “Numeric”, “Alphabet”, or “Alphanumeric”.This field defines the type of barcode values that will be auto-generated for Passes if the autogenerate-barcode-values is set to “True”.
autogenerate-barcode-value-lengthOptional, Numeric (0-9). Accepted values: 10 – 100This field defines the length of the auto-generated barcode value for Passes if the autogenerate-barcode-values is set to “True”.
relevant-locationsOptional, Alphanumeric (a-zA-Z0-9)

Format:
“latitude”:”COORDINATES”, “longitude”:”COORDINATES”, “relevant-text”:”RELEVANCE TEXT”

These fields are used to display text information for Passes, when the device that the Pass is installed on is detected at the relevant location. The locations are defined by the latitude/longitude co-ordinates. The relevant-text is the message displayed for Apple Wallet Passes. For Google Pay Passes, a predefined message is displayed.
disable-pass-sharingOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”This field defines if Passes installed for this Pass Template can be installed on multiple devices or not.
never-installed-ttlOptional, Numeric (0-9)This field sets the number of hours post which an uninstalled pass will be archived.
never-installed-archive-timestampOptional, Numeric (0-9)This field, if set, defines the timestamp post which an uninstalled timestamp will be archived. This value will be considered if never-installed-ttl is also set.
expired-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which an expired pass will be archived.
redeemed-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a redeemed pass will be archived.
voided-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a voided pass will be archived.

Request: Event Ticket

{
  	 "action": "CreatePassTemplate",
      	 "api-key": "API KEY",
             "pass-template-type": "event-ticket"
  	 "pass-template-name": "PASS TEMPLATE NAME",
  	 "appearance": {
   	 "logo": "IMAGE PATH",
   	 "logo-gpay": "IMAGE PATH",
   	 "event-name": "EVENT NAME",
   	 "strip-image": "IMAGE PATH",
   	 "background-color": "COLOR HASH CODE"
    },
    "universal-fields": {
   	 "venue-name": "VENUE NAME",
   	 "event-start-time": "EVENT START DATE-TIME",
   	 "event-start-time-timezone": "EVENT START DATE-TIME TIMEZONE",
   	 "event-custom-value-1-label": "CUSTOM FIELD 1 LABEL FOR EVENT",
   	 "event-custom-value-1": "CUSTOM FIELD 1 VALUE FOR EVENT",
   	 "event-custom-value-2-label": "CUSTOM FIELD 2 LABEL FOR EVENT",
   	 "event-custom-value-2": "CUSTOM FIELD 2 VALUE FOR EVENT",
   	 "event-custom-value-3-label": "CUSTOM FIELD 3 LABEL FOR EVENT",
   	 "event-custom-value-3": "CUSTOM FIELD 3 VALUE FOR EVENT",
   	 "event-custom-value-4-label": "CUSTOM FIELD 4 LABEL FOR EVENT",
   	 "event-custom-value-4": "CUSTOM FIELD 4 VALUE FOR EVENT",
   	 "ticket-holder": "TICKET HOLDER’S NAME",
   	 "venue-address": "EVENT VENUE ADDRESS",
   	 "doors-open-time-label": "DOOR OPEN LABEL",
   	 "doors-open-time": "DATE-TIME WHEN THE DOORS OPEN FOR EVENT",
   	 "doors-open-time-timezone": "DOORS OPEN DATE-TIME TIMEZONE",    
   	 "event-end-time": "EVENT END DATE-TIME",
   	 "event-end-time-timezone": "EVENT END DATE-TIME TIMEZONE",
   	 "ticket-type": "EVENT TICKET TYPE",
   	 "ticket-number": "EVENT TICKET NUMBER",
   	 "confirmation-number-label": "CONFIRMATION CODE LABEL",
   	 "confirmation-number": "TICKET RESERVATION CONFIRMATION CODE",
   	 "face-value": "EVENT TICKET VALUE",    
   	 "terms-conditions": "TERMS AND CONDITIONS",
   	 "message1-label": "MESSAGE 1 LABEL",
   	 "message1": "MESSAGE 1 TEXT",   	 
   	 "message2-label": "MESSAGE 2 LABEL",
   	 "message2": "MESSAGE 2 TEXT",
   	 "text-module-label": "TEXT MODULE LABEL",
   	 "text-module": "TEXT MODULE VALUE",
   	 "info-module-label": "INFO MODULE LABEL",
   	 "info-module": "INFO MODULE VALUE",
   	 "home-page-uri-label": "TEXT FOR HOME PAGE URI",
   	 "home-page-uri": "HOME PAGE LINK",
  		 "link1-label": "TEXT FOR ADDITIONAL LINK 1",
   	 "link1": "ADDITIONAL LINK 1",
   	 "link1-type": "TYPE OF LINK",
  		 "link2-label": "TEXT FOR ADDITIONAL LINK 2",
  		 "link2": "ADDITIONAL LINK 2",
   	 "link2-type": "TYPE OF LINK"
    },
    "apple-wallet-fields": {
   	 "text-color": "COLOR HASH CODE",
   	 "description": "Pass description used for VoiceOver Information",
   	 "linked-apps": "COMMA SEPARATED LIST OF ITUNES STORE ID",
   	 "relevance-date-time": "RELEVANT DATE-TIME FOR THE PASS",
   	 "relevance-date-timezone": "TIMEZONE NAME FOR RELEVANCE DATE-TIME FOR THE PASS",
   	 "ibeacons": [{  
   	 	"proximity-uuid":"UUID VALUE",
   		 "major":"MAJOR VALUE",
   		 "minor":"MINOR VALUE",
  			 "relevant-text":"RELEVANCE TEXT"
   	 },
   	 {  
   		 "proximity-uuid":"UUID VALUE",
   	 	"major":"MAJOR VALUE",
   	 	"minor":"MINOR VALUE",
   	 	"relevant-text":"RELEVANCE TEXT"
   	 },
   	 . . .
   	 ]
    },
    "gpay-fields": {
   	 "additional-image": "ADDITIONAL IMAGE URL",
   	 "additional-image-text": "Image Description"
    },
    "expiration-fields": {
   	 "expiry-date": "EXPIRATION TIMESTAMP",
   	 "expiry-timezone": "VALID TIMEZONE NAME"
    },
    "barcode-fields": {
   	 "barcode-type": "BARCODE TYPE",    
   	 "autogenerate-barcode-values":true, // boolean
   	 "autogenerate-barcode-value-type": "VALUE TYPE FOR AUTO GENERATED BARCODES",
   	 "autogenerate-barcode-value-length": "LENGTH OF AUTO GENERATED BARCODE VALUES"
    },
    "relevant-locations": [{
   	 "latitude":"COORDINATES",
   	 "longitude":"COORDINATES",
   	 "relevant-text":"RELEVANCE TEXT"
	},
	{
   	 "latitude":"COORDINATES",
   	 "longitude":"COORDINATES",
   	 "relevant-text":"RELEVANCE TEXT"
    },
	],
    "disable-pass-sharing":true,
    "pass-data-archive-settings": {
   	 "never-installed-ttl":"NUMBER OF HOURS POST WHICH PASS RECORDS WILL BE ARCHIVED IF NOT INSTALLED", //either this or below option can bet set
   	 "never-installed-archive-timestamp": "TIMESTAMP WHEN NON INSTALLED PASS RECORDS ARE TO BE ARCHIVED",
   	 "expired-pass-ttl": "NUMBER OF HOURS POST WHICH EXPIRED PASSES WILL BE ARCHIVED",
   	 "redeemed-pass-ttl": "NUMBER OF HOURS POST WHICH REDEEMED PASSES WILL BE ARCHIVED",
   	 "voided-pass-ttl": "NUMBER OF HOURS POST WHICH VOIDED PASSES WILL BE ARCHIVED"
    }
}

Request Example: Event Ticket

{
	"action":"createPassTemplate",
	"api-key":"UX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
	"pass-template-type":"event-ticket",
	"pass-template-name":"event ticket-3",
	"appearance":{
   	  "logo":"https://www.cryptoninjas.net/wp-content/uploads/2017/07/dash-apple-768x432.png",
   	  "logo-gpay":"https://www.freepngimg.com/thumb/photo%20camera/2-photo-camera-png-image.png",
   	  "event-name":"SKYCORE",
   	  "strip-image":"https://www.freepngimg.com/thumb/taj_mahal/1-2-taj-mahal-png-clipart.png",
   	  "background-color":"#bdb326"
	},
	"universal-fields":{
   	  "venue-name":"Skycore Casino",
   	  "event-start-time":"11/22/2020 2:01 PM",
   	  "event-start-time-timezone":"Asia/Kolkata",
   	  "event-custom-value-1-label":"gate",
   	  "event-custom-value-1":"Second",
   	  "event-custom-value-2-label":"row",
   	  "event-custom-value-2":"First",
   	  "event-custom-value-3-label":"section",
   	  "event-custom-value-3":"s3",
   	  "event-custom-value-4-label":"seat",
   	  "event-custom-value-4":"W-25",
   	  "ticket-holder":"Joy",
   	  "venue-address":"397 Moody St, Waltham, MA 02453",
   	  "doors-open-time-label":"doors open",
   	  "doors-open-time":"11/11/2020 2:01 PM",
   	  "doors-open-time-timezone":"Asia/Kolkata",
   	  "event-end-time":"09/11/2020 2:01 PM",
   	  "event-end-time-timezone":"Europe/Paris",
   	  "ticket-type":"Electronic",
   	  "ticket-number":"E-96325",
   	  "confirmation-number-label":"order number",
   	  "confirmation-number":"212312",
   	  "face-value":"343",
   	  "terms-conditions":"Your use of our website, mobile app, and other services are subject to Fandango's standard terms, including our Purchase Policy, Terms of Use and Privacy Policy.",
   	  "message1-label":"Instructions",
   	  "message1":"Go directly to the ticket taker to have your mobile ticket scanned.",
   	  "message2-label":"SHOWTIME",
   	  "message2":"Sun, Feb 10 at 8:00 PM",
   	  "text-module-label":"RUNTIME",
   	  "text-module":"2hrs 13min",
   	  "info-module-label":"AUD/SEATS",
   	  "info-module":"Auditorium 11, H1",
   	  "home-page-uri-label":"TEXT FOR HOME PAGE URI",
   	  "home-page-uri":"https://dev-app.skycore.com/platform/wallet/pass-template-builder.php",
   	  "link1-label":"TEXT FOR ADDITIONAL LINK 1",
   	  "link1":"https://www.google.com/maps/@23.0028669,72.5157813,17z",
   	  "link1-type":"map-link",
   	  "link2-label":"TEXT FOR ADDITIONAL LINK 2",
   	  "link2":"https://dev-app.skycore.com/platform/wallet/pass-template-builder.php",
   	  "link2-type":"web-link"
	},
	"apple-wallet-fields":{
   	  "text-color":"#030000",
   	  "description":"Pass description used for VoiceOver Information",
   	  "linked-apps":"123333",
   	  "relevance-date-time":"11/22/2020 11:11 AM",
   	  "relevance-date-timezone":"Asia/Kolkata",
   	  "ibeacons":[
   	  	{
   			   "proximity-uuid":"123213",
   			   "major":"123213",
   			   "minor":"21321",
   			   "relevant-text":"Come grab some popcorn!"
   	  	},
   	  	{
   			   "proximity-uuid":"123123",
   			   "major":"12312",
   			   "minor":"12321",
   			   "relevant-text":"Come grab some popcorn!"
   	  	}
   	  ]
	},
	"gpay-fields":{
   	  "additional-image":"https://www.freepngimg.com/thumb/dress%20shirt/4-black-dress-shirt-png-image.png",
   	  "additional-image-text":"Image Description"
	},
	"expiration-fields":{
   	  "expiry-date":"12/30/2020 6:00 PM",
   	  "expiry-timezone":"Asia/Kolkata"
	},
	"barcode-fields":{
   	  "barcode-type":"PDF417",
   	  "barcode-value":"1231312",
   	  "autogenerate-barcode-values":true,
   	  "autogenerate-barcode-value-type":" Alphanumeric",
   	  "autogenerate-barcode-value-length":"10"
	},
	"relevant-locations":[
   	  {
   	  	"latitude":"36.36",
   	  	"longitude":"45.36",
   	  	"relevant-text":"Come use your coupon at our Waltham location!"
   	  },
   	  {
   	  	"latitude":"74.25",
   	  	"longitude":"85.36",
   	  	"relevant-text":"Come use your coupon at our Waltham location!"
   	  }
	],
	"disable-pass-sharing":false,
	"pass-data-archive-settings":{
   	  "never-installed-ttl":"1",
   	  "never-installed-archive-timestamp":"1/1/2020 11:19 AM",
   	  "expired-pass-ttl":"1",
   	  "redeemed-pass-ttl":"25",
   	  "voided-pass-ttl":"235"
	}
}

Response Success Example:

{ 
    "status":"Success",
    "pass-template-type":"event-ticket",
    "pass-template-name":"event ticket-3",
    "pass-template-id":"ee5ae5daa7cd12389b7660b89e6a2d4b66b21bc9"
}

Response Failure Example:

{ 
    "status":"Failure",
    "error-code":"E1005",
    "error-message":"The autogenerate-barcode-value-type value is required/invalid."
}

5.9.UpdatePassTemplate #

The UpdatePassTemplate API is used to update an existing Pass Template for an event ticket Pass.

Request: Event Ticket

{
  	 "action": "updatePassTemplate",
      	 "api-key": "API KEY",
             "pass-template-type": "event-ticket"
  	 "pass-template-name": "PASS TEMPLATE NAME",
  	 "appearance": {
   	 "logo": "IMAGE PATH",
   	 "logo-gpay": "IMAGE PATH",
   	 "event-name": "EVENT NAME",
   	 "strip-image": "IMAGE PATH",
   	 "background-color": "COLOR HASH CODE"
    },
    "universal-fields": {
   	 "venue-name": "VENUE NAME",
   	 "event-start-time": "EVENT START DATE-TIME",
   	 "event-start-time-timezone": "EVENT START DATE-TIME TIMEZONE",
   	 "event-custom-value-1-label": "CUSTOM FIELD 1 LABEL FOR EVENT",
   	 "event-custom-value-1": "CUSTOM FIELD 1 VALUE FOR EVENT",
   	 "event-custom-value-2-label": "CUSTOM FIELD 2 LABEL FOR EVENT",
   	 "event-custom-value-2": "CUSTOM FIELD 2 VALUE FOR EVENT",
   	 "event-custom-value-3-label": "CUSTOM FIELD 3 LABEL FOR EVENT",
   	 "event-custom-value-3": "CUSTOM FIELD 3 VALUE FOR EVENT",
   	 "event-custom-value-4-label": "CUSTOM FIELD 4 LABEL FOR EVENT",
   	 "event-custom-value-4": "CUSTOM FIELD 4 VALUE FOR EVENT",
   	 "ticket-holder": "TICKET HOLDER’S NAME",
   	 "venue-address": "EVENT VENUE ADDRESS",
   	 "doors-open-time-label": "DOOR OPEN LABEL",
   	 "doors-open-time": "DATE-TIME WHEN THE DOORS OPEN FOR EVENT",
   	 "doors-open-time-timezone": "DOORS OPEN DATE-TIME TIMEZONE",    
   	 "event-end-time": "EVENT END DATE-TIME",
   	 "event-end-time-timezone": "EVENT END DATE-TIME TIMEZONE",
   	 "ticket-type": "EVENT TICKET TYPE",
   	 "ticket-number": "EVENT TICKET NUMBER",
   	 "confirmation-number-label": "CONFIRMATION CODE LABEL",
   	 "confirmation-number": "TICKET RESERVATION CONFIRMATION CODE",
   	 "face-value": "EVENT TICKET VALUE",    
   	 "terms-conditions": "TERMS AND CONDITIONS",
   	 "message1-label": "MESSAGE 1 LABEL",
   	 "message1": "MESSAGE 1 TEXT",   	 
   	 "message2-label": "MESSAGE 2 LABEL",
   	 "message2": "MESSAGE 2 TEXT",
   	 "text-module-label": "TEXT MODULE LABEL",
   	 "text-module": "TEXT MODULE VALUE",
   	 "info-module-label": "INFO MODULE LABEL",
   	 "info-module": "INFO MODULE VALUE",
   	 "home-page-uri-label": "TEXT FOR HOME PAGE URI",
   	 "home-page-uri": "HOME PAGE LINK",
  		 "link1-label": "TEXT FOR ADDITIONAL LINK 1",
   	 "link1": "ADDITIONAL LINK 1",
   	 "link1-type": "TYPE OF LINK",
  		 "link2-label": "TEXT FOR ADDITIONAL LINK 2",
  		 "link2": "ADDITIONAL LINK 2",
   	 "link2-type": "TYPE OF LINK"
    },
    "apple-wallet-fields": {
   	 "text-color": "COLOR HASH CODE",
   	 "description": "Pass description used for VoiceOver Information",
   	 "linked-apps": "COMMA SEPARATED LIST OF ITUNES STORE ID",
   	 "relevance-date-time": "RELEVANT DATE-TIME FOR THE PASS",
   	 "relevance-date-timezone": "TIMEZONE NAME FOR RELEVANCE DATE-TIME FOR THE PASS",
   	 "ibeacons": [{  
   	 	"proximity-uuid":"UUID VALUE",
   		 "major":"MAJOR VALUE",
   		 "minor":"MINOR VALUE",
  			 "relevant-text":"RELEVANCE TEXT"
   	 },
   	 {  
   		 "proximity-uuid":"UUID VALUE",
   	 	"major":"MAJOR VALUE",
   	 	"minor":"MINOR VALUE",
   	 	"relevant-text":"RELEVANCE TEXT"
   	 },
   	 . . .
   	 ]
    },
    "gpay-fields": {
   	 "additional-image": "ADDITIONAL IMAGE URL",
   	 "additional-image-text": "Image Description"
    },
    "expiration-fields": {
   	 "expiry-date": "EXPIRATION TIMESTAMP",
   	 "expiry-timezone": "VALID TIMEZONE NAME"
    },
    "barcode-fields": {
   	 "barcode-type": "BARCODE TYPE",    
   	 "autogenerate-barcode-values":true, // boolean
   	 "autogenerate-barcode-value-type": "VALUE TYPE FOR AUTO GENERATED BARCODES",
   	 "autogenerate-barcode-value-length": "LENGTH OF AUTO GENERATED BARCODE VALUES"
    },
    "relevant-locations": [{
   	 "latitude":"COORDINATES",
   	 "longitude":"COORDINATES",
   	 "relevant-text":"RELEVANCE TEXT"
	},
	{
   	 "latitude":"COORDINATES",
   	 "longitude":"COORDINATES",
   	 "relevant-text":"RELEVANCE TEXT"
    },
	],
    "disable-pass-sharing":true,
    "pass-data-archive-settings": {
   	 "never-installed-ttl":"NUMBER OF HOURS POST WHICH PASS RECORDS WILL BE ARCHIVED IF NOT INSTALLED", //either this or below option can bet set
   	 "never-installed-archive-timestamp": "TIMESTAMP WHEN NON INSTALLED PASS RECORDS ARE TO BE ARCHIVED",
   	 "expired-pass-ttl": "NUMBER OF HOURS POST WHICH EXPIRED PASSES WILL BE ARCHIVED",
   	 "redeemed-pass-ttl": "NUMBER OF HOURS POST WHICH REDEEMED PASSES WILL BE ARCHIVED",
   	 "voided-pass-ttl": "NUMBER OF HOURS POST WHICH VOIDED PASSES WILL BE ARCHIVED"
    }
}

Request Example: Event Ticket

{
	"action":"updatePassTemplate",
	"api-key":"UX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
	"pass-template-type":"event-ticket",
	"pass-template-name":"event ticket-3",
	"appearance":{
   	  "logo":"https://www.cryptoninjas.net/wp-content/uploads/2017/07/dash-apple-768x432.png",
   	  "logo-gpay":"https://www.freepngimg.com/thumb/photo%20camera/2-photo-camera-png-image.png",
   	  "event-name":"SKYCORE",
   	  "strip-image":"https://www.freepngimg.com/thumb/taj_mahal/1-2-taj-mahal-png-clipart.png",
   	  "background-color":"#bdb326"
	},
	"universal-fields":{
   	  "venue-name":"Skycore Casino",
   	  "event-start-time":"11/22/2020 2:01 PM",
   	  "event-start-time-timezone":"Asia/Kolkata",
   	  "event-custom-value-1-label":"gate",
   	  "event-custom-value-1":"Second",
   	  "event-custom-value-2-label":"row",
   	  "event-custom-value-2":"First",
   	  "event-custom-value-3-label":"section",
   	  "event-custom-value-3":"s3",
   	  "event-custom-value-4-label":"seat",
   	  "event-custom-value-4":"W-25",
   	  "ticket-holder":"Joy",
   	  "venue-address":"397 Moody St, Waltham, MA 02453",
   	  "doors-open-time-label":"doors open",
   	  "doors-open-time":"11/11/2020 2:01 PM",
   	  "doors-open-time-timezone":"Asia/Kolkata",
   	  "event-end-time":"09/11/2020 2:01 PM",
   	  "event-end-time-timezone":"Europe/Paris",
   	  "ticket-type":"Electronic",
   	  "ticket-number":"E-96325",
   	  "confirmation-number-label":"order number",
   	  "confirmation-number":"212312",
   	  "face-value":"343",
   	  "terms-conditions":"Your use of our website, mobile app, and other services are subject to Fandango's standard terms, including our Purchase Policy, Terms of Use and Privacy Policy.",
   	  "message1-label":"Instructions",
   	  "message1":"Go directly to the ticket taker to have your mobile ticket scanned.",
   	  "message2-label":"SHOWTIME",
   	  "message2":"Sun, Feb 10 at 8:00 PM",
   	  "text-module-label":"RUNTIME",
   	  "text-module":"2hrs 13min",
   	  "info-module-label":"AUD/SEATS",
   	  "info-module":"Auditorium 11, H1",
   	  "home-page-uri-label":"TEXT FOR HOME PAGE URI",
   	  "home-page-uri":"https://dev-app.skycore.com/platform/wallet/pass-template-builder.php",
   	  "link1-label":"TEXT FOR ADDITIONAL LINK 1",
   	  "link1":"https://www.google.com/maps/@23.0028669,72.5157813,17z",
   	  "link1-type":"map-link",
   	  "link2-label":"TEXT FOR ADDITIONAL LINK 2",
   	  "link2":"https://dev-app.skycore.com/platform/wallet/pass-template-builder.php",
   	  "link2-type":"web-link"
	},
	"apple-wallet-fields":{
   	  "text-color":"#030000",
   	  "description":"Pass description used for VoiceOver Information",
   	  "linked-apps":"123333",
   	  "relevance-date-time":"11/22/2020 11:11 AM",
   	  "relevance-date-timezone":"Asia/Kolkata",
   	  "ibeacons":[
   	  	{
   			   "proximity-uuid":"123213",
   			   "major":"123213",
   			   "minor":"21321",
   			   "relevant-text":"Come grab some popcorn!"
   	  	},
   	  	{
   			   "proximity-uuid":"123123",
   			   "major":"12312",
   			   "minor":"12321",
   			   "relevant-text":"Come grab some popcorn!"
   	  	}
   	  ]
	},
	"gpay-fields":{
   	  "additional-image":"https://www.freepngimg.com/thumb/dress%20shirt/4-black-dress-shirt-png-image.png",
   	  "additional-image-text":"Image Description"
	},
	"expiration-fields":{
   	  "expiry-date":"12/30/2020 6:00 PM",
   	  "expiry-timezone":"Asia/Kolkata"
	},
	"barcode-fields":{
   	  "barcode-type":"PDF417",
   	  "barcode-value":"1231312",
   	  "autogenerate-barcode-values":true,
   	  "autogenerate-barcode-value-type":" Alphanumeric",
   	  "autogenerate-barcode-value-length":"10"
	},
	"relevant-locations":[
   	  {
   	  	"latitude":"36.36",
   	  	"longitude":"45.36",
   	  	"relevant-text":"Come use your coupon at our Waltham location!"
   	  },
   	  {
   	  	"latitude":"74.25",
   	  	"longitude":"85.36",
   	  	"relevant-text":"Come use your coupon at our Waltham location!"
   	  }
	],
	"disable-pass-sharing":false,
	"pass-data-archive-settings":{
   	  "never-installed-ttl":"1",
   	  "never-installed-archive-timestamp":"1/1/2020 11:19 AM",
   	  "expired-pass-ttl":"1",
   	  "redeemed-pass-ttl":"25",
   	  "voided-pass-ttl":"235"
	}
}

Response Success Example:

{ 
    "status":"Success",
    "pass-template-type":"event-ticket",
    "pass-template-name":"event ticket-3",
    "pass-template-id":"ee5ae5daa7cd12389b7660b89e6a2d4b66b21bc9"
}

Response Failure Example:

{ 
    "status":"Failure",
    "error-code":"E1005",
    "error-message":"The autogenerate-barcode-value-type value is required/invalid."
}

6.Loyalty Card Layouts 1 & 2 #

6.1.Introduction to Loyalty Card Layout 1 #

The following image shows where the fields used in the API calls will appear on the loyalty card layout 1 for both Apple Wallet and Google Pay. Any fields shown on the loyalty card layout 1 but not linked to the key in the image are required in the Pass Template Builder, therefore, they will always be shown on the pass. In this case, those fields are the Card Issuer and Program Name.

Mobile Wallet Loyalty Card

The following table provides a detailed description of certain variables that can be used in each API call for the loyalty card layout 1. The following text fields from the Pass Template Builder are not dynamic, therefore, you will not see these fields in the API calls for the loyalty card layout 1: Card Issuer, Program Name, Rewards Tier, Secondary Rewards Tier, Message 1, Message 2, Message 3, Text Module, Info Module, Home Page URI, Link 1 and Link 2. The format column explains whether the variable is mandatory or optional.

Params/VariablesFormatDescription
actionMandatory, Alphabetic

(a-zA-Z)

This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

This is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-idMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

The unique Pass Template ID used to reference a particular Pass Template.
pass-idMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

The identifier from your system to identify the pass or pass data uniquely.
reference-dataOptional, Alphanumeric

(a-zA-Z0-9)

This is used for adding additional information related to the pass.
barcode-valueOptional, Alphanumeric

(a-zA-Z0-9)

The unique barcode value associated with a specific pass-id.
expiration-timestampOptional.

“expiration-timestamp” should be in UTC.

Example: 2013-02-19T15:54:50Z

The timezone offset is ignored and always considers the timestamp in UTC.
expiration-timezoneOptional.

“expiration-timezone” should be in long name format.

Example: America/New_York

Use the long names listed in section 9.1 for your reference.
loyalty-pointsOptional, Alphanumeric

(a-zA-Z0-9)

The number of loyalty points, such as ‘100’. Special characters are allowed for this field.
secondary-loyalty-pointsOptional, Alphanumeric

(a-zA-Z0-9)

The secondary loyalty points field, if applicable,  such as ‘$5’. Special characters are allowed for this field.
account-nameOptional, Alphanumeric

(a-zA-Z0-9)

The account or member name associated with the pass-id.
account-idOptional, Alphanumeric

(a-zA-Z0-9)

The account or member ID number associated with the pass-id.
relevant-locations (1-10)

(relevant-1, relevant-2, etc..)

Optional, Alphanumeric

(a-zA-Z0-9)

Format:
“key”:”relevant-1″,
“latitude”:”COORDINATES”,
“longitude”:”COORDINATES”,
“relevant-text”:”RELEVANCE TEXT”

Custom relevant text is only applicable for Apple Wallet Passes. If you set a relevant location, Android devices will display default text. When adding more than one relevant location, be sure to change the “key” to relevant-2, relevant-3, etc..
ibeacons (1-10)

(ibeacon-1, ibeacon-2, etc..)

Optional, Alphanumeric

(a-zA-Z0-9)

Format:
“key”:”ibeacon-1″,
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”

ibeacons are only applicable for Apple Wallet Passes. When adding more than one ibeacon, be sure to change the “key” to ibeacon-2, ibeacon-3, etc..

6.1.1.GeneratePass #

The generate pass API will generate a unique installation link for a loyalty card. If you try to call this API again without changing the ‘pass-id’ field, it will return an error message and fail to generate the installation link for the loyalty card. To call this API again successfully, you will need to use a different ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request: Loyalty Card Layout 1

{  
   "action":"generatepass",
   "api-key":"API KEY",
   "pass-template-id":"PASS TEMPLATE ID",
   "pass-id":"UNIQUE CUSTOMER PASS ID",
   "reference-data": {
     "Reference": "reference data of the customer",
		     },
   "pass-data":{  
      "barcode-value":"BARCODE VALUE",
      "loyalty-points":"LOYALTY POINTS VALUE",
      "secondary-loyalty-points":"SECONDARY LOYALTY POINTS VALUE",
      "account-name":"ACCOUNT NAME VALUE",
      "account-id":"ACCOUNT ID VALUE",
      "additional-image":"ADDITIONAL IMAGE",
      "expiration-timestamp”: "EXPIRATION TIMESTAMP”,
      "expiration-timezone":"TIMEZONE",
      "relevant-locations":[        	// 10 fields         
         { 
            "key":"relevant-1",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         { 
            "key":"relevant-2",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         …
      ],
      "ibeacons":[                    	 // 10 fields         
        { 
            "key":"ibeacon-1",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
        { 
            "key":"ibeacon-2",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
        …
      ]
   }
}

 

Request Example: Loyalty Card Layout 1

{  
   "action":"generatepass",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj",
   "pass-template-id":"b2ab228987f9f759b1dfc473e261330410a0f41",
   "pass-id":"Loyalty Card_1",
   "reference-data": {
      "email": "joy@gmail.com",
      "phone": "61855742",
      "transaction-id": "96"
		     },
   "pass-data":{  
      "barcode-value":"ASDE96325",
      "loyalty-points":"65",
      "secondary-loyalty-points":"94",
      "account-name":"Asian Store",
      "account-id":"56984",
      "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
      "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
      "expiration-timezone":"Australia/Sydney",
      "relevant-locations":[  
         { 
            "key":"relevant-1",
            "latitude":"42.369169",
            "longitude":"-71.237371",
            "relevant-text":"Come grab some popcorn!"
         }
      ],
      "ibeacons":[  
         { 
            "key":"ibeacon-1",
            "proximity-uuid":"111111",
            "major":"222222",
            "minor":"3333333",
            "relevant-text":"Come grab some popcorn!"
         }
      ]
   }
}

 

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
   "pass-install-url":"https://d2c.skycore.com/wallet/dc/eazt0sq3r4",
  "tracking-id":"EDRZKf-JTDiY-EJZ"
}

Response Failure Example:

{
    "status":"Failure",
    "error-code":"E830",
    "error-message":"Internal Error. The pass was not generated.",
    "pass-id":"rockonrock2020"
}

6.1.2.UpdatePassData #

The update pass data API is used to update pass data for a loyalty card that has already been installed on a device. If you do not add a new “pass-id’ for the loyalty card, you will receive an error message and the loyalty card will not be updated until you add a new ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template. The field for ‘pass-status’ will accept the following values: “redeemed”, “expired”, “voided”, “active”.

Request: Loyalty Card Layout 1

{  
    "action":"updatepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID",
    "new-pass-id ":"NEW UNIQUE CUSTOMER PASS ID",
    "priority":"PRIORITY",
    "pass-data":{  
        "barcode-value":"BARCODE VALUE",
        "loyalty-points":"LOYALTY POINTS VALUE",
        "secondary-loyalty-points":"SECONDARY LOYALTY POINTS VALUE",
        "account-name":"ACCOUNT NAME VALUE",
        "account-id":"ACCOUNT ID VALUE",
        "additional-image":"ADDITIONAL IMAGE",  
        "pass-status":"STATUS OF THE PASS",
        "expiration-timestamp”:”EXPIRATION TIMESTAMP”,  
        "expiration-timezone":"TIMEZONE",   
        "pass-update-notification":"NOTIFICATION FOR PASS UPDATE",
   	"relevant-locations":[     	        // 10 fields            
            {  
                "key":"relevant-1",
                "latitude":"COORDINATES",
                "longitude":"COORDINATES",
                "relevant-text":"RELEVANCE TEXT"
            },
            {  
                "key":"relevant-2",
                "latitude":"COORDINATES",
                "longitude":"COORDINATES",
                "relevant-text":"RELEVANCE TEXT"
            },
            …
        ],
  	   "ibeacons":[            	              // 10 fields            
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"UUID VALUE",
                "major":"MAJOR VALUE",
                "minor":"MINOR VALUE",
                "relevant-text":"RELEVANCE TEXT"
            },
            {  
                "key":"ibeacon-2",
                "proximity-uuid":"UUID VALUE",
                "major":"MAJOR VALUE",
                "minor":"MINOR VALUE",
                "relevant-text":"RELEVANCE TEXT"
            },
            …
        ]
    }
}

 

Request Example: Loyalty Card Layout 1

{  
    "action":"updatepassdata",
    "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "pass-id":"Loyalty Card_1",
    "new-pass-id":" Loyalty Card_2",
    "priority":"true",
    "pass-data":{  
        "barcode-value":"ASDE96325",
        "loyalty-points":"65",
        "secondary-loyalty-points":"94",
        "account-name":"Asian Store",
        "account-id":"56984",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "pass-status":"active",
        "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
        "expiration-timezone":"Australia/Sydney",
        "pass-update-notification":"Pass has been updated with new values",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.369169",
                "longitude":"-71.237371",
                "relevant-text":"Come grab some popcorn!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    }
}

 

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
    "tracking-id":"EDRYpq-GAxbE-EKE"
}

Response Failure Example:

{
    "status" : "Failure",
    "error-code" : "E809",
    "error-message" : "Internal Error. The pass was not updated.",
    "pass-id":"rockonrock2020"
}

6.1.3.GetPassData #

The get pass data API is used to retrieve data for a specific loyalty card that has already been installed on a device. This data may include the cardholder name, points balance, or rewards tier. If you do not enter the correct ‘pass-id’ for the loyalty card that you are trying to retrieve, you will receive an error code. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request: Loyalty Card Layout 1

{
    "action":"getpassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID"
}

Request Example: Loyalty Card Layout 1

{  
   "action":"getpassdata",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-id":"rockonrock2020"
}

Response Success Example:

{  
    "status":"Success",
    "pass-id":"16178389325c2f4bcc68660",
    "pass-template-id":"60c4fb740f5a3a4c6bb7f1170d8b982b0ceb6b4",
    "pass-data":{  
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "pass-issuer":"Loyalty Card 24-12",
        "strip-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c952ceed.png",
        "barcode-value":"ASDH678",
        "barcode-text":"CODE963",
        "loyalty-points":"8965",
        "secondary-loyalty-points":"699",
        "account-name":"334234",
        "account-id":"3123",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”:null,
        "rewards-tier":"3123",
        "secondary-rewards-tier":"3123",
        "message1":"hiii",
        "message2":"hiii",
        "message3":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://www.skycore.com",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E808",
    "error-message":"The pass-id value is invalid.",
    "pass-id":"rockonrock2020"
}

6.1.4.GetPassTemplate #

The get Pass Template API is used to retrieve a specific loyalty card Pass Template. To retrieve the specific loyalty card Pass Template you will need the correct ‘pass-template-id’ associated with the Pass Template.

Request: Loyalty Card Layout 1

{
    "action":"getpasstemplate",
    "api-key":"API KEY",
    "pass-template-id":"CARD TEMPLATE ID"
}

Request Example: Loyalty Card Layout 1

{  
   "action":"getpasstemplate",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41"
}

Response Success Example:

{  
    "status":"Success",
    "pass-template-id":"994e45e3053962fc2f4c4e9911ff1f518052afa3",
    "pass-template":{  
        "pass-name":"Loyalty Card 24-12",
        "pass-type":"Loyalty Card",
        "organization":"JOY",
        "description":"Mobile Wallet Card by JOY",
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "pass-issuer":"Loyalty Card 24-12",
        "strip-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c952ceed.png",
        "barcode-value":"ASDH678",
        "barcode-text":"CODE963",
        "loyalty-points":"8965",
        "secondary-loyalty-points":"699",
        "account-name":"334234",
        "account-id":"3123",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”:null,
        "rewards-tier":"3123",
        "secondary-rewards-tier":"3123",
        "message1":"hiii",
        "message2":"hiii",
        "message3":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://www.skycore.com",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E802",
    "error-message":"The pass-template-id value is invalid.",
    "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41"
}

6.1.7.CreatePassTemplate #

The CreatePassTemplate API is used to create a Pass Template for a loyalty card layout 1 Pass. The following table provides a detailed description of certain variables that can be used in each API call to create or update Pass Templates for layout 1 loyalty cards. The required params for a loyalty card layout 1 Pass Template are: action, api-key, pass-template-type, pass-template-name, card-issuer, background-color, program-logo, program-logo-gpay, program-name, barcode-type, text-color, description

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-typeMandatory. The expected value is “gift-card”This defines the type of Pass that will be used for creating the Pass Template.
pass-template-nameMandatory. Alphanumeric (A-Za-z0-9)This is used as an internal name to identify the Pass Template.
program-logoMandatory, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Apple Wallet Passes. Rectangular images are required
program-logo-gpayMandatory, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Google passes. Circular images are preferred. Any image that is not circular will be masked into a circular image.
card-issuerMandatory, Alphanumeric (A-Za-z0-9)This is the card-issuer for the loyalty card. If “program-logo” is set then this value won’t be displayed on Apple Wallet Passes.
strip-imageOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThe strip image is displayed below the logo and Merchant Name on both Apple Wallet and Google Pay Passes, as a rectangular image across the middle of the Pass.
background-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the background color of the Pass, for both Apple Wallet and Google Pay Passes.
loyalty-points-labelOptional, Alphanumeric (A-Za-z0-9)The label for the loyalty-points field. If not set, but a loyalty-points is provided, then a default value “POINTS” will be used on the Pass.
loyalty-pointsOptional, Alphanumeric (A-Za-z0-9)The loyalty points associated with the loyalty card. This value is used to generate a static Pass.
program-nameMandatory, Alphanumeric (A-Za-z0-9)The loyalty program name.
secondary-loyalty-points-labelOptional, Alphanumeric (A-Za-z0-9)The label for the secondary-loyalty-points field. If not set, but a secondary-loyalty-points value is provided, then a default value “REWARDS” will be used on the Pass.
secondary-loyalty-pointsOptional, Alphanumeric (A-Za-z0-9)The secondary loyalty points associated with the loyalty card. This value is used to generate a static Pass.
account-name-labelOptional, Alphanumeric (A-Za-z0-9)The label for the account-name field. If not set, but an account-name value is provided, then a default value “MEMBER NAME” will be used on the Pass.
account-nameOptional, Alphanumeric (A-Za-z0-9)The account name associated with the loyalty card. This value is used to generate a static Pass.
account-id-labelOptional, Alphanumeric (A-Za-z0-9)The label for account-id field. If not set, but an account-id value is provided, then a default value “MEMBER ID” will be used on the Pass.
account-idOptional, Alphanumeric (A-Za-z0-9)The account id associated with the loyalty card. This value is used to generate a static Pass.
rewards-tier-labelOptional, Alphanumeric (A-Za-z0-9)The label for the rewards-tier field. If not set, but an account-id value is provided, then a default value “REWARDS TIER” will be used on the Pass.
rewards-tierOptional, Alphanumeric (A-Za-z0-9)The rewards tier for the loyalty card.
message1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message1 field.
message1Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of Apple Pass, and below the pass for Google.
message2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message2 field.
message2Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of Apple Pass, and below the pass for Google.
message3-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message3 field.
message3Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of Apple Pass, and below the pass for Google.
text-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the text-module field.
text-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay.
info-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the info-module field.
info-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay. When the Pass Status is updated, this field value is updated with the appropriate message reflecting the status.
home-page-uri-labelOptional, Alphanumeric (A-Za-z0-9)The label for the home page URI.
home-page-uriOptional, Alphanumeric (A-Za-z0-9)This field is used to display any web page link which may contain any additional information about the Passes. The links are clickable on both Apple Wallet and Google Pay Passes and will open in a browser.
link1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link1 field.
link1-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link1 field value.
link1Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link1-type field, this field can have an email id, a geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link1-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
link2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link2 field.
link2-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link2 field value.
link2Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link2-type field, this field can have an email id, geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link2-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
text-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the text color for Apple Wallet Passes only. Google controls the color for the values displayed on the Google Pay Pass, which is either black or white, based on the background color of the Pass.
descriptionMandatory, Alphanumeric (A-Za-z0-9)This field provides a description for the pass, which is used as a voice-over to describe Passes for blind or low vision users for Apple Wallet Passes only.
linked-appsOptional, Alphanumeric (A-Za-z0-9)This is a comma-separated list of iTunes apps, which are displayed on the back of the apple passes.
ibeaconsOptional, Alphanumeric (A-Za-z0-9).Format:
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”
ibeacons are only applicable for Apple Wallet Passes. They are used to display messages on the lock screens of IOS mobile devices based on the values set.
additional-imageOptional, Alphanumeric (A-Za-z0-9). Web URLThis image is displayed only on Google Pay Passes, in the area below the pass in between the additional details.
additional-image-textOptional, Alphanumeric (A-Za-z0-9)This value provides information that is linked to the additional image.
expiry-dateOptional, Alphanumeric (A-Za-z0-9)

Format:
mm/dd/yyyy hour:min AM/PM

The date/time value for the Pass expiration, if not set specifically for individual Passes.
expiration-timezoneOptional, Alphanumeric (A-Za-z0-9)The timezone name. E.g. America/New_York. Use the long names listed in section 9.1.
barcode-typeMandatory, Alphabetic (A-Za-z). Accepted values: “QRCODE”, “AZTEC”, “PDF417”, or “CODE128”The barcode type for all Passes installed using this Pass Template.
barcode-valueOptional, Alphanumeric (A-Za-z0-9)This is the default barcode value, which will be used for Passes if no value is provided.
autogenerate-barcode-valuesOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”.This field defines if the barcode values will be generated automatically for Passes.
autogenerate-barcode-value-typeOptional, Alphabetic (A-Za-z). Accepted values: “Numeric”, “Alphabet”, or “Alphanumeric”.This field defines the type of barcode values that will be auto-generated for Passes if the autogenerate-barcode-values is set to “True”.
autogenerate-barcode-value-lengthOptional, Numeric (0-9). Accepted values: 10 – 100This field defines the length of the auto-generated barcode value for Passes if the autogenerate-barcode-values is set to “True”.
relevant-locationsOptional, Alphanumeric (a-zA-Z0-9)

Format:
“latitude”:”COORDINATES”, “longitude”:”COORDINATES”, “relevant-text”:”RELEVANCE TEXT”

These fields are used to display text information for Passes, when the device that the Pass is installed on is detected at the relevant location. The locations are defined by the latitude/longitude co-ordinates. The relevant-text is the message displayed for Apple Wallet Passes. For Google Pay Passes, a predefined message is displayed.
disable-pass-sharingOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”This field defines if Passes installed for this Pass Template can be installed on multiple devices or not.
never-installed-ttlOptional, Numeric (0-9)This field sets the number of hours post which an uninstalled pass will be archived.
never-installed-archive-timestampOptional, Numeric (0-9)This field, if set, defines the timestamp post which an uninstalled timestamp will be archived. This value will be considered if never-installed-ttl is also set.
expired-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which an expired pass will be archived.
redeemed-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a redeemed pass will be archived.
voided-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a voided pass will be archived.

Request: Loyalty Card Layout 1

{
  	 "action": "createPassTemplate",
         "api-key": "API KEY",
  	 "pass-template-type": "loyalty",
  	 "pass-template-name": "Pass Template Name",
	"appearance": {
   	 "program-logo": "IMAGE PATH",
   	 "program-logo-gpay": "IMAGE PATH",
   	 "card-issuer": "MERCHANT NAME",
   	 "strip-image": "IMAGE PATH",
   	 "background-color": "COLOR HASH CODE"
    },
    "universal-fields": {
   	 "loyalty-points-label": "LOYALTY POINTS LABEL",
   	 "loyalty-points": "LOYALTY POINTS VALUE",
   	 "program-name": "LOYALTY PROGRAM NAME",
   	 "secondary-loyalty-points-label": "SECONDARY LOYALTY POINTS LABEL",
   	 "secondary-loyalty-points": "SECONDARY LOYALTY POINTS VALUE",
   	 "account-name-label": "ACCOUNT NAME LABEL",
   	 "account-name": "ACCOUNT NAME VALUE",
   	 "account-id-label": "ACCOUNT ID LABEL",   
   	 "account-id": "ACCOUNT ID VALUE",    
   	 "rewards-tier-label": "REWARDS TIER LABEL",
   	 "rewards-tier": "REWARDS TIER VALUE",
     	 "message1-label": "MESSAGE 1 LABEL",
    	"message1": "MESSAGE 1 TEXT",   	 
    	"message2-label": "MESSAGE 2 LABEL",
    	"message2": "MESSAGE 2 TEXT",
   	 "message3-label": "MESSAGE 3 LABEL",
    	"message3": "MESSAGE 3 TEXT",
    	"text-module-label": "TEXT MODULE LABEL",
    	"text-module": "TEXT MODULE VALUE",
    	"info-module-label": "INFO MODULE LABEL",
    	"info-module": "INFO MODULE VALUE",
    	"home-page-uri-label": "TEXT FOR HOME PAGE URI",
    	"home-page-uri": "HOME PAGE LINK",
  		 "link1-label": "TEXT FOR ADDITIONAL LINK 1",
    	"link1": "ADDITIONAL LINK 1",
   	 "link1-type": "TYPE OF LINK",
  		 "link2-label": "TEXT FOR ADDITIONAL LINK 2",
  		 "link2": "ADDITIONAL LINK 2",
   	 "link2-type": "TYPE OF LINK"
    },
    "apple-wallet-fields": {
   	 "text-color": "COLOR HASH CODE",
   	 "description": "Pass description used for VoiceOver Information",
   	 "linked-apps": "COMMA SEPARATED LIST OF ITUNES STORE ID",
   	 "ibeacons": [{  
   		 "proximity-uuid":"UUID VALUE",
   	 	"major":"MAJOR VALUE",
   	 	"minor":"MINOR VALUE",
   	   	 "relevant-text":"RELEVANCE TEXT"
    	},
   	 {  
   	 	"proximity-uuid":"UUID VALUE",
   	 	"major":"MAJOR VALUE",
   	 	"minor":"MINOR VALUE",
   	 	"relevant-text":"RELEVANCE TEXT"
    	},
		 ]
    },
    "gpay-fields": {
   	 "additional-image": "ADDITIONAL IMAGE URL",
   	 "additional-image-text": "Image Description"
    },
    "expiration-fields": {
    	"expiry-date": "EXPIRATION TIMESTAMP",
    	"expiry-timezone": "VALID TIMEZONE NAME"
    },
    "barcode-fields": {
   	 "barcode-type": "BARCODE TYPE",
   	 "barcode-value": "DEFAULT BARCODE VALUE",    
   	 "autogenerate-barcode-values":true, // boolean
   	 "autogenerate-barcode-value-type": "VALUE TYPE FOR AUTO GENERATED BARCODES",
   	 "autogenerate-barcode-value-length": "LENGTH OF AUTO GENERATED BARCODE VALUES"
    },
	"relevant-locations": [{
    	"latitude":"COORDINATES",
    	"longitude":"COORDINATES",
    	"relevant-text":"RELEVANCE TEXT"
	},
	{
   	 "latitude":"COORDINATES",
    	"longitude":"COORDINATES",
    	"relevant-text":"RELEVANCE TEXT"
	},
	. . .
	],
    "disable-pass-sharing":"TRUE OR FALSE",
    "pass-data-archive-settings": {
   	 "never-installed-ttl":"NUMBER OF HOURS POST WHICH PASS RECORDS WILL BE ARCHIVED IF NOT INSTALLED", //either this or below option can bet set
   	 "never-installed-archive-timestamp": "TIMESTAMP WHEN NON INSTALLED PASS RECORDS ARE TO BE ARCHIVED",
   	 "expired-pass-ttl": "NUMBER OF HOURS POST WHICH EXPIRED PASSES WILL BE ARCHIVED",
   	 "redeemed-pass-ttl": "NUMBER OF HOURS POST WHICH REDEEMED PASSES WILL BE ARCHIVED",
   	 "voided-pass-ttl": "NUMBER OF HOURS POST WHICH VOIDED PASSES WILL BE ARCHIVED"
    }
}

Request Example: Loyalty Card Layout 1

{ 
    "action":"createPassTemplate",
    "api-key":"UX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "pass-template-type":"loyalty",
    "pass-template-name":"Loyakty card-5",
    "appearance":{ 
        "program-logo":"https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
        "program-logo-gpay":"https://www.freepngimg.com/thumb/photo%20camera/2-photo-camera-png-image.png",
        "card-issuer":"Loyal-1",
        "strip-image":"https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
        "background-color":"#030000"
    },
    "universal-fields":{ 
        "loyalty-points-label":"Policy Number",
        "loyalty-points":"236502",
        "program-name":"Skycore Auto",
        "secondary-loyalty-points-label":"Valid Until",
        "secondary-loyalty-points":"10-22-2020",
        "account-name-label":"Insured",
        "account-name":"JOY",
        "account-id-label":"Owner",
        "account-id":"James",
        "rewards-tier-label":"Effective",
        "rewards-tier":"10/01/2018",
        "message1-label":"Vehicle Covered",
        "message1":"2012 Jeep Liberty Unlimited VIN:00279021",
        "message2-label":"Agent",
        "message2":"Matt Johnson 397 Moody Street",
        "message3-label":"NAIC Number",
        "message3":"213213",
        "text-module-label":"Disclaimer",
        "text-module":"This insurance card was created for demo purposes only.",
        "info-module-label":"Check up center",
        "info-module":"397 Moody Street",
        "home-page-uri-label":"online website",
        "home-page-uri":"https://www.skycore.com/",
        "link1-label":"Link-1",
        "link1":"joy@gmail.com",
        "link1-type":"email",
        "link2-label":"phone",
        "link2":"98797",
        "link2-type":"phone"
    },
    "apple-wallet-fields":{ 
        "text-color":"",
        "description":"Pass wallet by skycore",
        "linked-apps":"123213",
        "ibeacons":[ 
            { 
                "proximity-uuid":"233233",
                "major":"123123",
                "minor":"34234",
                "relevant-text":"Come use your card"
            },
            { 
                "proximity-uuid":"2112312",
                "major":"23232",
                "minor":"231321",
                "relevant-text":"Come use your card!"
            }
        ]
    },
    "gpay-fields":{ 
        "additional-image":"https://www.freepngimg.com/thumb/photo%20camera/2-photo-camera-png-image.png",
        "additional-image-text":"Image Description"
    },
    "expiration-fields":{ 
        "expiry-date":"12/30/2020 6:00 PM",
        "expiry-timezone":"Asia/Kolkata"
    },
    "barcode-fields":{ 
        "barcode-type":"CODE128",
        "barcode-value":"123123",
        "autogenerate-barcode-values":true,
        "autogenerate-barcode-value-type":"Alphabet",
        "autogenerate-barcode-value-length":"10"
    },
    "relevant-locations":[ 
        { 
            "latitude":"32.22",
            "longitude":"45.89",
            "relevant-text":"Come use your card!"
        },
        { 
            "latitude":"45.63",
            "longitude":"74.32",
            "relevant-text":"Come use your card!"
        }
    ],
    "disable-pass-sharing":false,
    "pass-data-archive-settings":{ 
        "never-installed-ttl":"1",
        "never-installed-archive-timestamp":"2/1/2020 11:19 AM",
        "expired-pass-ttl":"1",
        "redeemed-pass-ttl":"1",
        "voided-pass-ttl":"1"
    }
}

Response Success Example:

{ 
    "status":"Success",
    "pass-template-type":"loyalty",
    "pass-template-name":"Loyakty card-5",
    "pass-template-id":"d140a5168fe68923f1233719e1627e169baed3fde"
}

Response Failure Example:

{ 
    "status":"Failure",
    "error-code":"E922",
    "error-message":"The link1-type value is invalid."
}

6.1.8.UpdatePassTemplate #

The UpdatePassTemplate API is used to update an existing Pass Template for a loyalty card layout 1 Pass.

Request: Loyalty Card Layout 1

{
  	 "action": "updatePassTemplate",
         "api-key": "API KEY",
  	 "pass-template-type": "loyalty",
  	 "pass-template-name": "Pass Template Name",
	"appearance": {
   	 "program-logo": "IMAGE PATH",
   	 "program-logo-gpay": "IMAGE PATH",
   	 "card-issuer": "MERCHANT NAME",
   	 "strip-image": "IMAGE PATH",
   	 "background-color": "COLOR HASH CODE"
    },
    "universal-fields": {
   	 "loyalty-points-label": "LOYALTY POINTS LABEL",
   	 "loyalty-points": "LOYALTY POINTS VALUE",
   	 "program-name": "LOYALTY PROGRAM NAME",
   	 "secondary-loyalty-points-label": "SECONDARY LOYALTY POINTS LABEL",
   	 "secondary-loyalty-points": "SECONDARY LOYALTY POINTS VALUE",
   	 "account-name-label": "ACCOUNT NAME LABEL",
   	 "account-name": "ACCOUNT NAME VALUE",
   	 "account-id-label": "ACCOUNT ID LABEL",   
   	 "account-id": "ACCOUNT ID VALUE",    
   	 "rewards-tier-label": "REWARDS TIER LABEL",
   	 "rewards-tier": "REWARDS TIER VALUE",
     	 "message1-label": "MESSAGE 1 LABEL",
    	"message1": "MESSAGE 1 TEXT",   	 
    	"message2-label": "MESSAGE 2 LABEL",
    	"message2": "MESSAGE 2 TEXT",
   	 "message3-label": "MESSAGE 3 LABEL",
    	"message3": "MESSAGE 3 TEXT",
    	"text-module-label": "TEXT MODULE LABEL",
    	"text-module": "TEXT MODULE VALUE",
    	"info-module-label": "INFO MODULE LABEL",
    	"info-module": "INFO MODULE VALUE",
    	"home-page-uri-label": "TEXT FOR HOME PAGE URI",
    	"home-page-uri": "HOME PAGE LINK",
  		 "link1-label": "TEXT FOR ADDITIONAL LINK 1",
    	"link1": "ADDITIONAL LINK 1",
   	 "link1-type": "TYPE OF LINK",
  		 "link2-label": "TEXT FOR ADDITIONAL LINK 2",
  		 "link2": "ADDITIONAL LINK 2",
   	 "link2-type": "TYPE OF LINK"
    },
    "apple-wallet-fields": {
   	 "text-color": "COLOR HASH CODE",
   	 "description": "Pass description used for VoiceOver Information",
   	 "linked-apps": "COMMA SEPARATED LIST OF ITUNES STORE ID",
   	 "ibeacons": [{  
   		 "proximity-uuid":"UUID VALUE",
   	 	"major":"MAJOR VALUE",
   	 	"minor":"MINOR VALUE",
   	   	 "relevant-text":"RELEVANCE TEXT"
    	},
   	 {  
   	 	"proximity-uuid":"UUID VALUE",
   	 	"major":"MAJOR VALUE",
   	 	"minor":"MINOR VALUE",
   	 	"relevant-text":"RELEVANCE TEXT"
    	},
		 ]
    },
    "gpay-fields": {
   	 "additional-image": "ADDITIONAL IMAGE URL",
   	 "additional-image-text": "Image Description"
    },
    "expiration-fields": {
    	"expiry-date": "EXPIRATION TIMESTAMP",
    	"expiry-timezone": "VALID TIMEZONE NAME"
    },
    "barcode-fields": {
   	 "barcode-type": "BARCODE TYPE",
   	 "barcode-value": "DEFAULT BARCODE VALUE",    
   	 "autogenerate-barcode-values":true, // boolean
   	 "autogenerate-barcode-value-type": "VALUE TYPE FOR AUTO GENERATED BARCODES",
   	 "autogenerate-barcode-value-length": "LENGTH OF AUTO GENERATED BARCODE VALUES"
    },
	"relevant-locations": [{
    	"latitude":"COORDINATES",
    	"longitude":"COORDINATES",
    	"relevant-text":"RELEVANCE TEXT"
	},
	{
   	 "latitude":"COORDINATES",
    	"longitude":"COORDINATES",
    	"relevant-text":"RELEVANCE TEXT"
	},
	. . .
	],
    "disable-pass-sharing":"TRUE OR FALSE",
    "pass-data-archive-settings": {
   	 "never-installed-ttl":"NUMBER OF HOURS POST WHICH PASS RECORDS WILL BE ARCHIVED IF NOT INSTALLED", //either this or below option can bet set
   	 "never-installed-archive-timestamp": "TIMESTAMP WHEN NON INSTALLED PASS RECORDS ARE TO BE ARCHIVED",
   	 "expired-pass-ttl": "NUMBER OF HOURS POST WHICH EXPIRED PASSES WILL BE ARCHIVED",
   	 "redeemed-pass-ttl": "NUMBER OF HOURS POST WHICH REDEEMED PASSES WILL BE ARCHIVED",
   	 "voided-pass-ttl": "NUMBER OF HOURS POST WHICH VOIDED PASSES WILL BE ARCHIVED"
    }
}

Request Example: Loyalty Card Layout 1

{ 
    "action":"updatePassTemplate",
    "api-key":"UX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "pass-template-type":"loyalty",
    "pass-template-name":"Loyakty card-5",
    "appearance":{ 
        "program-logo":"https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
        "program-logo-gpay":"https://www.freepngimg.com/thumb/photo%20camera/2-photo-camera-png-image.png",
        "card-issuer":"Loyal-1",
        "strip-image":"https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
        "background-color":"#030000"
    },
    "universal-fields":{ 
        "loyalty-points-label":"Policy Number",
        "loyalty-points":"236502",
        "program-name":"Skycore Auto",
        "secondary-loyalty-points-label":"Valid Until",
        "secondary-loyalty-points":"10-22-2020",
        "account-name-label":"Insured",
        "account-name":"JOY",
        "account-id-label":"Owner",
        "account-id":"James",
        "rewards-tier-label":"Effective",
        "rewards-tier":"10/01/2018",
        "message1-label":"Vehicle Covered",
        "message1":"2012 Jeep Liberty Unlimited VIN:00279021",
        "message2-label":"Agent",
        "message2":"Matt Johnson 397 Moody Street",
        "message3-label":"NAIC Number",
        "message3":"213213",
        "text-module-label":"Disclaimer",
        "text-module":"This insurance card was created for demo purposes only.",
        "info-module-label":"Check up center",
        "info-module":"397 Moody Street",
        "home-page-uri-label":"online website",
        "home-page-uri":"https://www.skycore.com/",
        "link1-label":"Link-1",
        "link1":"joy@gmail.com",
        "link1-type":"email",
        "link2-label":"phone",
        "link2":"98797",
        "link2-type":"phone"
    },
    "apple-wallet-fields":{ 
        "text-color":"",
        "description":"Pass wallet by skycore",
        "linked-apps":"123213",
        "ibeacons":[ 
            { 
                "proximity-uuid":"233233",
                "major":"123123",
                "minor":"34234",
                "relevant-text":"Come use your card"
            },
            { 
                "proximity-uuid":"2112312",
                "major":"23232",
                "minor":"231321",
                "relevant-text":"Come use your card!"
            }
        ]
    },
    "gpay-fields":{ 
        "additional-image":"https://www.freepngimg.com/thumb/photo%20camera/2-photo-camera-png-image.png",
        "additional-image-text":"Image Description"
    },
    "expiration-fields":{ 
        "expiry-date":"12/30/2020 6:00 PM",
        "expiry-timezone":"Asia/Kolkata"
    },
    "barcode-fields":{ 
        "barcode-type":"CODE128",
        "barcode-value":"123123",
        "autogenerate-barcode-values":true,
        "autogenerate-barcode-value-type":"Alphabet",
        "autogenerate-barcode-value-length":"10"
    },
    "relevant-locations":[ 
        { 
            "latitude":"32.22",
            "longitude":"45.89",
            "relevant-text":"Come use your card!"
        },
        { 
            "latitude":"45.63",
            "longitude":"74.32",
            "relevant-text":"Come use your card!"
        }
    ],
    "disable-pass-sharing":false,
    "pass-data-archive-settings":{ 
        "never-installed-ttl":"1",
        "never-installed-archive-timestamp":"2/1/2020 11:19 AM",
        "expired-pass-ttl":"1",
        "redeemed-pass-ttl":"1",
        "voided-pass-ttl":"1"
    }
}

Response Success Example:

{ 
    "status":"Success",
    "pass-template-type":"loyalty",
    "pass-template-name":"Loyakty card-5",
    "pass-template-id":"d140a5168fe68923f1233719e1627e169baed3fde"
}

Response Failure Example:

{ 
    "status":"Failure",
    "error-code":"E922",
    "error-message":"The link1-type value is invalid."
}

6.2.Introduction to Loyalty Card Layout 2 #

The following image shows where the fields used in the API calls will appear on the loyalty card layout 2 for both Apple Wallet and Google Pay. Any fields shown on the loyalty card layout 2 but not linked to the key in the image are required in the Pass Template Builder, therefore, they will always be shown on the pass. In this case, those fields are the Card Issuer and Program Name.

loyalty card layout 2

The following table provides a detailed description of certain variables that can be used in each API call for the loyalty card layout 2. The following text fields from the Pass Template Builder are not dynamic, therefore, you will not see these fields in the API calls for the loyalty card layout 2: Card Issuer, Program Name, Rewards Tier, Secondary Rewards Tier, Message 1, Message 2, Message 3, Text Module, Info Module, Home Page URI, Link 1 and Link 2. The format column explains whether the variable is mandatory or optional.

Params/VariablesFormatDescription
actionMandatory, Alphabetic

(a-zA-Z)

This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

This is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-idMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

The unique Pass Template ID used to reference a particular Pass Template.
pass-idMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

The identifier from your system to identify the pass or pass data uniquely.
reference-dataOptional, Alphanumeric

(a-zA-Z0-9)

This is used for adding additional information related to the pass.
barcode-valueOptional, Alphanumeric

(a-zA-Z0-9)

The unique barcode value associated with a specific pass-id.
expiration-timestampOptional.

“expiration-timestamp” should be in UTC.

Example: 2013-02-19T15:54:50Z

The timezone offset is ignored and always considers the timestamp in UTC.
expiration-timezoneOptional.

“expiration-timezone” should be in long name format.

Example: America/New_York

Use the long names listed in section 9.1 for your reference.
loyalty-pointsOptional, Alphanumeric

(a-zA-Z0-9)

The number of loyalty points, such as ‘100’. Special characters are allowed for this field.
secondary-loyalty-pointsOptional, Alphanumeric

(a-zA-Z0-9)

The secondary loyalty points field, if applicable,  such as ‘$5’. Special characters are allowed for this field.
account-nameOptional, Alphanumeric

(a-zA-Z0-9)

The account or member name associated with the pass-id.
account-idOptional, Alphanumeric

(a-zA-Z0-9)

The account or member ID number associated with the pass-id.
custom-field-1Optional, Alphanumeric

(a-zA-Z0-9)

custom-field-2Optional, Alphanumeric

(a-zA-Z0-9)

custom-field-3Optional, Alphanumeric

(a-zA-Z0-9)

relevant-locations (1-10)

(relevant-1, relevant-2, etc..)

Optional, Alphanumeric

(a-zA-Z0-9)

Format:
“key”:”relevant-1″,
“latitude”:”COORDINATES”,
“longitude”:”COORDINATES”,
“relevant-text”:”RELEVANCE TEXT”

Custom relevant text is only applicable for Apple Wallet Passes. If you set a relevant location, Android devices will display default text. When adding more than one relevant location, be sure to change the “key” to relevant-2, relevant-3, etc..
ibeacons (1-10)

(ibeacon-1, ibeacon-2, etc..)

Optional, Alphanumeric

(a-zA-Z0-9)

Format:
“key”:”ibeacon-1″,
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”

ibeacons are only applicable for Apple Wallet Passes. When adding more than one ibeacon, be sure to change the “key” to ibeacon-2, ibeacon-3, etc..

6.2.1.GeneratePass #

The generate pass API will generate a unique installation link for a loyalty card. If you try to call this API again without changing the ‘pass-id’ field, it will return an error message and fail to generate the installation link for the loyalty card. To call this API again successfully, you will need to use a different ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request: Loyalty Card Layout 2

{  
   "action":"generatepass",
   "api-key":"API KEY",
   "pass-template-id":"PASS TEMPLATE ID",
   "pass-id":"UNIQUE CUSTOMER PASS ID",
   "reference-data": {
     "Reference": "reference data of the customer",
		     },
   "pass-data":{  
      "barcode-value":"BARCODE VALUE",
      "loyalty-points":"LOYALTY POINTS VALUE",
      "secondary-loyalty-points":"SECONDARY LOYALTY POINTS VALUE",
      "account-name":"ACCOUNT NAME VALUE",
      "account-id":"ACCOUNT ID VALUE",
      "custom-field-1": "CUSTOM VALUE FOR FIELD 1",
      "custom-field-2": "CUSTOM VALUE FOR FIELD 2",
      "custom-field-3": "CUSTOM VALUE FOR FIELD 3",
      "additional-image":"ADDITIONAL IMAGE",
      "expiration-timestamp”: "EXPIRATION TIMESTAMP”,
      "expiration-timezone":"TIMEZONE",
      "relevant-locations":[        	// 10 fields         
         { 
            "key":"relevant-1",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         { 
            "key":"relevant-2",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         …
      ],
      "ibeacons":[                    	 // 10 fields         
        { 
            "key":"ibeacon-1",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
        { 
            "key":"ibeacon-2",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
        …
      ]
   }
}

 

Request Example: Loyalty Card Layout 2

{  
   "action":"generatepass",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj",
   "pass-template-id":"b2ab228987f9f759b1dfc473e261330410a0f41",
   "pass-id":"Loyalty Card_1",
   "reference-data": {
      "email": "joy@gmail.com",
      "phone": "61855742",
      "transaction-id": "96"
		     },
   "pass-data":{  
      "barcode-value":"ASDE96325",
      "loyalty-points":"65",
      "secondary-loyalty-points":"94",
      "account-name":"Asian Store",
      "account-id":"56984",
      "custom-field-1": "Popcorn Festival",
      "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
      "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
      "expiration-timezone":"Australia/Sydney",
      "relevant-locations":[  
         { 
            "key":"relevant-1",
            "latitude":"42.369169",
            "longitude":"-71.237371",
            "relevant-text":"Come grab some popcorn!"
         }
      ],
      "ibeacons":[  
         { 
            "key":"ibeacon-1",
            "proximity-uuid":"111111",
            "major":"222222",
            "minor":"3333333",
            "relevant-text":"Come grab some popcorn!"
         }
      ]
   }
}

 

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
   "pass-install-url":"https://d2c.skycore.com/wallet/dc/eazt0sq3r4",
  "tracking-id":"EDRZKf-JTDiY-EJZ"
}

Response Failure Example:

{
    "status":"Failure",
    "error-code":"E830",
    "error-message":"Internal Error. The pass was not generated.",
    "pass-id":"rockonrock2020"
}

6.2.2.UpdataPassData #

The update pass data API is used to update pass data for a loyalty card that has already been installed on a device. If you do not add a new “pass-id’ for the loyalty card, you will receive an error message and the loyalty card will not be updated until you add a new ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template. The field for ‘pass-status’ will accept the following values: “redeemed”, “expired”, “voided”, “active”.

Request: Loyalty Card Layout 2

{  
    "action":"updatepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID",
    "new-pass-id ":"NEW UNIQUE CUSTOMER PASS ID",
    "priority":"PRIORITY",
    "pass-data":{  
        "barcode-value":"BARCODE VALUE",
        "loyalty-points":"LOYALTY POINTS VALUE",
        "secondary-loyalty-points":"SECONDARY LOYALTY POINTS VALUE",
        "account-name":"ACCOUNT NAME VALUE",
        "account-id":"ACCOUNT ID VALUE",
   	"custom-field-1": "CUSTOM VALUE FOR FIELD 1",
   	"custom-field-2": "CUSTOM VALUE FOR FIELD 2",
   	"custom-field-3": "CUSTOM VALUE FOR FIELD 3",
        "additional-image":"ADDITIONAL IMAGE",  
        "pass-status":"STATUS OF THE PASS",
        "expiration-timestamp”:”EXPIRATION TIMESTAMP”,  
        "expiration-timezone":"TIMEZONE",   
        "pass-update-notification":"NOTIFICATION FOR PASS UPDATE",
   	"relevant-locations":[     	        // 10 fields            
            {  
                "key":"relevant-1",
                "latitude":"COORDINATES",
                "longitude":"COORDINATES",
                "relevant-text":"RELEVANCE TEXT"
            },
            {  
                "key":"relevant-2",
                "latitude":"COORDINATES",
                "longitude":"COORDINATES",
                "relevant-text":"RELEVANCE TEXT"
            },
            …
        ],
  	   "ibeacons":[            	              // 10 fields            
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"UUID VALUE",
                "major":"MAJOR VALUE",
                "minor":"MINOR VALUE",
                "relevant-text":"RELEVANCE TEXT"
            },
            {  
                "key":"ibeacon-2",
                "proximity-uuid":"UUID VALUE",
                "major":"MAJOR VALUE",
                "minor":"MINOR VALUE",
                "relevant-text":"RELEVANCE TEXT"
            },
            …
        ]
    }
}

 

Request Example: Loyalty Card Layout 2

{  
    "action":"updatepassdata",
    "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "pass-id":"Loyalty Card_1",
    "new-pass-id":" Loyalty Card_2",
    "priority":"true",
    "pass-data":{  
        "barcode-value":"ASDE96325",
        "loyalty-points":"65",
        "secondary-loyalty-points":"94",
        "account-name":"Asian Store",
        "account-id":"56984",
   	"custom-field-1": "Feb 3, 2020",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "pass-status":"active",
        "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
        "expiration-timezone":"Australia/Sydney",
        "pass-update-notification":"Pass has been updated with new values",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.369169",
                "longitude":"-71.237371",
                "relevant-text":"Come grab some popcorn!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    }
}

 

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
    "tracking-id":"EDRYpq-GAxbE-EKE"
}

Response Failure Example:

{
    "status" : "Failure",
    "error-code" : "E809",
    "error-message" : "Internal Error. The pass was not updated.",
    "pass-id":"rockonrock2020"
}

6.2.3.GetPassData #

The get pass data API is used to retrieve data for a specific loyalty card that has already been installed on a device. This data may include the cardholder name, points balance, or rewards tier. If you do not enter the correct ‘pass-id’ for the loyalty card that you are trying to retrieve, you will receive an error code. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request: Loyalty Card Layout 2

{
    "action":"getpassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID"
}

Request Example: Loyalty Card Layout 2

{  
   "action":"getpassdata",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-id":"rockonrock2020"
}

Response Success Example:

{  
    "status":"Success",
    "pass-id":"16178389325c2f4bcc68660",
    "pass-template-id":"60c4fb740f5a3a4c6bb7f1170d8b982b0ceb6b4",
    "pass-data":{  
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "pass-issuer":"Loyalty Card 24-12",
        "strip-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c952ceed.png",
        "barcode-value":"ASDH678",
        "barcode-text":"CODE963",
        "loyalty-points":"8965",
        "secondary-loyalty-points":"699",
        "account-name":"334234",
        "account-id":"3123",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”:null,
        "rewards-tier":"3123",
        "secondary-rewards-tier":"3123",
        "message1":"hiii",
        "message2":"hiii",
        "message3":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://www.skycore.com",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E808",
    "error-message":"The pass-id value is invalid.",
    "pass-id":"rockonrock2020"
}

6.2.4.GetPassTemplate #

The get Pass Template API is used to retrieve a specific loyalty card Pass Template. To retrieve the specific loyalty card Pass Template you will need the correct ‘pass-template-id’ associated with the Pass Template.

Request: Loyalty Card Layout 2

{
    "action":"getpasstemplate",
    "api-key":"API KEY",
    "pass-template-id":"CARD TEMPLATE ID"
}

Request Example: Loyalty Card Layout 2

{  
   "action":"getpasstemplate",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41"
}

Response Success Example:

{  
    "status":"Success",
    "pass-template-id":"994e45e3053962fc2f4c4e9911ff1f518052afa3",
    "pass-template":{  
        "pass-name":"Loyalty Card 24-12",
        "pass-type":"Loyalty Card",
        "organization":"JOY",
        "description":"Mobile Wallet Card by JOY",
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "pass-issuer":"Loyalty Card 24-12",
        "strip-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c952ceed.png",
        "barcode-value":"ASDH678",
        "barcode-text":"CODE963",
        "custom-field-1": "James",
        "custom-field-2": "121321313",
        "account-name":"334234",
        "account-id":"3123",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”:null,
        "rewards-tier":"3123",
        "secondary-rewards-tier":"3123",
        "message1":"hiii",
        "message2":"hiii",
        "message3":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://www.skycore.com",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E802",
    "error-message":"The pass-template-id value is invalid.",
    "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41"
}

7.Coupon #

7.1.Introduction to Coupons #

The following image shows where the fields used in the API calls will appear on coupons for both Apple Wallet and Google Pay. Any fields shown on coupons but not linked to the key in the image are required in the Pass Template Builder, therefore, they will always be shown on the pass. In this case, those fields are Card Issuer, Offer Title, and From.

Mobile Wallet Coupon

The following table provides a detailed description of certain variables that can be used in each API call for coupons. The following text fields from the Pass Template Builder are not dynamic, therefore, you will not see these fields in the API calls for coupons: Card Issuer, Offer Title, Offer Details, Fine Print, Offer Provider, Message 1, Message 2, Message 3, Text Module, Info Module, Home Page URI, Help URI, Link 1 and Link 2. The format column explains whether the variable is mandatory or optional.

Params/VariablesFormatDescription
actionMandatory, Alphabetic

(a-zA-Z)

This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

This is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-idMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

The unique Pass Template ID used to reference a particular Pass Template.
pass-idMandatory, Alphanumeric

(a-zA-Z0-9), Case-Sensitive

The identifier from your system to identify the pass or pass data uniquely.
reference-dataOptional, Alphanumeric

(a-zA-Z0-9)

This is used for adding additional information related to the pass.
barcode-valueOptional, Alphanumeric

(a-zA-Z0-9)

The unique barcode value associated with a specific pass-id.
expiration-timestampOptional.

“expiration-timestamp” should be in UTC.

Example: 2013-02-19T15:54:50Z

The timezone offset is ignored and always considers the timestamp in UTC.
expiration-timezoneOptional.

“expiration-timezone” should be in long name format.

Example: America/New_York

Use the long names listed in section 9.1 for your reference.
relevant-locations (1-10)

(relevant-1, relevant-2, etc..)

Optional, Alphanumeric

(a-zA-Z0-9)

Format:
“key”:”relevant-1″,
“latitude”:”COORDINATES”,
“longitude”:”COORDINATES”,
“relevant-text”:”RELEVANCE TEXT”

Custom relevant text is only applicable for Apple Wallet Passes. If you set a relevant location, Android devices will display default text. When adding more than one relevant location, be sure to change the “key” to relevant-2, relevant-3, etc..
ibeacons (1-10)

(ibeacon-1, ibeacon-2, etc..)

Optional, Alphanumeric

(a-zA-Z0-9)

Format:
“key”:”ibeacon-1″,
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”

ibeacons are only applicable for Apple Wallet Passes. When adding more than one ibeacon, be sure to change the “key” to ibeacon-2, ibeacon-3, etc..

7.2.GeneratePass #

The generate pass API will generate an installation link for a coupon. If you try to call this API again without changing the ‘pass-id’ field, it will return an error message and fail to generate the installation link for the coupon. To call this API again successfully, you will need to use a different ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request: Coupon

{  
   "action":"generatepass",
   "api-key":"API KEY",
   "pass-template-id":"PASS TEMPLATE ID",
   "pass-id":"UNIQUE CUSTOMER PASS ID",
   "reference-data": {
      "Reference": "reference data of the customer",
		     },
   "pass-data":{  
      "barcode-value":"BARCODE VALUE",
      "additional-image":"ADDITIONAL IMAGE",
      "expiration-timestamp”:”EXPIRATION TIMESTAMP”,
      "expiration-timezone":"TIMEZONE",
       "relevant-locations":[       	// 10 fields         
         { 
            "key":"relevant-1",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         { 
            "key":"relevant-2",
            "latitude":"COORDINATES",
            "longitude":"COORDINATES",
            "relevant-text":"RELEVANCE TEXT"
         },
         …
      ],
      "ibeacons":[                    	 // 10 fields         
        { 
            "key":"ibeacon-1",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
        { 
            "key":"ibeacon-2",
            "proximity-uuid":"UUID VALUE",
            "major":"MAJOR VALUE",
            "minor":"MINOR VALUE",
            "relevant-text":"RELEVANCE TEXT"
         },
        …
      ]
   }
}

Request Example: Coupon

{  
   "action":"generatepass",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj",
   "pass-template-id":"b2ab228987f9f759b1dfc473e261330410a0f41",
   "pass-id":"Coupon_1",
   "reference-data": {
      "email": "joy@gmail.com",
      "phone": "61855742",
      "transaction-id": "96"
		     },
   "pass-data":{  
      "barcode-value":"ASDE96325",
      "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
      "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
      "expiration-timezone":"Australia/Sydney",
      "relevant-locations":[  
         { 
            "key":"relevant-1",
            "latitude":"42.369169",
            "longitude":"-71.237371",
            "relevant-text":"Come grab some popcorn!"
         }
      ],
      "ibeacons":[  
         { 
            "key":"ibeacon-1",
            "proximity-uuid":"111111",
            "major":"222222",
            "minor":"3333333",
            "relevant-text":"Come grab some popcorn!"
         }
      ]
   }
}

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
   "pass-install-url":"https://d2c.skycore.com/wallet/dc/eazt0sq3r4",
   "tracking-id":"EDRZKf-JTDiY-EJZ"
}

Response Failure Example:

{
    "status":"Failure",
    "error-code":"E830",
    "error-message":"Internal Error. The pass was not generated.",
     "pass-id":"rockonrock2020"
}

7.3.UpdatePassData #

The update pass data API is used to update pass data for a coupon that has already been installed on a device. If you do not add a new “pass-id’ for the coupon, you will receive an error message and the coupon will not be updated until you add a new ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template. The field for ‘pass-status’ will accept the following values: “redeemed”, “expired”, “voided”, “active”.

Request: Coupon

{  
    "action":"updatepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID",
    "new-pass-id ":"NEW UNIQUE CUSTOMER PASS ID",
    "priority":"PRIORITY",
    "pass-data":{  
        "barcode-value":"BARCODE VALUE",
        "additional-image":"ADDITIONAL IMAGE",
        "pass-status":"STATUS OF THE PASS",
        "expiration-timestamp”:”EXPIRATION TIMESTAMP”,
        "expiration-timezone":"TIMEZONE", 
        "pass-update-notification":"NOTIFICATION FOR PASS UPDATE",
        "relevant-locations":[        	// 10 fields            
            {  
                "key":"relevant-1",
                "latitude":"COORDINATES",
                "longitude":"COORDINATES",
                "relevant-text":"RELEVANCE TEXT"
            },
            {  
                "key":"relevant-2",
                "latitude":"COORDINATES",
                "longitude":"COORDINATES",
                "relevant-text":"RELEVANCE TEXT"
            },
            …
        ],
  	   "ibeacons":[            	            // 10 fields            
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"UUID VALUE",
                "major":"MAJOR VALUE",
                "minor":"MINOR VALUE",
                "relevant-text":"RELEVANCE TEXT"
            },
            {  
                "key":"ibeacon-2",
                "proximity-uuid":"UUID VALUE",
                "major":"MAJOR VALUE",
                "minor":"MINOR VALUE",
                "relevant-text":"RELEVANCE TEXT"
            },
            …
        ]
    }
}

 

Request Example: Coupon

{  
    "action":"updatepassdata",
    "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "pass-id":"Coupon_1",
    "new-pass-id":"Coupon_2",
    "priority":"true",
    "pass-data":{  
        "barcode-value":"ASDE96325",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
          "pass-status":"active",
          "expiration-timestamp":"2019-06-15T10:46:46+00:00",
          "expiration-timezone":"Australia/Sydney",
          "pass-update-notification":"Pass has been updated with new values",
         "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.369169",
                "longitude":"-71.237371",
                "relevant-text":"Come grab some popcorn!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn!"
            }
        ]
    }
}

 

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
    "tracking-id":"EDRYpq-GAxbE-EKE"
}

Response Failure Example:

{
    "status" : "Failure",
    "error-code" : "E809",
    "error-message" : "Internal Error. The pass was not updated.",
    "pass-id":"rockonrock2020"
}

7.4.GetPassData #

The get pass data API is used to retrieve data for a specific coupon that has already been installed on a device. If you do not enter the correct ‘pass-id’ for the coupon that you are trying to retrieve, you will receive an error code. Please note that the ‘pass-id’ is unique per account, not per Pass Template.

Request

{
    "action":"getpassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER PASS ID"
}

Request Example

{  
   "action":"getpassdata",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-id":"rockonrock2020"
}

Response Success Example: Coupon

{  
    "status":"Success",
    "pass-id":"16178389325c2f4bcc68660",
    "pass-template-id":"70c4fb740f5a3a4c6bb7f1170d8b982b0ceb6b4",
    "pass-data":{  
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "pass-issuer":"Loyalty Card 24-12",
        "strip-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c952ceed.png",
        "barcode-value":"ASDH678",
        "barcode-text":"CODE963",
        "offer-title":"PIZZA", 
        "offer-details":"coupon gets expired after two days",
        "offer-terms":"coupon gets expired after two days.",
        "offer-provider":"PIZZA",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”:”"2019-02-01T10:46:46+00:00”,
        "message1":"hiii",
        "message2":"hiii",
        "message3":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://www.skycore.com",
        "help-URI":"https://www.skycore.com",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

{
    "status":"FAILURE",
    "error-code":"E808",
    "error-message":"The pass-id value is invalid.",
 "pass-id":"rockonrock2020"
}

7.5.GetPassTemplate #

The get Pass Template API is used to retrieve a specific coupon Pass Template. To retrieve the specific coupon Pass Template you will need the correct ‘pass-template-id’ associated with the Pass Template.

Request:

{
    "action":"getpasstemplate",
    "api-key":"API KEY",
    "pass-template-id":"CARD TEMPLATE ID"
}

Request Example:

{  
   "action":"getpasstemplate",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41"
}

Response Success Example: Coupon

{  
    "status":"Success",
    "pass-template-id":"8e29e00dcb0d9c7b434e49ca10cfbd83c31582a",
    "pass-template":{  
        "pass-name":"Coupon 24-12",
        "pass-type":"Coupon",
        "organization":"JOY",
        "description":"Mobile Wallet Card by JOY",
        "logo-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
 "strip-url":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c952ceed.png",
        "pass-issuer":"Loyalty Card 24-12",
        "barcode-value":"ASDH678",
        "barcode-text":"CODE963",
        "offer-title":"699",
        "offer-details":"coupon gets expired after two days",
        "offer-terms":"coupon gets expired after two days.",
        "offer-provider":"PIZZA",
        "additional-image":"https://messagecontent-dev-public.s3.amazonaws.com/userdata/KIyP1igJTbDm/passes/images/0a1efdaa60c78c46cdee036c2f0858de-5c209c86a91aa.png",
        "expiration-timestamp”: "2019-02-01T10:46:46+00:00”,
        "message1":"hiii",
        "message2":"hiii",
        "message3":"price",
        "text-message":"hi all",
        "info-message":"deals",
        "link1-URI":"tel://90290",
        "link2-URI":"geo://36.9665,45.6666",
        "home-page-URI":"https://www.skycore.com",
        "help-URI":"https://www.skycore.com",
        "relevant-locations":[  
            {  
                "key":"relevant-1",
                "latitude":"42.3959218",
                "longitude":"-71.1283257",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ],
        "ibeacons":[  
            {  
                "key":"ibeacon-1",
                "proximity-uuid":"111111",
                "major":"222222",
                "minor":"3333333",
                "relevant-text":"Come grab some popcorn before your movie starts!"
            }
        ]
    }
}

Response Failure Example:

Copy to Clipboard

7.8.CreatePassTemplate #

The CreatePassTemplate API is used to create a Pass Template for a coupon Pass. The following table provides a detailed description of certain variables that can be used in each API call to create or update Pass Templates for coupons. The required params for a coupon Pass Template are: action, api-key, pass-template-type, pass-template-name, card-issuer, background-color, offer-title, offer-provider, barcode-type, text-color, description

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-typeMandatory, The expected value is “gift-card”This defines the type of Pass that will be used for creating the Pass Template.
pass-template-nameMandatory, Alphanumeric (A-Za-z0-9)This is used as an internal name to identify the Pass Template.
title-imageOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Apple Wallet Passes. Rectangular images are required
title-image-gpayOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Google passes. Circular images are preferred. Any image that is not circular will be masked into a circular image.
card-issuerMandatory, Alphanumeric (A-Za-z0-9)This is the card-issuer for the coupon. If “title-image” is set then this value won’t be displayed on Apple Wallet Passes.
strip-imageOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThe strip image is displayed below the logo and issuer name on both Apple Wallet and Google Pay Passes, as a rectangular image across the middle of the Pass.
background-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the background color of the Pass, for both Apple Wallet and Google Pay Passes.
offer-titleMandatory, Alphanumeric (A-Za-z0-9)The offer title.
offer-detailsMandatory, Alphanumeric (A-Za-z0-9)The details of the offer.
termsMandatory, Alphanumeric (A-Za-z0-9)The terms and conditions of the offer.
offer-providerMandatory, Alphanumeric (A-Za-z0-9)The offer provider name
message1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message1 field.
message1Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of Apple Pass, and below the pass for Google.
message2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message2 field.
message2Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of Apple Pass, and below the pass for Google.
message3-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message3 field.
message3Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of Apple Pass, and below the pass for Google.
text-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the text-module field.
text-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay.
info-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the info-module field.
info-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay. When the Pass Status is updated, this field value is updated with the appropriate message reflecting the status.
home-page-uri-labelOptional, Alphanumeric (A-Za-z0-9)The label for the home page URI.
home-page-uriOptional, Alphanumeric (A-Za-z0-9)This field is used to display any web page link which may contain any additional information about the Passes. The links are clickable on both Apple Wallet and Google Pay Passes and will open in a browser.
help-uri-labelOptional, Alphanumeric (A-Za-z0-9)The label for the help page URI.
help-uriOptional, Alphanumeric (A-Za-z0-9)This field is used to display any web page link which may contain any additional information about the Passes. The links are clickable on both Apple Wallet and Google Pay Passes and will open in a browser.
link1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link1 field.
link1-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link1 field value.
link1Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link1-type field, this field can have an email id, a geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link1-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
link2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link2 field.
link2-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link2 field value.
link2Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link2-type field, this field can have an email id, geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link2-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
text-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the text color for Apple Wallet Passes only. Google controls the color for the values displayed on the Google Pay Pass, which is either black or white, based on the background color of the Pass.
descriptionMandatory, Alphanumeric (A-Za-z0-9)This field provides a description for the pass, which is used as a voice-over to describe Passes for blind or low vision users for Apple Wallet Passes only.
linked-appsOptional, Alphanumeric (A-Za-z0-9)This is a comma-separated list of iTunes apps, which are displayed on the back of the apple passes.
ibeaconsOptional, Alphanumeric (A-Za-z0-9).Format:
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”
ibeacons are only applicable for Apple Wallet Passes. They are used to display messages on the lock screens of IOS mobile devices based on the values set.
additional-imageOptional, Alphanumeric (A-Za-z0-9). Web URLThis image is displayed only on Google Pay Passes, in the area below the pass in between the additional details.
additional-image-textOptional, Alphanumeric (A-Za-z0-9)This value provides information that is linked to the additional image.
expiry-dateOptional, Alphanumeric (A-Za-z0-9)

Format:
mm/dd/yyyy hour:min AM/PM

The date/time value for the Pass expiration, if not set specifically for individual Passes.
expiration-timezoneOptional, Alphanumeric (A-Za-z0-9)The timezone name. E.g. America/New_York. Use the long names listed in section 9.1.
barcode-typeMandatory, Alphabetic (A-Za-z). Accepted values: “QRCODE”, “AZTEC”, “PDF417”, or “CODE128”The barcode type for all Passes installed using this Pass Template.
barcode-valueOptional, Alphanumeric (A-Za-z0-9)This is the default barcode value, which will be used for Passes if no value is provided.
autogenerate-barcode-valuesOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”.This field defines if the barcode values will be generated automatically for Passes.
autogenerate-barcode-value-typeOptional, Alphabetic (A-Za-z). Accepted values: “Numeric”, “Alphabet”, or “Alphanumeric”.This field defines the type of barcode values that will be auto-generated for Passes if the autogenerate-barcode-values is set to “True”.
autogenerate-barcode-value-lengthOptional, Numeric (0-9). Accepted values: 10 – 100This field defines the length of the auto-generated barcode value for Passes if the autogenerate-barcode-values is set to “True”.
relevant-locationsOptional, Alphanumeric (a-zA-Z0-9)

Format:
“latitude”:”COORDINATES”, “longitude”:”COORDINATES”, “relevant-text”:”RELEVANCE TEXT”

These fields are used to display text information for Passes, when the device that the Pass is installed on is detected at the relevant location. The locations are defined by the latitude/longitude co-ordinates. The relevant-text is the message displayed for Apple Wallet Passes. For Google Pay Passes, a predefined message is displayed.
disable-pass-sharingOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”This field defines if Passes installed for this Pass Template can be installed on multiple devices or not.
never-installed-ttlOptional, Numeric (0-9)This field sets the number of hours post which an uninstalled pass will be archived.
never-installed-archive-timestampOptional, Numeric (0-9)This field, if set, defines the timestamp post which an uninstalled timestamp will be archived. This value will be considered if never-installed-ttl is also set.
expired-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which an expired pass will be archived.
redeemed-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a redeemed pass will be archived.
voided-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a voided pass will be archived.

Request: Coupon

{
  	 "action": "createPassTemplate",
         "api-key": "API KEY",
  	 "pass-template-type": "coupon",
  	 "pass-template-name": "Pass Template Name",
	"appearance": {
   	 "title-image": "IMAGE PATH",
   	 "title-image-gpay": "IMAGE PATH",
   	 "card-issuer": "MERCHANT NAME",
   	 "strip-image": "IMAGE PATH",
   	 "background-color": "COLOR HASH CODE"
    },
    "universal-fields": {
         "offer-title": "TITLE OF THE OFFER",
   	 "offer-details": "OFFER DETAILS",
   	 "terms": "TERMS OF THE OFFER",
   	 "offer-provider": "OFFER PROVIDER",
     	"message1-label": "MESSAGE 1 LABEL",
    	"message1": "MESSAGE 1 TEXT",   	 
    	"message2-label": "MESSAGE 2 LABEL",
    	"message2": "MESSAGE 2 TEXT",
   	 "message3-label": "MESSAGE 3 LABEL",
    	"message3": "MESSAGE 3 TEXT",
    	"text-module-label": "TEXT MODULE LABEL",
    	"text-module": "TEXT MODULE VALUE",
    	"info-module-label": "INFO MODULE LABEL",
    	"info-module": "INFO MODULE VALUE",
    	"home-page-uri-label": "TEXT FOR HOME PAGE URI",
    	"home-page-uri": "HOME PAGE LINK",
  		 "link1-label": "TEXT FOR ADDITIONAL LINK 1",
    	"link1": "ADDITIONAL LINK 1",
   	 "link1-type": "TYPE OF LINK",
  		 "link2-label": "TEXT FOR ADDITIONAL LINK 2",
  		 "link2": "ADDITIONAL LINK 2",
   	 "link2-type": "TYPE OF LINK"
    },
    "apple-wallet-fields": {
   	 "text-color": "COLOR HASH CODE",
   	 "description": "Pass description used for VoiceOver Information",
   	 "linked-apps": "COMMA SEPARATED LIST OF ITUNES STORE ID",
   	 "ibeacons": [{  
   		 "proximity-uuid":"UUID VALUE",
   	 	"major":"MAJOR VALUE",
   	 	"minor":"MINOR VALUE",
   	   	 "relevant-text":"RELEVANCE TEXT"
    	},
   	 {  
   	 	"proximity-uuid":"UUID VALUE",
   	 	"major":"MAJOR VALUE",
   	 	"minor":"MINOR VALUE",
   	 	"relevant-text":"RELEVANCE TEXT"
    	},
		 ]
    },
    "gpay-fields": {
   	 "additional-image": "ADDITIONAL IMAGE URL",
   	 "additional-image-text": "Image Description"
    },
    "expiration-fields": {
    	"expiry-date": "EXPIRATION TIMESTAMP",
    	"expiry-timezone": "VALID TIMEZONE NAME"
    },
    "barcode-fields": {
   	 "barcode-type": "BARCODE TYPE",
   	 "barcode-value": "DEFAULT BARCODE VALUE",    
   	 "autogenerate-barcode-values":true, // boolean
   	 "autogenerate-barcode-value-type": "VALUE TYPE FOR AUTO GENERATED BARCODES",
   	 "autogenerate-barcode-value-length": "LENGTH OF AUTO GENERATED BARCODE VALUES"
    },
	"relevant-locations": [{
    	"latitude":"COORDINATES",
    	"longitude":"COORDINATES",
    	"relevant-text":"RELEVANCE TEXT"
	},
	{
   	 "latitude":"COORDINATES",
    	"longitude":"COORDINATES",
    	"relevant-text":"RELEVANCE TEXT"
	},
	. . .
	],
    "disable-pass-sharing":"TRUE OR FALSE",
    "pass-data-archive-settings": {
   	 "never-installed-ttl":"NUMBER OF HOURS POST WHICH PASS RECORDS WILL BE ARCHIVED IF NOT INSTALLED", //either this or below option can bet set
   	 "never-installed-archive-timestamp": "TIMESTAMP WHEN NON INSTALLED PASS RECORDS ARE TO BE ARCHIVED",
   	 "expired-pass-ttl": "NUMBER OF HOURS POST WHICH EXPIRED PASSES WILL BE ARCHIVED",
   	 "redeemed-pass-ttl": "NUMBER OF HOURS POST WHICH REDEEMED PASSES WILL BE ARCHIVED",
   	 "voided-pass-ttl": "NUMBER OF HOURS POST WHICH VOIDED PASSES WILL BE ARCHIVED"
    }
}

Request Example: Coupon

{
    "action": "createPassTemplate",
    "api-key": "UX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "pass-template-type": "coupon",
    "pass-template-name": "Coupon-4",
    "appearance": {
   	 "title-image": "https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
   	 "title-image-gpay": "https://www.freepngimg.com/thumb/tiger/7-tiger-png-image-download-tigers.png",
   	 "card-issuer": "Demo coupon",
   	 "strip-image": "https://www.freepngimg.com/thumb/tiger/7-tiger-png-image-download-tigers.png",
   	 "background-color": ""
    },
    "universal-fields": {
   	 "offer-title": "Buy One Get One Free!",
   	 "offer-details": "Buy one probiotic/omega jar and get one free!",
   	 "terms": "Valid only at participating retailers. One time use only. One coupon per customer.",
   	 "offer-provider": "SKYCORE",
   	 "message1-label": "Disclaimer",
   	 "message1": "This coupon was created for demo purposes only and has no real monetary value.",
   	 "message2-label": "Where to Redeem",
   	 "message2": "Whole Foods (Valid in MA, NY, RI, NH Only)",
   	 "message3-label": "Instructions",
   	 "message3": "Pull up this coupon at checkout",
   	 "text-module-label": "Today's Offer",
   	 "text-module": "Save $1 on any drink! Excludes milkshakes and bottled beverages.",
   	 "info-module-label": "Place",
   	 "info-module": "Burger Queen",
   	 "home-page-uri-label": "official website",
   	 "home-page-uri": "https://skycore.com/terms",
   	 "help-uri-label": "Website",
   	 "help-uri": "https://www.skycore.com/",
   	 "link1-label": "Email support",
   	 "link1": "skycore@gmail.com",
   	 "link1-type": "email",
   	 "link2-label": "call",
   	 "link2": "21313",
   	 "link2-type": "phone"
    },
    "apple-wallet-fields": {
   	 "text-color": "#030000",
   	 "description": "Pass from skycore",
   	 "linked-apps": "2332423",
   	 "ibeacons": [{
   			 "proximity-uuid": "23213",
   			 "major": "123123",
   			 "minor": "123123",
   			 "relevant-text": "Come grab some popcorn!"
   		 },
   		 {
   			 "proximity-uuid": "2321",
   			 "major": "123",
   			 "minor": "234234",
   			 "relevant-text": "Come grab some popcorn!"
   		 }
   	 ]
    },
    "gpay-fields": {
   	 "expiry-notifications": false,
   	 "redemption-channel": "in store",
   	 "additional-image": "https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
   	 "additional-image-text": "Image Description"
    },
    "expiration-fields": {
   	 "expiry-date": "12/30/2020 6:00 PM",
   	 "expiry-timezone": "Asia/Kolkata"
    },
    "barcode-fields": {
   	 "barcode-type": "No barcode",
   	 "barcode-value": "",
   	 "autogenerate-barcode-values": false,
   	 "autogenerate-barcode-value-type": "Alphanumeric",
   	 "autogenerate-barcode-value-length": "20"
    },
    "relevant-locations": [{
   		 "latitude": "53.32",
   		 "longitude": "47.25",
   		 "relevant-text": "Come use your coupon at our Waltham location!"
   	 },
   	 {
   		 "latitude": "65.98",
   		 "longitude": "47.25",
   		 "relevant-text": "Come use your coupon at our Waltham location!"
   	 }
    ],
    "disable-pass-sharing": true,
    "pass-data-archive-settings": {
   	 "never-installed-ttl": "1",
   	 "never-installed-archive-timestamp": "2/1/2020 11:19 AM",
   	 "expired-pass-ttl": "2",
   	 "redeemed-pass-ttl": "2",
   	 "voided-pass-ttl": "3"
    }
}

Response Success Example:

{ 
    "status":"Success",
    "pass-template-type":"coupon",
    "pass-template-name":"Coupon-4",
    "pass-template-id":"50e44a70614a7bf48fdd7f73dea25b2a945cfd71"
}

Response Failure Example:

{ 
    "status":"Failure",
    "error-code":"E1011",
    "error-message":"The value for redemption-channel is not valid."
}

7.9.UpdatePassTemplate #

The UpdatePassTemplate API is used to update an existing Pass Template for a coupon Pass.

Request: Coupon

{
  	 "action": "updatePassTemplate",
         "api-key": "API KEY",
  	 "pass-template-type": "coupon",
  	 "pass-template-name": "Pass Template Name",
	"appearance": {
   	 "title-image": "IMAGE PATH",
   	 "title-image-gpay": "IMAGE PATH",
   	 "card-issuer": "MERCHANT NAME",
   	 "strip-image": "IMAGE PATH",
   	 "background-color": "COLOR HASH CODE"
    },
    "universal-fields": {
         "offer-title": "TITLE OF THE OFFER",
   	 "offer-details": "OFFER DETAILS",
   	 "terms": "TERMS OF THE OFFER",
   	 "offer-provider": "OFFER PROVIDER",
     	"message1-label": "MESSAGE 1 LABEL",
    	"message1": "MESSAGE 1 TEXT",   	 
    	"message2-label": "MESSAGE 2 LABEL",
    	"message2": "MESSAGE 2 TEXT",
   	 "message3-label": "MESSAGE 3 LABEL",
    	"message3": "MESSAGE 3 TEXT",
    	"text-module-label": "TEXT MODULE LABEL",
    	"text-module": "TEXT MODULE VALUE",
    	"info-module-label": "INFO MODULE LABEL",
    	"info-module": "INFO MODULE VALUE",
    	"home-page-uri-label": "TEXT FOR HOME PAGE URI",
    	"home-page-uri": "HOME PAGE LINK",
  		 "link1-label": "TEXT FOR ADDITIONAL LINK 1",
    	"link1": "ADDITIONAL LINK 1",
   	 "link1-type": "TYPE OF LINK",
  		 "link2-label": "TEXT FOR ADDITIONAL LINK 2",
  		 "link2": "ADDITIONAL LINK 2",
   	 "link2-type": "TYPE OF LINK"
    },
    "apple-wallet-fields": {
   	 "text-color": "COLOR HASH CODE",
   	 "description": "Pass description used for VoiceOver Information",
   	 "linked-apps": "COMMA SEPARATED LIST OF ITUNES STORE ID",
   	 "ibeacons": [{  
   		 "proximity-uuid":"UUID VALUE",
   	 	"major":"MAJOR VALUE",
   	 	"minor":"MINOR VALUE",
   	   	 "relevant-text":"RELEVANCE TEXT"
    	},
   	 {  
   	 	"proximity-uuid":"UUID VALUE",
   	 	"major":"MAJOR VALUE",
   	 	"minor":"MINOR VALUE",
   	 	"relevant-text":"RELEVANCE TEXT"
    	},
		 ]
    },
    "gpay-fields": {
   	 "additional-image": "ADDITIONAL IMAGE URL",
   	 "additional-image-text": "Image Description"
    },
    "expiration-fields": {
    	"expiry-date": "EXPIRATION TIMESTAMP",
    	"expiry-timezone": "VALID TIMEZONE NAME"
    },
    "barcode-fields": {
   	 "barcode-type": "BARCODE TYPE",
   	 "barcode-value": "DEFAULT BARCODE VALUE",    
   	 "autogenerate-barcode-values":true, // boolean
   	 "autogenerate-barcode-value-type": "VALUE TYPE FOR AUTO GENERATED BARCODES",
   	 "autogenerate-barcode-value-length": "LENGTH OF AUTO GENERATED BARCODE VALUES"
    },
	"relevant-locations": [{
    	"latitude":"COORDINATES",
    	"longitude":"COORDINATES",
    	"relevant-text":"RELEVANCE TEXT"
	},
	{
   	 "latitude":"COORDINATES",
    	"longitude":"COORDINATES",
    	"relevant-text":"RELEVANCE TEXT"
	},
	. . .
	],
    "disable-pass-sharing":"TRUE OR FALSE",
    "pass-data-archive-settings": {
   	 "never-installed-ttl":"NUMBER OF HOURS POST WHICH PASS RECORDS WILL BE ARCHIVED IF NOT INSTALLED", //either this or below option can bet set
   	 "never-installed-archive-timestamp": "TIMESTAMP WHEN NON INSTALLED PASS RECORDS ARE TO BE ARCHIVED",
   	 "expired-pass-ttl": "NUMBER OF HOURS POST WHICH EXPIRED PASSES WILL BE ARCHIVED",
   	 "redeemed-pass-ttl": "NUMBER OF HOURS POST WHICH REDEEMED PASSES WILL BE ARCHIVED",
   	 "voided-pass-ttl": "NUMBER OF HOURS POST WHICH VOIDED PASSES WILL BE ARCHIVED"
    }
}

Request Example: Coupon

{
    "action": "updatePassTemplate",
    "api-key": "UX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "pass-template-type": "coupon",
    "pass-template-name": "Coupon-4",
    "appearance": {
   	 "title-image": "https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
   	 "title-image-gpay": "https://www.freepngimg.com/thumb/tiger/7-tiger-png-image-download-tigers.png",
   	 "card-issuer": "Demo coupon",
   	 "strip-image": "https://www.freepngimg.com/thumb/tiger/7-tiger-png-image-download-tigers.png",
   	 "background-color": ""
    },
    "universal-fields": {
   	 "offer-title": "Buy One Get One Free!",
   	 "offer-details": "Buy one probiotic/omega jar and get one free!",
   	 "terms": "Valid only at participating retailers. One time use only. One coupon per customer.",
   	 "offer-provider": "SKYCORE",
   	 "message1-label": "Disclaimer",
   	 "message1": "This coupon was created for demo purposes only and has no real monetary value.",
   	 "message2-label": "Where to Redeem",
   	 "message2": "Whole Foods (Valid in MA, NY, RI, NH Only)",
   	 "message3-label": "Instructions",
   	 "message3": "Pull up this coupon at checkout",
   	 "text-module-label": "Today's Offer",
   	 "text-module": "Save $1 on any drink! Excludes milkshakes and bottled beverages.",
   	 "info-module-label": "Place",
   	 "info-module": "Burger Queen",
   	 "home-page-uri-label": "official website",
   	 "home-page-uri": "https://skycore.com/terms",
   	 "help-uri-label": "Website",
   	 "help-uri": "https://www.skycore.com/",
   	 "link1-label": "Email support",
   	 "link1": "skycore@gmail.com",
   	 "link1-type": "email",
   	 "link2-label": "call",
   	 "link2": "21313",
   	 "link2-type": "phone"
    },
    "apple-wallet-fields": {
   	 "text-color": "#030000",
   	 "description": "Pass from skycore",
   	 "linked-apps": "2332423",
   	 "ibeacons": [{
   			 "proximity-uuid": "23213",
   			 "major": "123123",
   			 "minor": "123123",
   			 "relevant-text": "Come grab some popcorn!"
   		 },
   		 {
   			 "proximity-uuid": "2321",
   			 "major": "123",
   			 "minor": "234234",
   			 "relevant-text": "Come grab some popcorn!"
   		 }
   	 ]
    },
    "gpay-fields": {
   	 "expiry-notifications": false,
   	 "redemption-channel": "in store",
   	 "additional-image": "https://www.freepngimg.com/thumb/india/8-2-india-flag-png-picture.png",
   	 "additional-image-text": "Image Description"
    },
    "expiration-fields": {
   	 "expiry-date": "12/30/2020 6:00 PM",
   	 "expiry-timezone": "Asia/Kolkata"
    },
    "barcode-fields": {
   	 "barcode-type": "No barcode",
   	 "barcode-value": "",
   	 "autogenerate-barcode-values": false,
   	 "autogenerate-barcode-value-type": "Alphanumeric",
   	 "autogenerate-barcode-value-length": "20"
    },
    "relevant-locations": [{
   		 "latitude": "53.32",
   		 "longitude": "47.25",
   		 "relevant-text": "Come use your coupon at our Waltham location!"
   	 },
   	 {
   		 "latitude": "65.98",
   		 "longitude": "47.25",
   		 "relevant-text": "Come use your coupon at our Waltham location!"
   	 }
    ],
    "disable-pass-sharing": true,
    "pass-data-archive-settings": {
   	 "never-installed-ttl": "1",
   	 "never-installed-archive-timestamp": "2/1/2020 11:19 AM",
   	 "expired-pass-ttl": "2",
   	 "redeemed-pass-ttl": "2",
   	 "voided-pass-ttl": "3"
    }
}

Response Success Example:

{ 
    "status":"Success",
    "pass-template-type":"coupon",
    "pass-template-name":"Coupon-4",
    "pass-template-id":"50e44a70614a7bf48fdd7f73dea25b2a945cfd71"
}

Response Failure Example:

{ 
    "status":"Failure",
    "error-code":"E1011",
    "error-message":"The value for redemption-channel is not valid."
}

8.Generic APIs #

8.1.GetPassTemplates #

The GetPassTemplates API will fetch the list of the Pass Templates present under the account identified by the api-key. This API fetches the data in a paginated way. Users can provide the page number and data needed per page required and API will send the required data.

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
page-numberOptional, NumericUsers can provide the page number using this parameter and the user will receive data from this page number.
items-per-pageOptional, Numeric (Default is 100)Users can provide the count of data required per page and the API will send that amount of data in response.

Request:

{
"action": "getPassTemplates",
"api-key": "API KEY",
“page-number”: “PAGE NUMBER”,
“items-per-page”: “Number of Items to send” 
}

Request Example:

{
    "action": "getPassTemplates",
    "api-key": "UX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
    "items-per-page": 2,
    "page-number": 1
}

Response Success Example:

{
	"status": "success",
	"pass-templates": [
    	{
        	"pass-template-id": "3b77c090b4cba2871e5ba7da82f6aaf6fcc2f0ce",
        	"pass-template-name": "GiftCard-Pass-1",
        	"pass-template-type": "Gift Card",
        	"created-timestamp": "10/07/2019 11:57:32",
        	"last-updated-timestamp": "10/07/2019 11:57:32"
    	},
    	{
        	"pass-template-id": "fbf423fb9586497f784304b431a1b3ce2eee5f57",
        	"pass-template-name": "BoardingPass-1",
"pass-template-type": "Boarding Pass",
"created-timestamp": "10/07/2019 11:57:28",
        	"last-updated-timestamp": "10/07/2019 11:57:28"
    	}
	]
}

Response Failure Example:

{
	"status": "failure",
	"error-code": "E104",
	"error-info": "Authentication failed. Invalid api-key."
}

8.2.GeneratePassById #

The generate pass by id API will generate a unique installation link based on the unique ‘pass-id’. If you try to call this API with an invalid ‘pass-id’ or a ‘pass-id’ that is not associated with the pass that you are trying to generate, you will receive an error message. To call this API again successfully, you will need to use a valid ‘pass-id’. Please note that the ‘pass-id’ is unique per account, not per Pass Template.  The required parameters are action, api-key, and pass-id.

Request:

{
    "action":"generatepassbyid",
    "api-key":"API KEY",
    "pass-id":"CUSTOM PASS ID"
}

Request Example:

{  
   "action":"generatepassbyid",
   "api-key":"QX4G4ijIIkutK2exyAY1iwA3y8cdFmEj",
   "pass-id":"rockonrock2020"
}

Response Success Example:

{  
   "status":"Success",
   "pass-id":"rockonrock2020",
   "pass-install-url":"https://d2c.skycore.com/wallet/dc/eazt0sq3r4",
   "tracking-id":"EDRZLv-FCgBY-EKk"
}

Response Failure Example:

{
    "status":"Failure",
    "error-code":"E810",
    "error-message":"The pass-id value is required."
    "pass-id": "Boarding 123"
}

8.3.DeletePassData #

The delete pass data API is used to remove data for a Pass that has already been installed on a device. Using this API will only delete the pass data associated with the ‘pass-id’ from our system. This does not remove or uninstall the Pass from the device. If you receive a failure message, the Pass data has not been deleted. Please note that the ‘pass-id’ is unique per account, not per Pass Template. The required params are action, api-key, and pass-id.

Request:

{
    "action":"deletepassdata",
    "api-key":"API KEY",
    "pass-id":"CUSTOM PASS ID"
}

Request Example:

{
    "action":"deletepassdata",
    "api-key":"QTFkykO9JTfahCOqJ0V2Wf5Cg1t8iWlZ",
    "pass-id":"rockonrock2020"
}

Response Success Example:

{
    "status":"Success",
    "pass-id":"rockonrock2020"
}

Response Failure Example:

{
    "status" : "Failure",
    "error-code" : "E821",
    "error-message" : "Internal Error. The pass was not deleted.",
    "pass-id":"rockonrock2020"
}

8.4.GetPassIds #

The GetPassIds API will fetch a list of passes, generated for a given Pass Template under the user account identified by the api-key. This API fetches the data in a paginated way. Users can provide the page number and data needed per page required and API will send the required data.

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-idMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is the unique Pass Template ID used to reference a particular Pass Template.
page-numberOptional, NumericUsers can provide the page number using this parameter and the user will receive data from this page number.
items-per-pageOptional, Numeric (Default is 100)Users can provide the count of data required per page and the API will send that amount of data in response.

Request:

{
"action": "getPassIds",
"api-key": "API KEY",
“pass-template-id” : “PASS TEMPLATE ID”,
“page-number”: “PAGE NUMBER”,
“items-per-page”: “Number of Items to send” 
}

Request Example:

{
    "action":"getpassids",
    "api-key":"UX4G4ijIIkutK2exyAYsiwA3y8cdFmEj",
    "pass-template-id":"b1f3802d0e0689619e9s59a86f528946439b542e",
    "page-number":"1",
    "items-per-page":"2"
}

Response Success Example:

{
    "status":"success",
    "pass-template-id":"b1f3802d0e06s9619e9c59a86f528946439b542e",
    "pass-ids":[
        {
            "pass-id":"GC-feb-17.3we",
            "created-timestamp":"03/09/2020 18:22:36",
            "last-updated-timestamp":"03/09/2020 18:22:36"
        },
        {
            "pass-id":"GC-feb-17.Gpay",
            "created-timestamp":"02/26/2020 14:36:12",
            "last-updated-timestamp":"03/11/2020 14:27:20"
        }
    ]
}

Response Failure Example:

{
    "status":"Failure",
    "error-code":"E827",
    "error-message":"items-per-page is invalid. Only numeric values are allowed.",
    "pass-template-id":"b1f3802d0e0689619e9c59a86f528946439b542e"
}

9.Wallet Postback #

This section can be used as a reference for Wallet Postback notifications when the following situations occur: pass was generated successfully, pass failed to generate, pass was installed or uninstalled on Apple Wallet or Google Pay, pass data has been updated via API/Web, pass has been updated on the app.

9.1.Notification Examples #

1. Response: Pass Generation Success

{  
    "origin":"wallet",
    "status-code":"N801",
    "status-text":"Generated",
    "status-details":"Pass generated successfully",
    "pass-template-id":"b534e7c0093eccae2d9343257cd2e27196186bcf",
    "pass-id":"Store-78912",
    "tracking-id":"EDwNYk-BUaqk-Lb",
    "timestamp":"2018-11-23T06:27:28+00:00"
}

2. Response: Pass Generation Failure

{  
    "origin":"wallet",
    "status-code":"N802",
    "status-text":"Failed",
    "status-details":"Failure reason/details",
    "pass-template-id":"b534e7c0093eccae2d9343257cd2e27196186bcf",
    "pass-id":"Store-78912",
    "tracking-id":"EDwNYk-BUaqk-Lb",
    "timestamp":"2018-11-23T06:27:28+00:00"
}

3. Response: Pass Installation for Apple Wallet

{  
    "origin":"wallet",
    "status-code":"N804",
    "status-text":"Installed",
    "status-details":"Pass Installed on the App",
    "pass-template-id":"7cf6b87f8ab57daed2d915c6a9e7daea811a6063",
    "pass-id":"1618389328-5c1b63d9d527d",
    "timestamp":"2018-12-20T09:59:55+00:00",
    "app-type":"Apple Wallet",
    "install-id":"d04d58f636b245d5"
    "reference-data": {
 	"email": "joy@gmail.com",
 	"phone": "61855742",
 	"transaction-id": "96"
 	              }
}

4. Response: Pass Installation for Google Pay

{  
    "origin":"wallet",
    "status-code":"N804",
    "status-text":"Installed",
    "status-details":"Pass Installed on the App",
    "pass-template-id":"30770c7182ba6d09e42aadbd5a779ce833060c",
    "pass-id":"EVENT-202036",
    "timestamp":"2018-12-20T10:02:16+00:00",
    "app-type":"Google Pay",
    "install-id":"d04d58f636b245d5"
    "reference-data": {
        "email": "joy@gmail.com",
        "phone": "61855742",
        "transaction-id": "96"
                      }
}

5. Response: Pass Uninstalled from Apple Wallet

{  
    "origin":"wallet",
    "status-code":"N805",
    "status-text":"Uninstalled",
    "status-details":"Pass uninstalled from the App",
    "pass-template-id":"3070c73b182ba6d09e42aadbd5a779ce833060c",
    "pass-id":"EVENT-202036",
    "timestamp":"2018-12-20T10:32:57+00:00",
    "app-type":"Apple Wallet",
    "install-id":"d04d58f636b245d5"
    "reference-data": {
         "email": "joy@gmail.com",
         "phone": "61855742",
         "transaction-id": "96"
                      }
}

6. Response: Pass Uninstalled from Google Pay

{  
    "origin":"wallet",
    "status-code":"N805",
    "status-text":"Uninstalled",
    "status-details":"Pass uninstalled from the App",
    "pass-template-id":"30770c7b182ba6d09e42aadbd5a779ce833060c",
    "pass-id":"EVENT-202036",
    "timestamp":"2018-12-20T10:35:38+00:00",
    "app-type":"Google Pay",
    "install-id":"d04d58f636b245d5"
    "reference-data": {
         "email": "joy@gmail.com",
         "phone": "61855742",
         "transaction-id": "96"
                      }
}

7. Response: Pass Data Updated

{  
    "origin":"wallet",
    "status-code":"N806",
    "status-text":"Updated",
    "status-details":"Pass data updated on the server",
    "pass-template-id":"30770c73b12ba6d09e42aadbd5a779ce833060c",
    "pass-id":"EVENT-202036",
    "timestamp":"2018-12-20T10:08:23+00:00",
    "tracking-id":"EDSGtT-CUuEQ-Gbk"
}

8. Response: Pass Updated Notification for Apple Wallet

{  
    "origin":"wallet",
    "status-code":"N807",
    "status-text":"Notified",
    "status-details":"Pass update notified to the app",
    "pass-template-id":"30770c73b182ba6d09e42aadbd5a779ce833060c",
    "pass-id":"EVENT-202036",
    "timestamp":"2018-12-20T10:09:48+00:00",
    "tracking-id":"EDSGtT-CUuEQ-Gbk",
    "app-type":"Apple Wallet"
}

9. Response: Pass Updated Notification for Google Pay

{  
    "origin":"wallet",
    "status-code":"N807",
    "status-text":"Notified",
    "status-details":"Pass update notified to the app",
    "pass-template-id":"3077c73b182ba6d09e42aadbd5a779ce833060c",
    "pass-id":"EVENT-202036",
    "timestamp":"2018-12-20T10:08:23+00:00",
    "tracking-id":"EDSGtT-CUuEQ-Gbk",
    "app-type":"Google Pay"
}

9.2.Notification Parameters #

The response parameters table describes each field that appears in the Wallet Postback Notification.

VariableDescription
status-codeThe status-code is used for the success, failure, updated, installed and uninstalled responses. A list of the Postback Notification Codes can be found in section 9.2.
originThe origin of where the response is coming from. In this case, the origin will always be “Wallet”.
status-textThis gives an explanation of the status code. The status-text will have the following values depending on the type of response: Installed, Uninstalled, Updated, or Notified.
pass-idThe custom ‘pass-id’ that is used when generating a pass or adding data to the pass in order to reference this pass in future requests.
timestampThe timestamp of when the pass was generated.
status-detailsThis gives a more detailed explanation of the status-code and status-text.
pass-template-idThe unique Pass Template ID used to reference a particular Pass Template.
tracking-idThis is the tracking-id generated by our system for linking the postback with the API call.

The tracking-id will be available only for passes generated or updated by the “generatepass”, “generatepassbyid”, “updatepassdata” APIs.

install-idThe install-id represents the unique id for Apple Wallet and Google Pay.

9.3.Status Codes #

The post back notification codes table defines all of the codes that may appear in the Wallet Postback notification under ‘status-code’.

CodeDescription
N801Pass was generated successfully.
N802Some error occurred. Pass generation failed.
N804Pass Installed on the device/app
N805Pass Uninstalled on the app
N806Pass data updated via API/Web
N807Pass was updated on the app.

10.Appendix #

In the following Appendix section, you will find additional documentation, such as Timezone Names, to be used in the API calls or for your reference.

10.1.Expiration Timezone Names and Timestamp Values #

In the following section, you will find a list of the timezone long names and a timestamp value example to reference when the API calls in the previous sections. You can set timezones and timestamps in the “generatepass”, and “updatepassdata” APIs for all pass types. A more detailed explanation is given for timezones and timestamps in the following introduction sections for each pass type: 3.1, 4.1, 5.1, 6.1, and 7.1.

Timezone Names:

Africa/Accra
Africa/Algiers
Africa/Cairo
Africa/Casablanca
Africa/Johannesburg
Africa/Lagos
Africa/Libreville
Africa/Lome
Africa/Nairobi
America/Anchorage
America/Argentina/Buenos_Aires
America/Barbados
America/Bogota
America/Caracas
America/Chicago
America/Chihuahua
America/Denver
America/Godthab
America/Halifax
America/Indiana/Indianapolis
America/Jamaica
America/Los_Angeles
America/Managua
America/Mexico_City
America/Miquelon
America/Nassau
America/New_York
America/Noronha
America/Phoenix
America/Puerto_Rico
America/Regina
America/Santiago
America/Santo_Domingo
America/Sao_Paulo
America/St_Johns
Antarctica/DumontDUrville
Asia/Aden
Asia/Amman
Asia/Baghdad
Asia/Bangkok
Asia/Colombo
Asia/Dhaka
Asia/Hong_Kong
Asia/Irkutsk
Asia/Jerusalem
Asia/Kabul
Asia/Karachi
Asia/Kathmandu
Asia/Kolkata
Asia/Krasnoyarsk
Asia/Magadan
Asia/Manila
Asia/Muscat
Asia/Novosibirsk
Asia/Phnom_Penh
Asia/Qatar
Asia/Rangoon
Asia/Riyadh
Asia/Seoul
Asia/Singapore
Asia/Taipei
Asia/Tbilisi
Asia/Tehran
Asia/Tokyo
Asia/Vladivostok
Asia/Yakutsk
Asia/Yekaterinburg
Atlantic/Azores
Atlantic/Bermuda
Atlantic/Cape_Verde
Australia/Adelaide
Australia/Brisbane
Australia/Darwin
Australia/Hobart
Australia/Perth
Australia/Sydney
Etc/GMT-3
Europe/Andorra
Europe/Belgrade
Europe/Berlin
Europe/Bucharest
Europe/Helsinki
Europe/Istanbul
Europe/London
Europe/Moscow
Europe/Oslo
Europe/Paris
Europe/Sarajevo
Europe/Tirane
Indian/Kerguelen
Pacific/Apia
Pacific/Auckland
Pacific/Fiji
Pacific/Guam
Pacific/Honolulu
Pacific/Midway
Pacific/Tongatapu
Pacific/Wake

Timestamp Value:

1-2-2019 4.50pm
1st Dec 2018 9:00pm
2019-01-15T10:46:46+00:00
jan 26 2020 5:00 am

10.2.Error Codes #

General Error Codes

The following tables provide information on the generic error codes and texts that you may receive if the API call fails.

CodeDescription
E100Invalid request. Make a valid request via JSON POST with all the required variables.
E104Account Authentication Failed.
E105This account does not have API access.
E107This account is not allowed to use this action.
E108Corrupt JSON in the request. $error.
E109This account does not have API activated.
E112API call rejected. IP is not white listed.
E113API call rejected. Set throughput exceeded for this API action.
E114API call rejected. Phone number is blacklisted.
E120This account has reached the API request limit.
E503Internal error.

Pass Issuance Link Error Codes

The following tables provide information on the error codes and texts that you may receive if the API calls for CreatePassIssuanceLink or UpdatePassIssuanceLink fails.

CodeDescription
E832The {CUSTOM-VALUE-1} is required.
E1532The {CUSTOM-VALUE-1} has duplicate mapping.
E1533The encryption-settings are empty or invalid but {CUSTOM-VALUE-1} is set to be encrypted.
E15334The {CUSTOM-VALUE-1} length is invalid. Valid length {CUSTOM-VALUE-2}
E1535Relevance address should always contain relevance latitude and longitude both for {CUSTOM-VALUE-1}
E1536Both relevance latitude and relevance longitude is required for {CUSTOM-VALUE-1}.
E1537IBeacon UUID is missing for {CUSTOM-VALUE-1}.
E1538The link-generation-limit is invalid.
E1539The link-generation-limit cannot be less than already generated link count.
E1540The link-expiration-timezone is required.
E1541Pass Issuance Link Template creation failed. Please try again later.
E1542Please add the required parameter {CUSTOM-VALUE-1} in pass-variable.
E1543Either the pass variables provided are invalid or empty.
E1544The {CUSTOM-VALUE-1} is a required parameter. “is-required” option must be true.
E1545The encryption-settings are missing/invalid.

Other Error Codes

CodeDescription
E801The pass-template-id value is required.
E802The pass-template-id value is invalid.
E803The barcode value is required.
E806Internal Error. The pass data ID was not created.
E807There was some problem while creating/updating the Google Wallet pass.
E808The pass-template-id value is invalid.
E809Internal Error. The pass was not updated.
E810The pass-id value is required.
E811Authentication failed. The pass was not generated.
E812The pass-id value is already taken.
E815Nothing to update. pass-data field is empty.
E816{CUSTOM-VALUE-1} is invalid. Please remove if any special characters and try again.
E821Internal Error. The pass was not deleted.
E827{CUSTOM-VALUE-1} is invalid. Only numeric values are allowed.
E830Internal Error. The pass was not generated.
E831The download limit has reached. The pass was not generated.
E834The card-number value is required to generate the Gift Card with Google Wallet.
E835The passenger-name value is required to generate the Boarding Pass with Google Wallet.
E836The confirmation-number value is required to generate the Boarding Pass with Google Wallet.
E837The URI provided for {CUSTOM-VALUE-1} is invalid.
E838The {CUSTOM-VALUE-1} label is not accepted. The Dynamic Labels, under Advanced tab needs to be set in the pass template.
E839The {CUSTOM-VALUE-1} value is not accepted. It has to be set as Dynamic in the pass template.
E920The {CUSTOM-VALUE-1} value is not accepted. It has to be set with corresponding latitude and longitude values.
E921The {CUSTOM-VALUE-1} value is empty.
E922The {CUSTOM-VALUE-1} value is invalid.
E923The {CUSTOM-VALUE-1} value is missing or invalid.
E925The {CUSTOM-VALUE-1} is not accepted. It has to be set as Dynamic in the pass template.
E926The {CUSTOM-VALUE-1} is not accepted for this pass type.
E1526The key name for relevant-locations is not correct. It should be from relevant-1 to relevant-10
E1527The key name for ibeacons is not correct. It should be from ibeacon-1 to ibeacon-10

10.3.Encryption and Checksum Algorithms #

The following algorithms are used for the CreatePassIssuanceLink and UpdatePassIssuanceLink API calls.

Encryption Algorithms
  1. AES-CBC: Advanced Encryption Standard (AES) is a symmetric encryption algorithm. AES is the industry standard as of now as it allows 128 bit, 192 bit and 256-bit encryption. There are also 2 modes of encryption. Currently, we support 256 bit CBC mode encryption.
Checksum Algorithms
  1. CRC32: CRC (Cyclic Redundancy Check) is an error-detecting code which is used to verify the raw data passed from accidental change or data corruption. A short check value is generated for a block of data and on retrieval, the short check code is again generated and matched with the previous code. CRC 32 is a 32 bit variant of CRC algorithm
  2. SHA256: A SHA-256 (Secure Hash Algorithm) is a 256 bit variant of SHA-2 cryptographic hashing algorithm family which is used for cryptographic security. This algorithm produces irreversible and unique hashes of the data passed.
  3. SHA384: A SHA-384 (Secure Hash Algorithm) is a 384 bit variant of SHA-2 cryptographic hashing algorithms which is used for cryptographic security. It is not a unique hash algorithm but is instead a truncated version of SHA-512.
  4. SHA512: A SHA-512 (Secure Hash Algorithm) is a 512 bit variant of SHA-2 cryptographic hashing algorithms that is used for cryptographic security. This algorithm produces irreversible and unique hashes.
Suggest Edit