Boarding Pass API

Introduction to Boarding Passes

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

Mobile Wallet Boarding Pass

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

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-idMandatory, Alphanumeric(a-zA-Z0-9), Case-SensitiveThe unique Pass Template ID used to reference a particular Pass Template.
pass-idMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThe identifier from your system to identify the pass or pass data uniquely.
reference-dataOptional, Alphanumeric (a-zA-Z0-9)This is used for adding additional information related to the pass.
barcode-valueOptional, Alphanumeric (a-zA-Z0-9)The unique barcode value associated with a specific pass-id.
expiration-timestampOptional. “expiration-timestamp” should be in UTC. Example: 2013-02-19T15:54:50ZThe timezone offset is ignored and always considers the timestamp in UTC.
expiration-timezoneOptional. “expiration-timezone” should be in long name format. Example: America/New_YorkUse the long names listed in section 9.1 for your reference.
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..

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

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

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

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

CreatePassIssuanceLink

The CreatePassIssuanceLink API is used to create an issuance link for a boarding pass. To create a boarding pass Pass Issuance Link you will need the correct ‘pass-template-id’ associated with the Pass Template being used for the issuance link. The issuance links can be used in emails or websites to generate Passes using customized data upon clicking the link. The following table provides a detailed description of certain variables that can be used in each API call to create or update Pass Issuance Links for boarding passes.

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API and is Case-Insensitive.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
 link-nameMandatory, Alphanumeric (a-zA-Z0-9)The name of the Pass Issuance Link to be created.
link-expiration-timestampOptional. “link-expiration-timestamp” should be in Date/Time ISO 8601 formatThe expiration date of the issuance links for a specific template. Issuance links will be valid and a Pass can be generated using the link until this date.
link-expiration-timezoneRequired if link-expiration-timestamp is set. The “link-expiration-timezone” should be in long name format. Example: America/New_YorkUse the long names listed in section 10.1 for your reference.
link-generation-limitOptional, Numeric (0-9)Limits the number of unique Pass Issuances for a specific Pass Template. If no value is set then it is considered UNLIMITED.
link-statusOptional. Accepted values: “ACTIVE” or “INACTIVE”Status of the Pass Issuance Link for a specific Pass Template.
encryption-settingsOptionalDefine Pass Issuance Link encryption settings.
encryption-nameOptional. Accepted values: “AES-CBC”Standard Encryption Algorithms supported. Only 256 bit is supported in the API.
secret-keyRequired if “encryption-name” is provided. Alphanumeric (a-zA-Z0-9)This is a 32 character long password for encrypting data within the issuance link.
ivRequired if “encryption-name” is provided. Alphanumeric (a-zA-Z0-9)This is a 16 character long string to be used as an initialization vector for encryption.
link-protectionOptionalDefine Pass Issuance Link protection settings.
checksumOptional. Accepted values: “CRC32”, “SHA256”, “SHA384”, or “SHA512”Standard data integrity check algorithms are supported.
checksum-appliedRequired if “checksum” is provided. Accepted values: “query-string” (applied only on the query string part of the link), or
“full-link” (applied on the full link)
This defines which part of the issuance link the protection is applied on.
pass-template-idRequired, Alphanumeric (a-zA-Z0-9)This is the ID of the Pass Template that the Pass Issuance Link will be generated for.
pass-variablesRequiredDefine the list of Pass variables and their required properties to be used in the Pass Issuance Link.

Request: Boarding Pass

{
 "action": "createPassIssuanceLink",
 "api-key": "API KEY",
 "link-name": "PASS ISSUANCE LINK TEMPLATE NAME",
 "link-expiration-timestamp": "EXPIRATION TIMESTAMP ISO 8601 FORMAT",
 "link-expiration-timezone": "EXPIRATION TIMEZONE OF PASS ISSUANCE LINK",
 "link-generation-limit" : "MAX. NUMBER OF UNIQUE PASSES TO BE GENERATED",
"link-status" : "STATUS OF THE LINK",
 "encryption-settings:" {
 "encryption-name": "AES_CBC",
 "secret-key": "SECRET KEY",
 "iv": "INITIALIZATION VECTOR"
                },
 "link-protection": {
 "checksum": "CRC32 / SHA256 / SHA384 / SHA512",
 "checksum-applied": "FULL-LINK / QUERY-STRING"
                }
 "pass-template-id": "PASS TEMPLATE ID",
 "pass-variables": {
                "passenger-name-value":{
 "is-required": true,
 "value-encryption": true/false
                },
                "boarding-position-value":{
 "is-required": true,
 "value-encryption": true/false
                },
                "boarding-group":{
 "is-required": true,
 "value-encryption": true/false
                },
                "seat-number-value":{
 "is-required": true,
 "value-encryption": true/false
                },
                "reservation-confirmation-code-value":{
 "is-required": true,
 "value-encryption": true/false
                },
                "pass-id": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "expiration-timestamp": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "expiration-timezone": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "additional-image": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "additional-image-text": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "boarding-seat-class": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "sequence-number-value": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "reservation-eticket-number-value": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "frequent-flyer-name/number-value": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "barcode-value": {
                    "is-required": true / false,
                    "value-encryption": true / false
                },
                "relevance-location-address1": {                  // 10 fields 
                        "is-required": true / false,
                    "value-encryption": true / false
                },
                "relevance-location-latitude1": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-location-longitude1": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-text1": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-location-address2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-location-latitude2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-location-longitude2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-text2": {
                        "is-required": true / false,
                          "value-encryption": true / false
                },
                "ibeacon-uuid1": {                                // 10 fields 
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-major1": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-minor1": {
                        "is-required": true / false,
                         "value-encryption": true / false
                },
                "ibeacon-relevance-text1": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-uuid2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-major2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-minor2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-relevance-text2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                }
    }
}


Request Example: Boarding Pass

{
 "action": "createpassissuancelink",
 "api-key": "nFel9m06R7bR7HkrhZIXIzeqTAnrCugBw",
 "issuance-link-name": "TestIssuanceLink",
 "pass-template-id": "39cfcd38b1205ca3ac492851cb3bd6056d94581f",
 "link-expiration-timestamp": "2020/10/23T00:00-10:00",
 "link-expiration-timezone": "America/New_York",
 "link-generation-limit": 100,
 "link-status": "active",
 "encryption-settings": {
 "encryption-name": "aes-cbc",
 "secret-key": "dNJWdAIchrX7OQflNEk1quq3CvjngmXj",
 "iv": "wbJWPb9KLbxo6xpk"
 },
 "link-protection": {
 "checksum-algorithm": "crc32",
 "checksum-applied": "query-string"
 },
 "pass-variables":{
 "pass-id": {
 "is-required": true,
 "value-encryption": false
 },
                "passenger-name-value":{
 "is-required": true,
 "value-encryption": true
                },
                "boarding-position-value":{
 "is-required": true,
 "value-encryption": true
                },
                "boarding-group":{
 "is-required": true,
 "value-encryption": true
                },
                "seat-number-value":{
 "is-required": true,
 "value-encryption": true/false
                },
                "reservation-confirmation-code-value":{
 "is-required": true,
 "value-encryption": true/false
 }
       }
}

Response Success Example:

{
    "status": "Success",
    "pass-issuance-link-template-id": "95f8ce07f404d96d6ecdc13583eacf53",
    "preview-url": "https://d2c.skycore.com/wallet/gc/95f8ce07f404d96d6ecdc13583eacf53?pass-id={ Parameter Value }&passenger-name-value=Encrypted({ Parameter Value })&boarding-position-value=Encrypted({ Parameter Value })&boarding-group=Encrypted({ Parameter Value }&seat-number-value=Encrypted({ Parameter Value }&reservation-confirmation-code=Encrypted({ Parameter Value })"
}

Response Failure Example:

{
    "status": "Failure",
    "error-code": "E1543",
    "error-message": "Either pass variables provided are invalid or empty"
}

UpdatePassIssuanceLink

The UpdatePassIssuanceLink API is used to update an issuance link for a Boarding Pass. To update a Boarding Pass Issuance Link you will need the correct ‘pass-template-id’ associated with the Pass Template being used for the issuance link.

Request: Boarding Pass

{
 "action": "UpdatePassIssuanceLink",
 "api-key": "API KEY",
 "link-name": "PASS ISSUANCE LINK TEMPLATE NAME",
 "link-expiration-timestamp": "EXPIRATION TIMESTAMP ISO 8601 FORMAT",
 "link-expiration-timezone": "EXPIRATION TIMEZONE OF PASS ISSUANCE LINK",
 "link-generation-limit" : "MAX. NUMBER OF UNIQUE PASSES TO BE GENERATED",
"link-status" : "STATUS OF THE LINK",
 "encryption-settings:" {
 "encryption-name": "AES_CBC",
 "secret-key": "SECRET KEY",
 "iv": "INITIALIZATION VECTOR"
                },
 "link-protection": {
 "checksum": "CRC32 / SHA256 / SHA384 / SHA512",
 "checksum-applied": "FULL-LINK / QUERY-STRING"
                }
 "pass-template-id": "PASS TEMPLATE ID",
 "pass-variables": {
                "passenger-name-value":{
 "is-required": true,
 "value-encryption": true/false
                },
                "boarding-position-value":{
 "is-required": true,
 "value-encryption": true/false
                },
                "boarding-group":{
 "is-required": true,
 "value-encryption": true/false
                },
                "seat-number-value":{
 "is-required": true,
 "value-encryption": true/false
                },
                "reservation-confirmation-code-value":{
 "is-required": true,
 "value-encryption": true/false
                },
                "pass-id": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "expiration-timestamp": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "expiration-timezone": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "additional-image": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "additional-image-text": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "boarding-seat-class": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "sequence-number-value": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "reservation-eticket-number-value": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "frequent-flyer-name/number-value": {
 "is-required": true/false,
 "value-encryption": true/false
                },
                "barcode-value": {
                    "is-required": true / false,
                    "value-encryption": true / false
                },
                "relevance-location-address1": {                  // 10 fields 
                        "is-required": true / false,
                    "value-encryption": true / false
                },
                "relevance-location-latitude1": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-location-longitude1": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-text1": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-location-address2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-location-latitude2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-location-longitude2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "relevance-text2": {
                        "is-required": true / false,
                          "value-encryption": true / false
                },
                "ibeacon-uuid1": {                                // 10 fields 
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-major1": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-minor1": {
                        "is-required": true / false,
                         "value-encryption": true / false
                },
                "ibeacon-relevance-text1": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-uuid2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-major2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-minor2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                },
                "ibeacon-relevance-text2": {
                        "is-required": true / false,
                        "value-encryption": true / false
                }
    }
}


Request Example: Boarding Pass

{
 "action": "Updatepassissuancelink",
 "api-key": "nFel9m06R7bR7HkrhZIXIzeqTAnrCugBw",
 "issuance-link-name": "TestIssuanceLink",
 "pass-template-id": "39cfcd38b1205ca3ac492851cb3bd6056d94581f",
 "link-expiration-timestamp": "2020/10/23T00:00-10:00",
 "link-expiration-timezone": "America/New_York",
 "link-generation-limit": 100,
 "link-status": "active",
 "encryption-settings": {
 "encryption-name": "aes-cbc",
 "secret-key": "dNJWdAIchrX7OQflNEk1quq3CvjngmXj",
 "iv": "wbJWPb9KLbxo6xpk"
 },
 "link-protection": {
 "checksum-algorithm": "crc32",
 "checksum-applied": "query-string"
 },
 "pass-variables":{
 "pass-id": {
 "is-required": true,
 "value-encryption": false
 },
                "passenger-name-value":{
 "is-required": true,
 "value-encryption": true
                },
                "boarding-position-value":{
 "is-required": true,
 "value-encryption": true
                },
                "boarding-group":{
 "is-required": true,
 "value-encryption": true
                },
                "seat-number-value":{
 "is-required": true,
 "value-encryption": true/false
                },
                "reservation-confirmation-code-value":{
 "is-required": true,
 "value-encryption": true/false
 }
       }
}

Response Success Example:

{
    "status": "Success",
    "pass-issuance-link-template-id": "95f8ce07f404d96d6ecdc13583eacf53",
    "preview-url": "https://d2c.skycore.com/wallet/gc/95f8ce07f404d96d6ecdc13583eacf53?pass-id={ Parameter Value }&passenger-name-value=Encrypted({ Parameter Value })&boarding-position-value=Encrypted({ Parameter Value })&boarding-group=Encrypted({ Parameter Value }&seat-number-value=Encrypted({ Parameter Value }&reservation-confirmation-code=Encrypted({ Parameter Value })"
}

Response Failure Example:

{
    "status": "Failure",
    "error-code": "E1543",
    "error-message": "Either pass variables provided are invalid or empty"
}

CreatePassTemplate

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

Params/VariablesFormatDescription
actionMandatory, Alphabetic (a-zA-Z)This is the name of the function you want to execute with the API.
api-keyMandatory, Alphanumeric (a-zA-Z0-9), Case-SensitiveThis is a random key that is assigned to an account and can be used for authorization. You can find and regenerate this key on the ‘API Settings’ page.
pass-template-typeMandatory. The expected value is “boarding pass”This defines the type of Pass that will be used for creating the Pass Template.
pass-template-nameMandatory. Alphanumeric (A-Za-z0-9)This is used as an internal name to identify the Pass Template.
carrier-airline-logoOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Apple Wallet Passes. Rectangular images are required
carrier-airline-logo-gpayOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is used only for Google passes. Circular images are preferred. Any image that is not circular will be masked into a circular image.
carrier-airline-nameMandatory, Alphanumeric (A-Za-z0-9)This is the airline name for the boarding pass. If “carrier-airline-logo” is set then this value won’t be displayed on Apple Wallet Passes.
carrier-alliance-logoOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThis PNG image is displayed as a small icon denoting the carrier alliance logo and is shown above the barcode on Apple Wallet Passes and below the barcode on Google Pay Passes.
background-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the background color of the Pass, for both Apple Wallet and Google Pay Passes.
origin-airport-labelOptional, Alphanumeric (A-Za-z0-9)The origin airport name.
origin-airportMandatory, Alphabetic (A-Za-z)The 3 letter IATA code for the origin airport.
destination-airport-labelOptional, Alphanumeric (A-Za-z0-9)The destination airport name.
destination-airportMandatory, Alphabetic (A-Za-z)The 3 letter IATA code for the destination airport.
passenger-nameMandatory, Alphanumeric (A-Za-z0-9)The passenger name value specified here will be used to generate static passes.
boarding-positionMandatory, Alphanumeric (A-Za-z0-9)The boarding position on the flight.
boarding-group-labelOptional, Alphabetic (A-Za-z). Accepted values: “Group” or “Zone”The boarding policy for the flight.
boarding-groupMandatory, Alphanumeric (A-Za-z0-9)The boarding group for the flight.
seat-numberMandatory, Alphanumeric (A-Za-z0-9)The seat number for the passenger boarding the flight.
origin-terminalMandatory, Alphanumeric (A-Za-z0-9)The departure terminal for the flight.
origin-gateMandatory, Alphanumeric (A-Za-z0-9)The departure gate for the flight.
flight-number-labelMandatory, Alphanumeric (A-Za-z0-9)The 2 letter IATA code for the airline
flight-numberMandatory, Alphanumeric (A-Za-z0-9)The 3 or 4 letter/number flight number.
boarding-timeMandatory, Alphanumeric (A-Za-z0-9).mm/dd/yyyy hour:min AM/PMThe local date/time value for the flight boarding time.
boarding-seat-class-labelOptional, Alphabetic (A-Za-z). Accepted values: “Cabin” or “Class”The boarding seat class policy.
boarding-seat-classOptional, Alphanumeric (A-Za-z0-9)The boarding seat class for the flight.
sequence-numberOptional, Alphanumeric (A-Za-z0-9)The sequence number of the flight.
boarding-doorOptional, Alphabetic (A-Za-z). Accepted values: “Front” or “Back”The boarding door value.
confirmation-numberMandatory, Alphanumeric (A-Za-z0-9)The reservation confirmation code for the flight ticket. This value is used to generate a static pass.
ticket-numberOptional, Alphanumeric (A-Za-z0-9)The ticket number for the passenger. This value is used to generate a static pass.
frequent-flyer-name-numberOptional, Alphanumeric (A-Za-z0-9)The frequent flyer name and number for the passenger. This value is used to generate a static pass.
gate-closing-timeOptional, Alphanumeric (A-Za-z0-9).mm/dd/yyyy hour:min AM/PMThe local date/time value for the gate closing time.
departure-timeMandatory, Alphanumeric (A-Za-z0-9).mm/dd/yyyy hour:min AM/PMThe local date/time value for the flight departure time.
estimated-departure-timeOptional, Alphanumeric (A-Za-z0-9).mm/dd/yyyy hour:min AM/PMThe local date/time value for the estimated flight departure time. If this is left empty, the scheduled time will be displayed on the Pass.
arrival-timeOptional, Alphanumeric (A-Za-z0-9).mm/dd/yyyy hour:min AM/PMThe local date/time value for the flight arrival time.
estimated-arrival-timeOptional, Alphanumeric (A-Za-z0-9).mm/dd/yyyy hour:min AM/PMThe local date/time value for the estimated flight arrival time. If this is left empty, the scheduled time will be displayed on the Pass.
arrival-terminalOptional, Alphanumeric (A-Za-z0-9)The arrival terminal name for the flight.
arrival-gateOptional, Alphanumeric (A-Za-z0-9)The arrival gate name for the flight.
message1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message1 field.
message1Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of apple pass, and below the pass for Google.
message2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the message2 field.
message2Optional, Alphanumeric (A-Za-z0-9)This field is used to display any message. It is displayed on the back of apple pass, and below the pass for Google.
text-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the text-module field.
text-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay.
info-module-labelOptional, Alphanumeric (A-Za-z0-9)The label for the info-module field.
info-moduleOptional, Alphanumeric (A-Za-z0-9)This field is also used to display any message like the message fields. It is displayed on the back of Apple Wallet Pass, and below the Pass for Google Pay. When the Pass Status is updated, this field value is updated with the appropriate message reflecting the status.
home-page-uri-labelOptional, Alphanumeric (A-Za-z0-9)The label for the home page URI.
home-page-uriOptional, Alphanumeric (A-Za-z0-9)This field is used to display any web page link which may contain any additional information about the Passes. The links are clickable on both Apple Wallet and Google Pay Passes and will open in a browser.
link1-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link1 field.
link1-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link1 field value.
link1Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link1-type field, this field can have an email id, a geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link1-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
link2-labelOptional, Alphanumeric (A-Za-z0-9)The label for the link2 field.
link2-typeOptional, Alphabetic (A-Za-z). Accepted values: “email”, “geo-location”, “map-link”, “phone”, or “web-link”This field specifies what the type of link will be for link2 field value.
link2Optional, Alphanumeric (A-Za-z0-9)Based on the value provided in the link2-type field, this field can have an email id, geolocation, a google map link, a phone number or a web link. The value will be validated based on the type set in the link2-type field. On Google Pay Passes, an icon will be displayed beside the field value to identify the type of field. E.g. the map link/geolocation will have a map icon.
text-colorMandatory, Numeric (0-9). 6 digit hexadecimal color code preceded by hash “#”This value defines the text color for Apple Wallet Passes only. Google controls the color for the values displayed on the Google Pay Pass, which is either black or white, based on the background color of the Pass.
descriptionMandatory, Alphanumeric (A-Za-z0-9)This field provides a description for the pass, which is used as a voice-over to describe Passes for blind or low vision users for Apple Wallet Passes only.
linked-appsOptional, Alphanumeric (A-Za-z0-9)This is a comma-separated list of iTunes apps, which are displayed on the back of the apple passes.
relevance-date-timeMandatory, Alphanumeric (A-Za-z0-9).mm/dd/yyyy hour:min AM/PMThe relevance date/time for the Pass. This is set as 3 hours prior to the boarding time by Google Pay. To make this consistent for Apple Wallet Passes, you should set this to 3 hours as well.
relevance-date-timezoneMandatory, Alphanumeric (A-Za-z0-9)The timezone name. E.g. America/New_York. Use the long names listed under section 9.1.
ibeaconsOptional, Alphanumeric (A-Za-z0-9).Format:
“proximity-uuid”:”UUID VALUE”,
“major”:”MAJOR VALUE”,
“minor”:”MINOR VALUE”, “relevant-text”:”RELEVANCE TEXT”
ibeacons are only applicable for Apple Wallet Passes. They are used to display messages on the lock screens of IOS mobile devices based on the values set.
additional-imageOptional, Alphanumeric (A-Za-z0-9). Web URLThis image is displayed only on Google Pay Passes, in the area below the pass in between the additional details.
additional-image-textOptional, Alphanumeric (A-Za-z0-9)This value provides information that is linked to the additional image.
strip-imageOptional, Alphanumeric (A-Za-z0-9). Web URL – Accepts PNG images onlyThe strip image is displayed below the airline logo and name only on Google Pay Passes, as a rectangular image throughout the width of the Pass.
expiry-dateOptional, Alphanumeric (A-Za-z0-9)Format:
mm/dd/yyyy hour:min AM/PM
The date/time value for the Pass expiration, if not set specifically for individual Passes.
expiration-timezoneOptional, Alphanumeric (A-Za-z0-9)The timezone name. E.g. America/New_York. Use the long names listed in section 9.1.
barcode-typeMandatory, Alphabetic (A-Za-z). Accepted values: “QRCODE”, “AZTEC”, “PDF417”, or “CODE128”The barcode type for all Passes installed using this Pass Template.
barcode-valueOptional, Alphanumeric (A-Za-z0-9)This is the default barcode value, which will be used for Passes if no value is provided.
autogenerate-barcode-valuesOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”.This field defines if the barcode values will be generated automatically for Passes.
autogenerate-barcode-value-typeOptional, Alphabetic (A-Za-z). Accepted values: “Numeric”, “Alphabet”, or “Alphanumeric”.This field defines the type of barcode values that will be auto-generated for Passes if the autogenerate-barcode-values is set to “True”.
autogenerate-barcode-value-lengthOptional, Numeric (0-9). Accepted values: 10 – 100This field defines the length of the auto-generated barcode value for Passes if the autogenerate-barcode-values is set to “True”.
relevant-locationsOptional, Alphanumeric (a-zA-Z0-9)Format:
“latitude”:”COORDINATES”, “longitude”:”COORDINATES”, “relevant-text”:”RELEVANCE TEXT”
These fields are used to display text information for Passes, when the device that the Pass is installed on is detected at the relevant location. The locations are defined by the latitude/longitude co-ordinates. The relevant-text is the message displayed for Apple Wallet Passes. For Google Pay Passes, a predefined message is displayed.
disable-pass-sharingOptional, Alphabetic (A-Za-z). Accepted values: “True” or “False”This field defines if Passes installed for this Pass Template can be installed on multiple devices or not.
never-installed-ttlOptional, Numeric (0-9)This field sets the number of hours post which an uninstalled pass will be archived.
never-installed-archive-timestampOptional, Numeric (0-9)This field, if set, defines the timestamp post which an uninstalled timestamp will be archived. This value will be considered if never-installed-ttl is also set.
expired-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which an expired pass will be archived.
redeemed-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a redeemed pass will be archived.
voided-pass-ttlOptional, Numeric (0-9)This field sets the number of hours post which a voided pass will be archived.

Request: Boarding Pass

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

Request Example: Boarding Pass

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

Response Success Example:

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

Response Failure Example:

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

UpdatePassTemplate

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

Request: Boarding Pass

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

Request Example: Boarding Pass

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

Response Success Example:

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

Response Failure Example:

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