WLL Rewards Configuration API

Introduction

The White Label Loyalty (WLL) Rewards Configuration API enables developers to programmatically manage every part of the WLL Rewards platform to enable advanced automated configuration systems without human intervention in the console.

Authorization

All requests to the API must contain a X-Api-Key header to identify your tenant account. In addition to the API key, all of these methods additionally require a Bearer token Authorization header to identify the entity accessing the API, and ensure the requester has sufficient permissions for the requested operation.

The Bearer token can be generated using the client credentials flow of the WLL administrative authorization server. The necessary client credentials can be provided upon request.

Rewards

Rewards Collection

POST api.rewards.wlloyalty.net/v1/rewards
RequestsVoucherGeneric Offer
Headers
Content-Type: application/json
Body
{
  "type": "VOUCHER",
  "name": "Free Cup of Coffee",
  "summary": "This is a short summary.",
  "description": "Redeem this reward for a free cup of coffee",
  "terms": "",
  "priority": 0,
  "pictureUrl": "https://example.com/pic.jpg",
  "category": {
    "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
  },
  "value": 0,
  "price": 0,
  "purchasable": false,
  "availability": {
    "start": "2018-06-08T18:19:10.878Z",
    "end": "2018-06-09T18:19:10.878Z"
  },
  "tier": {
    "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
  },
  "venues": [
    {
      "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
    }
  ],
  "redemptionChannels": [
    "IN_STORE",
    "ONLINE"
  ],
  "purchaseExpiration": 86400,
  "codeType": "OTP"
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "VOUCHER"
      ]
    },
    "name": {
      "type": "string"
    },
    "summary": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "terms": {
      "type": "string"
    },
    "priority": {
      "type": "number"
    },
    "pictureUrl": {
      "type": "string"
    },
    "category": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "required": [
        "id"
      ]
    },
    "value": {
      "type": "number"
    },
    "price": {
      "type": "number"
    },
    "purchasable": {
      "type": "boolean"
    },
    "availability": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string"
        },
        "end": {
          "type": "string"
        }
      }
    },
    "tier": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "required": [
        "id"
      ]
    },
    "venues": {
      "type": "array"
    },
    "redemptionChannels": {
      "type": "array"
    },
    "purchaseExpiration": {
      "type": "number"
    },
    "codeType": {
      "type": "string",
      "enum": [
        "OTP",
        "POOL",
        "STATIC",
        "HUMAN"
      ]
    },
    "code": {
      "type": "string"
    }
  },
  "required": [
    "type",
    "name",
    "description",
    "terms",
    "priority",
    "pictureUrl",
    "value",
    "price",
    "purchasable",
    "availability",
    "codeType"
  ]
}
Responses201
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "type": "VOUCHER",
    "id": "9cb2cc08-e033-4200-86a7-95a03ba09462",
    "name": "Free Cup of Coffee",
    "pictureUrl": "https://example.com/pic.jpg",
    "purchasable": false,
    "summary": "Example summary",
    "defaultLocale": "en"
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "VOUCHER",
            "GENERIC_OFFER",
            "AWIN_PROGRAMME",
            "FIDEL_OFFER",
            "OLIVE_OFFER",
            "WEGIFT_PRODUCT",
            "XOXO_PRODUCT"
          ]
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "pictureUrl": {
          "type": "string"
        },
        "purchasable": {
          "type": "boolean"
        },
        "summary": {
          "type": "string"
        },
        "defaultLocale": {
          "type": "string",
          "enum": [
            "en",
            "fr",
            "de",
            "it",
            "es",
            "nl",
            "ar",
            "tr"
          ]
        }
      },
      "required": [
        "type",
        "id",
        "name",
        "pictureUrl",
        "purchasable",
        "defaultLocale"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Create a Reward
POST/rewards

Use this API to define a new reward available to users. Rewards provide a wrapper to define the behaviour which can be granted to or purchased by users; see here for more information.

There are different types of reward to allow different kinds of behaviour. The types available to you depend on the commercial options you have chosen.

The full list of available types is provided below in the Key Common Fields section.

Key Common Fields

type specifies the kind of behaviour this reward represents. It also defines what other properties are required/possible. The value can be one of:

  • VOUCHER

  • GENERIC_OFFER

  • AWIN_PROGRAMME

  • FIDEL_OFFER

  • KINDRED

  • OLIVE_OFFER

  • WEGIFT_PRODUCT

  • XOXO_PRODUCT

price is the number of points required for users to purchase this reward.

priority dictates an order in which rewards can be listed to users. The reward with the greatest priority is shown first.

tier dictates the minimum tier which a user must have attained in order to access this reward.

venues dictates at which venues this reward should be valid.

Generic Offer Fields

clickThroughUrl a URL related to this reward you want to be available for users.

Voucher Fields

A reward can be defined as purchasable in which case a user may use their points balance to “purchase” a voucher for that reward. Alternatively if the reward is marked as unpurchasable then vouchers for it can only be directly granted as an event reaction.

Reward Flow

purchaseExpiration is the number of seconds that a voucher should be valid after it is purchased by or granted to the user.

codeType dictates the behaviour of the voucher code. It can be one of OTP, POOL, STATIC, HUMAN. The differences are explained below.

code the static code to use for this reward if STATIC code type is selected.

hideCode boolean to dictate whether the actual code should be hidden from the user in user interfaces when redeeming.

redemptionMessage a message that should be displayed to users when redeeming this reward.

Voucher Code Types

Static

The simplest type of code where every voucher for this reward is given the same specified code.

Pool

A list of codes valid for this reward is uploaded to the system into a pool. Each time a user gets a voucher for this reward one code from the pool is assigned to that voucher.

OTP (One time password)

Every time a user gets a voucher for this reward a unique code is generated and assigned to that voucher. Since integrating systems won’t have prior knowledge of these codes they must be actively validated with our API during redemption.

Fidel Offer Fields

fidelBrandId required; the Fidel ID of the brand this reward is intended for.

fidelOfferId optional; the Fidel ID of the specific offer this reward represents.

schemes required; an array of the card schemes this reward is active on e.g "visa".

currency required; ISO 4217 three letter currency code.

country required; ISO 3166 alpha 2 country code.

minTransactionAmount optional number; the minimum transaction amount which qualifies for this offer.

maxTransactionAmount optional number; the minimum transaction amount which qualifies for this offer.

returnPeriod optional number; the number of days in which returns are possible.

🔒 Admin authorization required

Requests to this method must provide an Authorization header containing a valid administrative token with admin:rewards scope. Non-compliant requests will be rejected.


Individual Reward

PATCH api.rewards.wlloyalty.net/v1/rewards/5a79eb9e-52d8-44ea-abff-451edf08ed55
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "type": "VOUCHER",
  "name": "Free Cup of Coffee",
  "summary": "This is a short summary.",
  "description": "Redeem this reward for a free cup of coffee",
  "terms": "",
  "priority": 0,
  "pictureUrl": "https://example.com/pic.jpg",
  "category": {
    "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
  },
  "value": 0,
  "price": 0,
  "purchasable": false,
  "availability": {
    "start": "2018-06-08T18:19:10.878Z",
    "end": "2018-06-09T18:19:10.878Z"
  },
  "tier": {
    "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
  },
  "venues": [
    {
      "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
    }
  ],
  "redemptionChannels": [
    "IN_STORE",
    "ONLINE"
  ]
}
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "type": "VOUCHER",
    "id": "9cb2cc08-e033-4200-86a7-95a03ba09462",
    "name": "Free Cup of Coffee",
    "pictureUrl": "https://example.com/pic.jpg",
    "purchasable": false,
    "summary": "Example summary",
    "defaultLocale": "en"
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "VOUCHER",
            "GENERIC_OFFER",
            "AWIN_PROGRAMME",
            "FIDEL_OFFER",
            "OLIVE_OFFER",
            "WEGIFT_PRODUCT",
            "XOXO_PRODUCT"
          ]
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "pictureUrl": {
          "type": "string"
        },
        "purchasable": {
          "type": "boolean"
        },
        "summary": {
          "type": "string"
        },
        "defaultLocale": {
          "type": "string",
          "enum": [
            "en",
            "fr",
            "de",
            "it",
            "es",
            "nl",
            "ar",
            "tr"
          ]
        }
      },
      "required": [
        "type",
        "id",
        "name",
        "pictureUrl",
        "purchasable",
        "defaultLocale"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Update a Reward
PATCH/rewards/{id}

Update the details of a particular reward. All properties are optional so it is only necessary to pass data for the property/properties you want to update.

🔒 Admin authorization required

Requests to this method must provide an Authorization header containing a valid administrative token with admin:rewards scope. Non-compliant requests will be rejected.

URI Parameters
HideShow
id
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the reward to update.


Reward Incentive Instructions

GET api.rewards.wlloyalty.net/v1/rewards/5a79eb9e-52d8-44ea-abff-451edf08ed55/discounts
RequestsDefault
Headers
X-Api-Key: $api_key
Authorization: Bearer $access_token
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": [
    {
      "type": "FIXED",
      "value": 1000,
      "sku": "321ZA",
      "productSku": "AZ123"
    }
  ]
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "array"
    }
  },
  "required": [
    "status",
    "data"
  ]
}

List Incentive Instructions
GET/rewards/{id}/discounts

Get a list of all the incentive instructions currently configured for a reward.

For most use-cases the Validate Voucher endpoint will likely be more useful, since that endpoint applies filtering logic to only return the instructions which are relevant during a specific voucher redemption.

🔐 Admin authorization required

Requests to this method must provide an Authorization header containing a valid administrative token with read:rewards scope. Non-compliant requests will be rejected.

URI Parameters
HideShow
id
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the reward.


POST api.rewards.wlloyalty.net/v1/rewards/5a79eb9e-52d8-44ea-abff-451edf08ed55/discounts
RequestsDefault
Headers
X-Api-Key: $api_key
Authorization: Bearer $access_token
Body
{
  "type": "FIXED",
  "value": 1000,
  "sku": "321ZA",
  "productSku": "AZ123"
}
Schema
HideShow
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "FIXED",
        "ABSOLUTE",
        "PERCENTAGE"
      ]
    },
    "value": {
      "type": "number"
    },
    "sku": {
      "type": "string"
    },
    "productSku": {
      "type": "string"
    }
  },
  "required": [
    "type",
    "value"
  ],
  "$schema": "http://json-schema.org/draft-04/schema#"
}
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "type": "FIXED",
    "value": 1000,
    "sku": "321ZA",
    "productSku": "AZ123"
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "FIXED",
            "ABSOLUTE",
            "PERCENTAGE"
          ]
        },
        "value": {
          "type": "number"
        },
        "sku": {
          "type": "string"
        },
        "productSku": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "value"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Create an Incentive Instruction
POST/rewards/{id}/discounts

Use this endpoint to define new incentive instructions for the specified reward.

Discount objects may contain sku and productSku fields. These fields are intended to represent the SKU of the discount itself (if any) and the SKU of the product on which the discount should be applied (if any).

Absolute Discounts

A discount with type: 'ABSOLUTE' indicates that the product or basket price should be adjusted relative to the price before discounting. The value is an integer which represents the adjustment amount in the lowest denomination of the currency. For example given a basket price of £1.50, applying an absolute discount of value: 100 would result in a new basket price of £0.50.

Percentage Discounts

A discount with type: 'PERCENTAGE' indicates that the product or basket price should be adjusted by the given percentage of the price before discounting. The value is an integer which represents the percentage 0-100. For example given a basket price of £1.50, applying a percentage discount of value: 10 would result in a new basket price of £1.35.

Fixed Discounts

A discount with type: 'FIXED' indicates that the product or basket price should be set to the given the price. The value is an integer which represents new price to set, in the lowest denomination of the currency. For example given a basket price of £1.50, applying an fixed discount of value: 100 would result in a new basket price of £1.00.

🔐 Admin authorization required

Requests to this method must provide an Authorization header containing a valid administrative token with update:rewards scope. Non-compliant requests will be rejected.

URI Parameters
HideShow
id
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the reward.


PATCH api.rewards.wlloyalty.net/v1/rewards/5a79eb9e-52d8-44ea-abff-451edf08ed55/discounts
RequestsDefault
Headers
X-Api-Key: $api_key
Authorization: Bearer $access_token
Body
{
  "type": "FIXED",
  "value": 1000,
  "sku": "321ZA",
  "productSku": "AZ123"
}
Schema
HideShow
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "FIXED",
        "ABSOLUTE",
        "PERCENTAGE"
      ]
    },
    "value": {
      "type": "number"
    },
    "sku": {
      "type": "string"
    },
    "productSku": {
      "type": "string"
    }
  },
  "required": [
    "type",
    "value"
  ],
  "$schema": "http://json-schema.org/draft-04/schema#"
}
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "type": "FIXED",
    "value": 1000,
    "sku": "321ZA",
    "productSku": "AZ123"
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "FIXED",
            "ABSOLUTE",
            "PERCENTAGE"
          ]
        },
        "value": {
          "type": "number"
        },
        "sku": {
          "type": "string"
        },
        "productSku": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "value"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Update an Incentive Instruction
PATCH/rewards/{id}/discounts

Use this endpoint to update an existing incentive instruction for the specified reward.

Discount objects may contain sku and productSku fields. These fields are intended to represent the SKU of the discount itself (if any) and the SKU of the product on which the discount should be applied (if any).

Absolute Discounts

A discount with type: 'ABSOLUTE' indicates that the product or basket price should be adjusted relative to the price before discounting. The value is an integer which represents the adjustment amount in the lowest denomination of the currency. For example given a basket price of £1.50, applying an absolute discount of value: 100 would result in a new basket price of £0.50.

Percentage Discounts

A discount with type: 'PERCENTAGE' indicates that the product or basket price should be adjusted by the given percentage of the price before discounting. The value is an integer which represents the percentage 0-100. For example given a basket price of £1.50, applying a percentage discount of value: 10 would result in a new basket price of £1.35.

Fixed Discounts

A discount with type: 'FIXED' indicates that the product or basket price should be set to the given the price. The value is an integer which represents new price to set, in the lowest denomination of the currency. For example given a basket price of £1.50, applying an fixed discount of value: 100 would result in a new basket price of £1.00.

🔐 Admin authorization required

Requests to this method must provide an Authorization header containing a valid administrative token with update:rewards scope. Non-compliant requests will be rejected.

URI Parameters
HideShow
id
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the reward.


Individual Instruction

DELETE api.rewards.wlloyalty.net/v1/rewards/5a79eb9e-52d8-44ea-abff-451edf08ed55/discounts/5a79eb9e-52d8-44ea-abff-451edf08ed55
RequestsDefault
Headers
X-Api-Key: $api_key
Authorization: Bearer $access_token
Responses204
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {}
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {}
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Delete an Incentive Instruction
DELETE/rewards/{rewardId}/discounts/{id}

Use this endpoint to delete a specific incentive instruction for the given reward.

URI Parameters
HideShow
rewardId
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the reward.

id
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the incentive instruction.


Event Types

The Event Type Collection

POST api.rewards.wlloyalty.net/v1/event_types
RequestsDefault
Headers
Content-Type: application/json
X-Api-Key: $api_key
Authorization: Bearer $access_token
Body
{
  "name": "COMPLETED_EXAMPLE_ACTION",
  "description": "An example event type.",
  "isPrivate": false,
  "schema": {
    "$schema": "http://json-schema.org/draft-06/schema#",
    "type": "object",
    "properties": {},
    "required": []
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "isPrivate": {
      "type": "boolean"
    },
    "schema": {
      "type": "object",
      "properties": {
        "$schema": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "properties": {
          "type": "object",
          "properties": {}
        },
        "required": {}
      }
    },
    "omitFromUserActivity": {
      "type": "boolean"
    }
  },
  "required": [
    "name",
    "description",
    "isPrivate"
  ]
}
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "id": "d7efcfb2-dfe3-47a7-b826-4ef8b9b0012f",
    "name": "COMPLETED_EXAMPLE_ACTION",
    "description": "",
    "isPrivate": false,
    "schema": {
      "$schema": "http://json-schema.org/draft-06/schema#",
      "type": "object",
      "properties": {},
      "required": []
    },
    "createdAt": "2018-06-08T08:57:47.198Z",
    "updatedAt": "2018-06-08T08:57:47.198Z",
    "omitFromUserActivity": false
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "schema": {
          "type": "object",
          "properties": {
            "$schema": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "properties": {
              "type": "object",
              "properties": {}
            },
            "required": {}
          }
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "omitFromUserActivity": {
          "type": "boolean"
        },
        "isActive": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "isPrivate"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Create an Event Type
POST/event_types

This method can be used to create a new event type. Event types are a way to categorize the events which will be sent to the API. There are two kinds of event type: public and private, this can be specified via the isPrivate property during creation.

Public types

Public event types can be reported to the API by any authenticated user. These events are usually reported directly from the app or website where the user has an active interactive session. A public event type will always be associated with the user who submitted it.

Private types

Private event types can only be reported to the API by an entity which holds the event type’s secret key. These events are usually reported from a backend process reporting business data for use in the loyalty system. A private event type allows the reporter to specify which user (if any) the event should be associated with.

Schema

When creating an event type you can optionally also specify a schema with which to validate all event payloads reported for this event type. The event reporting API will reject any events of this type reported with a payload that does not match the schema. The schema should be specified in JSON Schema Draft 6 format.

Name

The event type name is how the type will be referred to throughout the system including when reporting an event of this type on the API. The defined type must follow the format shown in this regular expression: /^[A-Z]+(_[A-Z]+)*$/.

omitFromUserActivity

While authorized as an admin this flag is ignored and all events with this type are returned, however when authorized as a user only events with omitFromUserActivity = false will be returned. Omitting those events from the users activity.


GET api.rewards.wlloyalty.net/v1/event_types?limit=10&skip=0&sort=name&order=ASC&filter=createdAt:(gt:'2019-01-01T00:00:00')
RequestsDefault
Headers
X-Api-Key: $api_key
Authorization: Bearer $access_token
Responses200
Headers
Content-Type: application/json; charset=utf-8

List All Event Types
GET/event_types{?limit,skip,sort,order,filter}

Get a list of all event types which your token is authorized to view.

URI Parameters
HideShow
limit
number (optional) Example: 10

The number of items to retrieve.

skip
number (optional) Example: 0

The number of items to skip before selecting.

sort
string (optional) Example: name

The property to use for sorting.

Choices: name createdAt updatedAt

order
string (optional) Example: ASC

The order to sort items.

Choices: ASC DESC

filter
string (optional) Example: createdAt:(gt:'2019-01-01T00:00:00')

O-Rison encoded filter string


Individual Event Types

GET api.rewards.wlloyalty.net/v1/event_types/5a79eb9e-52d8-44ea-abff-451edf08ed55
RequestsDefault
Headers
X-Api-Key: $api_key
Authorization: Bearer $access_token
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "id": "d7efcfb2-dfe3-47a7-b826-4ef8b9b0012f",
    "name": "COMPLETED_EXAMPLE_ACTION",
    "description": "",
    "isPrivate": false,
    "schema": {
      "$schema": "http://json-schema.org/draft-06/schema#",
      "type": "object",
      "properties": {},
      "required": []
    },
    "createdAt": "2018-06-08T08:57:47.198Z",
    "updatedAt": "2018-06-08T08:57:47.198Z",
    "omitFromUserActivity": false
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "schema": {
          "type": "object",
          "properties": {
            "$schema": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "properties": {
              "type": "object",
              "properties": {}
            },
            "required": {}
          }
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "omitFromUserActivity": {
          "type": "boolean"
        },
        "isActive": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "isPrivate"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Retrieve an Event Type
GET/event_types/{id}

Retrieve the details of a particular event type.

URI Parameters
HideShow
id
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the event type to retrieve.


PATCH api.rewards.wlloyalty.net/v1/event_types/5a79eb9e-52d8-44ea-abff-451edf08ed55
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "name": "COMPLETED_EXAMPLE_ACTION",
  "description": "An example event type.",
  "schema": {
    "$schema": "http://json-schema.org/draft-06/schema#",
    "type": "object",
    "properties": {},
    "required": []
  }
}
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "id": "d7efcfb2-dfe3-47a7-b826-4ef8b9b0012f",
    "name": "COMPLETED_EXAMPLE_ACTION",
    "description": "",
    "isPrivate": false,
    "schema": {
      "$schema": "http://json-schema.org/draft-06/schema#",
      "type": "object",
      "properties": {},
      "required": []
    },
    "createdAt": "2018-06-08T08:57:47.198Z",
    "updatedAt": "2018-06-08T08:57:47.198Z",
    "omitFromUserActivity": false
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "isPrivate": {
          "type": "boolean"
        },
        "schema": {
          "type": "object",
          "properties": {
            "$schema": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "properties": {
              "type": "object",
              "properties": {}
            },
            "required": {}
          }
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "omitFromUserActivity": {
          "type": "boolean"
        },
        "isActive": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "isPrivate"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Update an Event Type
PATCH/event_types/{id}

Update the details of a particular event type. All properties are optional so it is only necessary to pass data for the property/properties you want to update.

URI Parameters
HideShow
id
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the event type to update.


Individual Event Type Secret

GET api.rewards.wlloyalty.net/v1/event_types/EXAMPLE_NAME/secret
RequestsDefault
Headers
X-Api-Key: $api_key
Authorization: Bearer $access_token
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "secret": "this_would_be_a_hexidecimal_string"
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "secret": {
          "type": "string"
        }
      },
      "required": [
        "secret"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Retrieve Event Type Secret
GET/event_types/{identifier}/secret

Retrieve a specific event type’s secret. You specify either the UUID of the event type or the name of the event type in the URL.

🔒 Admin authorization required

Requests to this method must provide an Authorization header containing a valid administrative token with read:event_types scope. Non-compliant requests will be rejected.

URI Parameters
HideShow
identifier
string (required) Example: EXAMPLE_NAME

name or ID of the event type to retrieve.


Event Reactors

The Event Reactor Collection

POST api.rewards.wlloyalty.net/v1/event_reactor
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "name": "Wednesday Bonus",
  "eventType": {
    "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
  },
  "constraint": {
    "$schema": "http://json-schema.org/draft-06/schema#",
    "type": "object",
    "properties": {},
    "required": []
  },
  "activationContext": "TENANT",
  "maxActivations": null,
  "effectivity": {
    "start": "2018-06-08T18:19:10.878Z",
    "end": "2018-06-09T18:19:10.878Z"
  },
  "reactions": [
    {
      "type": "POINTS",
      "points": {
        "operation": "SUM",
        "arguments": [
          {
            "type": "NUMBER",
            "value": "12"
          }
        ]
      }
    },
    {
      "type": "REWARD",
      "reward": {
        "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
      }
    },
    {
      "type": "WEBHOOK",
      "url": "http://example.com/handler",
      "headers": null
    }
  ]
}
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "name": "Wednesday Bonus",
    "eventType": {
      "id": "d7efcfb2-dfe3-47a7-b826-4ef8b9b0012f",
      "name": "COMPLETED_EXAMPLE_ACTION",
      "description": "",
      "isPrivate": false,
      "schema": {
        "$schema": "http://json-schema.org/draft-06/schema#",
        "type": "object",
        "properties": {},
        "required": []
      },
      "createdAt": "2018-06-08T08:57:47.198Z",
      "updatedAt": "2018-06-08T08:57:47.198Z",
      "omitFromUserActivity": false
    },
    "constraint": {
      "$schema": "http://json-schema.org/draft-06/schema#",
      "type": "object",
      "properties": {},
      "required": []
    },
    "activationContext": "TENANT",
    "maxActivations": null,
    "effectivity": {
      "start": "2018-06-08T18:19:10.878Z",
      "end": "2018-06-09T18:19:10.878Z"
    },
    "reactions": [
      {
        "type": "POINTS",
        "points": {
          "operation": "SUM",
          "arguments": [
            {
              "type": "NUMBER",
              "value": "12"
            }
          ]
        }
      },
      {
        "type": "REWARD",
        "reward": {
          "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
        }
      },
      {
        "type": "WEBHOOK",
        "url": "http://example.com/handler",
        "headers": null
      }
    ],
    "id": "7fbfb45b-4ee0-471a-a464-67ca580eed7c",
    "createdAt": "2019-04-09T10:02:37.515Z",
    "updatedAt": "2019-04-09T10:02:37.515Z"
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "eventType": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "isPrivate": {
              "type": "boolean"
            },
            "schema": {
              "type": "object",
              "properties": {
                "$schema": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "properties": {
                  "type": "object",
                  "properties": {}
                },
                "required": {}
              }
            },
            "createdAt": {
              "type": "string"
            },
            "updatedAt": {
              "type": "string"
            },
            "omitFromUserActivity": {
              "type": "boolean"
            },
            "isActive": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "name",
            "description",
            "isPrivate"
          ]
        },
        "constraint": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "$schema": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "properties": {
              "type": "object",
              "properties": {}
            },
            "required": {}
          }
        },
        "activationContext": {
          "type": "string",
          "enum": [
            "TENANT",
            "SUBJECT"
          ]
        },
        "maxActivations": {
          "type": [
            "number",
            "null"
          ]
        },
        "effectivity": {
          "type": "object",
          "properties": {
            "start": {
              "type": "string"
            },
            "end": {
              "type": "string"
            }
          }
        },
        "reactions": {
          "type": "array"
        },
        "id": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "activationContext",
        "effectivity",
        "reactions",
        "id"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Create an Event Reactor
POST/event_reactor

This method can be used to create a new event reactor (hereafter “reactor”). Reactors are a way to define behaviour for how the platform should react to a particular kind of reported event. They consist of two key parts:

  1. a specification of what kind of event will activate the reactor,

  2. a specification of what reactions should be triggered if activated.

Constraints

Reactors can have multiple levels of constraint to specify exactly what events can activate the reactor.

Event Type

The event type is the most basic and only required constraint. It dictates which predefined event type the reactor will listen to. If a reported event is not of the specified type, the reactor will not activate.

This is specified on the API via the eventType property which should contain the ID of the event type to associate.

Payload Schema

The payload schema defines a set of rules for what event data payloads can cause the reactor to activate. The payload schema should be specified in JSON Schema Draft 6 format.

Usually, the schema will accept a subset of the payloads accepted by the event type’s schema. For example the event type might allow a payload status property to be either accepted or rejected, while the reactor’s schema might require status to equal accepted. This allows the creation of complex branching logic.

The payload schema is specified on the API via the constraint property.

Maximum Activations

The maximum activations constraint defines how many times the reactor can be activated before it deactivates itself. This can be defined in terms of the number of activations overall, or the number triggered by a specific user.

The maximum activations is specified on the API via the maxActivations and activationContext properties.

NOTE: SUBJECT level activation context ensures strongly consistent checks to ensure the max activation limit isn’t exceeded even for cases where multiple events are concurrently fired for the same subject. However, TENANT/GLOBAL level activation context is handled on a best-effort basis. This could cause cases where max activation limits are slightly exceeded in case of concurrent/batch events, though in practice this breaching of activation limits shouldn’t be too large.

Effectivity

The effectivity constraint defines the date and time interval between which the reactor is active. The reactor will not activate for an event reported before or after the defined interval of effectivity.

By default the reactor effectivity will be set to start at the time of creation and remain active until further notice. This behaviour can be overridden by specifying the effectivity property.

Reactions

If all defined constraints pass for a given event, the reactor will activate. When a reactor activates, any defined reactions will be triggered. There are three kinds of reaction.

Points Reaction

Points reactions define a formula for how points should be awarded to the relevant user. This can be a static number or it can be derived from a value in the event payload.

Reward Reaction

Reward reactions grant a voucher for the defined reward to the relevant user. After the reaction has triggered the user will find the corresponding voucher in their wallet.

Webhook Reaction

Webhook reactions allow a URL (and optional headers) to be defined where the reactor should POST the event data. This provides support for simple integrations with third party services.


GET api.rewards.wlloyalty.net/v1/event_reactor?limit=10&skip=0&sort=name&order=ASC&filter=createdAt:(gt:'2019-01-01T00:00:00')
RequestsDefault
Headers
X-Api-Key: $api_key
Authorization: Bearer $access_token
Responses200
Headers
Content-Type: application/json; charset=utf-8

List all Event Reactors
GET/event_reactor{?limit,skip,sort,order,filter}

Get a list of all event reactors which your token is authorized to view.

URI Parameters
HideShow
limit
number (optional) Example: 10

The number of items to retrieve.

skip
number (optional) Example: 0

The number of items to skip before selecting.

sort
string (optional) Example: name

The property to use for sorting.

Choices: name createdAt updatedAt eventType maxActivations

order
string (optional) Example: ASC

The order to sort items.

Choices: ASC DESC

filter
string (optional) Example: createdAt:(gt:'2019-01-01T00:00:00')

O-Rison encoded filter string


Individual Event Reactors

GET api.rewards.wlloyalty.net/v1/event_reactors/5a79eb9e-52d8-44ea-abff-451edf08ed55
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "name": "Wednesday Bonus",
    "eventType": {
      "id": "d7efcfb2-dfe3-47a7-b826-4ef8b9b0012f",
      "name": "COMPLETED_EXAMPLE_ACTION",
      "description": "",
      "isPrivate": false,
      "schema": {
        "$schema": "http://json-schema.org/draft-06/schema#",
        "type": "object",
        "properties": {},
        "required": []
      },
      "createdAt": "2018-06-08T08:57:47.198Z",
      "updatedAt": "2018-06-08T08:57:47.198Z",
      "omitFromUserActivity": false
    },
    "constraint": {
      "$schema": "http://json-schema.org/draft-06/schema#",
      "type": "object",
      "properties": {},
      "required": []
    },
    "activationContext": "TENANT",
    "maxActivations": null,
    "effectivity": {
      "start": "2018-06-08T18:19:10.878Z",
      "end": "2018-06-09T18:19:10.878Z"
    },
    "reactions": [
      {
        "type": "POINTS",
        "points": {
          "operation": "SUM",
          "arguments": [
            {
              "type": "NUMBER",
              "value": "12"
            }
          ]
        }
      },
      {
        "type": "REWARD",
        "reward": {
          "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
        }
      },
      {
        "type": "WEBHOOK",
        "url": "http://example.com/handler",
        "headers": null
      }
    ],
    "id": "7fbfb45b-4ee0-471a-a464-67ca580eed7c",
    "createdAt": "2019-04-09T10:02:37.515Z",
    "updatedAt": "2019-04-09T10:02:37.515Z"
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "eventType": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "isPrivate": {
              "type": "boolean"
            },
            "schema": {
              "type": "object",
              "properties": {
                "$schema": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "properties": {
                  "type": "object",
                  "properties": {}
                },
                "required": {}
              }
            },
            "createdAt": {
              "type": "string"
            },
            "updatedAt": {
              "type": "string"
            },
            "omitFromUserActivity": {
              "type": "boolean"
            },
            "isActive": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "name",
            "description",
            "isPrivate"
          ]
        },
        "constraint": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "$schema": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "properties": {
              "type": "object",
              "properties": {}
            },
            "required": {}
          }
        },
        "activationContext": {
          "type": "string",
          "enum": [
            "TENANT",
            "SUBJECT"
          ]
        },
        "maxActivations": {
          "type": [
            "number",
            "null"
          ]
        },
        "effectivity": {
          "type": "object",
          "properties": {
            "start": {
              "type": "string"
            },
            "end": {
              "type": "string"
            }
          }
        },
        "reactions": {
          "type": "array"
        },
        "id": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "activationContext",
        "effectivity",
        "reactions",
        "id"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Retrieve an Event Reactor
GET/event_reactors/{id}

Retrieve the details of a single event reactor.

URI Parameters
HideShow
id
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the event reactor.


PATCH api.rewards.wlloyalty.net/v1/event_reactors/5a79eb9e-52d8-44ea-abff-451edf08ed55
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "name": "Wednesday Bonus",
  "eventType": {
    "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
  },
  "constraint": {
    "$schema": "http://json-schema.org/draft-06/schema#",
    "type": "object",
    "properties": {},
    "required": []
  },
  "activationContext": "TENANT",
  "maxActivations": null,
  "effectivity": {
    "start": "2018-06-08T18:19:10.878Z",
    "end": "2018-06-09T18:19:10.878Z"
  },
  "reactions": [
    {
      "type": "POINTS",
      "points": {
        "operation": "SUM",
        "arguments": [
          {
            "type": "NUMBER",
            "value": "12"
          }
        ]
      }
    },
    {
      "type": "REWARD",
      "reward": {
        "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
      }
    },
    {
      "type": "WEBHOOK",
      "url": "http://example.com/handler",
      "headers": null
    }
  ]
}
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "name": "Wednesday Bonus",
    "eventType": {
      "id": "d7efcfb2-dfe3-47a7-b826-4ef8b9b0012f",
      "name": "COMPLETED_EXAMPLE_ACTION",
      "description": "",
      "isPrivate": false,
      "schema": {
        "$schema": "http://json-schema.org/draft-06/schema#",
        "type": "object",
        "properties": {},
        "required": []
      },
      "createdAt": "2018-06-08T08:57:47.198Z",
      "updatedAt": "2018-06-08T08:57:47.198Z",
      "omitFromUserActivity": false
    },
    "constraint": {
      "$schema": "http://json-schema.org/draft-06/schema#",
      "type": "object",
      "properties": {},
      "required": []
    },
    "activationContext": "TENANT",
    "maxActivations": null,
    "effectivity": {
      "start": "2018-06-08T18:19:10.878Z",
      "end": "2018-06-09T18:19:10.878Z"
    },
    "reactions": [
      {
        "type": "POINTS",
        "points": {
          "operation": "SUM",
          "arguments": [
            {
              "type": "NUMBER",
              "value": "12"
            }
          ]
        }
      },
      {
        "type": "REWARD",
        "reward": {
          "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
        }
      },
      {
        "type": "WEBHOOK",
        "url": "http://example.com/handler",
        "headers": null
      }
    ],
    "id": "7fbfb45b-4ee0-471a-a464-67ca580eed7c",
    "createdAt": "2019-04-09T10:02:37.515Z",
    "updatedAt": "2019-04-09T10:02:37.515Z"
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "eventType": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "isPrivate": {
              "type": "boolean"
            },
            "schema": {
              "type": "object",
              "properties": {
                "$schema": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "properties": {
                  "type": "object",
                  "properties": {}
                },
                "required": {}
              }
            },
            "createdAt": {
              "type": "string"
            },
            "updatedAt": {
              "type": "string"
            },
            "omitFromUserActivity": {
              "type": "boolean"
            },
            "isActive": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "name",
            "description",
            "isPrivate"
          ]
        },
        "constraint": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "$schema": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "properties": {
              "type": "object",
              "properties": {}
            },
            "required": {}
          }
        },
        "activationContext": {
          "type": "string",
          "enum": [
            "TENANT",
            "SUBJECT"
          ]
        },
        "maxActivations": {
          "type": [
            "number",
            "null"
          ]
        },
        "effectivity": {
          "type": "object",
          "properties": {
            "start": {
              "type": "string"
            },
            "end": {
              "type": "string"
            }
          }
        },
        "reactions": {
          "type": "array"
        },
        "id": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "activationContext",
        "effectivity",
        "reactions",
        "id"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Update an Event Reactor
PATCH/event_reactors/{id}

Update the details of a single event reactor. All properties are optional so it is only necessary to pass data for the property/properties you want to update.

URI Parameters
HideShow
id
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the event reactor


DELETE api.rewards.wlloyalty.net/v1/event_reactors/5a79eb9e-52d8-44ea-abff-451edf08ed55
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "status": "success",
  "data": {
    "name": "Wednesday Bonus",
    "eventType": {
      "id": "d7efcfb2-dfe3-47a7-b826-4ef8b9b0012f",
      "name": "COMPLETED_EXAMPLE_ACTION",
      "description": "",
      "isPrivate": false,
      "schema": {
        "$schema": "http://json-schema.org/draft-06/schema#",
        "type": "object",
        "properties": {},
        "required": []
      },
      "createdAt": "2018-06-08T08:57:47.198Z",
      "updatedAt": "2018-06-08T08:57:47.198Z",
      "omitFromUserActivity": false
    },
    "constraint": {
      "$schema": "http://json-schema.org/draft-06/schema#",
      "type": "object",
      "properties": {},
      "required": []
    },
    "activationContext": "TENANT",
    "maxActivations": null,
    "effectivity": {
      "start": "2018-06-08T18:19:10.878Z",
      "end": "2018-06-09T18:19:10.878Z"
    },
    "reactions": [
      {
        "type": "POINTS",
        "points": {
          "operation": "SUM",
          "arguments": [
            {
              "type": "NUMBER",
              "value": "12"
            }
          ]
        }
      },
      {
        "type": "REWARD",
        "reward": {
          "id": "8d68cb91-202a-4c62-a867-8f9a8a1e2f50"
        }
      },
      {
        "type": "WEBHOOK",
        "url": "http://example.com/handler",
        "headers": null
      }
    ],
    "id": "7fbfb45b-4ee0-471a-a464-67ca580eed7c",
    "createdAt": "2019-04-09T10:02:37.515Z",
    "updatedAt": "2019-04-09T10:02:37.515Z"
  }
}
Schema
HideShow
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "eventType": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "isPrivate": {
              "type": "boolean"
            },
            "schema": {
              "type": "object",
              "properties": {
                "$schema": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "properties": {
                  "type": "object",
                  "properties": {}
                },
                "required": {}
              }
            },
            "createdAt": {
              "type": "string"
            },
            "updatedAt": {
              "type": "string"
            },
            "omitFromUserActivity": {
              "type": "boolean"
            },
            "isActive": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "name",
            "description",
            "isPrivate"
          ]
        },
        "constraint": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "$schema": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "properties": {
              "type": "object",
              "properties": {}
            },
            "required": {}
          }
        },
        "activationContext": {
          "type": "string",
          "enum": [
            "TENANT",
            "SUBJECT"
          ]
        },
        "maxActivations": {
          "type": [
            "number",
            "null"
          ]
        },
        "effectivity": {
          "type": "object",
          "properties": {
            "start": {
              "type": "string"
            },
            "end": {
              "type": "string"
            }
          }
        },
        "reactions": {
          "type": "array"
        },
        "id": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "activationContext",
        "effectivity",
        "reactions",
        "id"
      ]
    }
  },
  "required": [
    "status",
    "data"
  ]
}

Deactivate an Event Reactor
DELETE/event_reactors/{id}

Event reactors are never completely deleted since they are used to derive the state of users’ wallets thereby providing deep accountability. However reactors can be deactivated so that they no longer listen for new events.

Internally, deactivation through this API method operates in the same way as updating the reactor so that its effectivity end is set to the current time.

URI Parameters
HideShow
id
uuid (required) Example: 5a79eb9e-52d8-44ea-abff-451edf08ed55

ID of the event reactor to deactivate.


Generated by aglio on 08 Sep 2025