Webhook API
API Reference

API Reference

Base URL: https://joy.avada.io/app/api/v1

List Webhooks

GET/webhooks

Get a list of all registered webhooks for your shop.

Parameters
X-Joy-Loyalty-App-Keyheader · stringRequired

Your Joy app key from settings

X-Joy-Loyalty-Secret-Keyheader · stringRequired

Your Joy secret key from settings

Responses
200Success
successbooleanOptional
Example: true
webhooksWebhook[]Optional
Show properties
idstringOptional

Unique webhook identifier

Example: "webhook_abc123"
topicstringOptional

Webhook topic

Example: "points/earned"
urlstring · uriOptional

Webhook endpoint URL

Example: "https://your-server.com/webhook/points"
isEnabledbooleanOptional

Whether the webhook is enabled

Example: true
createdAtstring · date-timeOptional

Webhook creation timestamp

Example: "2024-01-15T10:30:00.000Z"
timestampstring · date-timeOptional
Example: "2024-01-15T10:30:00.000Z"
401Unauthorized
successbooleanOptional
Example: false
errorstringOptional
Example: "Resource not found"
timestampstring · date-timeOptional
Example: "2024-01-15T10:30:00.000Z"
GET/webhooks
GET /app/api/v1/webhooks HTTP/1.1
Host: joy.avada.io
Accept: */*
200Success
{
"success": true,
"webhooks": [
{
"id": "webhook_abc123",
"topic": "points/earned",
"url": "https://your-server.com/webhook/points",
"isEnabled": true,
"createdAt": "2024-01-15T10:30:00.000Z"
}
],
"timestamp": "2024-01-15T10:30:00.000Z"
}

Create Webhook

POST/webhooks

Register a new webhook endpoint for a specific topic.

Parameters
X-Joy-Loyalty-App-Keyheader · stringRequired

Your Joy app key from settings

X-Joy-Loyalty-Secret-Keyheader · stringRequired

Your Joy secret key from settings

Request body
topicstringRequired

One of the supported webhook topics

Example: "points/earned"
urlstring · uriRequired

HTTPS URL endpoint to receive webhook notifications

Example: "https://your-server.com/webhook/points"
Responses
200Webhook created successfully
successbooleanOptional
Example: true
webhookWebhookOptional
Show properties
idstringOptional

Unique webhook identifier

Example: "webhook_abc123"
topicstringOptional

Webhook topic

Example: "points/earned"
urlstring · uriOptional

Webhook endpoint URL

Example: "https://your-server.com/webhook/points"
isEnabledbooleanOptional

Whether the webhook is enabled

Example: true
createdAtstring · date-timeOptional

Webhook creation timestamp

Example: "2024-01-15T10:30:00.000Z"
timestampstring · date-timeOptional
400Bad Request
successbooleanOptional
Example: false
errorstringOptional
Example: "Resource not found"
timestampstring · date-timeOptional
Example: "2024-01-15T10:30:00.000Z"
POST/webhooks
POST /app/api/v1/webhooks HTTP/1.1
Host: joy.avada.io
Content-Type: application/json
Accept: */*
Content-Length: 81
{
"topic": "points/earned",
"url": "https://your-server.com/webhook/points"
}
200Webhook created successfully
{
"success": true,
"webhook": {
"id": "webhook_abc123",
"topic": "points/earned",
"url": "https://your-server.com/webhook/points",
"isEnabled": true,
"createdAt": "2024-01-15T10:30:00.000Z"
},
"timestamp": "2024-01-15T10:30:00.000Z"
}

Get Webhook by ID

GET/webhooks/{id}

Retrieve details of a specific webhook.

Parameters
idpath · stringRequired

Webhook ID

X-Joy-Loyalty-App-Keyheader · stringRequired

Your Joy app key from settings

X-Joy-Loyalty-Secret-Keyheader · stringRequired

Your Joy secret key from settings

Responses
200Success
successbooleanOptional
Example: true
webhookWebhookOptional
Show properties
idstringOptional

Unique webhook identifier

Example: "webhook_abc123"
topicstringOptional

Webhook topic

Example: "points/earned"
urlstring · uriOptional

Webhook endpoint URL

Example: "https://your-server.com/webhook/points"
isEnabledbooleanOptional

Whether the webhook is enabled

Example: true
createdAtstring · date-timeOptional

Webhook creation timestamp

Example: "2024-01-15T10:30:00.000Z"
timestampstring · date-timeOptional
404Webhook not found
successbooleanOptional
Example: false
errorstringOptional
Example: "Resource not found"
timestampstring · date-timeOptional
Example: "2024-01-15T10:30:00.000Z"
GET/webhooks/{id}
GET /app/api/v1/webhooks/{id} HTTP/1.1
Host: joy.avada.io
Accept: */*
200Success
{
"success": true,
"webhook": {
"id": "webhook_abc123",
"topic": "points/earned",
"url": "https://your-server.com/webhook/points",
"isEnabled": true,
"createdAt": "2024-01-15T10:30:00.000Z"
},
"timestamp": "2024-01-15T10:30:00.000Z"
}

Update Webhook

PUT/webhooks/{id}

Update an existing webhook (enable/disable or change URL).

Parameters
idpath · stringRequired

Webhook ID

X-Joy-Loyalty-App-Keyheader · stringRequired

Your Joy app key from settings

X-Joy-Loyalty-Secret-Keyheader · stringRequired

Your Joy secret key from settings

Request body
urlstring · uriOptional

New webhook URL

Example: "https://new-server.com/webhook/points"
isEnabledbooleanOptional

Enable or disable the webhook

Example: false
Responses
200Webhook updated successfully
successbooleanOptional
Example: true
webhookWebhookOptional
Show properties
idstringOptional

Unique webhook identifier

Example: "webhook_abc123"
topicstringOptional

Webhook topic

Example: "points/earned"
urlstring · uriOptional

Webhook endpoint URL

Example: "https://your-server.com/webhook/points"
isEnabledbooleanOptional

Whether the webhook is enabled

Example: true
createdAtstring · date-timeOptional

Webhook creation timestamp

Example: "2024-01-15T10:30:00.000Z"
timestampstring · date-timeOptional
404Webhook not found
successbooleanOptional
Example: false
errorstringOptional
Example: "Resource not found"
timestampstring · date-timeOptional
Example: "2024-01-15T10:30:00.000Z"
PUT/webhooks/{id}
PUT /app/api/v1/webhooks/{id} HTTP/1.1
Host: joy.avada.io
Content-Type: application/json
Accept: */*
Content-Length: 74
{
"url": "https://new-server.com/webhook/points",
"isEnabled": false
}
200Webhook updated successfully
{
"success": true,
"webhook": {
"id": "webhook_abc123",
"topic": "points/earned",
"url": "https://your-server.com/webhook/points",
"isEnabled": true,
"createdAt": "2024-01-15T10:30:00.000Z"
},
"timestamp": "2024-01-15T10:30:00.000Z"
}

Delete Webhook

DELETE/webhooks/{id}

Remove a webhook registration.

Parameters
idpath · stringRequired

Webhook ID

X-Joy-Loyalty-App-Keyheader · stringRequired

Your Joy app key from settings

X-Joy-Loyalty-Secret-Keyheader · stringRequired

Your Joy secret key from settings

Responses
200Webhook deleted successfully
successbooleanOptional
Example: true
timestampstring · date-timeOptional
404Webhook not found
successbooleanOptional
Example: false
errorstringOptional
Example: "Resource not found"
timestampstring · date-timeOptional
Example: "2024-01-15T10:30:00.000Z"
DELETE/webhooks/{id}
DELETE /app/api/v1/webhooks/{id} HTTP/1.1
Host: joy.avada.io
Accept: */*
200Webhook deleted successfully
{
"success": true,
"timestamp": "2024-01-15T10:30:00.000Z"
}
Product
Install AppWebsiteBook a Demo
Developers
JavaScript SDKREST API v2Webhook API
Company
Avada GroupHelp CenterContact
© 2026 Joy Loyalty by Avada Group. All rights reserved.