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.
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.
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’.
Header: X-Api-Key : XXXXXXXXXXXXXXXXXXXX Request: { "action":"generatepass", "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", “strip-image” : “STRIP 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" }, … ] } }
Header: X-Api-Key : QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj Request: { "action":"generatepass", "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!" } ] } }
{ "status":"Success", "pass-id":"rockonrock2020", "pass-install-url":"https://d2c.skycore.com/wallet/dc/eazt0sq3r4", "tracking-id":"EDRZKf-JTDiY-EJZ" }
{ "status":"Failure", "error-code":"E830", "error-message":"Internal Error. The pass was not generated.", "pass-id":"rockonrock2020" }
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’. The field for ‘pass-status’ will accept the following values: “redeemed”, “expired”, “voided”, “active”.
Header: X-Api-Key : XXXXXXXXXXXXXXXXXXXXXX Request: { "action":"updatepassdata", "pass-id":"UNIQUE CUSTOMER PASS ID", “pass-template-id”: “PASS TEMPLATE 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" }, … ] } }
Header: X-Api-Key : QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj Request: { "action":"updatepassdata", "pass-id":"Boarding pass_1", “pass-template-id”: "d1b31d375f8e61d5e64437f29160466e2021e86e”, "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!" } ] } }
{ "status":"Success", "pass-id":"rockonrock2020", "tracking-id":"EDRYpq-GAxbE-EKE" }
{ "status" : "Failure", "error-code" : "E809", "error-message" : "Internal Error. The pass was not updated.", "pass-id":"rockonrock2020" }
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.
Header: X-Api-Key : XXXXXXXXXXXXXXXXXXXXX Request: { "action":"getpassdata", "pass-id":"UNIQUE CUSTOMER PASS ID", “pass-template-id”: “PASS TEMPLATE ID” }
Header: X-Api-Key : QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj Request: { "action":"getpassdata", "pass-id":"rockonrock2020", “pass-template-id”: "d1b31d375f8e61d5e64437f29160466e2021e86e” }
{ "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!" } ] } }
{ "status":"FAILURE", "error-code":"E808", "error-message":"The pass-id value is invalid.", "pass-id":"rockonrock2020" }
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.
Header: X-Api-Key : XXXXXXXXXXXXXXXXXXXXXXX Request: { "action":"getpasstemplate", "pass-template-id":"CARD TEMPLATE ID" }
Header: X-Api-Key : QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj Request: { "action":"getpasstemplate", "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41" }
{ "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!" } ] } }
{ "status":"FAILURE", "error-code":"E802", "error-message":"The pass-template-id value is invalid.", "pass-template-id":"b2ab2c28987f9f759b1dfc473e261330410a0f41" }
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.
Header: X-Api-Key : XXXXXXXXXXXXXXXXXXXXXX Request: { "action": "createPassIssuanceLink", "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", “update-pass-data” : true/false, "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 } } }
Header: X-Api-Key : QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj Request: { "action": "createpassissuancelink", "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", “update-pass-data” : "true", "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 } } }
{ "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 })" }
{ "status": "Failure", "error-code": "E1543", "error-message": "Either pass variables provided are invalid or empty" }
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.
Header: X-Api-Key : XXXXXXXXXXXXXXXXXXXXX Request: { "action": "UpdatePassIssuanceLink", "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", “update-pass-data” : true/false, "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 } } }
Header: X-Api-Key : QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj Request: { "action": "Updatepassissuancelink", "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", “update-pass-data” : "true", "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 } } }
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-subtype, 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
Header: X-Api-Key : XXXXXXXXXXXXXXXXXXXXXXX Request: { "action" : "createPassTemplate", "pass-template-type" : "boarding-pass" “pass-template-subtype” : “boarding-pass-type1”, "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" : { “expiration-setting” : “SETTING TYPE”, "expiry-date": "EXPIRATION TIMESTAMP", "expiry-timezone": "VALID TIMEZONE NAME", “auto-expire-number-days” : “NUMBER OF DAYS POST AUTO EXPIRE PASSES”, “auto-expire-number-hours” : “NUMBER OF HOURS POST AUTO EXPIRE PASSES”, “auto-expire-timezone” : “VALID TIMEZONE NAME”, “auto-expire-roundoff-midnight” : false, }, “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" } }
Header: X-Api-Key : QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj Request: { "action":"createPassTemplate", "pass-template-type":"boarding-pass", “pass-template-subtype” : “boarding-pass-type1”, "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" } }
{ "status":"Success", "pass-template-type":"boarding-pass", "pass-template-name":"boarding pass-1", "pass-template-id":"02f0b481234c7265cf656571af45d13120ef4868" }
{ "status":"Failure", "error-code":"E922", "error-message":"The relevant-1 latitude value is invalid." }
The UpdatePassTemplate API is used to update an existing Pass Template for a boarding pass. The param: pass-update-notification is used to display an update notification on already installed passes, when static data is updated on the template. This param is optional and alphanumeric (A-Za-z0-9).
Header: X-Api-Key : XXXXXXXXXXXXXXXXXXXXXX Request: { "action" : "updatePassTemplate", "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 { "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” }, … ] }, “gpay-fields” : { "additional-image": "ADDITIONAL IMAGE URL", "additional-image-text": "Image Description", “strip-image” : “IMAGE PATH” }, "expiration-fields" : { “expiration-setting” : “SETTING TYPE”, "expiry-date": "EXPIRATION TIMESTAMP", "expiry-timezone": "VALID TIMEZONE NAME", “auto-expire-number-days” : “NUMBER OF DAYS POST AUTO EXPIRE PASSES”, “auto-expire-number-hours” : “NUMBER OF HOURS POST AUTO EXPIRE PASSES”, “auto-expire-timezone” : “VALID TIMEZONE NAME”, “auto-expire-roundoff-midnight” : false, }, “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 { "key":"relevant-1", "latitude":"COORDINATES", "longitude":"COORDINATES", "relevant-text":"RELEVANCE TEXT” }, { "key":"relevant-2", "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" }, “pass-update-notification” : “UPDATE NOTIFICATION MESSAGE” }
Header: X-Api-Key : QX4G4ijIIkutK2exyAY1iwA3y8cwwmEj Request: { "action":"updatePassTemplate", "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":[ { "key":"ibeacon-1", "proximity-uuid":"123213", "major":"123213", "minor":"21321", "relevant-text":"Come grab some popcorn!" }, { "key":"ibeacon-2", "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":[ { "key":"relevant-1", "latitude":"119.26", "longitude":"72.96", "relevant-text":"Come grab some popcorn!" }, { "key":"relevant-2", "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" }, “pass-update-notification” : “Your pass has been updated.” } }