Skycore helps issue personalized Mobile Wallet Passes to your customers through SMS, MMS, Web, QR code, or email. You can send multiple types of passes including coupons, gift cards, loyalty cards, event tickets, and boarding passes.

MoEngage <> Skycore

The MoEngage and Skycore integration can help take your loyalty or coupon program to the next level by sending passes generated by Skycore to your audience through MoEngage campaigns. 

With this integration, you can - 

1. Create passes using Pass Issuance Links 

2. Update passes on the fly based on user actions (events) 




  • Ensure you have access to your Skycore account. 
  • Ensure you have your Skycore API Key. You can access this by navigating to Settings >> API Settings on your Skycore dashboard. 
  • Ensure you have a Pass Template ready.

Create passes using Pass Issuance Links

Within MoEngage campaigns, you can set up a Pass Issuance link to generate a unique URL for your customers to install their pass on either Android or iOS wallets. These can be sent via email or embedded into a website. 

Step 1: Create a new Pass Issuance Link on Skycore

  1. Please follow the steps here to Create a New Pass Issuance Link.
  2. Once created, the link will show up on Pass Issuance Links tab.
    Note- MoEngage only supports SHA256 (with and without salt) encryptions.

  3. Click Get Link. Your link will look like this:{Unique-Link-ID}?{Paramater-1}={Value-1}&{Paramater-2}={Value-2} ... &checksum={Hashed-Value}

Step 2: Create and encode payload variable 

  1. Go to step 2 of your campaign creation

  2. Inside your template, create a passlink (using the link copied in Step 1) within an HTML Block:
{% set passLink = "" + {{UserAttribute['Email (Standard)']|default('MOE_NOT_SEND')}} + "&user-phone=" + {{UserAttribute['Mobile Number (Standard)']|default('MOE_NOT_SEND')}} + "&pass-id=MOED" + {{UserAttribute['First Name']|default('MOE_NOT_SEND')}} + "2022&barcode-value=MOED" + {{UserAttribute['First Name']|default('MOE_NOT_SEND')}} + "2022&message4=Enter this coupon code while checking out." %}

Hash the passlink this using SHA256 (no salt):

{% set hash = passLink|convertToSHA256NoSalt() %}

Append this hash as a checksum parameter in the passLink variable:

{% set finalPassLink = passLink + "&checksum=" + hash %}

Step 3: Preview your URL  

You can print the variables in the template or use the Personalized Previews to preview and validate  


Step 4: Add Save Pass option in your MoEngage campaigns 

Add a Save Pass Button according to your design specifications from Google (Android) and Apple (iOS) respectively.

  1. Insert a new image inside your template. 
  2. In our File Manager, click on "Import" and then select URL.

For your reference, here are the URLs:

For Android,

For Apple,

3. Select the appropriate image to show.

4. In the URL section, type:



Now you are all set. You can test the campaign and verify.

Update passes dynamically based on user actions (events) 

Within MoEngage, you can set up an Event Triggered Connector Campaign to update an existing pass based on your user’s behavior. Check out the following links for information on useful Skycore endpoints- 

  1. Gift Card API
  2. Coupon API
  3. Loyalty Card API
  4. Event Ticket API
  5. Boarding Pass API

Step 1: Define the right payload 

Your payload varies depending on the type of pass and template that you want to update. Use the links shared above to get the relevant payload.

Let's consider the following use-case: A marketer wants to mark the pass as void, if the user uninstalls the app.  So, we will be working with Coupon APIs. And will need to update the pass that was generated by the campaign earlier.

API endpoint: 



      "pass-id":"MOED{{UserAttribute['First Name']|default('MOE_NOT_SEND')}}2022",
      "pass-template-id": "d5144e25f17*************************beaa",
      "pass-data": {
        "pass-update-notification":"Your pass has expired."

Step 2: Create a connector campaign on MoEngage

To create a connector campaign on MoEngage, 

  1. Navigate to Create Campaign >> Connectors >> Custom >> Event triggered 
  2. On step 2 of the campaign,
    • Select method as POST
    • Add Webhook URL as:
    • In Headers, add
      1. "X-Api-Key" as the API key you copied from the Skycore Settings page.
      2. "Content-Type" as "application/json".
    • In Body, choose Raw and type your customised payload. You can type "@" to add personalised content. For our above example our payload looks like this:
          "pass-id":"MOED{{UserAttribute['First Name']|default('MOE_NOT_SEND')}}2022",
          "pass-template-id": "d5144e25f17*************************beaa",
          "pass-data": {  
              "pass-update-notification":"Your pass has expired."

  3. At this point, your campaign should be ready to test and send. You can also test your connector configuration using the Test functionality available on Step 2 of Create Connector Campaign.


If your test pass is successfully updated, your set-up is good to go. You can go ahead and Publish the campaign.

Step 3: Preview your pass on Skycore

Click on the button in the test email and your new pass should be generated. You can choose to install it as well. To check whether Skycore is successfully capturing this,

  1. Go to your Skycore's dashboard >> Mobile Wallet >> Pass Data Manager.
  2. Click on the pass you want to view.



Was this article helpful?
0 out of 0 found this helpful

How can we improve this article?