Add Webhook

See the sample example how webhooks can be configured. Links to more detailed instructions can be found at the end of the article.

How this example works

Webhooks in Open Loyalty enable automated interactions by sending HTTP requests to specified URLs when certain events occur within the system. This feature allows for real-time notifications and integrations with external systems. For example, when a customer registers or a transaction is created, a webhook can notify a designated URL, triggering predefined actions such as updating records or sending notifications.

To receive webhooks for the following steps, we are going to set up two webhooks in this example.


Try yourself

  • Input the previous saved token and storeCode in the request header

  • Retrieve a list of available webhook events Endpoint: GET /api/{storeCode}/webhook/event

  • Get the URL, where the webhooks are supposed to be sent to.

  • Add these three webhooks Endpoint: POST /api/{storeCode}/webhook/subscription

    {
      "webhookSubscription": {
        "eventName": "CustomerRegistered",
        "url": "string" // your specified URL
      }
    }

    {
      "webhookSubscription": {
        "eventName": "CustomerRegistered",
        "url": "string" // your specified URL
      }
    }

    {
      "webhookSubscription": {
        "eventName": "MemberAchievementProgressWasChanged",
        "url": "string" // your specified URL
      }
    }

Endpoints used

Get all webhook events.

get
Authorizations
AuthorizationstringRequired

Open Loyalty has the JWT authorization. To learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens https://jwt.io/introduction/

Obtain an access token

Send a request with the parameters username and password

Definition

POST /api/admin/login_check Go to definition
POST /api/{storeCode}/member/login_check Go to definition

Example

curl {HOST}/api/admin/login_check
    -H 'Content-Type: application/json;charset=UTF-8'
    -H 'Accept: application/json, text/plain, */*'
    --data-binary '{"username":"admin","password":"password"}'

Example Response

{
    "token":"eyJhbGciOiJSUzI1NiIsInR5cCI6...",
    "refresh_token":"0558f8bb29948c4e54c443f..."
}

Using JSON Web Token

Add authorization header to each request
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...
You can now access any API method you want under the /api prefix.

Example

curl {HOST}/api/{storeCode}/analytics/members
    -H 'Accept: application/json'
    -H 'Content-type: application/x-www-form-urlencoded'
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'

Refresh JSON Web Token

You can refresh token using refresh_token that was given during login.
There are two endpoints
To refresh admin token POST /api/token/refresh Go to definition
To refresh member token POST /api/{storeCode}/token/refresh Go to definition

Path parameters
storeCodestringRequired

Store code

Responses
200

List of webhook events

application/json
get
/api/{storeCode}/webhook/event
GET /api/{storeCode}/webhook/event HTTP/1.1
Host: openloyalty.localhost
Authorization: YOUR_API_KEY
Accept: */*
{
  "items": [
    "text"
  ]
}

Create a new webhook subscription

post
Authorizations
AuthorizationstringRequired

Open Loyalty has the JWT authorization. To learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens https://jwt.io/introduction/

Obtain an access token

Send a request with the parameters username and password

Definition

POST /api/admin/login_check Go to definition
POST /api/{storeCode}/member/login_check Go to definition

Example

curl {HOST}/api/admin/login_check
    -H 'Content-Type: application/json;charset=UTF-8'
    -H 'Accept: application/json, text/plain, */*'
    --data-binary '{"username":"admin","password":"password"}'

Example Response

{
    "token":"eyJhbGciOiJSUzI1NiIsInR5cCI6...",
    "refresh_token":"0558f8bb29948c4e54c443f..."
}

Using JSON Web Token

Add authorization header to each request
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...
You can now access any API method you want under the /api prefix.

Example

curl {HOST}/api/{storeCode}/analytics/members
    -H 'Accept: application/json'
    -H 'Content-type: application/x-www-form-urlencoded'
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'

Refresh JSON Web Token

You can refresh token using refresh_token that was given during login.
There are two endpoints
To refresh admin token POST /api/token/refresh Go to definition
To refresh member token POST /api/{storeCode}/token/refresh Go to definition

Path parameters
storeCodestringRequired

Store code

Body
Responses
200

Return created webhook subscription ID.

application/json
post
/api/{storeCode}/webhook/subscription
POST /api/{storeCode}/webhook/subscription HTTP/1.1
Host: openloyalty.localhost
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "webhookSubscription": {
    "eventName": "text",
    "url": "text",
    "headers": [
      {
        "headerName": "text",
        "headerValue": "text"
      }
    ]
  }
}
{
  "webhookSubscriptionId": "00000000-0000-0000-0000-000000000000"
}

More resources

For a detailed overview and description of the webhooks, please refer to this article:

Webhooks

Last updated

Was this helpful?