1.Revision History & Notes #

DateDescriptionSection
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 –
Sections 3.2, 4.2, 5.2, 6.2, 7.28.1 Notification Examples
06/20/19Removed error codes that were related to ‘reference-id’.

The following error codes were removed:
E813, E829, AND E833

9.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 –
Sections 3.2, 4.2, 5.2, 6.2, 7.2getpassdata –
Sections 3.5, 4.5, 5.5, 6.5, 7.58.1 Notification Examples8.2 Notification Parameters

updatepassdata –
Sections 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 –
Sections 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 –
Sections 3.4, 4.4, 5.4, 6.4, 7.4
04/02/2019Removed the param “barcode-text” from “generatepass” and “updatepassdata” APIs.generatepass –
Sections 3.2, 4.2, 5.2, 6.2, 7.2
updatepassdata –
Sections 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 –
Sections 3.2, 4.2, 5.2, 6.2, 7.2
updatepassdata –
Sections 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 –
Sections 3.2, 7.2updatepassdata –
Sections 3.4, 7.49.1 Expiration Timezone Names and Timestamp Value
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 –
Sections 3.2, 4.2, 5.2, 6.2, 7.2
updatepassdata –
Sections 3.4, 4.4, 5.4, 6.4, 7.4
Last updated on August 22, 2019

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.

Last updated on June 6, 2019

2.1.API Endpoint #

Last updated on April 25, 2019

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.

Last updated on June 6, 2019

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-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 10.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..
Last updated on August 12, 2019

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":"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."
}
Last updated on July 2, 2019

3.3.GeneratePassById #

The generate pass by id API will generate a unique installation link for a gift card 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.

Request

{
    "action":"generatepassbyid",
    "api-key":"API KEY",
    "pass-id":"CUSTOM CARD 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":"rockonrock2020"
}
Last updated on June 6, 2019

3.4.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."
}
Last updated on July 1, 2019

3.5.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."
}
Last updated on July 1, 2019

3.6.DeletePassData #

The delete pass data API is used to remove data for a gift card that has already been installed on a device. Using this API will only delete the pass data associated with the ‘pass-id’ for that gift card. This does not remove or uninstall the gift card 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.

Request:

{
    "action":"deletepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER 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"
}
Last updated on June 6, 2019

3.7.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."
}
Last updated on June 6, 2019

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-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 10.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..
Last updated on August 12, 2019

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"
}
Last updated on July 2, 2019

4.3.GeneratePassById #

The generate pass by id API will generate a unique installation link for a boarding pass 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.

Request:

{
    "action":"generatepassbyid",
    "api-key":"API KEY",
    "pass-id":"CUSTOM CARD 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."
}
Last updated on June 6, 2019

4.4.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"
}
Last updated on July 1, 2019

4.5.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"
}
Last updated on July 1, 2019

4.6.DeletePassData #

The delete pass data API is used to remove data for a boarding pass that has already been installed on a device. Using this API will only delete the pass data associated with the ‘pass-id’ for that boarding pass. This does not remove or uninstall the boarding 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.

Request:

{
    "action":"deletepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER 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"
}
Last updated on June 6, 2019

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

Last updated on June 6, 2019

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 10.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..
Last updated on August 22, 2019

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"
}
Last updated on August 22, 2019

5.3.GeneratePassById #

The generate pass by id API will generate a unique installation link for an event ticket 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 event ticket 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.

Request:

{
    "action":"generatepassbyid",
    "api-key":"API KEY",
    "pass-id":"CUSTOM CARD 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."
}
Last updated on June 6, 2019

5.4.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"
}
Last updated on August 22, 2019

5.5.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"
}
Last updated on August 22, 2019

5.6.DeletePassData #

The delete pass data API is used to remove data for an event ticket that has already been installed on a device. Using this API will only delete the pass data associated with the ‘pass-id’ for that event ticket. This does not remove or uninstall the event ticket 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.

Request:

{
    "action":"deletepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER 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"
}
Last updated on June 6, 2019

5.7.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"
}
Last updated on August 22, 2019

6.Loyalty Card #

6.1.Introduction to Loyalty Cards #

The following image shows where the fields used in the API calls will appear on loyalty cards for both Apple Wallet and Google Pay. Any fields shown on loyalty 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 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 loyalty 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 loyalty cards: 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 10.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..
Last updated on August 12, 2019

6.2.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

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

{  
   "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"
}
Last updated on July 2, 2019

6.3.GeneratePassById #

The generate pass by id API will generate a unique installation link for a loyalty card 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.

Request:

{
    "action":"generatepassbyid",
    "api-key":"API KEY",
    "pass-id":"CUSTOM CARD 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."
}
Last updated on June 6, 2019

6.4.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

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

{  
    "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"
}
Last updated on July 1, 2019

6.5.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

{
    "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: Loyalty Card

{  
    "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"
}
Last updated on July 1, 2019

6.6.DeletePassData #

The delete pass data API is used to remove data for a loyalty card that has already been installed on a device. Using this API will only delete the pass data associated with the ‘pass-id’ for that loyalty card. This does not remove or uninstall the loyalty card 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.

Request:

{
    "action":"deletepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER 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"
}
Last updated on June 6, 2019

6.7.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:

{
    "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: Loyalty Card

{  
    "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"
}
Last updated on June 6, 2019

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 10.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..
Last updated on August 12, 2019

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"
}
Last updated on July 2, 2019

7.3.GeneratePassById #

The generate pass by id API will generate a unique installation link for a coupon 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.

Request:

{
    "action":"generatepassbyid",
    "api-key":"API KEY",
    "pass-id":"CUSTOM CARD 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."
}
Last updated on June 6, 2019

7.4.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"
}
Last updated on July 1, 2019

7.5.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"
}
Last updated on July 1, 2019

7.6.DeletePassData #

The delete pass data API is used to remove data for a coupon that has already been installed on a device. Using this API will only delete the pass data associated with the ‘pass-id’ for that coupon. This does not remove or uninstall the coupon 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.

Request:

{
    "action":"deletepassdata",
    "api-key":"API KEY",
    "pass-id":"UNIQUE CUSTOMER 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"
}
Last updated on June 6, 2019

7.7.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
Last updated on June 6, 2019

8.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.

Last updated on June 12, 2019

8.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"
}
Last updated on July 2, 2019

8.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.
Last updated on July 1, 2019

8.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.
Last updated on June 12, 2019

9.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.

Last updated on June 11, 2019

9.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

Last updated on June 11, 2019

9.2.Error Codes #

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

General Error Codes

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.

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
Last updated on July 1, 2019
Suggest Edit