---
title: "Loyalty Levels Model"
description: "A loyalty level represents a progression tier with its own threshold, benefits, and accumulation behavior."
canonical: https://docs.ordering.co/api-reference/guides/loyalty-levels-model/
---

# Loyalty Levels Model

A loyalty level represents a progression tier with its own threshold, benefits, and accumulation behavior.

## Core operations

| Action | Method   | Resource                             |
| ------ | -------- | ------------------------------------ |
| List   | `GET`    | `/loyalty_levels`                    |
| Find   | `GET`    | `/loyalty_levels/{loyalty_level_id}` |
| Create | `POST`   | `/loyalty_levels`                    |
| Update | `POST`   | `/loyalty_levels/{loyalty_level_id}` |
| Delete | `DELETE` | `/loyalty_levels/{loyalty_level_id}` |

The detail read and all mutations require administrator authentication.

## Representative fields

Core fields include `id`, `name`, `description`, `benefits`, `minimum_points`, `accumulation_rate`, `maximum_accumulation_percentage`, `maximum_accumulation_fixed`, `expire_after_minutes`, `image`, `created_at`, and `updated_at`.

`minimum_points` marks the threshold for the level, while `accumulation_rate` and the maximum accumulation fields control earning behavior. The meaning of maximum accumulation may vary by operation; check the field description before using it.

See [Create a loyalty level](https://docs.ordering.co/api-reference/guides/create-loyalty-level/) and [List loyalty levels](https://docs.ordering.co/api-reference/guides/get-all-loyalty-levels-list/).

## Schema properties

**Schema:** `LoyaltyLevel`

| Name                              | Type                    | Description |
| --------------------------------- | ----------------------- | ----------- |
| `accumulation_rate`               | number \| null          | —           |
| `benefits`                        | object \| array \| null | —           |
| `created_at`                      | string \| null          | —           |
| `description`                     | any                     | —           |
| `expire_after_minutes`            | any                     | —           |
| `id`                              | integer \| null         | —           |
| `image`                           | any                     | —           |
| `maximum_accumulation_fixed`      | number \| null          | —           |
| `maximum_accumulation_percentage` | number \| null          | —           |
| `minimum_points`                  | integer \| null         | —           |
| `name`                            | any                     | —           |
| `updated_at`                      | string \| null          | —           |
