---
updatedAt: 2026-05-27T08:02:52.000Z
agentTools:
  siteIndex: https://developer.eagleeye.com/llms.txt
  projectIndex: https://developer.eagleeye.com/eagleeye-developer/llms.txt
---

# Get Points Scheme

This endpoint is deprecated - See GET By Id - GET /schemes/points/{schemeId}  This method allows the calling application to retrieve a Scheme by Id.

# OpenAPI definition

```json
{
  "x-explorer-enabled": false,
  "openapi": "3.0.3",
  "servers": [
    {
      "url": "https://resources.uk.eagleeye.com",
      "description": "UK Production."
    },
    {
      "url": "https://resources.us.eagleeye.com",
      "description": "US Production."
    },
    {
      "url": "https://resources.us2.eagleeye.com",
      "description": "US2 Production."
    },
    {
      "url": "https://resources.au.eagleeye.com",
      "description": "AU Production."
    },
    {
      "url": "https://resources.sandbox.uk.eagleeye.com",
      "description": "UK Sandbox."
    }
  ],
  "info": {
    "version": "1.67.0",
    "title": "Resource API",
    "description": "# These APIs are used for integration with the Eagle Eye AIR platform when interacting with resources."
  },
  "tags": [
    {
      "name": "Schemes",
      "description": "These APIs are used for integration with the Eagle Eye AIR platform when using Schemes."
    }
  ],
  "paths": {
    "/scheme/points/{schemeId}": {
      "get": {
        "deprecated": true,
        "summary": "Get Points Scheme",
        "description": "This endpoint is deprecated - See GET By Id - GET /schemes/points/{schemeId}  This method allows the calling application to retrieve a Scheme by Id.",
        "parameters": [
          {
            "$ref": "#/components/parameters/eesAuthenticationClientId"
          },
          {
            "$ref": "#/components/parameters/eesAuthenticationRequestHash"
          },
          {
            "$ref": "#/components/parameters/httpAcceptEncoding"
          },
          {
            "$ref": "#/components/parameters/eesMessageId"
          },
          {
            "$ref": "#/components/parameters/eesMessageRetry"
          },
          {
            "$ref": "#/components/parameters/eesSchemeId"
          }
        ],
        "operationId": "z-getSchemeById",
        "tags": [
          "Schemes"
        ],
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemeEntity"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/badRequest"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/notFound"
          },
          "405": {
            "$ref": "#/components/responses/methodNotAllowed"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "eesSchemeId": {
        "name": "schemeId",
        "in": "path",
        "description": "EES AIR Scheme ID.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "int64"
        }
      },
      "eesAuthenticationClientId": {
        "name": "X-EES-AUTH-CLIENT-ID",
        "in": "header",
        "description": "Client ID, This will be provided by EES and is unique to the company calling the API.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "eesAuthenticationRequestHash": {
        "name": "X-EES-AUTH-HASH",
        "in": "header",
        "description": "Request Security Hash, calculated using SHA-256 function from concatenated full Request URI Path with Query String(s), Payload and Client Secret.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "eesMessageId": {
        "name": "X-EES-TRANSACTION-ID",
        "in": "header",
        "description": "Unique Reference for the API transaction within the calling company.",
        "required": false,
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "eesMessageRetry": {
        "name": "X-EES-RETRY",
        "in": "header",
        "description": "This flag denotes the number of attempts that have been made for this request.",
        "required": false,
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "httpAcceptEncoding": {
        "name": "Accept-Encoding",
        "in": "header",
        "required": false,
        "description": "This request HTTP header advertises which content encoding (usually a compression algorithm) the calling application is able to understand. The server selects one of the proposals, use it and informs the client of its choice with the Content-Encoding response header. Currently supported `gzip` and `deflate`, if request header not present no compression will be used.\n",
        "schema": {
          "type": "string",
          "enum": [
            "",
            "gzip",
            "deflate",
            "gzip,deflate"
          ],
          "default": ""
        }
      }
    },
    "schemas": {
      "SchemeEntity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Id of a Scheme automatically generated and unique within Eagle Eye AIR."
          },
          "type": {
            "type": "string",
            "description": "The type of Scheme this is. These types are configured as part of implementation with a client.",
            "enum": [
              "LOYALTY"
            ]
          },
          "accountClientType": {
            "type": "string",
            "nullable": true,
            "description": "The default client type for an Account unless otherwise stated during individual Account creation. The list of available options for this field are defined during client onboarding. (Not implemented for Schemes)"
          },
          "status": {
            "type": "string",
            "description": "The status of the Scheme.",
            "enum": [
              "ACTIVE",
              "INACTIVE",
              "EXPIRED",
              "DELETED",
              "PENDING",
              "DRAFT",
              "REJECTED",
              "READY",
              "STOPPED",
              "SUSPENDED"
            ]
          },
          "class": {
            "type": "string",
            "description": "The class of this Scheme.",
            "enum": [
              "POINTS",
              "STAMP"
            ]
          },
          "reference": {
            "type": "string",
            "nullable": true,
            "description": "An external reference for this Scheme, unique to each client."
          },
          "details": {
            "type": "object",
            "description": "The details of the Scheme.",
            "properties": {
              "name": {
                "type": "string",
                "description": "The name of the Scheme."
              },
              "alternativeName": {
                "type": "string",
                "nullable": true,
                "description": "The alternative name of the Scheme."
              },
              "description": {
                "type": "string",
                "nullable": true,
                "description": "The description of the Scheme."
              },
              "alternativeDescription": {
                "type": "string",
                "nullable": true,
                "description": "The alternative description of the Scheme."
              },
              "printerMessage": {
                "type": "string",
                "nullable": true,
                "description": "The message to display on the receipt."
              },
              "screenMessage": {
                "type": "string",
                "nullable": true,
                "description": "The message to display on the screen."
              },
              "tags": {
                "type": "array",
                "nullable": true,
                "description": "The tags to assign to a Scheme.",
                "items": {
                  "type": "string"
                }
              },
              "startDate": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp that the Scheme should start."
              },
              "endDate": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp that the Scheme should end."
              },
              "mode": {
                "type": "string",
                "description": "The mode that the Scheme is operating in:\n  * OPEN - this is a scheme available to any consumers that qualify for it.\n  * RESTRICTED - this is a scheme that has been specifically targeted at a group of consumers.\n",
                "enum": [
                  "OPEN",
                  "RESTRICTED"
                ]
              }
            }
          },
          "relationships": {
            "type": "object",
            "nullable": true,
            "description": "Specify if this Scheme has any other related Schemes. The key of the object is relationship type of either AGGREGATE_CHILD, AGGREGATE_CHILD_OF.",
            "properties": {
              "AGGREGATE_CHILD": {
                "type": "object",
                "properties": {
                  "SCHEME": {
                    "type": "array",
                    "description": "Details of any related Scheme.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "campaignId": {
                          "type": "integer",
                          "description": "It contains the Id of the related Scheme."
                        },
                        "dateCreated": {
                          "type": "string",
                          "format": "date-time",
                          "description": "This timestamp shows the date-time in UTC when the Scheme was created. It is dynamically populated and cannot be edited."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "services": {
            "type": "object",
            "nullable": true,
            "description": "How fund balances are effected when each transaction type occurs.",
            "properties": {
              "autoTopup": {
                "type": "object",
                "nullable": true,
                "description": "How a AutoTopUp transaction is funded.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "A flag denoting if the rule is active or not."
                  },
                  "defaultFunding": {
                    "type": "object",
                    "nullable": true,
                    "description": "The default fund/s that should be used for these transaction types.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "A flag denoting if the rule is active or not."
                      },
                      "funds": {
                        "type": "array",
                        "description": "The fund/s the points are added from.",
                        "items": {
                          "$ref": "#/components/schemas/schemesFundingAccountEntity"
                        }
                      }
                    }
                  },
                  "reasons": {
                    "type": "object",
                    "nullable": true,
                    "description": "Configure the reason codes that defines which fund to use for this transaction instead of the default.",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/schemesFundingAccountEntity"
                    }
                  }
                }
              },
              "credit": {
                "type": "object",
                "nullable": true,
                "description": "How a Credit transaction is funded.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "A flag denoting if the rule is active or not."
                  },
                  "defaultFunding": {
                    "type": "object",
                    "nullable": true,
                    "description": "The default fund/s that should be used for these transaction types.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "A flag denoting if the rule is active or not."
                      },
                      "funds": {
                        "type": "array",
                        "description": "The fund/s the points are added from.",
                        "items": {
                          "$ref": "#/components/schemas/schemesFundingAccountEntity"
                        }
                      }
                    }
                  },
                  "reasons": {
                    "type": "object",
                    "nullable": true,
                    "description": "Configure the reason codes that defines which fund to use for this transaction instead of the default.",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/schemesFundingAccountEntity"
                    }
                  }
                }
              },
              "debit": {
                "type": "object",
                "nullable": true,
                "description": "How a Debit transaction is funded.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "A flag denoting if the rule is active or not."
                  },
                  "defaultFunding": {
                    "type": "object",
                    "nullable": true,
                    "description": "The default fund/s that should be used for these transaction types.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "A flag denoting if the rule is active or not."
                      },
                      "funds": {
                        "type": "array",
                        "description": "The fund/s the points are added from.",
                        "items": {
                          "$ref": "#/components/schemas/schemesFundingAccountEntity"
                        }
                      }
                    }
                  },
                  "reasons": {
                    "type": "object",
                    "nullable": true,
                    "description": "Configure the reason codes that defines which fund to use for this transaction instead of the default.",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/schemesFundingAccountEntity"
                    }
                  }
                }
              },
              "goodwill": {
                "type": "object",
                "nullable": true,
                "description": "How a Goodwill transaction is funded.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "A flag denoting if the rule is active or not."
                  },
                  "defaultFunding": {
                    "type": "object",
                    "nullable": true,
                    "description": "The default fund/s that should be used for these transaction types.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "A flag denoting if the rule is active or not."
                      },
                      "funds": {
                        "type": "array",
                        "description": "The fund/s the points are added from.",
                        "items": {
                          "$ref": "#/components/schemas/schemesFundingAccountEntity"
                        }
                      }
                    }
                  },
                  "reasons": {
                    "type": "object",
                    "nullable": true,
                    "description": "Configure the reason codes that defines which fund to use for this transaction instead of the default.",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/schemesFundingAccountEntity"
                    }
                  },
                  "restrictions": {
                    "type": "array",
                    "nullable": true,
                    "description": "The restrictions that apply to Goodwill transactions.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "period": {
                          "type": "integer",
                          "description": "Period of time used in the rolling period rules."
                        },
                        "metric": {
                          "type": "string",
                          "description": "Type of time period used in the rules.",
                          "enum": [
                            "DAYS"
                          ]
                        },
                        "transactions": {
                          "type": "integer",
                          "description": "Number of times that points can be issued in Goodwill during the period defined in 'Rolling Period'."
                        },
                        "value": {
                          "type": "integer",
                          "description": "Number of points that can be issued in Goodwill during the period defined in 'Rolling Period'"
                        },
                        "singleValue": {
                          "type": "integer",
                          "description": "Number of points that can be issued in Goodwill per transaction."
                        }
                      }
                    }
                  }
                }
              },
              "spend": {
                "type": "object",
                "nullable": true,
                "description": "How a Spend transaction is funded.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "A flag denoting if the rule is active or not."
                  },
                  "defaultFunding": {
                    "type": "object",
                    "nullable": true,
                    "description": "The default fund/s that should be used for these transaction types.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "A flag denoting if the rule is active or not."
                      },
                      "funds": {
                        "type": "array",
                        "description": "The fund/s the points are added from.",
                        "items": {
                          "$ref": "#/components/schemas/schemesFundingAccountEntity"
                        }
                      }
                    }
                  },
                  "reasons": {
                    "type": "object",
                    "nullable": true,
                    "description": "Configure the reason codes that defines which fund to use for this transaction instead of the default.",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/schemesFundingAccountEntity"
                    }
                  }
                }
              },
              "exchange": {
                "type": "object",
                "nullable": true,
                "description": "How an Exchange transaction is funded.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "A flag denoting if the rule is active or not."
                  },
                  "defaultFunding": {
                    "type": "object",
                    "nullable": true,
                    "description": "The default fund/s that should be used for these transaction types.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "A flag denoting if the rule is active or not."
                      },
                      "funds": {
                        "type": "array",
                        "description": "The fund/s the points are added from.",
                        "items": {
                          "$ref": "#/components/schemas/schemesFundingAccountEntity"
                        }
                      }
                    }
                  },
                  "reasons": {
                    "type": "object",
                    "nullable": true,
                    "description": "Configure the reason codes that defines which fund to use for this transaction instead of the default.",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/schemesFundingAccountEntity"
                    }
                  }
                }
              },
              "earn": {
                "type": "object",
                "nullable": true,
                "description": "How a Earn transaction is funded.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "A flag denoting if the rule is active or not."
                  },
                  "defaultFunding": {
                    "type": "object",
                    "nullable": true,
                    "description": "The default fund/s that should be used for these transaction types.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "A flag denoting if the rule is active or not."
                      },
                      "funds": {
                        "type": "array",
                        "description": "The fund/s the points are added from.",
                        "items": {
                          "$ref": "#/components/schemas/schemesFundingAccountEntity"
                        }
                      }
                    }
                  },
                  "reasons": {
                    "type": "object",
                    "nullable": true,
                    "description": "Configure the reason codes that defines which fund to use for this transaction instead of the default.",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/schemesFundingAccountEntity"
                    }
                  }
                }
              },
              "gift": {
                "type": "object",
                "nullable": true,
                "description": "It contains the gift of scheme.",
                "properties": {
                  "outgoingGiftLimit": {
                    "type": "object",
                    "nullable": true,
                    "required": [
                      "enabled",
                      "rule"
                    ],
                    "description": "It contains an object of outgoingGiftLimit.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "This contains a boolean flag to enable/disable the outgoingGiftLimit rules."
                      },
                      "rule": {
                        "type": "object",
                        "required": [
                          "periodCount",
                          "periodType",
                          "rounding",
                          "points"
                        ],
                        "description": "It contains an object of rules for outgoingGiftLimit.",
                        "properties": {
                          "periodCount": {
                            "type": "integer",
                            "minimum": 1,
                            "description": "It contains integer value."
                          },
                          "periodType": {
                            "type": "string",
                            "description": "It contains string value.",
                            "enum": [
                              "DAY"
                            ]
                          },
                          "points": {
                            "type": "integer",
                            "minimum": 1,
                            "description": "It contains integer value."
                          },
                          "rounding": {
                            "type": "string",
                            "description": "It contains string value.",
                            "enum": [
                              "ABSOLUTE"
                            ]
                          }
                        }
                      }
                    }
                  },
                  "incomingGiftLimit": {
                    "type": "object",
                    "nullable": true,
                    "required": [
                      "enabled",
                      "rule"
                    ],
                    "description": "It contains an object of incomingGiftLimit.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "This contains a boolean flag to enable/disable the incomingGiftLimit rules."
                      },
                      "rule": {
                        "type": "object",
                        "nullable": true,
                        "required": [
                          "periodCount",
                          "periodType",
                          "rounding",
                          "points",
                          "graceTransaction"
                        ],
                        "description": "It contains an object of rules for incomingGiftLimit.",
                        "properties": {
                          "graceTransaction": {
                            "type": "boolean",
                            "description": "This contains a boolean flag to enable/disable the grace transaction for Scheme."
                          },
                          "periodCount": {
                            "type": "integer",
                            "minimum": 1,
                            "description": "It contains integer value."
                          },
                          "periodType": {
                            "type": "string",
                            "description": "It contains string value.",
                            "enum": [
                              "DAY"
                            ]
                          },
                          "points": {
                            "type": "integer",
                            "minimum": 1,
                            "description": "It contains integer value."
                          },
                          "rounding": {
                            "type": "string",
                            "description": "It contains string value.",
                            "enum": [
                              "ABSOLUTE"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              },
              "expiryPoints": {
                "$ref": "#/components/schemas/expiryPoints"
              }
            }
          },
          "rates": {
            "type": "object",
            "required": [
              "earn"
            ],
            "description": "Redemption & earn rates for the Scheme.",
            "properties": {
              "burn": {
                "type": "object",
                "nullable": true,
                "description": "Points spend rates and product spend restrictions for the Scheme. The property keys of this object  are the unit safe name for the default/parent unit and the incoming identifiers for any child units.",
                "additionalProperties": {
                  "type": "object",
                  "nullable": true,
                  "pattern": "^[\\\\S]+$",
                  "additionalProperties": {
                    "type": "object",
                    "pattern": "^[\\\\S]+$",
                    "properties": {
                      "product": {
                        "$ref": "#/components/schemas/burnRateProductEntity"
                      },
                      "rates": {
                        "type": "array",
                        "nullable": true,
                        "description": "Points spend rates for the Scheme.",
                        "items": {
                          "$ref": "#/components/schemas/burnRatesEntity"
                        }
                      }
                    }
                  }
                }
              },
              "redemption": {
                "type": "object",
                "nullable": true,
                "deprecated": true,
                "description": "Points spend rates for the Scheme. The property keys of this object are the unit safe name for the  default/parent unit and the incoming identifiers for any child units. This key is deprecated as both points spend rules and product restrictions are now in the `burn` key.",
                "additionalProperties": {
                  "type": "array",
                  "pattern": "^[\\\\S]+$",
                  "items": {
                    "$ref": "#/components/schemas/burnRatesEntity"
                  }
                }
              },
              "earn": {
                "type": "object",
                "nullable": true,
                "description": "The base earn rates for the Scheme. The property keys of this object are the unit safe name for the default/parent unit and the incoming identifiers for any child units.",
                "additionalProperties": {
                  "type": "object",
                  "nullable": true,
                  "pattern": "^[\\\\S]+$",
                  "additionalProperties": {
                    "type": "object",
                    "pattern": "^[\\\\S]+$",
                    "nullable": true,
                    "properties": {
                      "name": {
                        "type": "string",
                        "nullable": true,
                        "description": "The name of the base earn rate."
                      },
                      "reference": {
                        "type": "string",
                        "nullable": true,
                        "description": "The reference of the base earn rate."
                      },
                      "maximumQuantityPerProduct": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Sets a limit on how many times an individual product SKU or UPC is allowed Base Earn at a redemption partner level."
                      },
                      "type": {
                        "type": "string",
                        "nullable": true,
                        "description": "The type of base earn rate. Only 1 can be configured per Scheme from the following:\n  * STANDARD: \n  One earn rate rule which applies to the entire transaction. Grace amount and override rules can be configured for this type.\n  e.g For every £1 spend, receive 2 points.\n  * FIXED:\n  Tiers can be configured and the transaction value will determine which tier should apply. \n  The number of points issued is fixed, so whether the transaction value falls in the lower or higher end of the tier, the points issued will be the same.\n  e.g Tier 1: Transaction value is between £1-£10 = 1 point\n      Tier 2: Transaction value is between £11-£20 = 2 points\n  * VARIABLE:\n  Tiers can be configured and the transaction value will determine which tier should apply. \n  The number of points issued is variable, so the higher in the tier the transaction value falls the more points will be issued.\n  e.g Tier 1: Transaction value is between £1-£10 = 1 point per £1\n      Tier 2: Transaction value is between £11-£20 = 2 points per £1\n",
                        "enum": [
                          "STANDARD",
                          "FIXED",
                          "VARIABLE"
                        ]
                      },
                      "description": {
                        "type": "string",
                        "nullable": true,
                        "description": "The description of the base earn rate."
                      },
                      "decider": {
                        "type": "string",
                        "description": "The method that will be used to specify how the earn is calculated:\n  * SPEND - Will use the value of the products included in this object.\n  * UNITS - Will use the number of product units purchased calculate the earn.\nCurrently this is only present when UNITS are specified and omitted when SPEND is used.\n",
                        "enum": [
                          "SPEND",
                          "UNITS"
                        ]
                      },
                      "complementaryRates": {
                        "type": "array",
                        "description": "Earn rate keys that are to be used as complements to the default rate. SPEND is used for default rate and complement rates are used to earn points for product units while also SPEND on all other product items. Will only appear on the default rate.\n",
                        "items": {
                          "type": "string"
                        }
                      },
                      "product": {
                        "$ref": "#/components/schemas/productEntity"
                      },
                      "rates": {
                        "type": "array",
                        "description": "Base earn rate details for the Scheme.",
                        "items": {
                          "type": "object",
                          "pattern": "^[\\\\S]+$",
                          "properties": {
                            "bonus": {
                              "type": "integer",
                              "nullable": true,
                              "description": "The bonus amount to add to the exchange value at this point. This is used if you want non-linear tiers and it determines how much you want those additional points to be worth."
                            },
                            "ceiling": {
                              "type": "integer",
                              "nullable": true,
                              "description": "The upper bound for which this earn tier applies."
                            },
                            "floor": {
                              "type": "integer",
                              "nullable": true,
                              "description": "The lower bound for which this earn tier applies."
                            },
                            "amount": {
                              "type": "integer",
                              "nullable": true,
                              "description": "The number of points that should be issued when the spend is within this tier and the qualifying amount is met."
                            },
                            "step": {
                              "type": "integer",
                              "nullable": true,
                              "description": "The increments that should cause the earn points to be issued each time it is met. e.g. if points can be earnt at 5,000, 10,000, 15,000 then the step would be 5,000."
                            },
                            "offset": {
                              "type": "integer",
                              "nullable": true,
                              "description": "The amount that should be added to the transaction value when calculating the points. This could be used to give a customer more points when they are close to a threshold."
                            }
                          }
                        }
                      },
                      "roundPoints": {
                        "type": "object",
                        "description": "The rounding rules for the base earn rate.",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "A flag denoting if the rule is active or not."
                          },
                          "toMultipleOf": {
                            "type": "integer",
                            "description": "The multiple that points should be rounded up to. e.g A total base earn of 197 points with a toMultipleOf would round the final base earn to 198."
                          }
                        }
                      },
                      "tenders": {
                        "$ref": "#/components/schemas/schemeEarnRateTendersEntity"
                      }
                    }
                  }
                }
              }
            }
          },
          "rules": {
            "type": "object",
            "description": "Scheme Rules.",
            "properties": {
              "creation": {
                "type": "object",
                "description": "Rules for Account creation. (Not implemented for Schemes)",
                "properties": {
                  "schemeLimit": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The maximum number of Accounts that can be created on this Scheme. Null or empty denotes unlimited. (Not implemented for Schemes)"
                  },
                  "consumerLimit": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The maximum number of Accounts an individual consumer can have in their Wallet for this Campaign. Null or empty denotes unlimited. (Not implemented for Schemes)"
                  }
                }
              },
              "burn": {
                "type": "object",
                "description": "Rules that apply when points are spent on the Scheme.",
                "properties": {
                  "pointsLimit": {
                    "type": "object",
                    "required": [
                      "transactionTypes",
                      "perPeriodRestrictions"
                    ],
                    "description": "Rules for limiting the points that can be spent on the Scheme.",
                    "properties": {
                      "transactionTypes": {
                        "type": "array",
                        "uniqueItems": true,
                        "minItems": 1,
                        "description": "The transaction types that are counted towards the points spend limits.",
                        "items": {
                          "type": "string",
                          "enum": [
                            "SPEND",
                            "EXCHANGE",
                            "DEBIT"
                          ]
                        }
                      },
                      "perPeriodRestrictions": {
                        "type": "array",
                        "nullable": true,
                        "uniqueItems": true,
                        "minItems": 1,
                        "maxItems": 4,
                        "description": "Rules for limiting points spent against a points account per defined period.",
                        "items": {
                          "type": "object",
                          "required": [
                            "active",
                            "value",
                            "period"
                          ],
                          "properties": {
                            "active": {
                              "type": "boolean",
                              "description": "Indicates whether the rule is active."
                            },
                            "value": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 99999999,
                              "description": "The maximum number of points that can be spent within the defined period."
                            },
                            "period": {
                              "type": "string",
                              "description": "Specifies the time period for the points limit. If multiple items with the same period are  added only the last one of that period will be effective.",
                              "enum": [
                                "ACCOUNT_POINTS_BURN_LIMIT_DAY",
                                "ACCOUNT_POINTS_BURN_LIMIT_WEEK",
                                "ACCOUNT_POINTS_BURN_LIMIT_MONTH",
                                "ACCOUNT_POINTS_BURN_LIMIT_YEAR"
                              ]
                            },
                            "limitReset": {
                              "type": "string",
                              "description": "The day of the week on which the weekly limit resets. This key is required when the period is `ACCOUNT_POINTS_BURN_LIMIT_WEEK` and cannot be provided for any other period, otherwise an error is returned.",
                              "enum": [
                                "MONDAY",
                                "TUESDAY",
                                "WEDNESDAY",
                                "THURSDAY",
                                "FRIDAY",
                                "SATURDAY",
                                "SUNDAY"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "timeoutOverride": {
            "type": "integer",
            "nullable": true,
            "description": "Override value the length of time that points will be locked for before automatically being released."
          },
          "custom": {
            "type": "object",
            "nullable": true,
            "description": "It contains objects of custom form json values.",
            "additionalProperties": {
              "type": "object",
              "description": "Objects of custom form json values."
            }
          },
          "negativeBalance": {
            "type": "object",
            "description": "Enable if accounts related to this scheme can go into a negative balance.",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "A flag denoting if the rule is active or not."
              },
              "autoTopUpFunds": {
                "nullable": true,
                "type": "array",
                "description": "Select which transaction types that the account can automatically top up to 0 after originally resulting in a negative balance.",
                "items": {
                  "type": "string",
                  "enum": [
                    "DEBIT",
                    "EXCHANGE",
                    "SPEND",
                    "REFUND_DEBIT"
                  ]
                }
              }
            }
          },
          "autoReduce": {
            "type": "object",
            "properties": {
              "exceed": {
                "type": "boolean",
                "description": "A flag denoting if the points limit rule is active or not."
              },
              "limit": {
                "type": "integer",
                "nullable": true,
                "description": "The maximum number of points a consumer can accrue into their points account."
              },
              "autoReduceFunds": {
                "type": "string",
                "description": "It contains auto reduce for selected transaction types.",
                "enum": [
                  "CREDIT",
                  "EARN",
                  "GOODWILL",
                  "VOID",
                  "GIFT",
                  "DONATE"
                ]
              }
            }
          },
          "householdSharing": {
            "type": "object",
            "description": "Enable Household Sharing on the Scheme.",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "A flag denoting if the rule is active or not."
              }
            }
          },
          "pointsLimitPerPeriod": {
            "type": "array",
            "nullable": true,
            "description": "Rules for limiting points rewarded against a points account per defined period.",
            "items": {
              "type": "object",
              "properties": {
                "active": {
                  "type": "boolean",
                  "description": "Indicates whether the rule is active."
                },
                "value": {
                  "type": "integer",
                  "description": "The maximum number of points that can be rewarded within the defined period."
                },
                "period": {
                  "type": "string",
                  "description": "Specifies the time period for the points limit.",
                  "enum": [
                    "ACCOUNT_POINTS_LIMIT_DAY",
                    "ACCOUNT_POINTS_LIMIT_WEEK",
                    "ACCOUNT_POINTS_LIMIT_MONTH"
                  ]
                }
              }
            }
          },
          "tiers": {
            "nullable": true,
            "type": "object",
            "properties": {
              "enabled": {
                "description": "Indicates whether the rule is active.",
                "type": "boolean"
              },
              "contributionRules": {
                "type": "object",
                "nullable": true,
                "description": "Defines the contribution rules for tiers balances.",
                "properties": {
                  "spend": {
                    "type": "object",
                    "nullable": true,
                    "description": "Defines the rules for how spend balances are calculated towards tier progression.",
                    "required": [
                      "enabled"
                    ],
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "nullable": false,
                        "description": "A flag to indicate if spend balance contribution is enabled at scheme level."
                      },
                      "product": {
                        "additionalProperties": {
                          "type": "object",
                          "nullable": false,
                          "required": [
                            "enabled"
                          ],
                          "description": "Objects with redemption partner safe names, specifying which banners are enabled for spend balance contribution and any product-specific restrictions.",
                          "pattern": "^[a-zA-Z0-9-]+$",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "nullable": false,
                              "description": "A flag to indicate if spend balance contribution is enabled for this redemption partner."
                            },
                            "collections": {
                              "type": "array",
                              "nullable": true,
                              "description": "Collections of product restrictions for spend balance contribution.",
                              "items": {
                                "type": "object",
                                "required": [
                                  "products"
                                ],
                                "properties": {
                                  "products": {
                                    "type": "object",
                                    "anyOf": [
                                      {
                                        "required": [
                                          "included"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "excluded"
                                        ]
                                      }
                                    ],
                                    "properties": {
                                      "included": {
                                        "$ref": "#/components/schemas/productEntity/properties/collections/items/properties/products/properties/included"
                                      },
                                      "excluded": {
                                        "$ref": "#/components/schemas/productEntity/properties/collections/items/properties/products/properties/excluded"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "earnTransactionLimit": {
            "type": "object",
            "nullable": true,
            "description": "Rules for Earn Transaction Limit.",
            "properties": {
              "active": {
                "type": "boolean",
                "description": "A flag denoting if the rule is active or not."
              },
              "amount": {
                "type": "integer",
                "description": "The amount of transactions allowed."
              },
              "periodType": {
                "type": "string",
                "description": "Specifies the time period for the transaction limit.",
                "enum": [
                  "DAY"
                ]
              }
            }
          },
          "pendingPoints": {
            "type": "object",
            "nullable": true,
            "description": "Rules for Pending Points.",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "A flag denoting if the rule is active or not."
              },
              "value": {
                "type": "string",
                "description": "Pending Points value."
              },
              "criteria": {
                "type": "array",
                "nullable": false,
                "description": "Criteria for Pending Points.",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "The type of criteria that the value applies to.",
                      "enum": [
                        "monetary",
                        "points"
                      ]
                    },
                    "value": {
                      "type": "integer",
                      "description": "The value for the criteria specified."
                    }
                  }
                }
              },
              "reasonCodes": {
                "type": "object",
                "nullable": false,
                "description": "Reason Code details.",
                "properties": {
                  "release": {
                    "type": "array",
                    "nullable": false,
                    "items": {
                      "type": "string"
                    }
                  },
                  "reject": {
                    "type": "array",
                    "nullable": false,
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "rewardBank": {
            "type": "object",
            "nullable": true,
            "description": "Configuration options related to Reward Banks for the Scheme.",
            "properties": {
              "autoLink": {
                "type": "object",
                "nullable": false,
                "description": "Configuration options for Auto-Linking Reward Banks to Scheme Accounts.",
                "required": [
                  "enabled"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "A flag denoting if this feature is active or not."
                  },
                  "defaultConfig": {
                    "type": "object",
                    "nullable": true,
                    "required": [
                      "type"
                    ],
                    "description": "The default configuration that will be applied to any Reward Bank Link created using this feature. This can only be `null` if `enabled` set to `false`.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The type of Reward Bank Link that will be automatically created. This must match a value defined in Wallet config."
                      },
                      "state": {
                        "type": "string",
                        "nullable": true,
                        "description": "The state that the Reward Bank Link will be created in. This must match a value defined in Wallet config."
                      }
                    }
                  },
                  "thresholds": {
                    "type": "array",
                    "nullable": true,
                    "minItems": 1,
                    "uniqueItems": true,
                    "description": "An array containing the configuration of Reward Banks that can be automatically linked to and the points threshold rules. This can only be `null` if `enabled` set to `false`.",
                    "items": {
                      "type": "object",
                      "required": [
                        "points",
                        "pointsRewardBankId",
                        "validToRule"
                      ],
                      "properties": {
                        "points": {
                          "type": "integer",
                          "minimum": 1,
                          "description": "The points threshold for this Reward Bank. When a Scheme Account reaches this number of points, it will trigger the creation of a Reward Bank Link to the defined Reward Bank."
                        },
                        "pointsRewardBankId": {
                          "type": "string",
                          "description": "The EES AIR Points Exchange Bank ID the Scheme Account will link to when the defined points threshold is reached."
                        },
                        "validToRule": {
                          "type": "object",
                          "nullable": true,
                          "description": "The configuration defining the validity period for the automatically created Reward Bank Link.",
                          "required": [
                            "periodCount",
                            "periodType",
                            "rounding"
                          ],
                          "properties": {
                            "periodCount": {
                              "type": "integer",
                              "minimum": 1,
                              "description": "The amount of time for which the Reward Bank Link will be valid after being created."
                            },
                            "periodType": {
                              "type": "string",
                              "description": "The type of time period for which the Reward Bank Link will be valid after being created.",
                              "enum": [
                                "DAY",
                                "MONTH",
                                "HOUR"
                              ]
                            },
                            "rounding": {
                              "type": "string",
                              "description": "The rounding rule for the validity period of the Reward Bank Link.",
                              "enum": [
                                "YEAREND",
                                "MONTHEND",
                                "ABSOLUTE"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp that the Scheme was created."
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp that the Scheme was last updated."
          },
          "lastUpdateBy": {
            "type": "integer",
            "description": "The Eagle Eye generated ID of the user or API call that made the last update."
          },
          "version": {
            "type": "integer",
            "description": "The version number of this Scheme that is automatically generated."
          }
        }
      },
      "schemesFundingAccountEntity": {
        "type": "object",
        "description": "Enable if accounts related to this scheme can go into a negative balance.",
        "properties": {
          "fundingAccountId": {
            "type": "string",
            "pattern": "^[0-9]*$",
            "description": "The funding Account Id that the funds should be debited from."
          },
          "fundingPercentage": {
            "type": "integer",
            "default": 100,
            "description": "The percentage of the reward that should be funded by this supplier. This value should be 100 where there is only 1 supplier."
          }
        }
      },
      "tendersCollectionEntity": {
        "nullable": true,
        "type": "array",
        "uniqueItems": true,
        "description": "Qualification criteria based on the method of payment.",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "bin": {
              "nullable": true,
              "type": "string",
              "pattern": "^[0-9]{1,8}$",
              "description": "The Bank Identification Number."
            },
            "tenderType": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "description": "The tender type name defined by Client."
            }
          }
        }
      },
      "schemeEarnRateTendersEntity": {
        "type": "object",
        "nullable": true,
        "additionalProperties": false,
        "description": "Optional earn rate tender qualification lists.",
        "properties": {
          "included": {
            "$ref": "#/components/schemas/tendersCollectionEntity"
          },
          "excluded": {
            "$ref": "#/components/schemas/tendersCollectionEntity"
          }
        }
      },
      "error400Entity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "format": "string",
            "description": "Error Code",
            "example": "ISF",
            "enum": [
              "ICE",
              "IR",
              "ISF",
              "U",
              "ELE"
            ]
          },
          "errorMessage": {
            "type": "string",
            "format": "string",
            "description": "Human Friendly Error Message"
          }
        },
        "x-enum": [
          {
            "errorCode": "ICE",
            "errorMessage": "Internal Configuration Error"
          },
          {
            "errorCode": "IR",
            "errorMessage": "Invalid Request Data"
          },
          {
            "errorCode": "ISF",
            "errorMessage": "Invalid Schema format"
          },
          {
            "errorCode": "U",
            "errorMessage": "Unknown error has occurred"
          },
          {
            "errorCode": "ELE",
            "errorMessage": "Error when loading Monolog logger"
          }
        ]
      },
      "error401Entity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "format": "string",
            "description": "Error Code",
            "example": "UN",
            "enum": [
              "UN",
              "CCE",
              "CRN",
              "CUE"
            ]
          },
          "errorMessage": {
            "type": "string",
            "format": "string",
            "description": "Human Friendly Error Message"
          }
        },
        "x-enum": [
          {
            "errorCode": "UN",
            "errorMessage": "Unauthenticated - Check the AUTH headers and the hash is formed correctly"
          },
          {
            "errorCode": "CCE",
            "errorMessage": "Campaign Create Exception"
          },
          {
            "errorCode": "CRN",
            "errorMessage": "Campaign Reference Not Unique"
          },
          {
            "errorCode": "CUE",
            "errorMessage": "Campaign Update Exception"
          }
        ]
      },
      "error403Entity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "format": "string",
            "description": "Error Code",
            "example": "P",
            "enum": [
              "P",
              "IPR"
            ]
          },
          "errorMessage": {
            "type": "string",
            "format": "string",
            "description": "Human Friendly Error Message"
          }
        },
        "x-enum": [
          {
            "errorCode": "P",
            "errorMessage": "Caller unit hasn't privileges to access this unit"
          },
          {
            "errorCode": "IPR",
            "errorMessage": "IP Address Rejected"
          }
        ]
      },
      "error404Entity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "format": "string",
            "description": "Error Code",
            "example": "CNF",
            "enum": [
              "CNF",
              "ONF"
            ]
          },
          "errorMessage": {
            "type": "string",
            "format": "string",
            "description": "Human Friendly Error Message"
          }
        },
        "x-enum": [
          {
            "errorCode": "CNF",
            "errorMessage": "Campaign Not Found"
          },
          {
            "errorCode": "ONF",
            "errorMessage": "Offers not found"
          }
        ]
      },
      "error405Entity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "format": "string",
            "description": "Error Code",
            "example": "MNA",
            "enum": [
              "MNA"
            ]
          },
          "errorMessage": {
            "type": "string",
            "format": "string",
            "description": "Human Friendly Error Message"
          }
        },
        "x-enum": [
          {
            "errorCode": "MNA",
            "errorMessage": "Method not allowed"
          }
        ]
      },
      "expiryPoints": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "applyRulesToInheritedPoints": {
            "type": "boolean",
            "description": "When true, transferred points inherit the expiry rules of the destination scheme."
          },
          "rule": {
            "$ref": "#/components/schemas/expiryPointsRule"
          },
          "overrideRules": {
            "type": "array",
            "description": "Override expiry rule when conditions are met. A rule of type `ACTIVITY` cannot be overridden.",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/expiryPointsOverride"
            }
          }
        }
      },
      "expiryPointsRule": {
        "type": "object",
        "oneOf": [
          {
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "SETDATE"
                ]
              },
              "date": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "type",
              "date"
            ]
          },
          {
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "CUTOFFDATE"
                ]
              },
              "periodCount": {
                "type": "integer"
              },
              "periodType": {
                "type": "string",
                "enum": [
                  "MONTH",
                  "DAY"
                ]
              },
              "rounding": {
                "type": "string",
                "enum": [
                  "YEAREND",
                  "MONTHEND",
                  "ABSOLUTE"
                ]
              }
            },
            "required": [
              "type",
              "periodCount",
              "periodType",
              "rounding"
            ]
          },
          {
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ACTIVITY"
                ]
              },
              "periodCount": {
                "type": "integer"
              },
              "periodType": {
                "type": "string",
                "enum": [
                  "MONTH",
                  "DAY"
                ]
              },
              "activityParameters": {
                "type": "object",
                "oneOf": [
                  {
                    "properties": {
                      "walletTransactions": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean"
                          },
                          "walletTransactionTypes": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      }
                    },
                    "required": [
                      "walletTransactions"
                    ]
                  },
                  {
                    "properties": {
                      "tierMembershipTransactions": {
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean"
                          },
                          "tierMembershipTransactionTypes": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      }
                    },
                    "required": [
                      "tierMembershipTransactions"
                    ]
                  }
                ]
              }
            },
            "required": [
              "type",
              "periodCount",
              "periodType",
              "activityParameters"
            ]
          }
        ]
      },
      "expiryPointsOverride": {
        "type": "object",
        "required": [
          "rule",
          "conditions"
        ],
        "properties": {
          "rule": {
            "$ref": "#/components/schemas/expiryPointsOverrideRule"
          },
          "conditions": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/expiryPointsOverrideCondition"
            }
          }
        }
      },
      "expiryPointsOverrideRule": {
        "type": "object",
        "description": "The expiry rule to apply when the override conditions are matched. Supports `SETDATE` and `CUTOFFDATE` types only.",
        "oneOf": [
          {
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "SETDATE"
                ]
              },
              "date": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "type",
              "date"
            ]
          },
          {
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "CUTOFFDATE"
                ]
              },
              "periodCount": {
                "type": "integer",
                "minimum": 1,
                "maximum": 365
              },
              "periodType": {
                "type": "string",
                "enum": [
                  "MONTH",
                  "DAY",
                  "HOUR",
                  "MINUTE",
                  "SECOND"
                ]
              },
              "rounding": {
                "type": "string",
                "enum": [
                  "YEAREND",
                  "MONTHEND",
                  "ABSOLUTE"
                ]
              }
            },
            "required": [
              "type",
              "periodCount",
              "periodType",
              "rounding"
            ]
          }
        ]
      },
      "expiryPointsOverrideCondition": {
        "type": "object",
        "required": [
          "type",
          "values"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "accountTransactionEvent"
            ],
            "description": "The type of condition to evaluate."
          },
          "values": {
            "type": "array",
            "minItems": 1,
            "description": "The account transaction event types that trigger this override rule.",
            "items": {
              "type": "string",
              "enum": [
                "ACTIVATE",
                "BALANCE",
                "BLOCK",
                "CANCEL",
                "CREATE",
                "CREDIT",
                "DEBIT",
                "INVALIDATE",
                "LOAD",
                "REACTIVATE",
                "REDEEM",
                "REFUND",
                "REISSUE",
                "RESEND",
                "UNBLOCK",
                "UNLOCK",
                "UNREDEEM",
                "STOLEN",
                "TRANSFER",
                "VERIFY",
                "VOID",
                "TRANSFER_IN",
                "TOPUP",
                "AUTOTOPUP",
                "STAMP",
                "EXPIRY",
                "INACTIVATE",
                "UPDATE",
                "UPDATE_PASSPHRASE",
                "DONATE",
                "DONATE_IN",
                "GIFT",
                "GIFT_IN",
                "GOODWILL",
                "UNEXPIRE",
                "PERISH",
                "UNPERISH",
                "CLEARBALANCE",
                "SPEND",
                "EARN",
                "EXCHANGE",
                "LOCK",
                "REFUND_DEBIT",
                "AUTO_REDUCE",
                "RELEASE_PENDING_POINTS",
                "REJECT_PENDING_POINTS"
              ]
            }
          }
        }
      },
      "productEntity": {
        "type": "object",
        "nullable": true,
        "pattern": "^[\\S]*$",
        "description": "Base earn product restrictions that apply to base earn rates so that points can only be rewarded when product rules are met.",
        "properties": {
          "logicalOperator": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ],
            "description": "The \"OR\" or \"AND\" operator defining how to compare the Product lists."
          },
          "collections": {
            "type": "array",
            "description": "It contains the product lists for a particular rule.",
            "items": {
              "type": "object",
              "pattern": "^[\\\\S]+$",
              "properties": {
                "products": {
                  "type": "object",
                  "properties": {
                    "allRequired": {
                      "type": "boolean",
                      "description": "A flag to determine if all the products defined must be present or not."
                    },
                    "included": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "items": {
                          "type": "array",
                          "nullable": true,
                          "description": "List of all the valid product `UPC`s for the collection.",
                          "items": {
                            "type": "string"
                          }
                        },
                        "groups": {
                          "type": "object",
                          "nullable": true,
                          "description": "List of all the valid product groups for the collection."
                        },
                        "skus": {
                          "type": "array",
                          "nullable": true,
                          "description": "List of all the valid product `SKU`s for the collection.",
                          "items": {
                            "type": "string"
                          }
                        },
                        "tags": {
                          "type": "array",
                          "nullable": true,
                          "description": "List of all the valid product tags for the collection.",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "excluded": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "items": {
                          "type": "array",
                          "nullable": true,
                          "description": "List of all the excluded product `UPC`s for the collection.",
                          "items": {
                            "type": "string"
                          }
                        },
                        "groups": {
                          "type": "object",
                          "nullable": true,
                          "description": "List of all the excluded product groups for the collection."
                        },
                        "skus": {
                          "type": "array",
                          "nullable": true,
                          "description": "List of all the excluded product SKUs for the collection.",
                          "items": {
                            "type": "string"
                          }
                        },
                        "tags": {
                          "type": "array",
                          "nullable": true,
                          "description": "List of all the excluded product tags for the collection.",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "burnRateProductEntity": {
        "type": "object",
        "nullable": true,
        "pattern": "^[\\S]*$",
        "description": "Spending product restrictions that apply to redemption of points.",
        "properties": {
          "collections": {
            "type": "array",
            "nullable": true,
            "description": "It contains the product lists for a particular rule.",
            "items": {
              "type": "object",
              "pattern": "^[\\\\S]+$",
              "properties": {
                "products": {
                  "type": "object",
                  "properties": {
                    "included": {
                      "$ref": "#/components/schemas/productEntity/properties/collections/items/properties/products/properties/included"
                    },
                    "excluded": {
                      "$ref": "#/components/schemas/productEntity/properties/collections/items/properties/products/properties/excluded"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "burnRatesEntity": {
        "type": "object",
        "properties": {
          "bonus": {
            "type": "integer",
            "nullable": true,
            "description": "The bonus amount to add to the exchange value at this point. This is used if you want non-linear tiers and it determines how much you want those additional points to be worth."
          },
          "ceiling": {
            "type": "integer",
            "nullable": true,
            "description": "The upper bound for which this spend tier applies."
          },
          "floor": {
            "type": "integer",
            "nullable": true,
            "description": "The lower bound for which this spend tier applies."
          },
          "pointsBack": {
            "type": "integer",
            "nullable": true,
            "description": "The number of points to be credited back to the points account following a points spend transaction."
          },
          "rate": {
            "type": "number",
            "nullable": true,
            "format": "float",
            "description": "The exchange rate within this scheme that will be applied. Note - this is the value of the exchange for example 0.1 would indicate each point is worth 1/10 of a penny."
          },
          "step": {
            "type": "integer",
            "nullable": true,
            "description": "The increments that points can be spent in. e.g. if points can be exchanged at 5,000, 10,000, 15,000 then the step would be 5,000."
          }
        }
      }
    },
    "responses": {
      "badRequest": {
        "description": "Bad Request.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/error400Entity"
                }
              ],
              "example": {
                "errorCode": "IR",
                "errorMessage": "Invalid Request Data"
              }
            }
          }
        }
      },
      "unauthorized": {
        "description": "Unauthorized.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/error401Entity"
                }
              ],
              "example": {
                "errorCode": "UN",
                "errorMessage": "Unauthenticated - Check the AUTH headers and the hash is formed correctly"
              }
            }
          }
        }
      },
      "forbidden": {
        "description": "Forbidden.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/error403Entity"
                }
              ],
              "example": {
                "errorCode": "P",
                "errorMessage": "Caller unit hasn't privileges to access this unit"
              }
            }
          }
        }
      },
      "notFound": {
        "description": "Not Found.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/error404Entity"
                }
              ],
              "example": {
                "errorCode": "CNF",
                "errorMessage": "Campaign Not Found"
              }
            }
          }
        }
      },
      "methodNotAllowed": {
        "description": "Method Not Allowed.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/error405Entity"
                }
              ],
              "example": {
                "errorCode": "MNA",
                "errorMessage": "Method not allowed"
              }
            }
          }
        }
      }
    }
  }
}
```