Webhooks

Getting Started

Webhooks can be enabled and modified through the API key section of the Skio dashboard. To setup a webhook, enter a URL that you would like SKio to send webhooks to and hit save.

This will then save the webhook and generate a token that can be used to verify webhook calls made.

Every webhook is a JSON payload with the following fields:

{
          	"domain": string; // The domain of the shop.
          	"subscriptionId": string; // The Skio subscription ID that this event affects.
          	"eventType": string; // The type of event in this webhook (see below for a full list of event types).
          	"eventData": json; // A JSON blob containing details about the event (see below for a full specification).
          	"skioWebhookToken": string; // The webhook token from above.
          }<br>
          

To ensure that you aren't receiving spoofed webhooks from a source that is not Skio, it is important to check that the token in the webhook matches the token in the console above for every webhook received.

Event Details

A full JSON schema specification of all possible events are below.
{
              "$schema": "http://json-schema.org/draft-07/schema#",
              "definitions": {
                  "AuditEventType": {
                      "enum": [
                          "Discount code applied",
                          "Subscription activated",
                          "Subscription cancelled",
                          "Subscription interval/date update",
                          "orderPlaced",
                          "productsUpdated"
                      ],
                      "type": "string"
                  },
                  "SellingPlanInterval": {
                      "description": "Represents valid selling plan interval.",
                      "enum": [
                          "DAY",
                          "MONTH",
                          "WEEK",
                          "YEAR"
                      ],
                      "type": "string"
                  },
                  "UserType": {
                      "enum": [
                          "DashboardUser",
                          "Skio",
                          "StorefrontUser"
                      ],
                      "type": "string"
                  }
              },
              "properties": {
                  "domain": {
                      "type": "string"
                  },
                  "eventData": {
                      "anyOf": [
                          {
                              "properties": {
                                  "shopifyOrderId": {
                                      "type": "string"
                                  },
                                  "shopifyOrderName": {
                                      "type": "string"
                                  },
                                  "subscriptionId": {
                                      "type": "string"
                                  },
                                  "timestamp": {
                                      "type": "string"
                                  },
                                  "userCognitoUsername": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userEmail": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userType": {
                                      "$ref": "#/definitions/UserType"
                                  }
                              },
                              "type": "object"
                          },
                          {
                              "properties": {
                                  "subscriptionId": {
                                      "type": "string"
                                  },
                                  "timestamp": {
                                      "type": "string"
                                  },
                                  "userCognitoUsername": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userEmail": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userType": {
                                      "$ref": "#/definitions/UserType"
                                  }
                              },
                              "type": "object"
                          },
                          {
                              "properties": {
                                  "subscriptionId": {
                                      "type": "string"
                                  },
                                  "timestamp": {
                                      "type": "string"
                                  },
                                  "userCognitoUsername": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userEmail": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userType": {
                                      "$ref": "#/definitions/UserType"
                                  }
                              },
                              "type": "object"
                          },
                          {
                              "properties": {
                                  "newProducts": {
                                      "items": {
                                          "properties": {
                                              "price": {
                                                  "type": "number"
                                              },
                                              "productTitle": {
                                                  "type": "string"
                                              },
                                              "productVariantId": {
                                                  "type": "string"
                                              },
                                              "productVariantTitle": {
                                                  "type": "string"
                                              },
                                              "quantity": {
                                                  "type": "number"
                                              }
                                          },
                                          "type": "object"
                                      },
                                      "type": "array"
                                  },
                                  "oldProducts": {
                                      "items": {
                                          "properties": {
                                              "price": {
                                                  "type": "number"
                                              },
                                              "productTitle": {
                                                  "type": "string"
                                              },
                                              "productVariantId": {
                                                  "type": "string"
                                              },
                                              "productVariantTitle": {
                                                  "type": "string"
                                              },
                                              "quantity": {
                                                  "type": "number"
                                              }
                                          },
                                          "type": "object"
                                      },
                                      "type": "array"
                                  },
                                  "subscriptionId": {
                                      "type": "string"
                                  },
                                  "timestamp": {
                                      "type": "string"
                                  },
                                  "userCognitoUsername": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userEmail": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userType": {
                                      "$ref": "#/definitions/UserType"
                                  }
                              },
                              "type": "object"
                          },
                          {
                              "properties": {
                                  "newIntervalAndDate": {
                                      "properties": {
                                          "billingDate": {
                                              "type": "string"
                                          },
                                          "interval": {
                                              "$ref": "#/definitions/SellingPlanInterval"
                                          },
                                          "intervalCount": {
                                              "type": "number"
                                          }
                                      },
                                      "type": "object"
                                  },
                                  "oldIntervalAndDate": {
                                      "properties": {
                                          "billingDate": {
                                              "type": "string"
                                          },
                                          "interval": {
                                              "$ref": "#/definitions/SellingPlanInterval"
                                          },
                                          "intervalCount": {
                                              "type": "number"
                                          }
                                      },
                                      "type": "object"
                                  },
                                  "skipped": {
                                      "type": "boolean"
                                  },
                                  "subscriptionId": {
                                      "type": "string"
                                  },
                                  "timestamp": {
                                      "type": "string"
                                  },
                                  "userEmail": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userType": {
                                      "$ref": "#/definitions/UserType"
                                  }
                              },
                              "type": "object"
                          },
                          {
                              "properties": {
                                  "amount": {
                                      "type": "number"
                                  },
                                  "codePlatformId": {
                                      "type": "string"
                                  },
                                  "method": {
                                      "enum": [
                                          "FIXED_VALUE",
                                          "PERCENTAGE"
                                      ],
                                      "type": "string"
                                  },
                                  "redeemCode": {
                                      "type": "string"
                                  },
                                  "subscriptionId": {
                                      "type": "string"
                                  },
                                  "timestamp": {
                                      "type": "string"
                                  },
                                  "type": {
                                      "anyOf": [
                                          {
                                              "enum": [
                                                  "CANCEL_DISCOUNT",
                                                  "DISCOUNT_CODE",
                                                  "FREE_SHIPPING",
                                                  "GROUP_SUBSCRIPTION",
                                                  "MANUAL_DISCOUNT",
                                                  "PREPAID_DISCOUNT",
                                                  "VOLUME_DISCOUNT"
                                              ],
                                              "type": "string"
                                          },
                                          {
                                              "type": "null"
                                          }
                                      ]
                                  },
                                  "userCognitoUsername": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userEmail": {
                                      "type": [
                                          "null",
                                          "string"
                                      ]
                                  },
                                  "userType": {
                                      "$ref": "#/definitions/UserType"
                                  }
                              },
                              "type": "object"
                          }
                      ]
                  },
                  "eventType": {
                      "$ref": "#/definitions/AuditEventType"
                  },
                  "subscriptionId": {
                      "type": "string"
                  }
              },
              "type": "object"
          }
          
          <br>
          

How did we do?


Powered by HelpDocs (opens in a new tab)