Get Tier Advanced Settings

Retrieve the program-level upgrade and downgrade settings that govern tier movement.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Get Tier Advanced Settings

Retrieves the program-level upgrade and downgrade settings that govern how customers move between tiers. These settings apply to the whole program, not to a single tier, and must be configured before you create tiers. Configure them with Update Tier Advanced Settings.

Example request

curl -L 'https://eu.api.capillarytech.com/api_gateway/loyalty/v1/programs/973/tierAdvancedSettings' \
-H 'accept: application/json' \
-H 'Authorization: Basic OGQwMGM2ZmY5ZWMxNGEyYjE2YWNiYTg2MzA='

Prerequisites

  • Authentication: Basic auth or an OAuth token passed in the X-CAP-API-OAUTH-TOKEN header, with loyalty program read permissions.
  • Pass the organization ID in the X-CAP-API-AUTH-ORG-ID header.

Resource information

Pagination supportNo
Batch supportNo

Path parameters

FieldTypeRequiredDescription
program_idintegerRequiredLoyalty program ID whose tier advanced settings you want to retrieve. To retrieve the program_id, use the Get Loyalty Programs API.

Example response

{
    "tierAdvancedSettings": {
        "programId": 973,
        "isAdvanceSetting": true,
        "upgrade": {
            "current_value_type": "CURRENT_POINTS",
            "slab_upgrade_mode": "LAZY",
            "tracker_id": null,
            "tracker_condition_id": null,
            "threshold_value": [
                "5000",
                "10000",
                "15000",
                "20000",
                "25000",
                "30000",
                "50000",
                "80000",
                "100000",
                "500000"
            ],
            "secondary_criteria_enabled": null,
            "additional_upgrade_criteria": null
        },
        "downgrade": {
            "is_active": true,
            "should_downgrade": true,
            "start_date": "2026-12-31",
            "condition": "FIXED",
            "daily_downgrade_enabled": false,
            "retain_points": false,
            "is_downgrade_on_return_enabled": false,
            "is_downgrade_on_partner_program_expiry_enabled": false,
            "minimum_duration": "0",
            "is_fixed_type_without_year": true,
            "renewal_window_type": null,
            "computation_window_start_value": null,
            "computation_window_end_value": null
        }
    }
}

Note: When the program has no upgrade or downgrade configuration, upgrade and downgrade are returned as null, for example {"tierAdvancedSettings":{"programId":973,"isAdvanceSetting":true,"upgrade":null,"downgrade":null}}.

Response parameters

FieldTypeDescription
tierAdvancedSettingsobjectObject containing the program's upgrade and downgrade configuration.
.programIdintegerLoyalty program ID these settings belong to.
.isAdvanceSettingbooleanAlways returned as true.
.upgradeobjectObject containing the rules that move a customer to a higher tier. null when no upgrade configuration exists.
..current_value_typeenumKPI the upgrade threshold is measured against. Possible values: CURRENT_POINTS, CUMULATIVE_POINTS, CUMULATIVE_PURCHASES, TRACKER_VALUE_BASED.
..slab_upgrade_modeenumWhen upgrades are evaluated. Possible values: EAGER (before points/event awarding), LAZY (after points/event awarding).
..tracker_idstringIdentifier of the tracker the upgrade is measured against. null unless current_value_type is TRACKER_VALUE_BASED.
..tracker_condition_idstringIdentifier of the tracker condition. null unless current_value_type is TRACKER_VALUE_BASED.
..threshold_valuearray of stringsUpgrade threshold for each tier boundary, returned as strings. The array contains one entry per tier boundary — that is, one fewer than the total number of tiers in the program.
..secondary_criteria_enabledbooleanWhether additional upgrade criteria are evaluated alongside the primary criteria. null when not set.
..additional_upgrade_criteriaarrayList of additional upgrade criteria evaluated alongside the primary criteria.
...threshold_valuearray of stringsUpgrade threshold for each tier boundary for this additional criterion, returned as strings. Validated independently against the same rule as upgrade.threshold_value: one entry per tier boundary, one fewer than the total number of tiers in the program.
...current_value_typeenumKPI for this additional criterion. Possible values: CURRENT_POINTS, CUMULATIVE_POINTS, CUMULATIVE_PURCHASES, TRACKER_VALUE_BASED.
...slab_upgrade_modeenumWhen this additional criterion is evaluated. Possible values: EAGER (before points/event awarding), LAZY (after points/event awarding).
...tracker_idstringIdentifier of the tracker for this additional criterion.
...tracker_condition_idstringIdentifier of the tracker condition for this additional criterion.
..expression_relationarray of integer arraysDefines how the primary and additional upgrade criteria combine. Each inner array is a group of criterion indexes, where index 1 is the primary criterion and index 2 onward refers to the entries of additional_upgrade_criteria in order. Criteria within a group are combined with AND, and the groups are combined with OR. For example, [[1,2]] requires both criteria, and [[1],[2]] requires either one. null when not set.
..custom_expressionstringCustom expression that combines the upgrade criteria. Empty when not set.
.downgradeobjectObject containing the rules that move a customer to a lower tier. null when no downgrade configuration exists.
..is_activebooleanWhether the downgrade configuration is active.
..should_downgradebooleanWhether customers are downgraded when they no longer meet the tier criteria.
..start_datestringDowngrade anchor date in YYYY-MM-DD format. Present when condition is FIXED.
..conditionenumWhen a downgrade is triggered. Possible values: FIXED (fixed anchor date), SLAB_UPGRADE (relative to the last tier upgrade date), SLAB_UPGRADE_CYCLIC (same as SLAB_UPGRADE, but recurs on a cycle), FIXED_CUSTOMER_REGISTRATION (relative to the customer's registration date).
..daily_downgrade_enabledbooleanWhether downgrade evaluation runs daily.
..retain_pointsbooleanWhether a customer keeps points after a downgrade.
..is_downgrade_on_return_enabledbooleanWhether a return can trigger a downgrade.
..is_downgrade_on_partner_program_expiry_enabledbooleanWhether a downgrade is triggered when a linked partner program expires.
..minimum_durationstringMinimum number of months a customer stays in a tier before becoming eligible for downgrade, returned as a string.
..is_fixed_type_without_yearbooleanWhen true, the downgrade anchor is treated as a recurring day and month, and the year is ignored.
..renewal_window_typeenumHow the renewal evaluation window is interpreted. Possible values: FIXED_DATE_BASED (offset in months from a fixed date), LAST_CALENDAR_YEAR (previous calendar year), CUSTOM_PERIOD (custom range defined by both offsets). null when not set.
..computation_window_start_valueintegerStart offset, in months, of the renewal evaluation window. null when not set.
..computation_window_end_valueintegerEnd offset, in months, of the renewal evaluation window. null when not set.

Error & warning codes

CodeTypeDescription
VALIDATION_FAILEDErrorThe program_id is missing or not a valid program. HTTP 400.
INTERNAL_ERRORErrorInternal server error. Retry after a short delay. HTTP 500.

Path Params
integer
required
Headers
string
string
required
Responses

400

Invalid request. See the error codes table on this page.

500

Internal server error

Language
Credentials
Basic
base64
:
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json