Scheme Rules
When creating or updating a scheme via API, the rules object lets you define restrictions that apply to the scheme. This page covers limiting the number of points that can be burned over a period of time.
Burn Points Limit
A burn points limit caps the number of points that can be burned in a given period. When a transaction would take the total burned in a period over the limit, the transaction fails.
The limit is set in rules.burn.pointsLimit. Choose which transaction types count towards the limit, then add one or more per-period restrictions.
| Key | Description | Type | Required/Optional | Notes |
|---|---|---|---|---|
| transactionTypes | The account transaction types that count towards the limit | array of strings | Required | SPEND EXCHANGE DEBIT |
| perPeriodRestrictions | The restrictions to apply, one object per period | array of objects | Required | At least one restriction is required |
| perPeriodRestrictions.active | Whether the restriction is enforced | boolean | Required | Default to true. If false, the restriction is stored but not applied. |
| perPeriodRestrictions.period | The length of the period the limit applies to | string | Required | ACCOUNT_POINTS_BURN_LIMIT_DAY ACCOUNT_POINTS_BURN_LIMIT_WEEK ACCOUNT_POINTS_BURN_LIMIT_MONTH ACCOUNT_POINTS_BURN_LIMIT_YEAR |
| perPeriodRestrictions.value | The maximum number of points that can be burned in the period | integer | Required | Integer value |
| perPeriodRestrictions.limitReset | The day the weekly limit resets, for example MONDAY | string | Optional* | *This is required when the period is ACCOUNT_POINTS_BURN_LIMIT_WEEK and cannot be provided for any other period. |
You can add more than one restriction. All active restrictions apply together, so if a transaction would exceed any one of them, it fails.
How periods work
Each period selected in the perPeriodRestrictions array is the calendar period in which the transaction happens, not a rolling window. The points burned are counted from the start of that period, and the count starts again at zero when the next period begins.
| Period | Applies to the transaction that takes place during: | Counter resets |
|---|---|---|
| ACCOUNT_POINTS_BURN_LIMIT_DAY | The calendar day | At the start of the next day |
| ACCOUNT_POINTS_BURN_LIMIT_WEEK | The calendar week | Start of the day set in perPeriodRestrictions.limitReset |
| ACCOUNT_POINTS_BURN_LIMIT_MONTH | The calendar month | On the first day of the next month |
| ACCOUNT_POINTS_BURN_LIMIT_YEAR | The calendar year | On 1 January of the following year |
Burn limits are calendar-based. A limit set for a period counts only the points burned in that day, month, week, or year.
Examples
Daily limit example
Here is an example where the following limits apply to burn transactions:
- SPEND, EXCHANGE and DEBIT transactions count towards the limit
- A maximum of 500 points can be burned per day
{
"rules": {
"burn": {
"pointsLimit": {
"transactionTypes": ["SPEND", "EXCHANGE", "DEBIT"],
"perPeriodRestrictions": [
{
"active": true,
"period": "ACCOUNT_POINTS_BURN_LIMIT_DAY",
"value": 500
}
]
}
}
}
}- Gemma has 5,000 points in her wallet
- She spends 400 points at the till in a SPEND transaction on Friday morning. This is within the daily limit of 500 points, so the transaction succeeds
- Later on Friday evening, she tries to spend a further 200 points
- This would take the points burned that day to 600, over the 500 daily limit, so the spend transaction fails
- Gemma can spend up to 100 more points on Friday
Weekly and yearly limit example
A scheme does not need to use every period. Here the scheme limits points burned to 1,500 per week, resetting on Monday, and 50,000 per year. Only SPEND and EXCHANGE transactions count towards the limits.
{
"rules": {
"burn": {
"pointsLimit": {
"transactionTypes": ["SPEND", "EXCHANGE"],
"perPeriodRestrictions": [
{
"active": true,
"period": "ACCOUNT_POINTS_BURN_LIMIT_WEEK",
"value": 1500,
"limitReset": "MONDAY"
},
{
"active": true,
"period": "ACCOUNT_POINTS_BURN_LIMIT_YEAR",
"value": 50000
}
]
}
}
}
}Consider the following customer example. Monday October 12, 2026 is the start of a new week:
- On Wednesday October 14, Gemma spends 1,200 points in a SPEND transaction. This is within the weekly limit, so the transaction succeeds
- On Friday October 16, she tries to spend 400 more points
- This would take the points burned that week to 1,600, over the 1,500 weekly limit, so the transaction fails. The most she can spend that week is 300 points
- On Monday October 19, a new week begins and the weekly count starts again at zero. Gemma can spend up to 1,500 points
Both limits apply at the same time, so the lower remaining amount decides what is allowed:
- By Monday December 21, 2026, Gemma has burned 49,700 points since January 1
- She tries to spend 1,000 points. This is within the weekly limit, but it would take the points burned that year to 50,700, over the 50,000 yearly limit, so the transaction fails. The most she can spend is 300 points
- On Friday January 1, 2027, a new year begins and the yearly count starts again at zero
Monthly limit example
Here the scheme limits points burned to 5,000 per month.
{
"rules": {
"burn": {
"pointsLimit": {
"transactionTypes": ["SPEND", "EXCHANGE", "DEBIT"],
"perPeriodRestrictions": [
{
"active": true,
"period": "ACCOUNT_POINTS_BURN_LIMIT_MONTH",
"value": 5000
}
]
}
}
}
}A month is the calendar month in which the transaction happens. The same 4,900-point burn has a different effect depending on when it happens:
- Scenario 1: spending across two months
- Gemma spends 4,800 points on September 30
- On October 1, she spends 2,000 points
- October 1 is in a new month, so the monthly count starts again at zero and the transaction succeeds
- Scenario 2: spending within one month
- Gemma spends 4,800 points on 1 October
- On October 31, she tries to spend 2,000 points
- October 31 is in the same month, so this would take the points burned that month to 6,800, over the 5,000 limit, and the spend transaction fails
- The most Gemma can spend for the rest of October is 200 points
For more information on schemes, see Schemes Overview. To create a scheme with these rules, see the Create Points Scheme API reference.
Updated about 9 hours ago

