Simulate campaigns result
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
Store code
Bad request.
Unauthorized
Forbidden.
Not found.
POST /api/{storeCode}/campaign/simulate HTTP/1.1
Host: openloyalty.localhost
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2348
{
"simulate": {
"trigger": "transaction",
"customer": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"firstName": "text",
"lastName": "text",
"email": "text",
"phone": "text",
"birthDate": "2012-01-01",
"address": {
"street": "text",
"address1": "text",
"address2": "text",
"postal": "text",
"city": "text",
"province": "text",
"country": "text"
},
"loyaltyCardNumber": "text",
"legalConsent": true,
"marketingConsent": true,
"dataProcessingConsent": true,
"gender": "text",
"registeredDate": "2012-01-01",
"firstTransactionDate": "2012-01-01",
"lastTransactionDate": "2012-01-01",
"levelAchievementDate": "2012-01-01",
"levelId": "123e4567-e89b-12d3-a456-426614174000",
"tiers": [
"123e4567-e89b-12d3-a456-426614174000"
],
"numberOfPurchases": "text",
"purchaseAmount": "text",
"averagePurchaseAmount": "text",
"activePoints": "text",
"spentPoints": "text",
"earnedPoints": "text",
"lockedPoints": "text",
"blockedPoints": "text",
"expiredPoints": "text",
"labels": [
{
"key": "text",
"value": "text"
}
],
"segments": [
"123e4567-e89b-12d3-a456-426614174000"
]
},
"referrer": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"firstName": "text",
"lastName": "text",
"email": "text",
"phone": "text",
"birthDate": "2012-01-01",
"address": {
"street": "text",
"address1": "text",
"address2": "text",
"postal": "text",
"city": "text",
"province": "text",
"country": "text"
},
"loyaltyCardNumber": "text",
"legalConsent": true,
"marketingConsent": true,
"dataProcessingConsent": true,
"gender": "text",
"registeredDate": "2012-01-01",
"firstTransactionDate": "2012-01-01",
"lastTransactionDate": "2012-01-01",
"levelAchievementDate": "2012-01-01",
"levelId": "123e4567-e89b-12d3-a456-426614174000",
"tiers": [
"123e4567-e89b-12d3-a456-426614174000"
],
"numberOfPurchases": "text",
"purchaseAmount": "text",
"averagePurchaseAmount": "text",
"activePoints": "text",
"spentPoints": "text",
"earnedPoints": "text",
"lockedPoints": "text",
"blockedPoints": "text",
"expiredPoints": "text",
"labels": [
{
"key": "text",
"value": "text"
}
],
"segments": [
"123e4567-e89b-12d3-a456-426614174000"
]
},
"transaction": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"documentNumber": "text",
"linkedDocumentNumber": "text",
"documentType": "sell",
"purchasedAt": "2023-03-23 10:00+01:00",
"purchasePlace": "text",
"channelId": "123e4567-e89b-12d3-a456-426614174000",
"labels": [
{
"key": "text",
"value": "text"
}
],
"items": [
{
"sku": "text",
"name": "text",
"qty": "text",
"grossValue": "text",
"category": "text",
"maker": "text",
"labels": [
{
"key": "text",
"value": "text"
}
]
}
]
}
}
}{
"effects": [
{
"type": "give_points",
"campaign": {
"name": "text",
"description": "text",
"type": "text",
"trigger": "text",
"campaignId": "123e4567-e89b-12d3-a456-426614174000",
"activity": {
"startsAt": "2026-01-01T00:00:00.000Z",
"endsAt": "2026-01-01T00:00:00.000Z"
},
"active": true,
"createdAt": "2026-01-01T00:00:00.000Z",
"displayOrder": 1,
"rules": [
{
"name": "text",
"description": "text",
"conditions": [
{
"operator": "text",
"data": "text",
"attribute": "text"
}
],
"effects": [
{
"effect": "text",
"pointsRule": "text",
"unitsExpirationDateRule": {
"expirationStrategy": "text",
"expression": "text"
},
"tierSetId": "123e4567-e89b-12d3-a456-426614174000",
"tierId": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
],
"labels": [
{
"key": "text",
"value": "text"
}
],
"translations": [
{
"name": "text",
"description": "text",
"id": 1,
"locale": "text"
}
],
"limitUsages": {
"points": {
"currentValue": 1,
"limitValue": 1,
"remaining": 1,
"interval": {
"type": "calendarHours",
"value": 1
}
}
},
"triggerStrategy": {
"type": "birthday",
"executionSchedule": {
"dayOfWeek": [
0
],
"dayOfMonth": [
1
]
}
}
},
"points": 1,
"wallet": "text",
"rewardId": "text",
"expression": "text",
"badgeSystemCode": "text",
"tierSetId": "123e4567-e89b-12d3-a456-426614174000",
"tierId": "123e4567-e89b-12d3-a456-426614174000",
"target": "self"
}
],
"evaluationWarnings": [
{
"campaignId": "123e4567-e89b-12d3-a456-426614174000",
"message": "text"
}
],
"simulatedMember": {
"memberId": "123e4567-e89b-12d3-a456-426614174000",
"wallets": [
{
"walletId": "123e4567-e89b-12d3-a456-426614174000",
"walletType": {
"code": "text",
"name": "text",
"isDefault": true,
"active": true,
"unitSingularName": "text",
"unitPluralName": "text",
"rewardSpending": true
},
"account": {
"activeUnits": 1
}
}
]
}
}Last updated
Was this helpful?

