{
  "components": {
    "schemas": {
      "AffiliationCashbackConsumer": {
        "properties": {
          "amount": {
            "description": "Amount of the transaction",
            "example": -23.68,
            "readOnly": true,
            "type": "number"
          },
          "cancellation_date": {
            "description": "Date of cancellation by the merchant of a reward",
            "example": "2019-01-23T12:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "cancellation_reason": {
            "description": "Text message explaining the reason of cancellation",
            "example": "Transaction has been deleted",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "description": "Object creation datetime",
            "example": "2019-01-31T15:16:15.523309+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "pending_validation_date": {
            "description": "Date of the cashback pending validation status",
            "example": "2018-11-28T16:52:47.768060+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "Status of the affiliation cashback:\n- PENDING_VALIDATION: The reward is pending the payment from the merchant.\n- PAID_OUT: The reward has been paid to the program.\n- CANCELLED : Cancelled by the merchant or by a technical action.\n",
            "example": "PENDING_VALIDATION",
            "readOnly": true,
            "type": "string"
          },
          "transfer_date": {
            "description": "The date where the reward is actually paid to the consumer",
            "example": "2019-01-23T12:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "user_offer": {
            "$ref": "#/components/schemas/AffiliationUserOffer"
          }
        },
        "required": [
          "amount",
          "id"
        ],
        "type": "object"
      },
      "AffiliationCommissionOffer": {
        "properties": {
          "name": {
            "description": "Name of the object",
            "type": "string"
          },
          "reward_fixed_amount": {
            "description": "Fixed amount of commission that will be generated by a sale on the commission group. May be None for rate-based commission groups.",
            "type": "number"
          },
          "reward_rate": {
            "description": "Commission rate that will be generated by a sale on the commission group. May be \"None\" for fixed amount commission groups.",
            "maximum": 100,
            "minimum": 0,
            "type": "number"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "percentage",
              "fix"
            ],
            "example": "CASHBACK",
            "maxLength": 10,
            "type": "string"
          }
        },
        "required": [
          "name",
          "type"
        ],
        "type": "object"
      },
      "AffiliationUserOffer": {
        "properties": {
          "application_channel": {
            "description": "Offer availability: **ONLINE** if the offer is online only. **OFFLINE** if the offer is offline only. **BOTH** if the offer is online and offline",
            "enum": [
              "BOTH",
              "ONLINE",
              "OFFLINE"
            ],
            "example": "ONLINE",
            "maxLength": 7,
            "nullable": true,
            "readOnly": true
          },
          "application_url": {
            "description": "URL to reach the offer if the offer channel is **ONLINE** or **BOTH**",
            "example": "https://www.mybrand.fr",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "brand": {
            "$ref": "#/components/schemas/ConsumerOfferBrand"
          },
          "commissions": {
            "description": "List of the different commissions that can be earned by a consumer on this offer.",
            "items": {
              "$ref": "#/components/schemas/AffiliationCommissionOffer"
            },
            "readOnly": true,
            "type": "array"
          },
          "deep_link_url": {
            "description": "Mandatory affiliate link for the consumer to earn the reward.",
            "readOnly": true
          },
          "description": {
            "description": "description",
            "readOnly": true,
            "type": "string"
          },
          "end_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): End date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "highlight_level": {
            "description": "Enum in: HIGHEST, HIGH, NORMAL. For a contextual display (banner, carousel etc...), this value is set by the program manager on each offer",
            "enum": [
              "HIGHEST",
              "HIGH",
              "NORMAL"
            ],
            "example": "HIGH",
            "maxLength": 7,
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "is_consumed": {
            "description": "Has the consumer already consumed the coupon of the current offer? If true, yes. If false, no.",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "is_favorite": {
            "description": "TRUE if the offer is liked by consumer, FALSE if not",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "legal_terms": {
            "description": "Legal terms",
            "readOnly": true,
            "type": "string"
          },
          "max_fixed_reward_amount": {
            "description": "Maximum absolute reward (in currency) for this offer.",
            "readOnly": true,
            "type": "number"
          },
          "max_reward_rate": {
            "description": "Maximum  reward rate (in % of an eligible transaction amount) for this offer.",
            "maximum": 100,
            "minimum": 0,
            "readOnly": true,
            "type": "number"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "picture": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Image"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "publication_date": {
            "description": "Offer publication datetime. An offer can be published before its starting date (for teasing purposes)",
            "example": "2019-01-01T00:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "reference": {
            "description": "Unique reference of the offer. Human readable, made out from the concatenation of the brand name + creation date + increment.",
            "example": "MYBRAND-20180220-001",
            "readOnly": true,
            "type": "string"
          },
          "start_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): Start date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "- ACTIVE: The offer is available and your customers can benefit from it.\n- COMPLETED: All the budget has been spent, the offer is no longer active.\n- PUBLISHED: The offer is published but not yet active. You can choose to display it to tease your customers.\n",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "AFFILIATION"
            ],
            "example": "CASHBACK",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "reference",
          "type"
        ],
        "type": "object"
      },
      "AggregatedAffiliationOffer": {
        "properties": {
          "active": {
            "description": "Number of available offers.",
            "type": "integer"
          },
          "max_fixed_reward_amount": {
            "description": "Maximum absolute reward (in currency) for offers.",
            "type": "number"
          },
          "max_reward_rate": {
            "description": "Maximum reward rate (in % of an eligible transaction amount) for offers.",
            "nullable": true,
            "type": "number"
          },
          "published": {
            "description": "Number of published offers.",
            "type": "integer"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "AFFILIATION"
            ],
            "example": "CASHBACK",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "AggregatedBaseOffer": {
        "properties": {
          "active": {
            "description": "Number of available offers.",
            "type": "integer"
          },
          "published": {
            "description": "Number of published offers.",
            "type": "integer"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "GENERIC_COUPON"
            ],
            "example": "CASHBACK",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "AggregatedCashbackProgramOffer": {
        "properties": {
          "active": {
            "description": "Number of available offers.",
            "type": "integer"
          },
          "maximum_reward_rate": {
            "description": "Maximum reward rate (in % of an eligible transaction amount) for offers.",
            "type": "number"
          },
          "minimum_reward_rate": {
            "description": "Minimum reward rate (in % of an eligible transaction amount) for offers.",
            "type": "number"
          },
          "published": {
            "description": "Number of published offers.",
            "type": "integer"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "CASHBACK"
            ],
            "example": "CASHBACK",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "AggregatedVoucherOffer": {
        "properties": {
          "active": {
            "description": "Number of available offers.",
            "type": "integer"
          },
          "max_discount_rate": {
            "description": "Represents the best absolute ratio between the price and value of the different vouchers.",
            "type": "number"
          },
          "published": {
            "description": "Number of published offers.",
            "type": "integer"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "VOUCHER"
            ],
            "example": "CASHBACK",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "Bank": {
        "properties": {
          "country_code": {
            "description": "Country representation following ISO 3166 Alpha-2",
            "example": "FR",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "BankConnection": {
        "properties": {
          "accounts": {
            "description": "List of consumer accounts",
            "items": {
              "$ref": "#/components/schemas/ConsumerBankAccount"
            },
            "readOnly": true,
            "type": "array"
          },
          "bank_id": {
            "description": "Bank unique UUID",
            "example": "03a7ab14-397d-4df5-a472-ab9b45de175e",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "description": "Object creation datetime",
            "example": "2019-01-31T15:16:15.523309+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "error": {
            "description": "String representation of error status",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "error_message": {
            "description": "The description of the error, if available.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "is_master": {
            "description": "Boolean: If true, we transfer the cashback money to this account. Only one account can be master.",
            "example": false,
            "readOnly": true,
            "type": "boolean"
          },
          "last_successful_sync": {
            "description": "Last successful update",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "last_sync": {
            "description": "Last attempt of sync",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "most_recent_transaction": {
            "deprecated": true,
            "description": "Date of the last transaction done on this connection",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "next_try": {
            "description": "Date of next synchronization.",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "provider": {
            "deprecated": true,
            "description": "ID of the provider",
            "type": "string"
          },
          "status": {
            "description": "Bank connection statuses\n- UNKNOWN: The status is unknown, most of the time because the consumer hasn't synced his/her account yet.\n- DISABLED: Synchronization has been disabled for this connection.\n- ERROR: Synchronization error (bad credentials and/or consumer has an action to make on his/her bank website side).\n- CHALLENGE_REQUIRED : consumer has to input a special code sent by his/her bank to aknowledge the synchronization\n- SCRAPPING: Consumer bank account is being synchronized.\n- SUCCESS: Consumer bank account synchronization was a success.\n- SCA_REQUIRED: A complete SCA process must be done by updating the connection.\n- SCA_REQUIRED_AND_OTP: A complete SCA process must be done by updating the connection.\n- WEBAUTH_REQUIRED: A complete authentication process is required by updating the connection via redirect.\n- WRONG_PASS: Consumer has to input their credentials because they are invalid or obsolete.\n- ACTION_NEEDED : Consumer has to perform a special action in his bank website, more details are available in error_message.\n",
            "enum": [
              "UNKNOWN",
              "DISABLED",
              "ERROR",
              "CHALLENGE_REQUIRED",
              "SCRAPPING",
              "SUCCESS",
              "SCA_REQUIRED",
              "WEBAUTH_REQUIRED",
              "WRONG_PASS",
              "ACTION_NEEDED",
              "WAITING_FOR_VALIDATION"
            ],
            "example": "SUCCESS",
            "maxLength": 22,
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "updated_at": {
            "description": "Date of the last update",
            "example": "2020-01-23T12:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "bank_id",
          "provider"
        ],
        "type": "object"
      },
      "BankConnectionEnrollment": {
        "properties": {
          "bank_id": {
            "description": "Bank unique UUID",
            "example": "03a7ab14-397d-4df5-a472-ab9b45de175e",
            "readOnly": true,
            "type": "string"
          },
          "bank_name": {
            "description": "Name of the bank.",
            "readOnly": true,
            "type": "string"
          },
          "connection_status": {
            "description": "Status of scrapping connection to consumer banks",
            "example": "SUCCESS",
            "readOnly": true,
            "type": "string"
          },
          "consumer_id": {
            "description": "UUID : unique ID of a consumer",
            "readOnly": true,
            "type": "string"
          },
          "error": {
            "description": "String representation of error status",
            "readOnly": true,
            "type": "string"
          },
          "error_message": {
            "description": "The description of the error, if available.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "first_sync": {
            "description": "Date of first successful sync.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "last_successful_sync": {
            "description": "Last successful update",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "last_sync": {
            "description": "Last attempt of sync",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "next_try": {
            "description": "Last attempt of sync",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Brand": {
        "properties": {
          "created_at": {
            "description": "Object creation datetime",
            "example": "2019-01-31T15:16:15.523309+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "logo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Image"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "updated_at": {
            "description": "Date of the last update",
            "example": "2020-01-23T12:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "Brand1": {
        "properties": {
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "logo": {
            "description": "Logo of the Brand",
            "readOnly": true
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "reference": {
            "description": "Unique reference of the offer. Human readable, made out from the concatenation of the brand name + creation date + increment.",
            "example": "MYBRAND-20180220-001",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "BrandAggregatedOffer": {
        "properties": {
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "logo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Image"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "offers": {
            "description": "List of Offer objects",
            "items": {
              "discriminator": {
                "mapping": {
                  "AFFILIATION": "#/components/schemas/AggregatedAffiliationOffer",
                  "CASHBACK": "#/components/schemas/AggregatedCashbackProgramOffer",
                  "GENERIC_COUPON": "#/components/schemas/AggregatedBaseOffer",
                  "VOUCHER": "#/components/schemas/AggregatedVoucherOffer"
                },
                "propertyName": "type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/AggregatedVoucherOffer"
                },
                {
                  "$ref": "#/components/schemas/AggregatedAffiliationOffer"
                },
                {
                  "$ref": "#/components/schemas/AggregatedCashbackProgramOffer"
                },
                {
                  "$ref": "#/components/schemas/AggregatedBaseOffer"
                }
              ]
            },
            "readOnly": true,
            "type": "array"
          },
          "universes": {
            "description": "Universes",
            "items": {
              "$ref": "#/components/schemas/Universe"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "BrandConnector": {
        "properties": {
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "logo": {
            "$ref": "#/components/schemas/Logo"
          },
          "logos": {
            "description": "Logos of the brand.",
            "items": {
              "$ref": "#/components/schemas/BrandLogo"
            },
            "readOnly": true,
            "type": "array"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "universes": {
            "description": "Universes",
            "items": {
              "$ref": "#/components/schemas/Universe"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "BrandConsumer": {
        "properties": {
          "description": {
            "description": "description",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "logo": {
            "$ref": "#/components/schemas/Logo"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "offers": {
            "description": "List of Offer objects",
            "items": {
              "$ref": "#/components/schemas/BrandOfferConsumer"
            },
            "type": "array"
          },
          "universes": {
            "description": "Universes",
            "items": {
              "$ref": "#/components/schemas/Universe"
            },
            "type": "array"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "BrandConsumer1": {
        "properties": {
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "logo": {
            "$ref": "#/components/schemas/Logo"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "BrandLogo": {
        "properties": {
          "illustration_usage_name": {
            "description": "Intended use case of the associated image.",
            "type": "string"
          },
          "logo": {
            "$ref": "#/components/schemas/Logo"
          }
        },
        "type": "object"
      },
      "BrandOfferConsumer": {
        "properties": {
          "cashback_rate": {
            "description": "Rate of reward used to calculate cashback amount",
            "example": 5,
            "readOnly": true
          },
          "end_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): End date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "readOnly": true
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "is_consumed": {
            "description": "Has the consumer already consumed the coupon of the current offer? If true, yes. If false, no.",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "legal_terms": {
            "description": "Legal terms",
            "readOnly": true
          },
          "max_amount": {
            "description": "Maximum transaction amount for this offer. the maximum reward for this offer is max_amount x cashback_rate",
            "example": 250,
            "readOnly": true
          },
          "max_cashbacks_per_consumer": {
            "description": "The maximum number of rewards that can be obtained by a consumer, if \"None\", it's unlimited, on a given offer",
            "readOnly": true
          },
          "min_amount": {
            "description": "Minimum amount for a transaction to be able to generate a reward for the consumer",
            "example": 40,
            "readOnly": true
          },
          "name": {
            "description": "Name of the offer",
            "nullable": true,
            "readOnly": true,
            "type": "object"
          },
          "picture": {
            "$ref": "#/components/schemas/Logo"
          },
          "segments": {
            "description": "Segments of offers.",
            "items": {
              "$ref": "#/components/schemas/Segment"
            },
            "readOnly": true,
            "type": "array"
          },
          "source_transaction": {
            "description": "If this flag is true, the transaction must come from the default bank of the program to generate a reward",
            "readOnly": true,
            "type": "boolean"
          },
          "start_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): Start date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "readOnly": true
          },
          "status": {
            "description": "- ACTIVE: The offer is available and your customers can benefit from it.\n- COMPLETED: All the coupons of the offer have been burnt, the offer is no longer active.\n- PUBLISHED: The offer is published but not yet active. You can choose to display it to tease your customers.\n",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "CASHBACK",
              "UNIQUE_COUPON",
              "GENERIC_COUPON",
              "VOUCHER",
              "AFFILIATION",
              "LBS_CASHBACK"
            ],
            "example": "CASHBACK",
            "maxLength": 14
          }
        },
        "type": "object"
      },
      "BrandProgramOffer": {
        "properties": {
          "description": {
            "description": "description",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "logo": {
            "$ref": "#/components/schemas/Logo"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "offers": {
            "description": "List of Offer objects",
            "items": {
              "$ref": "#/components/schemas/Offer"
            },
            "readOnly": true,
            "type": "array"
          },
          "universes": {
            "description": "Universes",
            "items": {
              "$ref": "#/components/schemas/Universe"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "CashbackConsumer": {
        "properties": {
          "amount": {
            "description": "Amount of the transaction",
            "example": -23.68,
            "readOnly": true,
            "type": "number"
          },
          "cancellation_date": {
            "description": "Date of cancellation by the merchant of a reward",
            "example": "2019-01-23T12:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "cancellation_reason": {
            "description": "Text message explaining the reason of cancellation",
            "example": "Transaction has been deleted",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "description": "Object creation datetime",
            "example": "2019-01-31T15:16:15.523309+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "estimated_payment_date": {
            "description": "Estimation date of the credit on the pool of the reward",
            "example": "2019-01-23T12:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "merchant": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Merchant"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "payment_date": {
            "description": "Actual credit date on the pool of the reward",
            "example": "2019-01-23T12:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "pending_validation_date": {
            "description": "The date when the validation period of the reward starts",
            "example": "2019-01-23T12:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "Status of the cashback:\n- PENDING_VALIDATION: The cashback has been generated from the transaction date, but the merchant can cancel the cashback because within the validation period (e.g. 14 days)\n- VALIDATED: The merchant hasn't cancelled the cashback and we are out of the validation period. This cashback is meant to be paid by the merchant on the first open day of the month and can't be cancelled anymore.\n- PAID_IN: Cashback has been paid by the merchant and is collected by our PSP.\n- PAID_OUT: Consumer collected his/her cashback (whether manually or automatically, triggered by your pay out threshold).\n- ERROR: Something went wrong with the cashback (technical).\n- CANCELLED: Cancelled by the merchant. The cashback is not considered as due anymore. Most of the time, because the purchased item has been returned to the merchant.\n",
            "example": "VALIDATED",
            "readOnly": true,
            "type": "string"
          },
          "transaction": {
            "$ref": "#/components/schemas/TransactionReward"
          },
          "transfer_date": {
            "description": "The date where the reward is actually paid to the consumer",
            "example": "2019-01-23T12:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "universe": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConsumerUniverseWithLogo"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "user_offer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CashbackUserOffer"
              }
            ],
            "description": "Offer from which the cashback has been computed and earned",
            "readOnly": true
          },
          "validation_date": {
            "description": "End of the validation period, the merchant can't cancel the reward anymore",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "validation_estimated_date": {
            "description": "Estimation of the end of the validation period",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "id"
        ],
        "type": "object"
      },
      "CashbackUserOffer": {
        "properties": {
          "application_channel": {
            "description": "Offer availability: **ONLINE** if the offer is online only. **OFFLINE** if the offer is offline only. **BOTH** if the offer is online and offline",
            "enum": [
              "BOTH",
              "ONLINE",
              "OFFLINE"
            ],
            "example": "ONLINE",
            "maxLength": 7,
            "nullable": true,
            "readOnly": true
          },
          "application_url": {
            "description": "URL to reach the offer if the offer channel is **ONLINE** or **BOTH**",
            "example": "https://www.mybrand.fr",
            "format": "url",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "brand": {
            "$ref": "#/components/schemas/ConsumerOfferBrand"
          },
          "cashback_rate": {
            "description": "Rate of reward used to calculate cashback amount",
            "example": 5,
            "maximum": 100,
            "minimum": 0,
            "readOnly": true,
            "type": "number"
          },
          "description": {
            "description": "description",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "end_date": {
            "description": "End date of the offer. A transaction has to be executed before (inclusive) this date to be able to generate cashback for the consumer.",
            "example": "2017-12-26T23:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "highlight_level": {
            "description": "Enum in: HIGHEST, HIGH, NORMAL. For a contextual display (banner, carousel etc...), this value is set by the program manager on each offer",
            "enum": [
              "HIGHEST",
              "HIGH",
              "NORMAL"
            ],
            "example": "HIGH",
            "maxLength": 7,
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "is_consumed": {
            "description": "Has the consumer already consumed the coupon of the current offer? If true, yes. If false, no.",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "is_favorite": {
            "description": "TRUE if the offer is liked by consumer, FALSE if not",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "legal_terms": {
            "description": "Legal terms",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "max_amount": {
            "description": "Maximum transaction amount for this offer. the maximum reward for this offer is max_amount x cashback_rate",
            "example": 250,
            "nullable": true,
            "readOnly": true,
            "type": "number"
          },
          "max_cashbacks_per_consumer": {
            "description": "The maximum number of rewards that can be obtained by a consumer, if \"None\", it's unlimited, on a given offer",
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "min_amount": {
            "description": "Minimum amount for a transaction to be able to generate a reward for the consumer",
            "example": 40,
            "nullable": true,
            "readOnly": true,
            "type": "number"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "picture": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Image"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "publication_date": {
            "description": "Offer publication datetime. An offer can be published before its starting date (for teasing purposes)",
            "example": "2019-01-01T00:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "reference": {
            "description": "Unique reference of the offer. Human readable, made out from the concatenation of the brand name + creation date + increment.",
            "example": "MYBRAND-20180220-001",
            "readOnly": true,
            "type": "string"
          },
          "segments": {
            "description": "Segments of offers",
            "items": {
              "$ref": "#/components/schemas/ConsumerSegment"
            },
            "readOnly": true,
            "type": "array"
          },
          "source_transaction": {
            "description": "If this flag is true, the transaction must come from the default bank of the program to generate a reward",
            "readOnly": true,
            "type": "boolean"
          },
          "start_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): Start date of the offer. A transaction has to be executed after (inclusive) this date to be able to generate cashback for the consumer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "- ACTIVE: The offer is available and your customers can benefit from it.\n- COMPLETED: The campaign budget has been completely spent, the offer is no longer active.\n- PUBLISHED: The offer is published but not yet active. You can choose to display them to tease your customers.\n",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "CASHBACK",
              "LBS_CASHBACK"
            ],
            "example": "CASHBACK",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "cashback_rate",
          "highlight_level",
          "id",
          "name",
          "reference",
          "status",
          "type"
        ],
        "type": "object"
      },
      "Configuration": {
        "properties": {
          "automatic_threshold": {
            "description": "Pool's minimum amount to be reached to trigger automatic payout. Ex: If \"automatic_threshold\" is set at \"10\", each time the consumer's pool reaches 10€, the payout will be automatically triggered to the consumer account",
            "example": 30,
            "type": "number"
          },
          "manual_threshold": {
            "description": "Pool's minimum amount to be reached for the consumer to be able to manually trigger payout. Ex: if \"manual_threshold\" is set at \"10\", consumer will be able to manually trigger the payout to his account only when he reaches 10€ in his pool",
            "example": 10,
            "type": "number"
          }
        },
        "type": "object"
      },
      "ConsumerBankAccount": {
        "properties": {
          "bic": {
            "description": "Bank Identifier code",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "iban": {
            "description": "Internation Bank Account Number",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "is_eligible": {
            "description": "Boolean: Is this account eligible for being the master account? The account is eligible if and only if the currency is EUR, and the account type is current.",
            "example": false,
            "readOnly": true,
            "type": "boolean"
          },
          "is_master": {
            "description": "Boolean: If true, we transfer the cashback money to this account. Only one account can be master.",
            "example": false,
            "readOnly": true,
            "type": "boolean"
          },
          "last_transaction_executed_at": {
            "description": "Date of the last transaction done",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConsumerBankAccount1": {
        "properties": {
          "bic": {
            "description": "Bank Identifier code",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "iban": {
            "description": "Internation Bank Account Number",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "last_transaction_executed_at": {
            "description": "Date of the last transaction done.",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConsumerId": {
        "properties": {
          "id": {
            "description": "The consumer_id of the created consumer.",
            "example": "ConsumerId123",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConsumerOfferBrand": {
        "properties": {
          "description": {
            "description": "description",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "type": "string"
          },
          "legal_terms": {
            "description": "Legal terms",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "logo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Image"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "name": {
            "description": "Name of the object",
            "type": "string"
          },
          "universes": {
            "description": "Universes",
            "items": {
              "$ref": "#/components/schemas/ConsumerUniverse"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "ConsumerSegment": {
        "properties": {
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConsumerSegmentation": {
        "properties": {
          "associated_at": {
            "description": "Date of the association.",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "maxLength": 128,
            "type": "string"
          },
          "reference": {
            "description": "Unique reference of the offer. Human readable, made out from the concatenation of the brand name + creation date + increment.",
            "example": "MYBRAND-20180220-001",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConsumerUniverse": {
        "properties": {
          "children": {
            "description": "Children universes of the current universe (nested objects)",
            "items": {
              "$ref": "#/components/schemas/ConsumerUniverse"
            },
            "nullable": true,
            "readOnly": true,
            "type": "array"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "parent_id": {
            "description": "UUID : unique ID of the parent of the object",
            "example": "5c5e6d04-9dfc-46b8-9432-7c977f1dca23",
            "format": "uuid",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConsumerUniverseWithLogo": {
        "properties": {
          "children": {
            "description": "Children universes of the current universe (nested objects)",
            "items": {
              "$ref": "#/components/schemas/ConsumerUniverse"
            },
            "nullable": true,
            "readOnly": true,
            "type": "array"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "logo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Image"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "name": {
            "description": "Name of the object",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "parent_id": {
            "description": "UUID : unique ID of the parent of the object",
            "example": "5c5e6d04-9dfc-46b8-9432-7c977f1dca23",
            "format": "uuid",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CouponGenericUserOffer": {
        "properties": {
          "application_channel": {
            "description": "Offer availability: **ONLINE** if the offer is online only. **OFFLINE** if the offer is offline only. **BOTH** if the offer is online and offline",
            "enum": [
              "BOTH",
              "ONLINE",
              "OFFLINE"
            ],
            "example": "ONLINE",
            "maxLength": 7,
            "nullable": true,
            "readOnly": true
          },
          "application_url": {
            "description": "URL to reach the offer if the offer channel is **ONLINE** or **BOTH**",
            "example": "https://www.mybrand.fr",
            "format": "url",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "brand": {
            "$ref": "#/components/schemas/ConsumerOfferBrand"
          },
          "coupon_diffusion_type": {
            "description": "- QR: QR code\n- EAN: Bar code\n- CODE: Full text (alpha num) code\n",
            "enum": [
              "QR",
              "EAN",
              "CODE"
            ],
            "maxLength": 4,
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "coupon_generic_code": {
            "description": "Generic code allowing the consumer to benefit from the offer",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "description",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "end_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): End date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "highlight_level": {
            "description": "Enum in: HIGHEST, HIGH, NORMAL. For a contextual display (banner, carousel etc...), this value is set by the program manager on each offer",
            "enum": [
              "HIGHEST",
              "HIGH",
              "NORMAL"
            ],
            "example": "HIGH",
            "maxLength": 7,
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "is_consumed": {
            "description": "Has the consumer already consumed the coupon of the current offer? If true, yes. If false, no.",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "is_favorite": {
            "description": "TRUE if the offer is liked by consumer, FALSE if not",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "legal_terms": {
            "description": "Legal terms",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "picture": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Image"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "publication_date": {
            "description": "Offer publication datetime. An offer can be published before its starting date (for teasing purposes)",
            "example": "2019-01-01T00:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "reference": {
            "description": "Unique reference of the offer. Human readable, made out from the concatenation of the brand name + creation date + increment.",
            "example": "MYBRAND-20180220-001",
            "readOnly": true,
            "type": "string"
          },
          "start_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): Start date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "- ACTIVE: The offer is available and your customers can benefit from it.\n- COMPLETED: All the coupons of the offer have been burnt, the offer is no longer active.\n- PUBLISHED: The offer is published but not yet active. You can choose to display them to tease your customers.\n",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "GENERIC_COUPON"
            ],
            "example": "CASHBACK",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "coupon_generic_code",
          "highlight_level",
          "name",
          "reference",
          "type"
        ],
        "type": "object"
      },
      "CouponUniqueUserOffer": {
        "properties": {
          "application_channel": {
            "description": "Offer availability: **ONLINE** if the offer is online only. **OFFLINE** if the offer is offline only. **BOTH** if the offer is online and offline",
            "enum": [
              "BOTH",
              "ONLINE",
              "OFFLINE"
            ],
            "example": "ONLINE",
            "maxLength": 7,
            "nullable": true,
            "readOnly": true
          },
          "application_url": {
            "description": "URL to reach the offer if the offer channel is **ONLINE** or **BOTH**",
            "example": "https://www.mybrand.fr",
            "format": "url",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "brand": {
            "$ref": "#/components/schemas/ConsumerOfferBrand"
          },
          "coupon_diffusion_type": {
            "description": "- QR: QR code\n- EAN: Bar code\n- CODE: Full text (alpha num) code\n",
            "enum": [
              "QR",
              "EAN",
              "CODE"
            ],
            "maxLength": 4,
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "description",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "end_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): End date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "highlight_level": {
            "description": "Enum in: HIGHEST, HIGH, NORMAL. For a contextual display (banner, carousel etc...), this value is set by the program manager on each offer",
            "enum": [
              "HIGHEST",
              "HIGH",
              "NORMAL"
            ],
            "example": "HIGH",
            "maxLength": 7,
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "is_consumed": {
            "description": "Has the consumer already consumed the coupon of the current offer? If true, yes. If false, no.",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "is_favorite": {
            "description": "TRUE if the offer is liked by consumer, FALSE if not",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "legal_terms": {
            "description": "Legal terms",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "picture": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Image"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "publication_date": {
            "description": "Offer publication datetime. An offer can be published before its starting date (for teasing purposes)",
            "example": "2019-01-01T00:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "reference": {
            "description": "Unique reference of the offer. Human readable, made out from the concatenation of the brand name + creation date + increment.",
            "example": "MYBRAND-20180220-001",
            "readOnly": true,
            "type": "string"
          },
          "start_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): Start date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "- ACTIVE: The offer is available and your customers can benefit from it.\n- COMPLETED: All the coupons of the offer have been burnt, the offer is no longer active.\n- PUBLISHED: The offer is published but not yet active. You can choose to display it to tease your customers.\n",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "UNIQUE_COUPON"
            ],
            "example": "CASHBACK",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "highlight_level",
          "name",
          "reference",
          "type"
        ],
        "type": "object"
      },
      "CoupongUniqueConsumerList": {
        "properties": {
          "consumed_at": {
            "description": "Date of coupon consumption.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "url": {
            "description": "Complete URL of the object",
            "format": "url",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Error": {
        "properties": {
          "code": {
            "description": "Error code."
          },
          "message": {
            "description": "Error message.",
            "type": "string"
          },
          "meta": {
            "description": "Meta information of the error."
          }
        },
        "required": [
          "message"
        ],
        "type": "object"
      },
      "GiftConsumer": {
        "properties": {
          "_current_status": {
            "description": "- PENDING_VALIDATION: The reward is pending the validation from the merchant.\n- VALIDATED: The reward is now validated and waits for payment from the merchant.\n- PAID_IN: The reward has been paid by the merchant.\n- PAID_OUT: The reward has been paid to the consumer.\n- CANCELLED: Cancelled by the merchant or by a technical action.\n- ERROR: Technical error. Please contact PayLead.\n",
            "readOnly": true,
            "type": "string"
          },
          "amount": {
            "description": "Amount of the transaction",
            "example": -23.68,
            "readOnly": true,
            "type": "number"
          },
          "created_at": {
            "description": "Object creation datetime",
            "example": "2019-01-31T15:16:15.523309+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "executed_at": {
            "description": "Execution date of the transaction",
            "example": "2019-01-31T12:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "- PENDING_VALIDATION: The reward is pending the validation from the merchant.\n- VALIDATED: The reward is now validated and waits for payment from the merchant.\n- PAID_IN: The reward has been paid by the merchant.\n- PAID_OUT: The reward has been paid to the consumer.\n- CANCELLED: Cancelled by the merchant or by a technical action.\n- ERROR: Technical error. Please contact PayLead.\n",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "id",
          "name"
        ],
        "type": "object"
      },
      "Image": {
        "properties": {
          "content_type": {
            "description": "Content type of the file",
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "type": "string"
          },
          "links": {
            "$ref": "#/components/schemas/Links"
          },
          "name": {
            "description": "Name of the object",
            "type": "string"
          },
          "owner": {
            "description": "ID of the uploader of the file",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Links": {
        "properties": {
          "download": {
            "description": "The link to download the data.",
            "format": "url",
            "type": "string"
          },
          "preview": {
            "description": "The link to preview the data.",
            "format": "url",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Links1": {
        "properties": {
          "details": {
            "description": "Details of the link.",
            "format": "url",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Logo": {
        "properties": {
          "content_type": {
            "description": "Content type of the logo.",
            "type": "string"
          },
          "created_at": {
            "description": "Object creation datetime",
            "example": "2019-01-31T15:16:15.523309+00:00",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "type": "string"
          },
          "links": {
            "$ref": "#/components/schemas/Links"
          },
          "name": {
            "description": "Name of the object"
          },
          "owner": {
            "description": "Owner of the logo.",
            "type": "string"
          },
          "path": {
            "description": "Path of the logo.",
            "type": "string"
          }
        },
        "required": [
          "path"
        ],
        "type": "object"
      },
      "Media": {
        "properties": {},
        "type": "object"
      },
      "Merchant": {
        "properties": {
          "created_at": {
            "description": "Object creation datetime",
            "example": "2019-01-31T15:16:15.523309+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "has_delegation": {
            "description": "Flag to indicate if the merchant can emit offers on another brand",
            "readOnly": true,
            "type": "boolean"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "logo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Image"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "Metrics": {
        "properties": {
          "date": {
            "description": "Object creation datetime",
            "example": "2018-12-26T13:45:36.173196+00:00",
            "format": "date-time",
            "type": "string"
          },
          "total_cashback": {
            "description": "Number of cashbacks",
            "example": 34,
            "type": "number"
          },
          "total_cashback_amount": {
            "description": "Sum of cashback amounts",
            "example": 438.12,
            "type": "number"
          },
          "total_paid_in_cashback_amount": {
            "description": "Sum of paid in cashback amounts",
            "example": 1456.32,
            "type": "number"
          },
          "total_paid_out_cashback_amount": {
            "description": "Sum of paid out cashback amounts",
            "example": 135.83,
            "type": "number"
          },
          "total_pending_cashback_amount": {
            "description": "Sum of pending cashback amounts",
            "example": 76.3,
            "type": "number"
          },
          "total_validated_cashback_amount": {
            "description": "Sum of validated cashback amounts",
            "example": 246.78,
            "type": "number"
          }
        },
        "type": "object"
      },
      "Offer": {
        "properties": {
          "cashback_rate": {
            "description": "Rate of reward used to calculate cashback amount",
            "example": 5
          },
          "end_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): End date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "type": "string"
          },
          "is_consumed": {
            "description": "Has the consumer already consumed the coupon of the current offer? If true, yes. If false, no.",
            "example": true,
            "type": "boolean"
          },
          "legal_terms": {
            "description": "Legal terms related to the offer",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "max_amount": {
            "description": "Maximum transaction amount for this offer. the maximum reward for this offer is max_amount x cashback_rate",
            "example": 250,
            "nullable": true,
            "type": "number"
          },
          "max_cashbacks_per_consumer": {
            "description": "The maximum number of rewards that can be obtained by a consumer, if \"None\", it's unlimited, on a given offer",
            "nullable": true,
            "type": "integer"
          },
          "min_amount": {
            "description": "Minimum amount for a transaction to be able to generate a reward for the consumer",
            "example": 40,
            "nullable": true,
            "type": "number"
          },
          "name": {
            "description": "Name of the object"
          },
          "segments": {
            "description": "Segments of offers.",
            "items": {
              "$ref": "#/components/schemas/Segment"
            },
            "type": "array"
          },
          "source_transaction": {
            "description": "If this flag is true, the transaction must come from the default bank of the program to generate a reward",
            "type": "boolean"
          },
          "start_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): Start date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "description": "- ACTIVE: The offer is available and your customers can benefit from it.\n- COMPLETED: All the coupons of the offer have been burnt, the offer is no longer active.\n- PUBLISHED: The offer is published but not yet active. You can choose to display it to tease your customers.\n",
            "type": "string"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "CASHBACK",
              "UNIQUE_COUPON",
              "GENERIC_COUPON",
              "VOUCHER",
              "AFFILIATION",
              "LBS_CASHBACK"
            ],
            "example": "CASHBACK",
            "maxLength": 14
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "OwnerAddress": {
        "properties": {
          "city": {
            "description": "City of the store",
            "example": "Paris",
            "type": "string"
          },
          "country": {
            "description": "Country of the store",
            "example": "France",
            "type": "string"
          },
          "region": {
            "default": null,
            "description": "Region of the address.",
            "nullable": true,
            "type": "string"
          },
          "street": {
            "description": "Street of the address.",
            "type": "string"
          },
          "zip_code": {
            "description": "Zip code of the store",
            "example": 84120,
            "type": "string"
          }
        },
        "required": [
          "city",
          "country",
          "street",
          "zip_code"
        ],
        "type": "object"
      },
      "OwnerInfo": {
        "properties": {
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerAddress"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "name": {
            "default": null,
            "description": "Name of the object",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PFMAccounts": {
        "properties": {
          "BankAccount": {
            "$ref": "#/components/schemas/ConsumerBankAccount1"
          },
          "balance": {
            "description": "Consumer acccount balance",
            "example": 2567.83,
            "type": "number"
          },
          "last_update": {
            "description": "Datetime of the last update",
            "example": "2019-02-14T15:28:41.167520+00:00",
            "format": "date-time",
            "type": "string"
          },
          "type": {
            "description": "Type of the account.",
            "example": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PFMBankResource": {
        "properties": {
          "accounts": {
            "description": "List of consumer accounts",
            "items": {
              "$ref": "#/components/schemas/PFMAccounts"
            },
            "readOnly": true,
            "type": "array"
          },
          "bank": {
            "$ref": "#/components/schemas/Bank"
          }
        },
        "type": "object"
      },
      "PFMUniverse": {
        "properties": {
          "amount": {
            "description": "Amount of the transaction",
            "example": -23.68,
            "readOnly": true,
            "type": "number"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "parent_id": {
            "description": "UUID : unique ID of the parent of the object",
            "example": "5c5e6d04-9dfc-46b8-9432-7c977f1dca23",
            "readOnly": true,
            "type": "string"
          },
          "universe_id": {
            "description": "UUID: Unique ID of a universe",
            "example": "a2f11603-8912-4775-a022-a9e96056f8d9",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PFMUniverseBalance": {
        "properties": {
          "universes": {
            "description": "Universes",
            "items": {
              "$ref": "#/components/schemas/PFMUniverse"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "PaymentAccount": {
        "properties": {
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "owner_info": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerInfo"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "payout_account": {
            "description": "Consumer payout account object",
            "example": "FR7630006000011234567890189",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "TRUE: Payment account is valid, FALSE: Payment account is not valid",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "target_account": {
            "description": "Consumer payment account object",
            "example": "FR7630006000011234567890189",
            "type": "string"
          }
        },
        "required": [
          "target_account"
        ],
        "type": "object"
      },
      "Pool": {
        "properties": {
          "configuration": {
            "$ref": "#/components/schemas/Configuration"
          },
          "total_amount": {
            "description": "Sum of transaction amounts",
            "example": 4682.67,
            "readOnly": true,
            "type": "number"
          }
        },
        "type": "object"
      },
      "PrivacyPolicyReadOnly": {
        "properties": {
          "content": {
            "description": "Description of the privacy policy.",
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "description": "Object creation datetime",
            "example": "2019-01-31T15:16:15.523309+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "level": {
            "description": "Level of the given privacy policy.",
            "enum": [
              "BASIC",
              "TRANSACTION_TRIGGERS",
              "TARGETING",
              "STATISTICS",
              "SMART_RANKING",
              "WEB_ANALYTICS"
            ],
            "readOnly": true,
            "type": "string"
          },
          "program_id": {
            "description": "ID of the program.",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "updated_at": {
            "description": "Date of the last update",
            "example": "2020-01-23T12:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "content",
          "level",
          "program_id"
        ],
        "type": "object"
      },
      "ProcessError": {
        "properties": {
          "errors": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/Error"
              },
              "type": "array"
            },
            "description": "Errors of the processing.",
            "type": "object"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProposedVoucher": {
        "properties": {
          "price": {
            "description": "The buying price of a voucher including program fees",
            "nullable": true,
            "readOnly": true,
            "type": "number"
          },
          "value": {
            "description": "The value to spent in merchant shop",
            "nullable": true,
            "readOnly": true,
            "type": "number"
          }
        },
        "type": "object"
      },
      "PspNaturalUser": {
        "properties": {
          "birthday": {
            "description": "Description of birthday.",
            "format": "date",
            "type": "string"
          },
          "country_of_residence": {
            "description": "description of country_of_residence.",
            "type": "string"
          },
          "email": {
            "description": "Description of email.",
            "format": "email",
            "type": "string"
          },
          "first_name": {
            "description": "Description of first_name.",
            "type": "string"
          },
          "last_name": {
            "description": "Description of last_name.",
            "type": "string"
          },
          "nationality": {
            "description": "Description of nationality.",
            "type": "string"
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "Reward": {
        "$ref": "#/components/schemas/RewardConsumer"
      },
      "RewardConsumer": {
        "properties": {
          "amount": {
            "description": "Amount of the transaction",
            "example": -23.68,
            "readOnly": true,
            "type": "number"
          },
          "consumer_id": {
            "description": "UUID : unique ID of a consumer",
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "description": "Object creation datetime",
            "example": "2019-01-31T15:16:15.523309+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "executed_at": {
            "description": "Execution date of the transaction",
            "example": "2019-01-31T12:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "links": {
            "$ref": "#/components/schemas/Links1"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "origin": {
            "description": "The issuer name that holds the reward",
            "readOnly": true,
            "type": "string"
          },
          "paid_out_at": {
            "description": "The date when the reward was paid",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "- PENDING_VALIDATION: The reward is pending the validation from the merchant.\n- VALIDATED: The reward is now validated and waits for payment from the merchant.\n- PAID_IN: The reward has been paid by the merchant.\n- PAID_OUT: The reward has been paid to the consumer.\n- CANCELLED: Cancelled by the merchant or by a technical action.\n- ERROR: Technical error. Please contact PayLead.\n",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "CASHBACK",
              "GIFT",
              "CASHBACK_AFFILIATION",
              "LBS_CASHBACK"
            ],
            "example": "CASHBACK",
            "maxLength": 20,
            "readOnly": true
          }
        },
        "required": [
          "amount",
          "type"
        ],
        "type": "object"
      },
      "Segment": {
        "properties": {
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "maxLength": 128,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_.-]*$",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "Store": {
        "properties": {
          "address": {
            "description": "Address of the Store",
            "example": "55 rue des moulins",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "brand": {
            "$ref": "#/components/schemas/Brand"
          },
          "business_name": {
            "description": "Business Name (Legal) of the store",
            "example": "MY BRAND SARL",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "city": {
            "description": "City of the store",
            "example": "Paris",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "country": {
            "description": "Country of the store",
            "example": "France",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "description": "Object creation datetime",
            "example": "2019-01-31T15:16:15.523309+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "is_online": {
            "description": "TRUE if the store is online (no address, no geolocation, url); FALSE if the store is physical",
            "example": true,
            "nullable": true,
            "readOnly": true,
            "type": "boolean"
          },
          "latitude": {
            "description": "Latitude of the store",
            "example": 50.51534475,
            "nullable": true,
            "readOnly": true,
            "type": "number"
          },
          "longitude": {
            "description": "Longitude of the store",
            "example": 6.0646992,
            "nullable": true,
            "readOnly": true,
            "type": "number"
          },
          "merchant": {
            "$ref": "#/components/schemas/Merchant"
          },
          "name": {
            "description": "Name of the store",
            "example": "MY LITTLE BRAND PARIS",
            "readOnly": true,
            "type": "string"
          },
          "phone_number": {
            "description": "Phone number of the store",
            "example": "0102030405",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "siret": {
            "description": "SIRET of the current Store. Siret is a 14-digit business identification number managed by INSEE. The Siret consists of the Siren number of 9 digits which identifies the company, a 4-digit number to identify the establishment and 1 digit forming a control key to verify Luhn's algorithm",
            "example": 81968937300010,
            "nullable": true,
            "type": "string"
          },
          "website": {
            "description": "URL of a brand website",
            "example": "https://www.paylead.fr/",
            "format": "url",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "zip_code": {
            "description": "Zip code of the store",
            "example": 84120,
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "TransactionReward": {
        "properties": {
          "amount": {
            "description": "Amount of the transaction",
            "example": -23.68,
            "readOnly": true,
            "type": "number"
          },
          "descriptor": {
            "description": "Label of the transaction",
            "example": "MYBRAND",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "executed_at": {
            "description": "Execution date of the transaction",
            "example": "2019-01-31T12:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "external_id": {
            "description": "External_id of the transaction.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "executed_at"
        ],
        "type": "object"
      },
      "Universe": {
        "properties": {
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the object",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserOffer": {
        "discriminator": {
          "mapping": {
            "AFFILIATION": "#/components/schemas/AffiliationUserOffer",
            "CASHBACK": "#/components/schemas/CashbackUserOffer",
            "GENERIC_COUPON": "#/components/schemas/CouponGenericUserOffer",
            "LBS_CASHBACK": "#/components/schemas/CashbackUserOffer",
            "UNIQUE_COUPON": "#/components/schemas/CouponUniqueUserOffer",
            "VOUCHER": "#/components/schemas/VoucherUserOffer"
          },
          "propertyName": "type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/VoucherUserOffer"
          },
          {
            "$ref": "#/components/schemas/AffiliationUserOffer"
          },
          {
            "$ref": "#/components/schemas/CashbackUserOffer"
          },
          {
            "$ref": "#/components/schemas/CouponUniqueUserOffer"
          },
          {
            "$ref": "#/components/schemas/CouponGenericUserOffer"
          }
        ]
      },
      "ValidationError": {
        "properties": {
          "errors": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/Error"
              },
              "type": "array"
            },
            "description": "Errors during the validation process.",
            "type": "object"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Voucher": {
        "properties": {
          "brand": {
            "$ref": "#/components/schemas/Brand1"
          },
          "codes": {
            "description": "List of codes to be used.",
            "items": {
              "$ref": "#/components/schemas/VoucherCode"
            },
            "readOnly": true,
            "type": "array"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "offer_id": {
            "description": "Unique UUID of the offer",
            "example": "94b36765-a06c-4baf-a33c-40e43686a96a",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "price": {
            "description": "Price paid by the consumer",
            "readOnly": true,
            "type": "number"
          },
          "reservation_date": {
            "description": "Date when the voucher has been reserved.",
            "format": "date",
            "readOnly": true,
            "type": "string"
          },
          "reservation_expired_date": {
            "description": "Date when the reservation expired. If this date is passed, the voucher is automatically cancelled.",
            "format": "date",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "Current status of the voucher.",
            "enum": [
              "RESERVED",
              "CANCELLED",
              "CONFIRMED",
              "READY",
              "REFUNDING",
              "REFUNDED",
              "REFUND_REJECTED"
            ],
            "maxLength": 15,
            "readOnly": true
          },
          "validity_date": {
            "description": "voucher validity date, after this date the voucher is not valid anymore and can't be used.",
            "format": "date",
            "readOnly": true,
            "type": "string"
          },
          "value": {
            "description": "nominal value of the voucher",
            "readOnly": true,
            "type": "number"
          }
        },
        "required": [
          "offer_id",
          "price",
          "status",
          "value"
        ],
        "type": "object"
      },
      "VoucherBrandConsumer": {
        "properties": {
          "brand": {
            "$ref": "#/components/schemas/BrandConsumer1"
          },
          "codes": {
            "description": "List of codes to be used in merchant shop.",
            "items": {
              "$ref": "#/components/schemas/VoucherCode"
            },
            "readOnly": true,
            "type": "array"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "offer_id": {
            "description": "Unique UUID of the offer",
            "example": "94b36765-a06c-4baf-a33c-40e43686a96a",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "price": {
            "description": "Price paid by the consumer.",
            "readOnly": true,
            "type": "number"
          },
          "reservation_date": {
            "description": "Date when the voucher has been reserved.",
            "format": "date",
            "readOnly": true,
            "type": "string"
          },
          "reservation_expired_date": {
            "description": "Date when the reservation expired. If this date is passed, the voucher is automatically cancelled.",
            "format": "date",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "Current status of the voucher.",
            "enum": [
              "RESERVED",
              "CANCELLED",
              "CONFIRMED",
              "READY",
              "REFUNDING",
              "REFUNDED",
              "REFUND_REJECTED"
            ],
            "maxLength": 15,
            "readOnly": true
          },
          "validity_date": {
            "description": "voucher validity date, after this date the voucher is not valid anymore and can't be used.",
            "format": "date",
            "readOnly": true,
            "type": "string"
          },
          "value": {
            "description": "Nominal value of the voucher.",
            "readOnly": true,
            "type": "number"
          }
        },
        "required": [
          "offer_id",
          "price",
          "status",
          "value"
        ],
        "type": "object"
      },
      "VoucherCode": {
        "properties": {
          "activation_code": {
            "description": "Optional PIN code that might be required to use the voucher",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "code": {
            "description": "Code to use in the merchant store",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "validity_date": {
            "description": "voucher validity date, after this date the voucher is not valid anymore and can't be used.",
            "format": "date",
            "readOnly": true,
            "type": "string"
          },
          "value": {
            "description": "Value attached to the given code",
            "readOnly": true,
            "type": "number"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "VoucherUserOffer": {
        "properties": {
          "application_channel": {
            "description": "Offer availability: **ONLINE** if the offer is online only. **OFFLINE** if the offer is offline only. **BOTH** if the offer is online and offline",
            "enum": [
              "BOTH",
              "ONLINE",
              "OFFLINE"
            ],
            "example": "ONLINE",
            "maxLength": 7,
            "nullable": true,
            "readOnly": true
          },
          "application_url": {
            "description": "URL to reach the offer if the offer channel is **ONLINE** or **BOTH**",
            "example": "https://www.mybrand.fr",
            "format": "url",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "brand": {
            "$ref": "#/components/schemas/ConsumerOfferBrand"
          },
          "description": {
            "description": "description",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "end_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): End date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "highlight_level": {
            "description": "Enum in: HIGHEST, HIGH, NORMAL. For a contextual display (banner, carousel etc...), this value is set by the program manager on each offer",
            "enum": [
              "HIGHEST",
              "HIGH",
              "NORMAL"
            ],
            "example": "HIGH",
            "maxLength": 7,
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "is_favorite": {
            "description": "TRUE if the offer is liked by consumer, FALSE if not",
            "example": true,
            "readOnly": true,
            "type": "boolean"
          },
          "legal_terms": {
            "description": "Legal terms",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "max_discount_rate": {
            "description": "Represents the best absolute ratio between the price and value of the different vouchers",
            "nullable": true,
            "readOnly": true,
            "type": "number"
          },
          "max_value": {
            "description": "Maximum value of the vouchers",
            "nullable": true,
            "readOnly": true,
            "type": "number"
          },
          "min_value": {
            "description": "Minimum value of the vouchers",
            "nullable": true,
            "readOnly": true,
            "type": "number"
          },
          "name": {
            "description": "Name of the object",
            "readOnly": true,
            "type": "string"
          },
          "picture": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Image"
              },
              {
                "nullable": true,
                "type": "object"
              }
            ]
          },
          "proposed_vouchers": {
            "description": "A list of suggested vouchers, including both their price and their value. Only provided on GET queries when \"?include=proposed_vouchers\" is included in the request.",
            "items": {
              "$ref": "#/components/schemas/ProposedVoucher"
            },
            "readOnly": true,
            "type": "array"
          },
          "reference": {
            "description": "Unique reference of the offer. Human readable, made out from the concatenation of the brand name + creation date + increment.",
            "example": "MYBRAND-20180220-001",
            "readOnly": true,
            "type": "string"
          },
          "start_date": {
            "description": "Date (ex. 2017-12-26T23:00:00+00:00): Start date of the offer.",
            "example": "2018-12-21T00:00:00+00:00",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Enum in: CASHBACK, UNIQUE_COUPON, GENERIC_COUPON",
            "enum": [
              "VOUCHER"
            ],
            "example": "CASHBACK",
            "readOnly": true,
            "type": "string"
          },
          "voucher_modes": {
            "description": "BONUS: The voucher value is higher or equal than the provided voucher price. DISCOUNT: The voucher price is lower or equal than the provided voucher value",
            "readOnly": true
          }
        },
        "required": [
          "name",
          "reference",
          "type"
        ],
        "type": "object"
      },
      "Webview": {
        "properties": {
          "callback_url": {
            "description": "Callback URL of your application. On synchronization success, the consumer will be redirected to that URL",
            "example": "https://www.myprogram.fr",
            "format": "url",
            "type": "string"
          },
          "webview": {
            "description": "URL of scrapper webview",
            "example": "https://monprogramme.scrappername/apiver/auth/webview/accounts?client_id=83761145&redirect_uri=URL_CALLBACK/gmlNhDF/6lvVrd1y_KPeq54_t4X5ecW7/w/SVY3g2n3uH11cDJySHX_8zwlSCGDahT5Saj/6pZXFeM14YCaRwQY5quRow1L9/becbNZ2roMKTouLhHKvAWb0gz3dM6AW",
            "format": "url",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "bearerFormat": "JWT",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "## Welcome to PayLead API Documentation !\nWith this documentation, we will help you go through the phases of\nbasic implementation, and help you understand the basic steps to let you reach your objectives through our API.\n## Versioning\nOur API supports versioning, so be sure to set the right version in the header, using the Client-Api-Version field :\n\nex : X-Api-Version = 1.0.0\n## Response code\nOur API returns standard HTTP response codes to indicate success or failure of the API requests. For\nerrors, we also return a customized error message inside the JSON response. You can see the returned\nHTTP status codes below.\n\n|Code|Title|Description\n|------|------|------|\n|200|OK|Request successful\n|201|Created|Resource successfully created\n|204|No Content|Request successful with no content returned\n|400|Bad Request|Request was unacceptable\n|401|Unauthorised|API key provided is invalid\n|402|Request Failed|Valid parameters but the request failed\n|403|Forbidden|Access is forbidden.\n|404|Not Found|Resource does not exist\n|409|Conflict|The request could not be completed due to a conflict with the current state of the target resource\n|429|Too Many Requests|The user has sent too many requests in a given amount of time (\"rate limiting\").\n|500, 502, 503, 504|Server Errors|Something went wrong with the PayLead API\n\n## Error handling\nIn case of error our API returns errors based on JSON API principles, especially for 4xx errors.\nAn error response contains an unique id which can be used for investigation.\nIn addition, you will find a message explaining the error, a readable code and a meta object containing more details.\n\nYou can see an example below.\n\n>> ~~~~\n>> {\n>>     'errors': {\n>>             'target_account': [\n>>                 {\n>>                 'code': 'FORMAT_ERROR',\n>>                 'message': 'Invalid IBAN; it should be 4-34 characters, only upper-case letters and digits.',\n>>                 'meta': {\n>>                     'value': 'SOME-INVALID-IBAN'\n>>                 }\n>>             }\n>>         ]\n>>     },\n>>     'id': '784db0c2-0e87-40d4-aa62-3e801135ccf7'\n>> }\n>> ~~~~\n## Language — Content Negotiation\nIf your program has been configured to support multiple languages, the API will respect the `Accept-Language` header as defined in [RFC7231](https://tools.ietf.org/html/rfc7231#section-5.3.5).\n\nFor each incoming request, the best language will be selected by matching the list of languages accepted by the client with the list of languages supported by the program.\n\nFor example, with a header of `Accept-Language: fr-FR,en-GB;q=0.8,en;q=0.3`:\n\n  * If supported languages are `fr-FR, en-GB`, the best match is `fr-FR`;\n  * If supported languages are `en-GB, fr-FR`, the best match is `fr-FR`;\n  * If supported languages are `fr-BE, nl-BE`, the best match is `fr-BE`;\n  * If supported languages are `it-IT, en-US`, the best match is `en-US`;\n  * If supported languages are `de-CH, it-CH`, the best match is `de-CH`.\n\n\nThe selected language will be exposed through the `Content-Language` header.\n\n*Note:* If some fields haven't been translated yet, they will be returned in the program's primary language.\n",
    "title": "PayLead API",
    "version": "1.1.1"
  },
  "openapi": "3.0.2",
  "paths": {
    "/banks": {
      "get": {
        "description": "Returns the list of all banks available on the program linked to the consumer.\n",
        "parameters": [
          {
            "description": "Filter by mappings__source",
            "in": "query",
            "name": "mappings__source",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by name\n\nName of the object",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "name",
                "mappings__source",
                "-name",
                "-mappings__source"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/Bank"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets the list of banks.",
        "tags": [
          "Banks"
        ]
      }
    },
    "/connections-statuses": {
      "get": {
        "description": "Retrieves all bank synchronization statuses for all consumers of your program:\n- UNKNOWN: The status is unknown, most of the time because the consumer hasn't synced his/her account yet.\n- DISABLED: The synchronization has been disabled for this connection.\n- ERROR: Synchronization error (bad credentials and/or consumer has an action to make on his/her bank website side).\n- CHALLENGE_REQUIRED: Consumer has to input a special code sent by his/her bank to acknowledge the synchronization.\n- SCRAPPING: The consumer's bank account is being synchronized.\n- SUCCESS: The consumer's bank account synchronization succeeded.\n- SCA_REQUIRED: A complete SCA process must be performed by updating the connection.\n- SCA_REQUIRED_AND_OTP: A complete SCA process must be performed by updating the connection.\n- WEBAUTH_REQUIRED: A complete authentication process is required by updating the connection via redirect.\n- WRONG_PASS: The consumer has to input their credentials because they are invalid or obsolete.\n- ACTION_NEEDED: The consumer has to perform a special action in their bank website. More details are available in \"error_message\".\n",
        "parameters": [
          {
            "description": "Filter by last_successful_sync",
            "in": "query",
            "name": "last_successful_sync",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "status",
                "last_successful_sync",
                "-status",
                "-last_successful_sync"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "UNKNOWN",
                "DISABLED",
                "ERROR",
                "CHALLENGE_REQUIRED",
                "SCRAPPING",
                "SUCCESS",
                "SCA_REQUIRED",
                "WEBAUTH_REQUIRED",
                "WRONG_PASS",
                "ACTION_NEEDED",
                "WAITING_FOR_VALIDATION"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/BankConnectionEnrollment"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Bank Synchronization Statuses",
        "tags": [
          "Bank Synchronization"
        ]
      }
    },
    "/connectors/brands": {
      "get": {
        "description": "List of all brands that are allowed to be published on your program.\n",
        "parameters": [
          {
            "description": "Filter by id\n\nUnique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "in": "query",
            "name": "id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by name\n\nName of the object",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by offer__public",
            "in": "query",
            "name": "offer__public",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by offer__source_transaction",
            "in": "query",
            "name": "offer__source_transaction",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Type of the offer",
            "in": "query",
            "name": "offer__type",
            "schema": {
              "enum": [
                "CASHBACK",
                "UNIQUE_COUPON",
                "GENERIC_COUPON",
                "VOUCHER",
                "AFFILIATION",
                "LBS_CASHBACK"
              ],
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "name",
                "id",
                "universe__name",
                "universe__id",
                "offer__type",
                "offer__source_transaction",
                "-name",
                "-id",
                "-universe__name",
                "-universe__id",
                "-offer__type",
                "-offer__source_transaction"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by universe__id",
            "in": "query",
            "name": "universe__id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by universe__name",
            "in": "query",
            "name": "universe__name",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/BrandConnector"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK",
            "links": {
              "get.ConnectorBrandOfferList": {
                "operationId": "get.ConnectorBrandOfferList",
                "parameters": {
                  "brand_id": "$response.body#/items/0/id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Get Brands",
        "tags": [
          "Brands"
        ]
      }
    },
    "/connectors/brands/offer-statistics": {
      "get": {
        "description": "\nList of all brands with offers statistics: Number active or published offers,\nminimum & maximum reward rates available.\n",
        "parameters": [
          {
            "description": "Filter by id\n\nUnique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "in": "query",
            "name": "id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by name\n\nName of the object",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by offer__source_transaction",
            "in": "query",
            "name": "offer__source_transaction",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Type of the offer",
            "in": "query",
            "name": "offer__type",
            "schema": {
              "enum": [
                "CASHBACK",
                "UNIQUE_COUPON",
                "GENERIC_COUPON",
                "VOUCHER",
                "AFFILIATION",
                "LBS_CASHBACK"
              ],
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "name",
                "id",
                "universe__name",
                "universe__id",
                "offer__type",
                "offer__source_transaction",
                "-name",
                "-id",
                "-universe__name",
                "-universe__id",
                "-offer__type",
                "-offer__source_transaction"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by universe__id",
            "in": "query",
            "name": "universe__id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by universe__name",
            "in": "query",
            "name": "universe__name",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/BrandAggregatedOffer"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets consumers offer statistics for each brand.",
        "tags": [
          "Brands"
        ]
      }
    },
    "/connectors/brands/{brand_id}/offers": {
      "get": {
        "description": "\nReturns the list of active or published offers for this brand for this specific\nconsumer.\n",
        "operationId": "get.ConnectorBrandOfferList",
        "parameters": [
          {
            "description": "Unique ID of the brand on PayLead system.",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by offer__id\n\nUnique UUID of the offer",
            "example": "16db86d2-38eb-47fb-bae1-a23bb1b36cc2",
            "in": "query",
            "name": "offer__id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by offer__name\n\nName of the offer",
            "example": "5% de remboursement chez MyBrand",
            "in": "query",
            "name": "offer__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "offer__id",
                "offer__name",
                "-offer__id",
                "-offer__name"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrandProgramOffer"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets consumers offer for a brand.",
        "tags": [
          "Brands"
        ]
      }
    },
    "/connectors/consumers": {
      "post": {
        "description": "\nCreate a consumer by providing:\n- its id (consumer_id)\n- its levels of consent he wants to opt-in in addition to the implicit defined in current privacy policy (extra_levels).\n- its levels of consent he wants to opt-out (removed_consents).\nMultiple choices are allowed and possible choices are: TRANSACTION_TRIGGERS, TARGETING, STATISTICS, SMART_RANKING and WEB_ANALYTICS.\n- its associated account ids under linked banks (banks).\n\nYou can choose any consumer ID you want, as long as it is not already used by an existing consumer in your\nprogram.\n\nIf success, the route answers back with the new consumer ID.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "banks": {
                    "description": "optional array of banks, containing bank_id and accounts ids associated."
                  },
                  "extra_consents": {
                    "description": "optional array of explicit consent levels the consumer wants to opt-in.",
                    "items": {
                      "enum": [
                        "TRANSACTION_TRIGGERS",
                        "TARGETING",
                        "STATISTICS",
                        "SMART_RANKING"
                      ]
                    },
                    "type": "array"
                  },
                  "id": {
                    "type": "string"
                  },
                  "removed_consents": {
                    "description": "optional array of consent levels the consumer wants to opt-out.",
                    "items": {
                      "enum": [
                        "TRANSACTION_TRIGGERS",
                        "TARGETING",
                        "STATISTICS",
                        "SMART_RANKING"
                      ]
                    },
                    "type": "array"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsumerId"
                }
              }
            },
            "description": "Created",
            "links": {
              "get.AccountListResource": {
                "operationId": "get.AccountListResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.AffiliationCashbackConsumerList": {
                "operationId": "get.AffiliationCashbackConsumerList.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.AggregatedUniverseList": {
                "operationId": "get.AggregatedUniverseList.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.BankConnectionListingResource": {
                "operationId": "get.BankConnectionListingResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.CashbackListResource": {
                "operationId": "get.CashbackListResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.ConnectionStatusListing": {
                "operationId": "get.ConnectionStatusListing.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.ConsumerBrandAggregatedOfferList": {
                "operationId": "get.ConsumerBrandAggregatedOfferList.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.Global": {
                "operationId": "get.Global.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.Monthly": {
                "operationId": "get.Monthly.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.OfferListResource": {
                "operationId": "get.OfferListResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.PFMBanksResource": {
                "operationId": "get.PFMBanksResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.PoolResource": {
                "operationId": "get.PoolResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.RewardListResource": {
                "operationId": "get.RewardListResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.RewardsCashbackListResource": {
                "operationId": "get.RewardsCashbackListResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "get.VoucherModelListResource": {
                "operationId": "get.VoucherModelListResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "post.DeactivateResource": {
                "operationId": "post.DeactivateResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "post.KYCListResource": {
                "operationId": "post.KYCListResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "post.PaymentAccountListResource": {
                "operationId": "post.PaymentAccountListResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              },
              "post.WebviewAccountResource": {
                "operationId": "post.WebviewAccountResource.impersonate",
                "parameters": {
                  "consumer_id": "$response.body#/id"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessError"
                }
              }
            },
            "description": "Conflict"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Create Consumer",
        "tags": [
          "User"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}": {
      "get": {
        "description": "Verify existence of a consumer. If present, the route answers back with the consumer id.",
        "parameters": [
          {
            "description": "The id of the consumer on program system",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsumerId"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Check whether a consumer user exists.",
        "tags": [
          "User"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/accounts": {
      "get": {
        "description": "Lists the different bank accounts synced by the consumer.\n",
        "operationId": "get.AccountListResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/ConsumerBankAccount"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Lists the accounts",
        "tags": [
          "Accounts"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/accounts/payment": {
      "get": {
        "description": "\nGets the consumer Payment Account Listing.\n\nA Payment Account is an object describing where the cashback money should be transfered.\n\nIt has:\n\n- A payout account: Where the cashback money should be transfered out of the Payment\nService Provider.\n\n- A target account: Where the cashback money should end up. This is the actual\naccount of the consumer.\n\nIf external ventilation, the payout account is the Program Manager pivot account,\nand the target account is the account of the consumer.\n\nIn case of internal ventilation, payout account = target account = account of\nthe consumer.\n",
        "operationId": "get.PaymentAccountListResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/PaymentAccount"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK",
            "links": {
              "get.PaymentAccountResource": {
                "operationId": "get.PaymentAccountResource.impersonate",
                "parameters": {
                  "consumer_id": "$request.path.consumer_id",
                  "mpa_id": "$response.body#/items/0/id"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Payment Account Listing",
        "tags": [
          "Payment Account"
        ]
      },
      "post": {
        "description": "\nThis route allows the connector to create a payment account from consumer's target\naccount input.\n\nIt also allows you to update the status of the consumer account if that\nthe account is not valid anymore (payment failure for instance).\n",
        "operationId": "post.PaymentAccountListResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentAccount"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentAccount"
                }
              }
            },
            "description": "Created",
            "links": {
              "get.PaymentAccountListResource": {
                "operationId": "get.PaymentAccountListResource.impersonate",
                "parameters": {
                  "consumer_id": "$request.path.consumer_id"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessError"
                }
              }
            },
            "description": "Conflict"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Create Payment Account",
        "tags": [
          "Payment Account"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/accounts/payment/{mpa_id}": {
      "delete": {
        "description": "\nRoute to delete the consumers payment account.\n",
        "operationId": "delete.PaymentAccountResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Master payment account ID.",
            "in": "path",
            "name": "mpa_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Deletes Payment Account.",
        "tags": [
          "Payment Account"
        ]
      },
      "get": {
        "description": "\nRetrieves a specific payment account from the consumer.\n\nA Payment Account is an object describing where the cashback money should be transfered.\n\nIt has:\n\n- A payout account: Where the cashback money should be transfered out of the Payment\nService Provider.\n\n- A target account: Where the cashback money should end up. This is the actual\naccount of the consumer.\n\nIf external ventilation, the payout account is the Program Manager pivot account,\nand the target account is the account of the consumer.\n\nIn case of internal ventilation, payout account = target account = account of\nthe consumer.\n",
        "operationId": "get.PaymentAccountResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Master payment account ID.",
            "in": "path",
            "name": "mpa_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentAccount"
                }
              }
            },
            "description": "OK",
            "links": {
              "delete.PaymentAccountResource": {
                "operationId": "delete.PaymentAccountResource.impersonate",
                "parameters": {
                  "consumer_id": "$request.path.consumer_id",
                  "mpa_id": "$request.path.mpa_id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Payment Account",
        "tags": [
          "Payment Account"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/accounts/webview": {
      "post": {
        "description": "This route returns a dedicated Budget Insight webview for the\nspecified consumer to add and synchronize a bank account.\n",
        "operationId": "post.WebviewAccountResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Webview"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webview"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "409": {
            "description": "Conflict"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Generates Bank Synchronization Webview",
        "tags": [
          "Bank Synchronization"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/accounts/{account_id}/master": {
      "post": {
        "description": "\nCreates an account or updates the account to master account.\nMaster Account: We transfer the cashback money to this consumer's account. Only one account can be master at a time.\nThe account is eligible if and only if the currency is \"EUR\", and the account type is \"current\".\nAs being deprecated, we recommend that you use Payment Account instead.\n",
        "parameters": [
          {
            "description": "Unique ID of the account.",
            "in": "path",
            "name": "account_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "409": {
            "description": "Conflict"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Set Master Account (Deprecated, use Create Payment Account Instead).",
        "tags": [
          "Accounts"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/banks": {
      "get": {
        "description": "Returns the list of all bank connections of a given consumer.\n",
        "operationId": "get.BankConnectionListingResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/BankConnection"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets the list of bank connections.",
        "tags": [
          "Bank Synchronization"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/banks/{provider_id}": {
      "get": {
        "description": "Returns a specific synced bank of a consumer.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Slug representation of bank.",
            "example": "12, societe-generale",
            "in": "path",
            "name": "provider_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankConnection"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets bank connection details.",
        "tags": [
          "Bank Synchronization"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/brands/offer-statistics": {
      "get": {
        "description": "\nReturns the list of public active or published offers for this brand.\n\nThis list is sorted by default using the conversion probability computed by our internal smart ranking engine.\n",
        "operationId": "get.ConsumerBrandAggregatedOfferList.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by id\n\nUnique ID of the object.",
            "example": "e2c32b4b-de61-459b-accf-a75f76247946",
            "in": "query",
            "name": "id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by is_consumed\n\nHas the consumer already consumed the coupon of the current offer? If true, yes. If false, no.",
            "example": true,
            "in": "query",
            "name": "is_consumed",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by name\n\nName of the object",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by offer__source_transaction",
            "in": "query",
            "name": "offer__source_transaction",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Type of the offer",
            "in": "query",
            "name": "offer__type",
            "schema": {
              "enum": [
                "CASHBACK",
                "UNIQUE_COUPON",
                "GENERIC_COUPON",
                "VOUCHER",
                "AFFILIATION",
                "LBS_CASHBACK"
              ],
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "name",
                "id",
                "universe__name",
                "universe__id",
                "offer__type",
                "offer__source_transaction",
                "is_consumed",
                "-name",
                "-id",
                "-universe__name",
                "-universe__id",
                "-offer__type",
                "-offer__source_transaction",
                "-is_consumed"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by universe__id",
            "in": "query",
            "name": "universe__id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by universe__name",
            "in": "query",
            "name": "universe__name",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/BrandAggregatedOffer"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets the list of offers for a brand.",
        "tags": [
          "Brands"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/brands/{brand_id}/offers": {
      "get": {
        "description": "\nReturns the list of active or published offers for this brand for this specific\nconsumer.\n",
        "parameters": [
          {
            "description": "Unique ID of the brand on PayLead system.",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by cashback_rate\n\nRate of reward used to calculate cashback amount",
            "example": 5,
            "in": "query",
            "name": "cashback_rate",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by is_consumed\n\nHas the consumer already consumed the coupon of the current offer? If true, yes. If false, no.",
            "example": true,
            "in": "query",
            "name": "is_consumed",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by offer__id\n\nUnique UUID of the offer",
            "example": "16db86d2-38eb-47fb-bae1-a23bb1b36cc2",
            "in": "query",
            "name": "offer__id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by offer__name\n\nName of the offer",
            "example": "5% de remboursement chez MyBrand",
            "in": "query",
            "name": "offer__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by source_transaction\n\nIf this flag is true, the transaction must come from the default bank of the program to generate a reward",
            "in": "query",
            "name": "source_transaction",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrandConsumer"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets consumers offer for a brand.",
        "tags": [
          "Brands"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/cashbacks": {
      "get": {
        "description": "This method returns the paginated listing of all cashbacks belonging to a specific\nconsumer.\n",
        "operationId": "get.CashbackListResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by amount\n\nAmount of the transaction",
            "example": -23.68,
            "in": "query",
            "name": "amount",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by created_at\n\nFiltering on date of creation\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "created_at",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by descriptor\n\nLabel of the transaction",
            "example": "MYBRAND",
            "in": "query",
            "name": "descriptor",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "amount",
                "status",
                "created_at",
                "user_offer__reference",
                "user_offer__id",
                "user_offer__name",
                "user_offer__brand__name",
                "descriptor",
                "transaction__amount",
                "transaction__score",
                "-amount",
                "-status",
                "-created_at",
                "-user_offer__reference",
                "-user_offer__id",
                "-user_offer__name",
                "-user_offer__brand__name",
                "-descriptor",
                "-transaction__amount",
                "-transaction__score"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "CANCELLED",
                "PENDING_VALIDATION",
                "VALIDATED",
                "PAID_IN",
                "PAID_OUT",
                "ERROR"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by transaction__amount",
            "in": "query",
            "name": "transaction__amount",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by transaction__score",
            "in": "query",
            "name": "transaction__score",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by user_offer__brand__name",
            "in": "query",
            "name": "user_offer__brand__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by user_offer__id",
            "in": "query",
            "name": "user_offer__id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by user_offer__name",
            "in": "query",
            "name": "user_offer__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by user_offer__reference",
            "in": "query",
            "name": "user_offer__reference",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/CashbackConsumer"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK",
            "links": {
              "get.CashbackResource": {
                "operationId": "get.CashbackResource.impersonate",
                "parameters": {
                  "cashback_id": "$response.body#/items/0/id",
                  "consumer_id": "$request.path.consumer_id"
                }
              },
              "get.RewardsCashbackResource": {
                "operationId": "get.RewardsCashbackResource.impersonate",
                "parameters": {
                  "cashback_id": "$response.body#/items/0/id",
                  "consumer_id": "$request.path.consumer_id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Cashbacks",
        "tags": [
          "Reward"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/cashbacks/{cashback_id}": {
      "get": {
        "description": "Returns this specific cashback details.\n",
        "operationId": "get.CashbackResource.impersonate",
        "parameters": [
          {
            "description": "Unique ID of the cashback reward.",
            "in": "path",
            "name": "cashback_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CashbackConsumer"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Retrieves a cashback.",
        "tags": [
          "Reward"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/connections-statuses": {
      "get": {
        "description": "Retrieves all bank synchronization statuses for all consumers of your program:\n- UNKNOWN: The status is unknown, most of the time because the consumer hasn't synced his/her account yet.\n- DISABLED: The synchronization has been disabled for this connection.\n- ERROR: Synchronization error (bad credentials and/or consumer has an action to make on his/her bank website side).\n- CHALLENGE_REQUIRED: Consumer has to input a special code sent by his/her bank to acknowledge the synchronization.\n- SCRAPPING: The consumer's bank account is being synchronized.\n- SUCCESS: The consumer's bank account synchronization succeeded.\n- SCA_REQUIRED: A complete SCA process must be performed by updating the connection.\n- SCA_REQUIRED_AND_OTP: A complete SCA process must be performed by updating the connection.\n- WEBAUTH_REQUIRED: A complete authentication process is required by updating the connection via redirect.\n- WRONG_PASS: The consumer has to input their credentials because they are invalid or obsolete.\n- ACTION_NEEDED: The consumer has to perform a special action in their bank website. More details are available in \"error_message\".\n",
        "operationId": "get.ConnectionStatusListing.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by last_successful_sync",
            "in": "query",
            "name": "last_successful_sync",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "status",
                "last_successful_sync",
                "-status",
                "-last_successful_sync"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "UNKNOWN",
                "DISABLED",
                "ERROR",
                "CHALLENGE_REQUIRED",
                "SCRAPPING",
                "SUCCESS",
                "SCA_REQUIRED",
                "WEBAUTH_REQUIRED",
                "WRONG_PASS",
                "ACTION_NEEDED",
                "WAITING_FOR_VALIDATION"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/BankConnectionEnrollment"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Bank Synchronization Statuses",
        "tags": [
          "Bank Synchronization"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/deactivate": {
      "post": {
        "description": "\nDeactivates a specific consumer from your program.\n\nDeactivation deletes everything about this consumer, excepted the cashbacked transactions\n(that remains anonymous, but that we need to keep for audit purposes).\n\nThis action is definitive.\n",
        "operationId": "post.DeactivateResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessError"
                }
              }
            },
            "description": "Conflict"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Deactivate a consumer",
        "tags": [
          "User"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/kyc": {
      "post": {
        "description": "Registers this consumer on our PSP with the different information needed for the light\nverification.\n",
        "operationId": "post.KYCListResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PspNaturalUser"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PspNaturalUser"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessError"
                }
              }
            },
            "description": "Conflict"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Creation of KYC",
        "tags": [
          "Kycs"
        ]
      },
      "put": {
        "description": "Edits the consumer declarative information on our PSP side.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PspNaturalUser"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PspNaturalUser"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Edition of KYC",
        "tags": [
          "Kycs"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/metrics": {
      "get": {
        "description": "This route allows you to get the cashbacks of a specific consumer, ventilated per status.\nCashback statuses are:\n- PENDING: The cashback has been generated but is not yet validated (PENDING_VALIDATION). total_pending_cashback_amount\n- VALIDATED: A cashback that has passed the validation period (e.g. 14 days of retraction for a classical purchase). The cashback can't be cancelled when validated total_validated_cashback_amount.\n- PAID_IN: The cashback money has been collected from the merchant, but not yet transfered (paid out) to the consumer. total_paid_in_cashback_amount\n- PAID_OUT: The cashback money has been transfered to the consumer pay out account. total_paid_out_cashback_amount\n- CANCELLED: The cashback has been cancelled. total_cancelled_cashback_amount\nWe also return the total number of cashbacks since user acceptance of the terms of services and the total amount of cashbacks, whatever the status.\nDo not compute cancelled cashbacks in total amount and total cashbacks.\nThis is especially useful for programs with pool, enabling to show how much money has been collected so far, but not yet transferred to the consumer.\n",
        "operationId": "get.Global.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Metrics"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Metrics Global",
        "tags": [
          "Metrics"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/metrics/by_month": {
      "get": {
        "description": "This route allows you to get the cashbacks of a specific consumer, ventilated per status and per month.\nCashback Status are :\n- PENDING Cashback has been generated, but is not yet validated (PENDING_VALIDATION) total_pending_cashback_amount\n- VALIDATED A cashback that has passed the validation period (e.g. 14 days of retraction for a classical purchase). The cashback can't be cancelled when validated total_validated_cashback_amount\n- PAID_IN Cashback money has been collected from the merchant, but not yet transfered (paid out) to the consumer. total_paid_in_cashback_amount\n- PAID_OUT Cashback money has been transfered to the consumer pay out account. total_paid_out_cashback_amount\n- CANCELLED The cashback has been cancelled. total_cancelled_cashback_amount\nWe also return the total number of cashbacks since user acceptance of the terms of services and the total amount of cashback, whatever the status is.\nDont compute cancelled cashbacks in total amount and total cashbacks\nThis is especially useful for programs with cagnotte, allowing to show how much money have been collected so far, but not yet transferred to the consumer.\n",
        "operationId": "get.Monthly.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Metrics"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Metrics monthly",
        "tags": [
          "Metrics"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/offers": {
      "get": {
        "description": "\nGets a paginated list of all offers available for the current consumer: generic\noffers + offers where this consumer is targeted.\n\nFor all your logged consumers, you must actually use this route to retrieve\nthe best set of offers dedicated to each consumer.\n\nThis list can be filtered by offer types, start date, end date, universe, highlight\nlevel...\n\nThe list contains all the active offers (status = ACTIVE) and offers to come (status\n= PUBLISHED).\n\nThis list is sorted by default using the conversion probability computed by our internal smart ranking engine.\n\nPagination of 20 items by default.\n",
        "operationId": "get.OfferListResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Offer availability: **ONLINE** if the offer is online only. **OFFLINE** if the offer is offline only. **BOTH** if the offer is online and offline",
            "example": "ONLINE",
            "in": "query",
            "name": "application_channel",
            "schema": {
              "enum": [
                "ONLINE",
                "OFFLINE",
                "BOTH"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by brand__name\n\nName of the brand",
            "example": "MyBrand",
            "in": "query",
            "name": "brand__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by brand_id",
            "in": "query",
            "name": "brand_id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by cashback_rate\n\nRate of reward used to calculate cashback amount",
            "example": 5,
            "in": "query",
            "name": "cashback_rate",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by created_at\n\nFiltering on date of creation\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "created_at",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by end_date\n\nFiltering on end date\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "end_date",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Enum in: HIGHEST, HIGH, NORMAL. For a contextual display (banner, carousel etc...), this value is set by the program manager on each offer",
            "example": "HIGH",
            "in": "query",
            "name": "highlight_level",
            "schema": {
              "enum": [
                "HIGHEST",
                "HIGH",
                "NORMAL"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by is_consumed\n\nHas the consumer already consumed the coupon of the current offer? If true, yes. If false, no.",
            "example": true,
            "in": "query",
            "name": "is_consumed",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by is_favorite\n\nTRUE if the offer is liked by consumer, FALSE if not",
            "example": true,
            "in": "query",
            "name": "is_favorite",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by name\n\nName of the object",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Filter by publication_date\n\nFiltering on publication date\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "publication_date",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by reference\n\nUnique reference of the offer. Human readable, made out from the concatenation of the brand name + creation date + increment.",
            "example": "MYBRAND-20180220-001",
            "in": "query",
            "name": "reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "created_at",
                "start_date",
                "end_date",
                "publication_date",
                "name",
                "reference",
                "type",
                "application_channel",
                "brand__name",
                "brand_id",
                "highlight_level",
                "status",
                "source_transaction",
                "cashback_rate",
                "universe",
                "is_favorite",
                "is_consumed",
                "-created_at",
                "-start_date",
                "-end_date",
                "-publication_date",
                "-name",
                "-reference",
                "-type",
                "-application_channel",
                "-brand__name",
                "-brand_id",
                "-highlight_level",
                "-status",
                "-source_transaction",
                "-cashback_rate",
                "-universe",
                "-is_favorite",
                "-is_consumed"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by source_transaction\n\nIf this flag is true, the transaction must come from the default bank of the program to generate a reward",
            "in": "query",
            "name": "source_transaction",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by start_date\n\nFiltering on start date\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "start_date",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by type",
            "in": "query",
            "name": "type",
            "schema": {
              "enum": [
                "CASHBACK",
                "UNIQUE_COUPON",
                "GENERIC_COUPON",
                "VOUCHER",
                "AFFILIATION",
                "LBS_CASHBACK"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by universe\n\nUniverse of the brand",
            "in": "query",
            "name": "universe",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/UserOffer"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK",
            "links": {
              "get.OfferResource": {
                "operationId": "get.OfferResource.impersonate",
                "parameters": {
                  "consumer_id": "$request.path.consumer_id",
                  "offer_id": "$response.body#/items/0/id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Offers Consumer Listing",
        "tags": [
          "Offers"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/offers/{offer_id}": {
      "get": {
        "description": "Gets the offer object that has the ID attribute with the specified value.\nThis route allows you to get the details of a specific offer, from the perspective of a generic consumer.\nIf the consumer hasn't access to the offer (because the offer is deactivated or doesn't exist or is not generic i.e. is targeted), the response will be a 404 Error.\n",
        "operationId": "get.OfferResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the offer on PayLead system.",
            "in": "path",
            "name": "offer_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOffer"
                }
              }
            },
            "description": "OK",
            "links": {
              "put.OfferFavoriteResource": {
                "operationId": "put.OfferFavoriteResource.impersonate",
                "parameters": {
                  "consumer_id": "$request.path.consumer_id",
                  "offer_id": "$request.path.offer_id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Offer Details",
        "tags": [
          "Offers"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/offers/{offer_id}/consume": {
      "post": {
        "description": "\nGenerates a coupon for the consumer and decrements the total number of available coupons for this offer by 1.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the offer on PayLead system.",
            "in": "path",
            "name": "offer_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "format": "byte",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "409": {
            "description": "Conflict"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Generates Offer Coupon",
        "tags": [
          "Offers"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/offers/{offer_id}/coupons": {
      "get": {
        "description": "\nLists all coupons consumed by the given users for the current offer coupon.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the offer on PayLead system.",
            "in": "path",
            "name": "offer_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CoupongUniqueConsumerList"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets the list of consumed coupons",
        "tags": [
          "Offers"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/offers/{offer_id}/coupons/{coupon_id}": {
      "get": {
        "description": "\nRetrieves the QR/BarCode or alphanumeric code associated to the consumed coupon.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the coupon for the given offer.",
            "in": "path",
            "name": "coupon_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the offer on PayLead system.",
            "in": "path",
            "name": "offer_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK will return text or image"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Retrieves the code associated with the consumed coupon.",
        "tags": [
          "Offers"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/offers/{offer_id}/favorite": {
      "delete": {
        "description": "\nThis route allows the connector to unfavorite a specific offer for a specific\nconsumer. If the offer was not previously favorited, it has no effects.\n",
        "operationId": "delete.OfferFavoriteResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the offer on PayLead system.",
            "in": "path",
            "name": "offer_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Unfavorites an Offer",
        "tags": [
          "Offers"
        ]
      },
      "put": {
        "description": "\nThis route allows the connector to favorite a specific offer for a specific consumer.\n",
        "operationId": "put.OfferFavoriteResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the offer on PayLead system.",
            "in": "path",
            "name": "offer_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOffer"
                }
              }
            },
            "description": "OK",
            "links": {
              "delete.OfferFavoriteResource": {
                "operationId": "delete.OfferFavoriteResource.impersonate",
                "parameters": {
                  "consumer_id": "$request.path.consumer_id",
                  "offer_id": "$request.path.offer_id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Favorites an Offer",
        "tags": [
          "Offers"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/offers/{offer_id}/voucher": {
      "post": {
        "description": "\nInitiates the creation of a voucher for the requested value or price, depending on the reservation mode\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the offer on PayLead system.",
            "in": "path",
            "name": "offer_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "mode": {
                    "description": "Reservation mode used, passing by the voucher value or price",
                    "enum": [
                      "VALUE",
                      "PRICE"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "description": "The value associated to the reservation mode, price of voucher if mode is PRICE, otherwise the value",
                    "type": "number"
                  }
                },
                "required": [
                  "mode",
                  "value"
                ],
                "type": "object"
              }
            }
          },
          "description": "Voucher Reservation Schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Voucher"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "409": {
            "description": "Conflict"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Reserves a voucher on a given brand.",
        "tags": [
          "Offers"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/pfm/accounts/{account_id}": {
      "get": {
        "description": "Returns a specific account information, with balance.\n",
        "parameters": [
          {
            "description": "Unique ID of the account.",
            "in": "path",
            "name": "account_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PFMAccounts"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Get Account",
        "tags": [
          "Personal Finance Manager"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/pfm/balance/{balance_type}": {
      "get": {
        "description": "Gets aggregated positive (use balance type = gains) or negative (use balance type = expenses) transaction amount grouped by universe.\nThis route accepts same filters as transactions, allowing you to recompute expenses as you need. For instance, choosing a specific list of universes, for a specific time window, on a specific account etc...\n",
        "parameters": [
          {
            "description": "The type of balance asked.",
            "in": "path",
            "name": "balance_type",
            "required": true,
            "schema": {
              "enum": [
                "gains",
                "expenses"
              ],
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PFMUniverseBalance"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Balances by Universes",
        "tags": [
          "Personal Finance Manager"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/pfm/banks": {
      "get": {
        "description": "Returns the synchronized banks of a consumer.\n",
        "operationId": "get.PFMBanksResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PFMBankResource"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Get Bank",
        "tags": [
          "Personal Finance Manager"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/pfm/banks/{bank_id}": {
      "delete": {
        "description": "Route to delete the Consumer Bank Connection. It deletes all non-cashbacked transactions\nfrom this bank, but keep the cashbacked transactions for audit purpose. Every\nother information is deleted.\n",
        "parameters": [
          {
            "description": "Unique ID of the bank.",
            "in": "path",
            "name": "bank_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Deletes Consumer Bank Connection",
        "tags": [
          "Personal Finance Manager"
        ]
      },
      "get": {
        "description": "Returns a specific synchronized bank of a consumer\n",
        "parameters": [
          {
            "description": "Unique ID of the bank.",
            "in": "path",
            "name": "bank_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PFMBankResource"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Bank Details",
        "tags": [
          "Personal Finance Manager"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/pools/me": {
      "get": {
        "description": "\nGets the sum of all \"Paid In\" cashbacks of a given consumer. \"Paid In\" cashbacks are\ncashbacks that are already paid by the merchants. They form what we call the consumer\nPool (Cagnotte).\n\nReturns also the Program Threshold configuration:\n\nManual & Automatic Threshold\n\n0 =< C < Manual Threshold Trigger Cashback is locked in the PAID IN status, no\naction possible.\n\nManual Threshold Trigger =< C < Automatic Threshold Trigger Cashback can be manually\ntransfered by the consumer.\n\nC >= Automatic Threshold Trigger Cashback is automatically transfered by the consumer\n",
        "operationId": "get.PoolResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pool"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Pooled Cashback (Cagnotte).",
        "tags": [
          "Pools"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/pools/me/consume": {
      "put": {
        "description": "\nThis route allows the consumer to unlock his/her pool (cagnotte), and get the\nactual money paid out to his/her account. Only cashbacks with status paid in (which\nmeans actually paid by the merchant) are meant to be paid out. Manual trigger\nis only possible if the total sum of PAID IN Cashback is greater than the manual\nthreshold, defined at the Program Manager level.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pool"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Manually Trigger Pool (Cagnotte)",
        "tags": [
          "Pools"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/programs/me/privacy/{level}": {
      "get": {
        "description": "\nRetrieves the current version of the privacy policy level.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The level of privacy policy.",
            "in": "path",
            "name": "level",
            "required": true,
            "schema": {
              "enum": [
                "basic",
                "targeting",
                "statistics",
                "smart_ranking",
                "transaction_triggers"
              ],
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrivacyPolicyReadOnly"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets consumers privacy level details.",
        "tags": [
          "Policies"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/rewards": {
      "get": {
        "description": "\nReturns the list of all the rewards generated for a consumer (gifts and cashbacks).\n",
        "operationId": "get.RewardListResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by amount\n\nAmount of the transaction",
            "example": -23.68,
            "in": "query",
            "name": "amount",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by bankwire_ref",
            "in": "query",
            "name": "bankwire_ref",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by consumer\n\nConsumer",
            "in": "query",
            "name": "consumer",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by created_at\n\nFiltering on date of creation\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "created_at",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by executed_at\n\nExecution date of the transaction",
            "example": "2019-01-31T12:00:00+00:00",
            "in": "query",
            "name": "executed_at",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "amount",
                "status",
                "created_at",
                "executed_at",
                "consumer",
                "bankwire_ref",
                "type",
                "-amount",
                "-status",
                "-created_at",
                "-executed_at",
                "-consumer",
                "-bankwire_ref",
                "-type"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "CANCELLED",
                "PENDING_VALIDATION",
                "VALIDATED",
                "PAID_IN",
                "PAID_OUT",
                "ERROR"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filtering on reward type\n",
            "in": "query",
            "name": "type",
            "schema": {
              "enum": [
                "CASHBACK",
                "GIFT",
                "CASHBACK_AFFILIATION"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/Reward"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Get the list of rewards.",
        "tags": [
          "Reward"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/rewards/affiliation/cashbacks/": {
      "get": {
        "description": "Returns the list of all the affiliation rewards generated for a consumer.\n",
        "operationId": "get.AffiliationCashbackConsumerList.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by amount\n\nAmount of the transaction",
            "example": -23.68,
            "in": "query",
            "name": "amount",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by created_at\n\nFiltering on date of creation\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "created_at",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "amount",
                "status",
                "created_at",
                "user_offer__reference",
                "user_offer__id",
                "user_offer__name",
                "user_offer__brand__name",
                "-amount",
                "-status",
                "-created_at",
                "-user_offer__reference",
                "-user_offer__id",
                "-user_offer__name",
                "-user_offer__brand__name"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "CANCELLED",
                "PENDING_VALIDATION",
                "VALIDATED",
                "PAID_IN",
                "PAID_OUT",
                "ERROR"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by user_offer__brand__name",
            "in": "query",
            "name": "user_offer__brand__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by user_offer__id",
            "in": "query",
            "name": "user_offer__id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by user_offer__name",
            "in": "query",
            "name": "user_offer__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by user_offer__reference",
            "in": "query",
            "name": "user_offer__reference",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/AffiliationCashbackConsumer"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK",
            "links": {
              "get.AffiliationCashbackConsumerDetail": {
                "operationId": "get.AffiliationCashbackConsumerDetail.impersonate",
                "parameters": {
                  "cashback_id": "$response.body#/items/0/id",
                  "consumer_id": "$request.path.consumer_id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Listing of affiliation Cashback.",
        "tags": [
          "Reward"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/rewards/affiliation/cashbacks/{cashback_id}": {
      "get": {
        "description": "Returns this specific cashback details.\n",
        "operationId": "get.AffiliationCashbackConsumerDetail.impersonate",
        "parameters": [
          {
            "description": "Unique ID of the cashback reward.",
            "in": "path",
            "name": "cashback_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AffiliationCashbackConsumer"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Retrieves an affiliation cashback.",
        "tags": [
          "Reward"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/rewards/cashbacks": {
      "get": {
        "description": "\nReturns the list of all the cashbacks generated for a consumer.\n",
        "operationId": "get.RewardsCashbackListResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by amount\n\nAmount of the transaction",
            "example": -23.68,
            "in": "query",
            "name": "amount",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by created_at\n\nFiltering on date of creation\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "created_at",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by descriptor\n\nLabel of the transaction",
            "example": "MYBRAND",
            "in": "query",
            "name": "descriptor",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "amount",
                "status",
                "created_at",
                "user_offer__reference",
                "user_offer__id",
                "user_offer__name",
                "user_offer__brand__name",
                "descriptor",
                "transaction__amount",
                "transaction__score",
                "-amount",
                "-status",
                "-created_at",
                "-user_offer__reference",
                "-user_offer__id",
                "-user_offer__name",
                "-user_offer__brand__name",
                "-descriptor",
                "-transaction__amount",
                "-transaction__score"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "CANCELLED",
                "PENDING_VALIDATION",
                "VALIDATED",
                "PAID_IN",
                "PAID_OUT",
                "ERROR"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by transaction__amount",
            "in": "query",
            "name": "transaction__amount",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by transaction__score",
            "in": "query",
            "name": "transaction__score",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by user_offer__brand__name",
            "in": "query",
            "name": "user_offer__brand__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by user_offer__id",
            "in": "query",
            "name": "user_offer__id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by user_offer__name",
            "in": "query",
            "name": "user_offer__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by user_offer__reference",
            "in": "query",
            "name": "user_offer__reference",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/CashbackConsumer"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets the list of cashbacks.",
        "tags": [
          "Reward"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/rewards/cashbacks/{cashback_id}": {
      "get": {
        "description": "Returns this specific reward details.\n",
        "operationId": "get.RewardsCashbackResource.impersonate",
        "parameters": [
          {
            "description": "Unique ID of the cashback reward.",
            "in": "path",
            "name": "cashback_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CashbackConsumer"
                }
              }
            },
            "description": "OK",
            "links": {
              "get.CashbackTimelineResource": {
                "operationId": "get.CashbackTimelineResource.impersonate",
                "parameters": {
                  "consumer_id": "$request.path.consumer_id",
                  "reward_id": "$request.path.cashback_id"
                }
              },
              "get.RewardTimelineResource": {
                "operationId": "get.RewardTimelineResource.impersonate",
                "parameters": {
                  "consumer_id": "$request.path.consumer_id",
                  "reward_id": "$request.path.cashback_id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Retrieves a reward.",
        "tags": [
          "Reward"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/rewards/cashbacks/{reward_id}/timeline": {
      "get": {
        "description": "Returns this specific rewards timeline, i.e. all the different states of this\ncashback, through time.\n",
        "operationId": "get.CashbackTimelineResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the reward: can be gift or cashback.",
            "in": "path",
            "name": "reward_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "statuses": {
                      "items": {
                        "properties": {
                          "comment": {
                            "type": "string"
                          },
                          "created_at": {
                            "format": "datetime",
                            "type": "string"
                          },
                          "id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          }
                        }
                      },
                      "type": "array"
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Gift reward not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Rewards cashback timeline",
        "tags": [
          "Reward"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/rewards/gifts/{gift_id}": {
      "get": {
        "description": "Returns this specific gift details.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the special gift reward.",
            "in": "path",
            "name": "gift_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GiftConsumer"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Retrieves a gift.",
        "tags": [
          "Reward"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/rewards/gifts/{reward_id}/timeline": {
      "get": {
        "description": "Returns this specific gift's timeline, i.e. all the different states of this\ngift, through time.\n",
        "operationId": "get.RewardTimelineResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the reward: can be gift or cashback.",
            "in": "path",
            "name": "reward_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "statuses": {
                      "items": {
                        "properties": {
                          "comment": {
                            "type": "string"
                          },
                          "created_at": {
                            "format": "datetime",
                            "type": "string"
                          },
                          "id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          }
                        }
                      },
                      "type": "array"
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Gift reward not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Rewards gift timeline",
        "tags": [
          "Reward"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/universes/offers": {
      "get": {
        "description": "Returns the amount of generic offers per status and per universe.",
        "operationId": "get.AggregatedUniverseList.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "properties": {
                      "children": {
                        "items": {
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "id": {
                        "format": "uuid",
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "offers": {
                        "properties": {
                          "active": {
                            "type": "number"
                          },
                          "published": {
                            "type": "number"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Gets the Amount of Offer Per Universe.",
        "tags": [
          "Offers"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/users/me/consent/{level}": {
      "delete": {
        "description": "Removes privacy policy consent.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The level of privacy policy.",
            "in": "path",
            "name": "level",
            "required": true,
            "schema": {
              "enum": [
                "basic",
                "targeting",
                "statistics",
                "smart_ranking",
                "transaction_triggers"
              ],
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Delete consumers privacy level.",
        "tags": [
          "Policies"
        ]
      },
      "post": {
        "description": "\nConsents to the given privacy policy level.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The level of privacy policy.",
            "in": "path",
            "name": "level",
            "required": true,
            "schema": {
              "enum": [
                "basic",
                "targeting",
                "statistics",
                "smart_ranking",
                "transaction_triggers"
              ],
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            },
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessError"
                }
              }
            },
            "description": "Conflict"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Accepts consumers privacy level.",
        "tags": [
          "Policies"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/vouchers": {
      "get": {
        "description": "Retrieves the lists of vouchers for a given consumer.",
        "operationId": "get.VoucherModelListResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "status",
                "-status"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "RESERVED",
                "CANCELLED",
                "CONFIRMED",
                "READY",
                "REFUNDING",
                "REFUNDED",
                "REFUND_REJECTED"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/VoucherBrandConsumer"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK",
            "links": {
              "get.VoucherModelResource": {
                "operationId": "get.VoucherModelResource.impersonate",
                "parameters": {
                  "consumer_id": "$request.path.consumer_id",
                  "voucher_id": "$response.body#/items/0/id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Retrieves the lists of vouchers for a given consumer.",
        "tags": [
          "Voucher"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/vouchers/{voucher_id}": {
      "get": {
        "description": "Retrieves the details of a voucher for a given consumer.",
        "operationId": "get.VoucherModelResource.impersonate",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the voucher on PayLead.",
            "in": "path",
            "name": "voucher_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoucherBrandConsumer"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Retrieves the details of a voucher for a given consumer.",
        "tags": [
          "Voucher"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/vouchers/{voucher_id}/cancel": {
      "delete": {
        "description": "Cancels a previously reserved voucher.",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the voucher on PayLead.",
            "in": "path",
            "name": "voucher_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Voucher"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Cancels a previously reserved voucher.",
        "tags": [
          "Voucher"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/vouchers/{voucher_id}/confirmation": {
      "put": {
        "description": "\nConfirms a voucher previously reserved.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the voucher on PayLead.",
            "in": "path",
            "name": "voucher_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Voucher"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Confirms a voucher previously reserved.",
        "tags": [
          "Voucher"
        ]
      }
    },
    "/connectors/consumers/{consumer_id}/vouchers/{voucher_id}/download": {
      "get": {
        "description": "Downloads the voucher as a file.",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique ID of the voucher on PayLead.",
            "in": "path",
            "name": "voucher_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Downloads the voucher as a file.",
        "tags": [
          "Voucher"
        ]
      }
    },
    "/connectors/stores": {
      "get": {
        "description": "This route returns a paginated list of stores.\nWe return a list of stores, and in each store we embed the list of related offers, whatever the type and/or cashback rate.\n",
        "parameters": [
          {
            "description": "Filter by store with active offer (accessible only for connector or consumer)",
            "in": "query",
            "name": "active_offer",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by address\n\nAddress of the Store",
            "example": "55 rue des moulins",
            "in": "query",
            "name": "address",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by brand\n\nThe brand that is being promoted by the offer. Can be different from the Merchant (ex. Monoprix merchant can issue offers on Naturalia brand)",
            "in": "query",
            "name": "brand",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by brand__name\n\nName of the brand",
            "example": "MyBrand",
            "in": "query",
            "name": "brand__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by brand__universe",
            "in": "query",
            "name": "brand__universe",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by city\n\nCity of the store",
            "example": "Paris",
            "in": "query",
            "name": "city",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by maximum distance (in meters)",
            "in": "query",
            "name": "distance",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by is_online\n\nTRUE if the store is online (no address, no geolocation, url); FALSE if the store is physical",
            "example": true,
            "in": "query",
            "name": "is_online",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by merchant\n\nMerchant that has created the offer",
            "in": "query",
            "name": "merchant",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by name\n\nName of the object",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by offer\n\noffer",
            "in": "query",
            "name": "offer",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Filter by siret\n\nSIRET of the current Store. Siret is a 14-digit business identification number managed by INSEE. The Siret consists of the Siren number of 9 digits which identifies the company, a 4-digit number to identify the establishment and 1 digit forming a control key to verify Luhn's algorithm",
            "example": 81968937300010,
            "in": "query",
            "name": "siret",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "name",
                "brand",
                "brand__name",
                "brand__universe",
                "siret",
                "address",
                "zip_code",
                "city",
                "merchant",
                "is_online",
                "offer",
                "-name",
                "-brand",
                "-brand__name",
                "-brand__universe",
                "-siret",
                "-address",
                "-zip_code",
                "-city",
                "-merchant",
                "-is_online",
                "-offer"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by zip_code\n\nZip code of the store",
            "example": 84120,
            "in": "query",
            "name": "zip_code",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/Store"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK",
            "links": {
              "get.ConnectorStoreResource": {
                "operationId": "get.ConnectorStoreResource",
                "parameters": {
                  "store_id": "$response.body#/items/0/id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Get Stores List.",
        "tags": [
          "Store"
        ]
      }
    },
    "/connectors/stores/{store_id}": {
      "get": {
        "description": "This route returns the details of a given store, embedding the best generic offer, if any.\n",
        "operationId": "get.ConnectorStoreResource",
        "parameters": [
          {
            "description": "Unique ID of the store on PayLead system.",
            "in": "path",
            "name": "store_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Store"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Store Detail.",
        "tags": [
          "Store"
        ]
      }
    },
    "/consumers/{consumer_id}/segments/{segment_id}": {
      "delete": {
        "description": "\nRemoves a consumer from a segment\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The slug representation of the segment",
            "in": "path",
            "name": "segment_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Removes from segment.",
        "tags": [
          "Segment"
        ]
      },
      "post": {
        "description": "Assigns a consumer to a segment. To create new segments, contact PayLead support. \\nA segment is an attribute, e.g. \\\"premium customers\\\", allowing\n you to create specific offers for specific group of customers.\n",
        "parameters": [
          {
            "description": "The id you used to create the given consumer",
            "in": "path",
            "name": "consumer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unique reference of the segment",
            "in": "path",
            "name": "segment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsumerSegmentation"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "409": {
            "description": "Conflict"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Adds to segment.",
        "tags": [
          "Segment"
        ]
      }
    },
    "/files/{media_id}": {
      "get": {
        "description": "\nRetrieves the URL to download a file.\n",
        "parameters": [
          {
            "description": "Unique ID of the media on PayLead system.",
            "in": "path",
            "name": "media_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/csv": {
                "example": "Media",
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Download File",
        "tags": [
          "Files"
        ]
      }
    },
    "/files/{media_id}/preview": {
      "get": {
        "description": "\nRetrieves the URL to preview a file.\n",
        "parameters": [
          {
            "description": "Unique ID of the media on PayLead system.",
            "in": "path",
            "name": "media_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Media"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Preview File",
        "tags": [
          "Files"
        ]
      }
    },
    "/offers": {
      "get": {
        "description": "\nGets a paginated list of all offers available for the current consumer: generic\noffers + offers where this consumer is targeted.\n\nFor all your logged consumers, you must actually use this route to retrieve\nthe best set of offers dedicated to each consumer.\n\nThis list can be filtered by offer types, start date, end date, universe, highlight\nlevel...\n\nThe list contains all the active offers (status = ACTIVE) and offers to come (status\n= PUBLISHED).\n\nThis list is sorted by default using the conversion probability computed by our internal smart ranking engine.\n\nPagination of 20 items by default.\n",
        "parameters": [
          {
            "description": "Offer availability: **ONLINE** if the offer is online only. **OFFLINE** if the offer is offline only. **BOTH** if the offer is online and offline",
            "example": "ONLINE",
            "in": "query",
            "name": "application_channel",
            "schema": {
              "enum": [
                "ONLINE",
                "OFFLINE",
                "BOTH"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by brand__name\n\nName of the brand",
            "example": "MyBrand",
            "in": "query",
            "name": "brand__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by brand_id",
            "in": "query",
            "name": "brand_id",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by cashback_rate\n\nRate of reward used to calculate cashback amount",
            "example": 5,
            "in": "query",
            "name": "cashback_rate",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by created_at\n\nFiltering on date of creation\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "created_at",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by end_date\n\nFiltering on end date\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "end_date",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Enum in: HIGHEST, HIGH, NORMAL. For a contextual display (banner, carousel etc...), this value is set by the program manager on each offer",
            "example": "HIGH",
            "in": "query",
            "name": "highlight_level",
            "schema": {
              "enum": [
                "HIGHEST",
                "HIGH",
                "NORMAL"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by name\n\nName of the object",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Filter by publication_date\n\nFiltering on publication date\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "publication_date",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by reference\n\nUnique reference of the offer. Human readable, made out from the concatenation of the brand name + creation date + increment.",
            "example": "MYBRAND-20180220-001",
            "in": "query",
            "name": "reference",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "created_at",
                "start_date",
                "end_date",
                "publication_date",
                "name",
                "reference",
                "type",
                "application_channel",
                "brand__name",
                "brand_id",
                "highlight_level",
                "status",
                "source_transaction",
                "cashback_rate",
                "universe",
                "-created_at",
                "-start_date",
                "-end_date",
                "-publication_date",
                "-name",
                "-reference",
                "-type",
                "-application_channel",
                "-brand__name",
                "-brand_id",
                "-highlight_level",
                "-status",
                "-source_transaction",
                "-cashback_rate",
                "-universe"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by source_transaction\n\nIf this flag is true, the transaction must come from the default bank of the program to generate a reward",
            "in": "query",
            "name": "source_transaction",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by start_date\n\nFiltering on start date\nbetween <from>--<too>\nafter   <from>--\nbefore  --<to>\n",
            "examples": {
              "between": {
                "summary": "between 2020-05-25 and 2021-01-13",
                "value": "2020-05-25--2021-01-13"
              },
              "older": {
                "summary": "before 2021-05-25",
                "value": "--2021-05-25"
              }
            },
            "in": "query",
            "name": "start_date",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by type",
            "in": "query",
            "name": "type",
            "schema": {
              "enum": [
                "CASHBACK",
                "UNIQUE_COUPON",
                "GENERIC_COUPON",
                "VOUCHER",
                "AFFILIATION",
                "LBS_CASHBACK"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by universe\n\nUniverse of the brand",
            "in": "query",
            "name": "universe",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/UserOffer"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Offers Consumer Listing",
        "tags": [
          "Offers"
        ]
      }
    },
    "/offers/{offer_id}": {
      "get": {
        "description": "Gets the offer object that has the ID attribute with the specified value.\nThis route allows you to get the details of a specific offer, from the perspective of a generic consumer.\nIf the consumer hasn't access to the offer (because the offer is deactivated or doesn't exist or is not generic i.e. is targeted), the response will be a 404 Error.\n",
        "parameters": [
          {
            "description": "Unique ID of the offer on PayLead system.",
            "in": "path",
            "name": "offer_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOffer"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Offer Details",
        "tags": [
          "Offers"
        ]
      }
    },
    "/programs/me/privacy/{level}": {
      "get": {
        "description": "\nRetrieves the current version of the privacy policy level.\n",
        "parameters": [
          {
            "description": "The level of privacy policy.",
            "in": "path",
            "name": "level",
            "required": true,
            "schema": {
              "enum": [
                "basic",
                "targeting",
                "statistics",
                "smart_ranking",
                "transaction_triggers"
              ],
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrivacyPolicyReadOnly"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets consumers privacy level details.",
        "tags": [
          "Policies"
        ]
      }
    },
    "/stores": {
      "get": {
        "description": "\nThis route returns a paginated list of stores\nWe return a list of stores, and in each store we embed the list of related offers, whatever the type and/or cashback rate.\n",
        "parameters": [
          {
            "description": "Filter by store with active offer (accessible only for connector or consumer)",
            "in": "query",
            "name": "active_offer",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by address\n\nAddress of the Store",
            "example": "55 rue des moulins",
            "in": "query",
            "name": "address",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by brand\n\nThe brand that is being promoted by the offer. Can be different from the Merchant (ex. Monoprix merchant can issue offers on Naturalia brand)",
            "in": "query",
            "name": "brand",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by brand__name\n\nName of the brand",
            "example": "MyBrand",
            "in": "query",
            "name": "brand__name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by brand__universe",
            "in": "query",
            "name": "brand__universe",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by city\n\nCity of the store",
            "example": "Paris",
            "in": "query",
            "name": "city",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by maximum distance (in meters)",
            "in": "query",
            "name": "distance",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by is_online\n\nTRUE if the store is online (no address, no geolocation, url); FALSE if the store is physical",
            "example": true,
            "in": "query",
            "name": "is_online",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by merchant\n\nMerchant that has created the offer",
            "in": "query",
            "name": "merchant",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter by name\n\nName of the object",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by offer\n\noffer",
            "in": "query",
            "name": "offer",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "the page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "the number of elements per page",
            "in": "query",
            "name": "per_page",
            "required": false,
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Filter by siret\n\nSIRET of the current Store. Siret is a 14-digit business identification number managed by INSEE. The Siret consists of the Siren number of 9 digits which identifies the company, a 4-digit number to identify the establishment and 1 digit forming a control key to verify Luhn's algorithm",
            "example": 81968937300010,
            "in": "query",
            "name": "siret",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort by given attribute",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "name",
                "brand",
                "brand__name",
                "brand__universe",
                "siret",
                "address",
                "zip_code",
                "city",
                "merchant",
                "is_online",
                "offer",
                "-name",
                "-brand",
                "-brand__name",
                "-brand__universe",
                "-siret",
                "-address",
                "-zip_code",
                "-city",
                "-merchant",
                "-is_online",
                "-offer"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by zip_code\n\nZip code of the store",
            "example": 84120,
            "in": "query",
            "name": "zip_code",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "$ref": "#/components/schemas/Store"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "OK",
            "links": {
              "get.StoreResource": {
                "operationId": "get.StoreResource",
                "parameters": {
                  "store_id": "$response.body#/items/0/id"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Gets Store List.",
        "tags": [
          "Store"
        ]
      }
    },
    "/stores/{store_id}": {
      "get": {
        "description": "\nThis route returns the details of a given store, embedding the best generic offer,\nif any.\n",
        "operationId": "get.StoreResource",
        "parameters": [
          {
            "description": "Unique ID of the store on PayLead system.",
            "in": "path",
            "name": "store_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Store"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Get Store Detail",
        "tags": [
          "Store"
        ]
      }
    },
    "/universes": {
      "get": {
        "description": "Returns the list of all PayLead Merchant universes.\nThis list contains nested universes, e.g. \"Alimentation\", which cointains \"Supermarché\", \"Boucher/Poissonnier\", \"Boulanger\" etc...\nEach universe has a unique UUID, and this UUID should be used for calling the API when filtering or querying on specific universes.\n",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ConsumerUniverseWithLogo"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not allowed to access the resource"
          },
          "404": {
            "description": "Not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "422": {
            "description": "Unprocessable Entity"
          }
        },
        "summary": "Get Universes",
        "tags": [
          "Universe"
        ]
      }
    },
    "/universes/offers": {
      "get": {
        "description": "Returns the amount of generic offers per status and per universe.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "properties": {
                      "children": {
                        "items": {
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "id": {
                        "format": "uuid",
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "offers": {
                        "properties": {
                          "active": {
                            "type": "number"
                          },
                          "published": {
                            "type": "number"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Gets the Amount of Offer Per Universe.",
        "tags": [
          "Offers"
        ]
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "servers": [
    {
      "url": "https://api.sandbox.paylead.tech"
    }
  ]
}