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.

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


How did we do?


Powered by HelpDocs (opens in a new tab)