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.

KeyDescriptionTypeRequired/OptionalNotes
transactionTypesThe account transaction types that count towards the limitarray of stringsRequiredSPEND
EXCHANGE
DEBIT
perPeriodRestrictionsThe restrictions to apply, one object per periodarray of objectsRequiredAt least one restriction is required
perPeriodRestrictions.activeWhether the restriction is enforcedbooleanRequiredDefault to true. If false, the restriction is stored but not applied.
perPeriodRestrictions.periodThe length of the period the limit applies tostringRequiredACCOUNT_POINTS_BURN_LIMIT_DAY
ACCOUNT_POINTS_BURN_LIMIT_WEEK
ACCOUNT_POINTS_BURN_LIMIT_MONTH
ACCOUNT_POINTS_BURN_LIMIT_YEAR
perPeriodRestrictions.valueThe maximum number of points that can be burned in the periodintegerRequiredInteger value
perPeriodRestrictions.limitResetThe day the weekly limit resets, for example MONDAYstringOptional**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.

PeriodApplies to the transaction that takes place during:Counter resets
ACCOUNT_POINTS_BURN_LIMIT_DAYThe calendar dayAt the start of the next day
ACCOUNT_POINTS_BURN_LIMIT_WEEKThe calendar weekStart of the day set in perPeriodRestrictions.limitReset
ACCOUNT_POINTS_BURN_LIMIT_MONTHThe calendar monthOn the first day of the next month
ACCOUNT_POINTS_BURN_LIMIT_YEARThe calendar yearOn 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.


Did this page help you?