Olo · Schema

Olo Promotions Account

A guest's loyalty account in a promotions provider's system, as defined by the Olo Promotions Specification.

Food ServiceRestaurantsOnline OrderingDeliveryPoint of SaleHospitalityPaymentsLoyaltyMarketing

Properties

Name Type Description
id string The account's unique identifier in the provider's system.
status string Whether the loyalty account is active or inactive.
balance object The loyalty account's points balance.
rewards array The rewards available in the loyalty account.
View JSON Schema on GitHub

JSON Schema

olo-promotions-account-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/olo/main/json-schema/olo-promotions-account-schema.json",
  "title": "Olo Promotions Account",
  "description": "A guest's loyalty account in a promotions provider's system, as defined by the Olo Promotions Specification.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The account's unique identifier in the provider's system."
    },
    "status": {
      "type": "string",
      "description": "Whether the loyalty account is active or inactive.",
      "enum": ["Active", "Inactive"]
    },
    "balance": {
      "type": "object",
      "description": "The loyalty account's points balance.",
      "properties": {
        "quantity": {
          "type": "number",
          "description": "The amount of points in the user's loyalty account."
        },
        "target": {
          "type": "number",
          "description": "The points required to unlock the next step in the loyalty account."
        },
        "unit": {
          "type": "string",
          "default": "points",
          "description": "The unit used to describe the quantity of a loyalty account balance."
        }
      }
    },
    "rewards": {
      "type": "array",
      "description": "The rewards available in the loyalty account.",
      "items": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "description": "A unique identifier for the loyalty reward." },
          "name": { "type": "string", "description": "The name of the loyalty reward." },
          "description": { "type": "string", "description": "A description of the loyalty reward." },
          "quantity": { "type": "integer", "description": "The quantity of the reward available in the account." },
          "currency": { "type": "string", "description": "A three-letter ISO 4217 currency code; defaults to USD." },
          "expiration": { "type": "string", "format": "date-time", "description": "A UTC RFC 3339 date-time when the reward expires." },
          "reference": {
            "type": "object",
            "description": "Data used to identify the loyalty reward on the POS.",
            "properties": {
              "type": { "type": "string", "enum": ["Promo", "Comp"], "description": "The POS reference type." },
              "code": { "type": "string", "description": "The POS reference value." }
            }
          },
          "type": { "type": "string", "description": "Provider-defined category for the reward; not interpreted by Olo." },
          "imageUrl": { "type": "string", "description": "An image URL representing the reward." },
          "customFields": { "type": "string", "description": "Custom provider metadata echoed back in subsequent requests." }
        }
      }
    }
  }
}