{
  "x-generator": "NSwag v14.0.8.0 (NJsonSchema v11.0.1.0 (Newtonsoft.Json v13.0.0.0))",
  "openapi": "3.0.0",
  "info": {
    "title": "BonifiQ Public APIs",
    "description": "# Introduction \nThis is the BonifiQ Public APIs documentation. With these endpoints you can interact with BonifiQ systems and enhance your program points.\n\nThese Public endpoints are intended to be used in a frontend, browser-based enviroment such as with jQuery, React, Vue, etc\n\n# Limitations\nThese Public endpoints are very limited, as they are not as much secure as the [Private APIs](https://api.bonifiq.com.br/apidocs/private).\n\nPrivate informations such as e-mails, document number, phones, program points usage, etc are very limited as responses from this APIs. \n\nIf your requirement is in a more broad scenario, requiring more security or access to more information please use our [Private APIs](https://api.bonifiq.com.br/apidocs/private)\n\n# Authentication\nTo make a call from this APIs you need an API Token. This Token can be generated in BonifiQ admin panel, at the API Keys menu.\n\nAfter generating this API Token, you need to pass it from the X-BQ-ApiToken http header for every request. \n\nAs an example, for using it with a Java Script ```fetch``` call you would do:\n```\nfetch('https://api.bonifiq.com.br/v1/pub/customer/1/points', {\n\t\tmethod: 'GET',\n\t\theaders: {\n\t\t\t'X-BQ-APITOKEN': 'YOUR_API_TOKEN'\n\t\t},\n\t}).then(response => response.json()).then(response => console.log(response))\n```\n\n# How to use this page\n## Making calls\nYou can simulate, test and make calls to API from this Swagger page. To do that:\n- Click on the **Authorize** button\n- Inform the API Token and click on **Authorize**\n- From the list bellow, choose an API call and click on **Try it out**\n- Inform the required parameters (if any) and click on **Execute**\n\n## Verifying requests and responses bodies\nIn every API Call there is an explanation of what each field means, theirs types and accepted values for all Requests and Responses.\n\nTo view this information, just go to any API Call bellow and in the Responses section, click on the Schema.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.bonifiq.com.br",
      "description": "Production"
    },
    {
      "url": "https://backend--homolog.previewqa.bonifique.com.br",
      "description": "Sandbox"
    }
  ],
  "paths": {
    "/v1/pub/Customer/{id}/points": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Retrieve the amount of points of a given customer",
        "operationId": "Customer_Points",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Id from the client`s store",
            "schema": {
              "type": "string"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerPointsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "TokenAuthentication": []
          }
        ]
      }
    },
    "/v1/pub/Customer/{id}/tiers": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Returns the current Tier in which the customer is in.\nReturns null if no Tier is associated with the customer.",
        "operationId": "Customer_Tiers",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Id from the client`s store",
            "schema": {
              "type": "string"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerTierResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "TokenAuthentication": []
          }
        ]
      }
    },
    "/v1/pub/Customer/ForceFetch": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Fetches customer from the vendor platform using email as key",
        "operationId": "Customer_CustomerEvent",
        "requestBody": {
          "x-name": "evte",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerEventRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "TokenAuthentication": []
          }
        ]
      }
    },
    "/v1/pub/Customization": {
      "get": {
        "tags": [
          "Customization"
        ],
        "summary": "Returns the customizations as configured in the BonifiQ admin panel",
        "description": "Returns the customizations as configured in the BonifiQ admin panel\n\nThis method returns two types of rewards: Discounts (Value Discounts and Percent Discounts) or Cashback. Altough not commom, it is possible to have all types of rewards active at the same time.\n\n## Main properties\n- `ProgramName` The name of the loyalty program. This could be different from the store name. Eg: \"MyStore Rewards\"\n- `WidgetIconUrl`: The URL of the icon used as reference in the loyaty program. Used in widget an landing pages. If null, the default icon should be used\n- `HaveIconUrl`: if true the icon URL is set and should be used. If false, the default icon should be used\n- `WidgetColor`: if `HaveIconUrl` is false, this color should be used in the widget. \n- `MainColor`: the hexadecimal color used as a main theme color for the program.  \n- `Logo`: The URL of the store. This is usually used in the e-mails sent do customers.\n- `Url`: The URL of the store or loyalty landing page. It could be useful when communicating with the customer for sending him to the store.\n- `CompanyName`: Name of the store or company. Can be used in communications.\n- `CashbackName`: The user can change the name \"cashback\" to something like \"Giftback\". If null, the name was not customized and \"cashback\" should be used.\n- `CustomerMainKey`: The primary customer identification key configured for the tenant: \"email\" or \"document\". Defaults to \"email\".\n- `CashbackActive`: true when the cashback reward is active. If false, show the balance in points only.\n- `OtherRewardsActive`: true when any reward other than cashback is active. If only cashback is active, show the balance in cashback only.\n\n## Defining Loyalty Program Icon\nThe Loyalty Programa usually have an unique visual identification, as a logo or icon. This icon is used in the widget and landing pages to identify the program.\n\nIf the `WidgetIconUrl` is null them the logo is not set and a default icon should be used instead. The rule therefore should be:\n - If `HaveIconUrl` is `true` use the `WidgetIconUrl` as the icon as a link to an image\n - If `HaveIconUrl` is `false` display the default widget icon. Usually it is the `giftcard` icon from Material UI. Use [this link](https://shorturl.at/Hxd9r) for instructios on how to use it\n - If using the default icon, use `WidgetColor` to set the icon color as set in the BonifiQ admin configuration.",
        "operationId": "Customization_GetCustomization",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAPICustomizationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "TokenAuthentication": []
          }
        ]
      }
    },
    "/v1/pub/Product/points": {
      "post": {
        "tags": [
          "Product"
        ],
        "summary": "Estimates points, cashback earned and cashback usage limits per product.",
        "description": "Send an array of products with the store's external `Id` and current `Price`.\nEach item is estimated independently. Response order and repeated IDs are preserved.\n`Name` and `PriceCurrency` are optional; no currency conversion is performed.\n            \n### Cashback earned\n            \n- `Points`: estimated points after bonuses, limits and zero-point rules.\n- `Cashback`: cashback earned from those points, truncated to whole currency units.\n- `CashbackPercent`: earned percentage before monetary truncation, rounded upward to a whole percentage. Do not calculate it from `Cashback / Price`.\n            \n### Cashback you can use\n            \n- `CanUseCashback`: `false` for a restricted product; `true` for a permitted or unknown product, including when restrictions are disabled or empty.\n- `CanUseCashbackPercent`: maximum percentage of the price payable with cashback, assuming sufficient balance. Preserves the configured percentage and fractions, reduced by the monetary cap when applicable. Redemption rounding is not applied here.\n            \nA restricted product can still earn cashback. For a positive price, its `CanUseCashbackPercent` is `0`.\nWithout active cashback, all four cashback fields are `null`. For a nonpositive price, both percentage fields are `null`.\nPercentages use percentage units: `20` means **20%**.\n            \n### Example\n            \nWith no bonuses, one point per currency unit, cashback worth 0.01 per point, a 20% usage limit and no monetary cap:\n            \n**Request**\n            \n```json\n[{\"Id\":\"4571633770876\",\"Price\":2999.99}]\n```\n            \n**Product estimate**\n            \n```json\n{\n  \"Id\": \"4571633770876\",\n  \"Points\": 2999,\n  \"Cashback\": 29,\n  \"CashbackPercent\": 1,\n  \"CanUseCashback\": true,\n  \"CanUseCashbackPercent\": 20\n}\n```\n            \nFor a price of 200, a 30% usage limit and a monetary cap of 40, `CanUseCashbackPercent` is **20%**.\n            \n### Cart restrictions\n            \nMinimum purchase requirements are ignored here and checked on the cart.\nThe monetary cap applies to the **whole order**: do not sum product estimates to authorize redemption.\nActual use also depends on the customer's balance and monetary rounding at redemption.",
        "operationId": "Product_Points",
        "requestBody": {
          "x-name": "request",
          "description": "Array of products with external Id and Price; Name and PriceCurrency are optional.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductPointRequest"
                }
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Product estimates in the same order as the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseOfListOfProductPointResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "TokenAuthentication": []
          }
        ]
      }
    },
    "/v1/pub/Product/pointslist": {
      "post": {
        "tags": [
          "Product"
        ],
        "summary": "Estimates points, cashback earned and cashback usage limits per product.",
        "description": "Send an array of products with the store's external `Id` and current `Price`.\nEach item is estimated independently. Response order and repeated IDs are preserved.\n`Name` and `PriceCurrency` are optional; no currency conversion is performed.\n            \n### Cashback earned\n            \n- `Points`: estimated points after bonuses, limits and zero-point rules.\n- `Cashback`: cashback earned from those points, truncated to whole currency units.\n- `CashbackPercent`: earned percentage before monetary truncation, rounded upward to a whole percentage. Do not calculate it from `Cashback / Price`.\n            \n### Cashback you can use\n            \n- `CanUseCashback`: `false` for a restricted product; `true` for a permitted or unknown product, including when restrictions are disabled or empty.\n- `CanUseCashbackPercent`: maximum percentage of the price payable with cashback, assuming sufficient balance. Preserves the configured percentage and fractions, reduced by the monetary cap when applicable. Redemption rounding is not applied here.\n            \nA restricted product can still earn cashback. For a positive price, its `CanUseCashbackPercent` is `0`.\nWithout active cashback, all four cashback fields are `null`. For a nonpositive price, both percentage fields are `null`.\nPercentages use percentage units: `20` means **20%**.\n            \n### Example\n            \nWith no bonuses, one point per currency unit, cashback worth 0.01 per point, a 20% usage limit and no monetary cap:\n            \n**Request**\n            \n```json\n[{\"Id\":\"4571633770876\",\"Price\":2999.99}]\n```\n            \n**Product estimate**\n            \n```json\n{\n  \"Id\": \"4571633770876\",\n  \"Points\": 2999,\n  \"Cashback\": 29,\n  \"CashbackPercent\": 1,\n  \"CanUseCashback\": true,\n  \"CanUseCashbackPercent\": 20\n}\n```\n            \nFor a price of 200, a 30% usage limit and a monetary cap of 40, `CanUseCashbackPercent` is **20%**.\n            \n### Cart restrictions\n            \nMinimum purchase requirements are ignored here and checked on the cart.\nThe monetary cap applies to the **whole order**: do not sum product estimates to authorize redemption.\nActual use also depends on the customer's balance and monetary rounding at redemption.",
        "operationId": "Product_PointsList",
        "requestBody": {
          "x-name": "request",
          "description": "Array of products with external Id and Price; Name and PriceCurrency are optional.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductPointRequest"
                }
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Product estimates in the same order as the request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductPointResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "TokenAuthentication": []
          }
        ]
      }
    },
    "/v1/pub/Tiers": {
      "get": {
        "tags": [
          "Tiers"
        ],
        "summary": "Retrieves all available tiers in the loyalty program.",
        "operationId": "Tiers_Tiers",
        "responses": {
          "200": {
            "description": "A collection of all tiers.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalApiTierResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "TokenAuthentication": []
          }
        ]
      }
    },
    "/v1/pub/Tiers/{tierId}": {
      "get": {
        "tags": [
          "Tiers"
        ],
        "summary": "Retrieves a specific tier by its identifier.",
        "operationId": "Tiers_GetTier",
        "parameters": [
          {
            "name": "tierId",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the tier.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the requested tier.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalApiTierResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "TokenAuthentication": []
          }
        ]
      }
    },
    "/v1/pub/Tiers/{tierId}/targets": {
      "get": {
        "tags": [
          "Tiers"
        ],
        "summary": "Retrieves all targets associated with a specific tier.",
        "operationId": "Tiers_Targets",
        "parameters": [
          {
            "name": "tierId",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the tier.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of targets for the tier.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalApiTierTargetResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "TokenAuthentication": []
          }
        ]
      }
    },
    "/v1/pub/Tiers/{tierId}/benefits": {
      "get": {
        "tags": [
          "Tiers"
        ],
        "summary": "Retrieves all benefits associated with a specific tier.",
        "operationId": "Tiers_Benefits",
        "parameters": [
          {
            "name": "tierId",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the tier.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of benefits for the tier.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalApiTierBenefitResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "TokenAuthentication": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ListResultOfRouteModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteModel"
            }
          },
          "Success": {
            "type": "boolean"
          }
        }
      },
      "RouteModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Template": {
            "type": "string"
          }
        }
      },
      "ApiNuvemshopCheckoutDiscount": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "cart_id": {
            "type": "string"
          }
        }
      },
      "ApiFileImportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Success": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "BaseApiListResultOfApiAdvancedRuleProductImportFile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiAdvancedRuleProductImportFile"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiAdvancedRuleProductImportFile": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "AdvancedRuleId": {
                "type": "integer",
                "format": "int32"
              },
              "FileName": {
                "type": "string"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "RowsCount": {
                "type": "integer",
                "format": "int32"
              },
              "ProcessedRows": {
                "type": "integer",
                "format": "int32"
              },
              "ErrorRows": {
                "type": "integer",
                "format": "int32"
              },
              "IsProcessed": {
                "type": "boolean"
              },
              "IsCanceled": {
                "type": "boolean"
              },
              "CanceledAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "HasErrors": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "BaseApiEntity": {
        "type": "object",
        "x-abstract": true,
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BaseApiFilter": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "Includes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "OrderByClauses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderByClause"
            }
          },
          "SkipDefaultOrdering": {
            "type": "boolean",
            "description": "Omits default ordering for first-page lookups; explicit ordering and later pages remain ordered."
          },
          "TenantId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "RequesterEmail": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "OrderByClause": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "FieldName": {
            "type": "string"
          },
          "Direction": {
            "$ref": "#/components/schemas/OrderByClauseDirection"
          }
        }
      },
      "OrderByClauseDirection": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Ascending",
          "Descending"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ApiAffiliate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "deprecated": true,
            "x-deprecatedMessage": "Use AffiliateClient instead. Kept only for legacy compatibility.",
            "additionalProperties": false,
            "properties": {
              "CustomerId": {
                "type": "integer",
                "format": "int32"
              },
              "IsActive": {
                "type": "boolean"
              },
              "AffiliateCoupon": {
                "type": "string",
                "nullable": true
              },
              "LastUpdated": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "CouponHistories": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiAffiliateCouponHistory"
                }
              }
            }
          }
        ]
      },
      "ApiAffiliateCouponHistory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "deprecated": true,
            "x-deprecatedMessage": "Use AffiliateClient instead. Kept only for legacy compatibility.",
            "additionalProperties": false,
            "properties": {
              "AffiliateId": {
                "type": "integer",
                "format": "int32"
              },
              "Coupon": {
                "type": "string"
              },
              "AssociatedDate": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "ApiResponseOfApiAffiliate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiAffiliate"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "ErrorMessages": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ErrorMessage": {
            "type": "string"
          },
          "ErrorDescriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiResponseError"
            }
          }
        }
      },
      "ApiResponseError": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Description": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiResponseErrorDescription"
              }
            ]
          },
          "Field": {
            "type": "string",
            "nullable": true
          },
          "FieldText": {
            "type": "string"
          }
        }
      },
      "ApiResponseErrorDescription": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Campaign_InvalidDateRange",
          "Campaign_Conflict",
          "ReactivationCampaign_RoundUpPointsRequired",
          "ReactivationCampaign_LastPurchaseDateRequired",
          "ReactivationCampaign_LastPurchaseDateFuture",
          "ReactivationCampaign_ActiveCampaignConflict",
          "Reward_PointsShouldBePositive",
          "Reward_ValueShouldBePositive",
          "Reward_ValueShouldBe100PercentMax",
          "Reward_ValueShouldBe999ValueMax",
          "Reward_PointsShouldBe9999ValueMax",
          "General_FieldCannotBeNullOrBlank",
          "General_FieldCannotBeDefault",
          "General_BiggerThanZero",
          "Genaral_LengthLimitExceeded",
          "Order_OrderCompletedNeddCompletedDate",
          "Order_OrderCompletedDateMustBeAfterPlacementDate",
          "Order_CompletedOrderCannotBeCancelled",
          "Order_CancelledOrderRequiresCancellationDate",
          "Order_OrderCancellationDateBeforePlacementDate",
          "Points_PointsCannotBeZero",
          "FileUpload_NoFileReceived",
          "FileUpload_MoreThanOneFileReceived",
          "Objective_AmountOfPointsCannotBeLessThanOne",
          "Objective_DiscountValueCannotBeLessThanOne",
          "Objective_OrderMinimumValueCannotBeLessThanZero",
          "Objective_DaysToWaitToGrantPointsCannotBeLessThanZero",
          "Objective_CanceledStatusListMustHaveAValue",
          "Objective_CompletedStatusListMustHaveAValue",
          "FileUpload_InvalidFormat",
          "Objective_SignupStartDateMustHaveAValidValue",
          "FileUpload_FileTooLarge",
          "FileUpload_InvalidDimensions",
          "Account_UserAlreadyExists",
          "DaysToWaitToGrantPointsInvalidValue",
          "OrderMinimumValueInvalidValue",
          "ChangeActiveUser_UniqueAdmin",
          "ApiOrder_OrderIsCancelled",
          "PublicApiProductService_ObjectiveDisabled",
          "PublicApiProductService_ErrorCalculatingPoints",
          "ApiExternalOrder_Cant_Insert_Update",
          "ApiExternalOrder_Order_Not_Found",
          "ApiExternalProduct_Cant_Insert_Update",
          "ApiExternalErro_Original_Id_Cant_Be_Null",
          "ApiExternalCustomer_Cant_Insert",
          "ApiExternalCustomer_Cant_Update",
          "ApiTrustvoxKeysValidation",
          "ApiExternalRewardConfiguration_Error",
          "ApiExternalRewardConfiguration_Get_Error",
          "ApiExternal_Error_Page_Size",
          "ApiExternalRewardRedeem_Error_Customer_not_Found",
          "ApiExternalRewardRedeem_Error_Unable_to_Reedem",
          "ApiExternalObjective_not_found",
          "ApiExternalObjective_inactive",
          "ApiExternalCustomer_document_email_empty",
          "ApiExternalCustomer_documen_AlphaNumeric_only",
          "ApiExternalAffiliate_coupon_empty",
          "ApiJudgeMeAuthorizationError",
          "ApiExternalCustomObjective_max_bonification_reached",
          "ApiExternalObjective_type_incorrect",
          "ApiExternalCoupon_Customer_Not_Found",
          "ApiExternalCoupon_Cant_Update_Coupon",
          "ApiExternalCoupon_Not_found",
          "Referral_FriendAlreadyExists",
          "Customer_NotFound",
          "Tier_NotFound",
          "TierBenefit_Reward_Required",
          "ChangePoints_CannotAddPointsWithWrongOperationType",
          "ChangePoints_CannotRemovePointsWithWrongOperationType",
          "ChangePoints_CannotBeZeroPoints",
          "ChangePoints_ChangeKeyCannotBeNull",
          "ChangePoints_ChangeKeyAlreadyExists",
          "ChangePoints_ReasonCannotBeNullOrBlank",
          "ChangePoints_CustomerReasonTooLong",
          "ApiCustomer_InsertAlreadyExists",
          "ApiCustomer_ChangeCashback_Inactive",
          "ApiCustomer_RedeemCashback_Error",
          "ImportCoupons_AllCouponsAlreadyExists",
          "ApiCustomer_CannotChangeBirthday",
          "ApiRewardCancel_NotFound",
          "ApiRewardCancel_AlreadyCanceled",
          "ApiRewardCancel_InternalError",
          "ApiKonfidencyKeysValidation",
          "GenericError",
          "Account_UserWithoutLastName",
          "ApiDomain_NotFound",
          "ApiTenant_NotFound",
          "PdvUser_InvalidCredentials",
          "ApiReward_NoActiveRewards",
          "PdvReward_CustomerMismatch",
          "PdvReward_CoupomNotFound",
          "PdvReward_CoupomAlreadyUsed",
          "PdvReward_CoupomAlreadyRefunded",
          "PdvReward_RewardNotFound",
          "PdvReward_PurchaseValueInvalid",
          "PdvReward_CashbackValueInvalid",
          "PdvUser_NotFound",
          "PdvUser_NotInserted",
          "PdvOrder_WrongAmountOfPoints",
          "PdvOrder_ExcededMaxValue",
          "PdvOrder_NotEnoughPoints",
          "PdvOrder_OrderIdAlreadyExists",
          "PdvOrder_CreationError",
          "PdvOrder_CancellationError",
          "PdvOrder_NotFound",
          "PdvOrder_CustomerMismatch",
          "PdvOrder_OriginalIdUpdateError",
          "PdvBranch_NotInserted",
          "PdvBranch_OriginalIdAlreadyExists",
          "Too_Many_Requests",
          "PdvCustomer_AlreadyCompleted",
          "Quiz_QuizNotFound",
          "Quiz_MinimumAmountOfOptions",
          "Quiz_MaximumAmountOfOptions",
          "Quiz_MaximumAmountOfQuestions",
          "BillingGroupParticipants_ParticipantTenantIdIsActive",
          "BillingGroup_BillingGroupTenantIdIsActive",
          "BillingGroup_DuplicateTenantId",
          "AffiliateCouponGenericError",
          "AffiliateCouponNoExistsInPlatform",
          "AffiliateSettingsNotExist",
          "EndDate_ManageAdditionalBonuses",
          "AdditionalBonuses_ManageAdditionalBonuses",
          "Reinstall_The_App",
          "NewCustomer_EmailAlreadyUsed",
          "NewCustomer_DocumentAlreadyUsed",
          "WebhookSubscription_TopicRequired",
          "ParticipationCampaign_TotalAvailableLessThanRegistered",
          "FitnessChallenge_ActivityRequired",
          "FitnessChallenge_InvalidDateRange",
          "FitnessChallenge_RecurrenceRequired",
          "FitnessChallenge_ParticipationLimitRequired",
          "FitnessChallenge_DistanceNotSupported",
          "FitnessChallenge_DeleteHasParticipations",
          "ApiExternalOrder_Invalid_Partial_Cancel_Products",
          "CustomerNotFoundByDocument",
          "CustomerNotFoundByEmail",
          "ChangePoints_BalanceCannotBeNegative",
          "ChangePoints_BalanceCannotExceedLimit",
          "ChangePoints_CouldNotAcquireLock",
          "AdvancedRule_ActionButtonUrlInvalid",
          "AdvancedRule_InvalidPurchaseAmountRange",
          "AdvancedRule_StartDateCannotBeInThePast",
          "AdvancedRule_EndDateCannotBeInThePast",
          "AdvancedRule_AtLeastOneConditionRequired",
          "AdvancedRule_PurchaseAmountMustBePositive",
          "AdvancedRule_NotFound",
          "AdvancedRule_FeatureNotEnabled",
          "Objective_MaxCashbackPercentageLimitRequired",
          "Objective_MaxCashbackPercentageLimitInvalidValue",
          "Objective_MaxCashbackPercentageLimitBelowBase",
          "ReactivationCampaign_NeverPurchasedConflictsWithLastPurchase",
          "Objective_CustomGrantDelayRequiresPdvIntegration",
          "AccelerationCampaign_PointsAndCashbackAreMutuallyExclusive",
          "AdvancedRule_CompletedCannotBeEdited",
          "Reward_VtexCollectionSalesChannelOnlyCashback",
          "Reward_VtexCollectionSalesChannelPairsInvalid",
          "AdvancedRule_ActionButtonUrlRequired",
          "AdvancedRule_ActionButtonTextRequired",
          "CustomerSegment_TagInvalidFormat",
          "CustomerSegment_MembersRequired",
          "CustomerSegment_TagAlreadyExists",
          "CustomerSegment_FeatureNotEnabled",
          "CustomerSegment_ConcurrentUpdate",
          "CustomerSegment_NotFound",
          "CustomerSegment_MemberChangeNotQueued",
          "AdvancedRule_SegmentNotFound",
          "CustomerSegment_InUseByActiveAdvancedRules",
          "AffiliateOrderReprocess_CouponsRequired",
          "AffiliateOrderReprocess_StartDateRequired",
          "AffiliateOrderReprocess_TooManyCoupons",
          "AffiliateOrderReprocess_InvalidDateRange",
          "AdvancedRule_WithGeneratedOrdersCannotBeEdited",
          "AdvancedRule_StartDateCannotBeEditedAfterStart",
          "Objective_AmountOfPointsCannotBeNegative",
          "ParticipationCampaign_RewardValidityDaysRequired",
          "ParticipationCampaign_RewardValidityDaysMustBePositive",
          "ParticipationCampaign_RewardValidityDeadlineRequired",
          "ParticipationCampaign_RewardValidityDeadlineBeforeEndDate",
          "ParticipationCampaign_RewardValidityDaysTooLarge",
          "ParticipationCampaign_RewardValidityDeadlineTooLate",
          "ParticipationCampaign_RewardValidityTypeInvalid",
          "BillingGroup_BillingGroupTenantIdMustBeCurrentTenant",
          "AdvancedRule_ProductImportInProgress",
          "Account_UserNotFound",
          "BillingHistoryItems_InvalidRequest"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          46,
          47,
          48,
          49,
          50,
          51,
          52,
          53,
          54,
          55,
          56,
          57,
          58,
          59,
          60,
          61,
          62,
          63,
          64,
          65,
          66,
          67,
          68,
          69,
          70,
          71,
          72,
          73,
          74,
          75,
          76,
          77,
          78,
          79,
          80,
          81,
          82,
          83,
          84,
          85,
          86,
          87,
          88,
          89,
          90,
          91,
          92,
          93,
          94,
          95,
          96,
          97,
          98,
          99,
          100,
          101,
          102,
          103,
          104,
          105,
          106,
          107,
          108,
          109,
          110,
          111,
          112,
          113,
          114,
          115,
          116,
          117,
          118,
          119,
          120,
          121,
          122,
          123,
          124,
          125,
          126,
          127,
          128,
          129,
          130,
          131,
          132,
          133,
          134,
          135,
          136,
          137,
          138,
          139,
          140,
          141,
          142,
          143,
          144,
          145,
          146,
          147,
          148,
          149,
          150,
          151,
          152,
          153,
          154,
          155,
          156,
          157,
          158,
          159,
          160,
          161,
          162,
          163,
          164,
          165,
          166,
          167,
          168,
          169,
          170,
          171,
          172,
          173,
          174,
          175,
          176,
          177,
          178,
          179,
          180,
          181,
          182,
          183,
          184,
          185
        ]
      },
      "AffiliateChangePointsRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CustomerDocument": {
            "type": "string",
            "nullable": true
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "format": "decimal"
          },
          "Reason": {
            "type": "string"
          },
          "EventKey": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiAffiliateSettings": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "deprecated": true,
            "x-deprecatedMessage": "Use AffiliateClient instead. Kept only for legacy compatibility.",
            "additionalProperties": false,
            "properties": {
              "AmountOfPoints": {
                "type": "integer",
                "format": "int32"
              },
              "ValueSpendToPoint": {
                "type": "number",
                "format": "decimal"
              },
              "IsCashbackComission": {
                "type": "boolean"
              },
              "CashbackPercentage": {
                "type": "number",
                "format": "decimal"
              },
              "IsActive": {
                "type": "boolean"
              },
              "CanceledStatus": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string"
                }
              },
              "CompletedStatus": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string"
                }
              },
              "OrderPlacementDateStartDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "DaysToGrantPointsAfterCompleteOrder": {
                "type": "integer",
                "format": "int32"
              },
              "UseExpirationCouponSettings": {
                "type": "boolean"
              },
              "DaysToExpiryUnusedCoupon": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "DaysToNotifyUnusedCoupon": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "PossibleCanceledStatus": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string"
                }
              },
              "PossibleCompletedStatus": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string"
                }
              },
              "IsExclusiveStatuses": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "ApiResponseOfApiAffiliateSettings": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiAffiliateSettings"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiAgileIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AGILE_CLIENT_ID": {
            "type": "string"
          },
          "AGILE_CLIENT_SECRET": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiAgileIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiAgileIntegrationConfigModel"
              }
            ]
          }
        }
      },
      "AuditLogPagedResult": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiGenericPagedListResultOfApiAuditLogEntry"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "QuerySessionId": {
                "type": "string",
                "nullable": true
              },
              "HasNextPage": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "BaseApiGenericPagedListResultOfApiAuditLogEntry": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiAuditLogEntry"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiAuditLogEntry": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Id": {
                "type": "integer",
                "format": "int32"
              },
              "EventId": {
                "type": "string",
                "nullable": true
              },
              "TenantId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "CreatedDate": {
                "type": "string",
                "format": "date-time"
              },
              "EventType": {
                "type": "string"
              },
              "Category": {
                "type": "string"
              },
              "Widget_CustomerId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "Widget_CustomerName": {
                "type": "string",
                "nullable": true
              },
              "Widget_CustomerEmail": {
                "type": "string",
                "nullable": true
              },
              "Widget_PublicId": {
                "type": "string",
                "nullable": true
              },
              "Admin_Id": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "Admin_UserName": {
                "type": "string",
                "nullable": true
              },
              "Admin_Email": {
                "type": "string",
                "nullable": true
              },
              "PDV_UserId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "PDV_Username": {
                "type": "string",
                "nullable": true
              },
              "ExternalAPI_User": {
                "type": "string",
                "nullable": true
              },
              "ExternalAPI_Name": {
                "type": "string",
                "nullable": true
              },
              "Data": {
                "type": "string"
              }
            }
          }
        ]
      },
      "AuditLogListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "From": {
                "type": "string",
                "format": "date-time"
              },
              "To": {
                "type": "string",
                "format": "date-time"
              },
              "Category": {
                "$ref": "#/components/schemas/AuditLogCategory"
              },
              "EventType": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "UserName": {
                "type": "string",
                "nullable": true
              },
              "UserEmail": {
                "type": "string",
                "nullable": true
              },
              "CustomerName": {
                "type": "string",
                "nullable": true
              },
              "CustomerEmail": {
                "type": "string",
                "nullable": true
              },
              "PageNumber": {
                "type": "integer",
                "format": "int32"
              },
              "PageSize": {
                "type": "integer",
                "format": "int32"
              },
              "GeneralData": {
                "type": "string",
                "nullable": true
              },
              "QuerySessionId": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "AuditLogCategory": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "admin",
          "widget",
          "pdv",
          "api"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "AuditLogEventType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Admin_CustomerChangeStatus",
          "Admin_CustomerChangePoints",
          "Admin_CustomerUpdate",
          "Admin_Reward_ChangeStatus",
          "Admin_Redeem",
          "Admin_UseMasterOTP",
          "ExternalAPI_CreateCoupon",
          "ExternalAPI_InactivateCoupon",
          "ExternalAPI_ChangeCashback",
          "ExternalAPI_ChangePoints",
          "ExternalAPI_CreateCustomer",
          "ExternalAPI_RedeemCashback",
          "ExternalAPI_ReferFriend",
          "ExternalAPI_SetBirthday",
          "ExternalAPI_UpdateCustomer",
          "ExternalAPI_CancelOrder",
          "ExternalAPI_CompleteOrder",
          "ExternalAPI_CreateOrder",
          "ExternalAPI_POSAddOrder",
          "ExternalAPI_POSCancelOrder",
          "ExternalAPI_POSCancelReward",
          "ExternalAPI_POSRedeem",
          "ExternalAPI_POSSendChallenge",
          "ExternalAPI_POSValidateChallenge",
          "ExternalAPI_AddProduct",
          "ExternalAPI_UpdateProduct",
          "ExternalAPI_Redeem",
          "ExternalAPI_CancelReward",
          "ExternalAPI_UpdateMetadata",
          "PDV_CustomerInsertUpdate",
          "PDV_CancelOrder",
          "PDV_CreateOrder",
          "PDV_Redeem",
          "PDV_RedeemCancel",
          "PDV_RedeemExistant",
          "PDV_UpdateNF",
          "Master_ForgotPassword",
          "Master_ResetPassword",
          "Master_Signup",
          "Master_ValidateCode",
          "Admin_Coupon_Reverse",
          "Admin_Communication_InsertUpdate",
          "Admin_CustomerImportByEmail",
          "Admin_Email_InsertUpdate",
          "Admin_SMS_InsertUpdate",
          "Admin_SMS_SendTestSMS",
          "Admin_Customization_InsertUpdate",
          "Admin_Emillenium_SaveConfigs",
          "Admin_APICredentials_InsertUpdate",
          "Admin_LojaItegrada_InstallApp",
          "Master_Nuvemshop_InstallApp",
          "Admin_Objective_InsertUpdate",
          "Admin_PDVConfiguration_InsertUpdate",
          "Admin_PDVUser_InsertUpdate",
          "Admin_PointExpiration_InsertUpdate",
          "Master_Quota_Create",
          "Master_Quota_Disable",
          "Master_Quota_SetLimit",
          "Admin_RewardConfiguration_InsertUpdate",
          "Admin_Tray_InstallApp",
          "Admin_User_ChangeActive",
          "Admin_User_InsertUpdate",
          "Admin_VNDA_SaveConfigs",
          "Admin_VTEX_SaveConfigs",
          "Widget_VTEXCashback_Cancelation",
          "Widget_VTEXCashback_Transaction",
          "Admin_Webhook_InsertUpdate",
          "Widget_SetBirthday",
          "Widget_ReferralCreateCoupon",
          "Widget_ReferralCreateLink",
          "Widget_SetReferral",
          "Widget_Redeem",
          "Admin_WooCommerce_SaveConfigs",
          "Admin_Yampi_SaveConfigs",
          "Admin_Tier_SaveBenefits",
          "Admin_Tier_Delete",
          "Admin_Tier_SaveTargets",
          "Admin_Tier_SaveTier",
          "Admin_Tier_InsertUpdate",
          "Admin_Tenant_AddAccess",
          "Admin_CustomObjectiveConfiguration_InsertUpdate",
          "Admin_CustomObjectiveBonificationImportFile_InsertUpdate",
          "ExternalAPI_ImportCustomerPoints",
          "Widget_Quiz_Answer",
          "Admin_Quiz_InsertUpdate",
          "Widget_RedeemExistant",
          "Widget_RedeemCancel",
          "Affiliate_CancelCoupon",
          "Master_ReprocessCashbackCancelamentoIndevido",
          "Master_ReprocessCashbackCancelamentoIndevido_dryrun",
          "Admin_CustomerSegment_ChangeStatus",
          "Admin_CustomerSegment_AddCustomer",
          "Admin_CustomerSegment_RemoveCustomer"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          46,
          47,
          48,
          49,
          50,
          51,
          52,
          53,
          54,
          55,
          56,
          57,
          58,
          59,
          60,
          61,
          62,
          63,
          64,
          65,
          66,
          67,
          68,
          69,
          70,
          71,
          72,
          73,
          74,
          75,
          76,
          77,
          78,
          79,
          80,
          81,
          82,
          83,
          84,
          85,
          86,
          87,
          88,
          89,
          90,
          91,
          92
        ]
      },
      "SignupRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Email",
          "Password",
          "TenantName",
          "Name",
          "Platform",
          "Url",
          "OrderRange",
          "Phone",
          "ContractTerms"
        ],
        "properties": {
          "Email": {
            "title": "E-mail",
            "type": "string",
            "format": "email",
            "minLength": 1
          },
          "Password": {
            "title": "Senha",
            "type": "string",
            "maxLength": 100,
            "minLength": 8
          },
          "TenantName": {
            "title": "Nome da empresa",
            "type": "string",
            "maxLength": 100,
            "minLength": 2
          },
          "Name": {
            "title": "Seu nome",
            "type": "string",
            "minLength": 1
          },
          "Platform": {
            "title": "Platform",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PlatformVendor"
              }
            ]
          },
          "Url": {
            "type": "string",
            "minLength": 1
          },
          "OrderRange": {
            "title": "Faixa de pedidos",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderRange"
              }
            ]
          },
          "Phone": {
            "type": "string",
            "minLength": 1
          },
          "ContractTerms": {
            "title": "Aceito termos de contrato",
            "type": "boolean"
          },
          "InviteHash": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PlatformVendor": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Nuvemshop",
          "Tray",
          "VTEXClassic",
          "VTEXIO",
          "LojaIntegrada",
          "Fbits",
          "Magazord",
          "Custom",
          "B4Commerce",
          "Shopify",
          "Vnda",
          "Magento",
          "Yampi",
          "ShopifyYampi",
          "JetCommerce",
          "WooCommerce",
          "EMillennium",
          "Microvix",
          "MicrovixGo",
          "LinxCommerce",
          "Irroba",
          "Arezzo",
          "Unbox",
          "Omie",
          "Tiny",
          "Bling",
          "VivaFidelidade",
          "Inovarti",
          "Convertize",
          "ShopifyCartpanda",
          "LiveCommerce",
          "Uappi",
          "ShopifyApp",
          "Agile",
          "YampiV2",
          "WooCommerceYampi",
          "ShopifyCustomApp",
          "EMillenniumFaturamentos",
          "None"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          -1
        ]
      },
      "OrderRange": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "UpToFifty",
          "UpToTwoHundred",
          "FromFiftyToAHundred",
          "FromTwoHundredOneToFourHundred",
          "FromOneHundredToThreeHundred",
          "FromFourHundredOneToFiveThousand",
          "FromThreeHundredToAThousand",
          "FromFiveThousandOneToTenThousand",
          "FromOneThousandToThreeThousand",
          "FromTenThousandOneToTwentyThousand",
          "MoreThanThreeThousand",
          "FromTwentyThousandOneToThirtyThousand",
          "OverFortyThousand"
        ],
        "enum": [
          100,
          150,
          200,
          250,
          300,
          350,
          400,
          450,
          500,
          550,
          600,
          650,
          750
        ]
      },
      "MicrosoftLoginRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Token": {
            "type": "string"
          }
        }
      },
      "ChangePasswordRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Password",
          "OrderRange",
          "Phone",
          "ContractTerms"
        ],
        "properties": {
          "Password": {
            "type": "string",
            "minLength": 1
          },
          "OrderRange": {
            "title": "Faixa de pedidos",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderRange"
              }
            ]
          },
          "Phone": {
            "type": "string",
            "minLength": 1
          },
          "ContractTerms": {
            "title": "Aceito termos de contrato",
            "type": "boolean"
          }
        }
      },
      "LoginRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Email",
          "Password"
        ],
        "properties": {
          "Email": {
            "type": "string",
            "format": "email",
            "minLength": 1
          },
          "Password": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "TwoFactorLoginRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ChallengeId": {
            "type": "string"
          },
          "Code": {
            "type": "string"
          }
        }
      },
      "ResetPasswordRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Password"
        ],
        "properties": {
          "Password": {
            "title": "Senha",
            "type": "string",
            "maxLength": 100,
            "minLength": 8
          },
          "Code": {
            "type": "string"
          },
          "U": {
            "type": "string"
          }
        }
      },
      "ApiBillingConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "AccountingType": {
                "$ref": "#/components/schemas/AccountingType"
              },
              "AccountingCumulatively": {
                "type": "boolean"
              },
              "PeriodicFrequency": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PeriodicFrequency"
                  }
                ]
              },
              "CumulativeStartDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "IgnoreBlocking": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "AccountingType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "None",
          "Order",
          "Bonification"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "PeriodicFrequency": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "None",
          "Monthly",
          "EveryThreeMonths",
          "EverySixMonths",
          "Annual"
        ],
        "enum": [
          0,
          1,
          3,
          6,
          12
        ]
      },
      "BaseApiListResultOfApiBillingHistory": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiBillingHistory"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiBillingHistory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "DueDate": {
                "type": "string",
                "format": "date-time"
              },
              "Paid": {
                "type": "boolean"
              },
              "Value": {
                "type": "number",
                "format": "decimal"
              },
              "InvoiceUrl": {
                "type": "string",
                "nullable": true
              },
              "LastestAttempt": {
                "type": "string",
                "format": "date-time"
              },
              "PaymentUrl": {
                "type": "string",
                "nullable": true
              },
              "PaymentMethod": {
                "$ref": "#/components/schemas/BillingCheckoutMethod"
              },
              "HasError": {
                "type": "boolean"
              },
              "LatestError": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "LatestErrorMessage": {
                "type": "string",
                "nullable": true
              },
              "InvoiceNumber": {
                "type": "string",
                "nullable": true
              },
              "Canceled": {
                "type": "boolean"
              },
              "VindiBillId": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "BillingCheckoutMethod": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "CreditCard",
          "BankSlip",
          "Pix"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "BillingCheckout": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Id": {
                "type": "integer",
                "format": "int32"
              },
              "PaymentMethod": {
                "$ref": "#/components/schemas/BillingCheckoutMethod"
              },
              "CreditCardToken": {
                "type": "string",
                "nullable": true
              },
              "SocialName": {
                "type": "string"
              },
              "Document": {
                "type": "string"
              },
              "Emails": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "PhoneNumber": {
                "type": "string"
              },
              "AddressStreetName": {
                "type": "string"
              },
              "AddressNumber": {
                "type": "string"
              },
              "AddressCity": {
                "type": "string"
              },
              "AddressState": {
                "type": "string"
              },
              "AddressNumberComplement": {
                "type": "string",
                "nullable": true
              },
              "AddressNeighbourhood": {
                "type": "string"
              },
              "ZipCode": {
                "type": "string"
              },
              "SelectedPlan": {
                "$ref": "#/components/schemas/BillingPlan"
              },
              "CreditCardCompany": {
                "type": "string",
                "nullable": true
              },
              "CreditCardLastDigits": {
                "type": "string",
                "nullable": true
              },
              "BillingStartDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "DowngradeToPlan": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/BillingPlan"
                  }
                ]
              }
            }
          }
        ]
      },
      "BillingPlan": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Free",
          "Basic",
          "Intermediate",
          "Premium",
          "Essential",
          "Growth",
          "Advanced"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ]
      },
      "BillingPaymentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "ErrorMessage": {
            "type": "string"
          }
        }
      },
      "BillingPlanCheck": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Plan": {
            "$ref": "#/components/schemas/BillingPlan"
          },
          "PlanName": {
            "type": "string"
          },
          "OrderLimit": {
            "type": "integer",
            "format": "int32"
          },
          "BonusesLimit": {
            "type": "integer",
            "format": "int32"
          },
          "CurrentPeriodOrderCount": {
            "type": "integer",
            "description": "Total orders in this period. Both those already processed and pending too",
            "format": "int32"
          },
          "TotalPendingOrders": {
            "type": "integer",
            "description": "Total os pending orders in all periods.",
            "format": "int32"
          },
          "CurrentPeriodProccessedOrders": {
            "type": "integer",
            "description": "Number of orders in the current period that are already processed",
            "format": "int32"
          },
          "IsTrial": {
            "type": "boolean"
          },
          "TrialDaysLeft": {
            "type": "integer",
            "format": "int32"
          },
          "FreemiumOverlimitWarningOrders": {
            "type": "integer",
            "format": "int32"
          },
          "ShouldBlockFreemiumIntegration": {
            "type": "boolean"
          },
          "ShowFreemiumOverlimitWarning": {
            "type": "boolean"
          },
          "CurrentPeriodStart": {
            "type": "string",
            "format": "date-time"
          },
          "CurrentPeriodEnd": {
            "type": "string",
            "format": "date-time"
          },
          "TrialStartDate": {
            "type": "string",
            "description": "The date that the Trial started. This is important as it is used to decide if this is a new account (withou freemium) or old account (with free usage possibility)",
            "format": "date-time"
          },
          "ShouldBlockFreemium": {
            "type": "boolean",
            "description": "If true we will not allow the user to use BonifiQ anymore"
          },
          "ShowTrialEndingWarning": {
            "type": "boolean",
            "description": "If true, the user will be asked to sign up for a paid plan"
          },
          "DateToBlockNewFremium": {
            "type": "string",
            "description": "Date that we will use as reference for new trial accounts. Accounts after this date cannot use BonifiQ for free anymore",
            "format": "date-time"
          },
          "ShowTrialPopup": {
            "type": "boolean",
            "description": "If true will show the user a popup to signup for a plan"
          },
          "IsNewFreemium": {
            "type": "boolean",
            "description": "If true this account is under the new pricing rules (no free usage of Bonifiq)"
          },
          "PointsProgramActive": {
            "type": "boolean"
          },
          "ShouldBlockOverdue": {
            "type": "boolean"
          },
          "ShowOverdueWarning": {
            "type": "boolean"
          },
          "DowngradeToPlan": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/BillingPlan"
              }
            ]
          }
        }
      },
      "SendToHubSpotRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HubId": {
            "type": "string"
          }
        }
      },
      "ApiBillingGroup": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "BillingGroupTenantId": {
                "type": "integer",
                "format": "int32"
              },
              "IsActive": {
                "type": "boolean"
              },
              "BillingGroupParticipants": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiBillingGroupParticipants"
                }
              }
            }
          }
        ]
      },
      "ApiBillingGroupParticipants": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ParticipantTenantId": {
                "type": "integer",
                "format": "int32"
              },
              "BillingGroupId": {
                "type": "integer",
                "format": "int32"
              },
              "BillingGroupTenantId": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "ApiBlingConfigModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiBlingConfigBase"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "MultipleAccounts": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiBlingConfigItem"
                }
              }
            }
          }
        ]
      },
      "ApiBlingConfigItem": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiBlingConfigBase"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "BLING_BRANCHID": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiBlingConfigBase": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "BLING_CLIENT_ID": {
            "type": "string",
            "nullable": true
          },
          "BLING_SECRET": {
            "type": "string",
            "nullable": true
          },
          "BLING_CODE": {
            "type": "string",
            "nullable": true
          },
          "BLING_BRANCHS": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "BLING_STATUS_CANCELLED": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BLING_STATUS_COMPLETED": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "Stores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiBlingStoreModel"
            }
          },
          "SelectedStores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiBlingStoreModel"
            }
          },
          "HAS_BLING_CONFIGURATION": {
            "type": "boolean"
          }
        }
      },
      "ApiBlingStoreModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "descricao": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiBlingConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiBlingConfigModel"
              }
            ]
          }
        }
      },
      "ApiBranch": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              }
            }
          }
        ]
      },
      "BaseOriginalIdApiEntity": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "description": "This class represents a request with an external Id (such as OrderId) in a third-party system",
            "x-abstract": true,
            "additionalProperties": false,
            "properties": {
              "OriginalId": {
                "type": "string",
                "description": "This is the Id in the third party system. "
              }
            }
          }
        ]
      },
      "ApiResponseOfApiBranch": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiBranch"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiBranchModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "OriginalId": {
            "type": "string"
          }
        }
      },
      "BaseApiListResultOfApiBranch": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiBranch"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "BaseApiListResultOfApiCampaign": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCampaign"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCampaign": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Title": {
                "type": "string"
              },
              "CreatedOn": {
                "type": "string",
                "format": "date-time"
              },
              "CreatedBy": {
                "type": "string",
                "nullable": true
              },
              "StartDate": {
                "type": "string",
                "format": "date-time"
              },
              "EndDate": {
                "type": "string",
                "format": "date-time"
              },
              "RedirectUrl": {
                "type": "string"
              },
              "ImageUrl": {
                "type": "string"
              },
              "IsActive": {
                "type": "boolean"
              },
              "Clicks": {
                "type": "integer",
                "format": "int32"
              },
              "Status": {
                "$ref": "#/components/schemas/CampaignStatus"
              }
            }
          }
        ]
      },
      "CampaignStatus": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Active",
          "Inactive",
          "Scheduled",
          "Completed"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "ApiResponseOfApiCampaign": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCampaign"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiResponseOfString": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiCartpandaConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "BearerToken": {
            "type": "string",
            "nullable": true
          },
          "ShopSlug": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiCartpandaConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiCartpandaConfigModel"
              }
            ]
          }
        }
      },
      "BaseApiListResultOfApiCashbackRestrictedProduct": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCashbackRestrictedProduct"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCashbackRestrictedProduct": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "description": "API entity representing a product restricted from cashback redemption.",
            "additionalProperties": false,
            "properties": {
              "Id": {
                "type": "integer",
                "format": "int32"
              },
              "RewardConfigurationId": {
                "type": "integer",
                "format": "int32"
              },
              "ProductId": {
                "type": "integer",
                "format": "int32"
              },
              "ProductTitle": {
                "type": "string"
              },
              "ProductOriginalId": {
                "type": "string"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "ImportFileId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiCashbackRestrictedProductImportFile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCashbackRestrictedProductImportFile"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCashbackRestrictedProductImportFile": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "description": "API entity representing an import file for cashback restricted products.",
            "additionalProperties": false,
            "properties": {
              "RewardConfigurationId": {
                "type": "integer",
                "format": "int32"
              },
              "FileName": {
                "type": "string"
              },
              "FileUrl": {
                "type": "string"
              },
              "UserId": {
                "type": "integer",
                "format": "int32"
              },
              "UserName": {
                "type": "string"
              },
              "UserEmail": {
                "type": "string"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "RowsCount": {
                "type": "integer",
                "format": "int32"
              },
              "ProcessedRows": {
                "type": "integer",
                "format": "int32"
              },
              "ErrorRows": {
                "type": "integer",
                "format": "int32"
              },
              "IsProcessed": {
                "type": "boolean"
              },
              "IsCanceled": {
                "type": "boolean"
              },
              "CanceledAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ResultMessages": {
                "type": "string"
              },
              "HasErrors": {
                "type": "boolean"
              },
              "ImportKey": {
                "type": "string",
                "format": "guid"
              },
              "LastProcessedRow": {
                "type": "integer",
                "format": "int32"
              },
              "IsRestrictionsReverted": {
                "type": "boolean"
              },
              "RestrictionsRevertedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "RestrictionsRevertedByUserId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RevertedRestrictionsCount": {
                "type": "integer",
                "format": "int32"
              },
              "RevertResultMessage": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiCheckoutConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Text": {
                "type": "string"
              },
              "ProgramName": {
                "type": "string"
              },
              "FontName": {
                "type": "string",
                "nullable": true
              },
              "FontUrl": {
                "type": "string",
                "nullable": true
              },
              "AvailableFontId": {
                "type": "integer",
                "format": "int32"
              },
              "Color": {
                "type": "string"
              },
              "Active": {
                "type": "boolean"
              },
              "TenantKey": {
                "type": "string"
              },
              "Platform": {
                "type": "string"
              }
            }
          }
        ]
      },
      "EmailBodyResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Body": {
            "type": "string",
            "nullable": true
          },
          "Subject": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiCustomization": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Logo": {
                "type": "string",
                "nullable": true
              },
              "ProgramName": {
                "type": "string",
                "nullable": true
              },
              "FontName": {
                "type": "string",
                "nullable": true
              },
              "FontUrl": {
                "type": "string",
                "nullable": true
              },
              "MainColor": {
                "type": "string"
              },
              "Url": {
                "type": "string",
                "nullable": true
              },
              "CompanyName": {
                "type": "string"
              },
              "AvailableFontId": {
                "type": "integer",
                "format": "int32"
              },
              "WidgetPositionRight": {
                "type": "boolean"
              },
              "WidgetMarginLeft": {
                "type": "integer",
                "format": "int32"
              },
              "WidgetMarginRight": {
                "type": "integer",
                "format": "int32"
              },
              "WidgetMarginBottom": {
                "type": "integer",
                "format": "int32"
              },
              "WidgetHideRewards": {
                "type": "boolean"
              },
              "HideWidget": {
                "type": "boolean"
              },
              "HideEmailLogo": {
                "type": "boolean"
              },
              "WidgetIconUrl": {
                "type": "string",
                "nullable": true
              },
              "WidgetWidth": {
                "type": "integer",
                "format": "int32"
              },
              "WidgetModel": {
                "$ref": "#/components/schemas/WidgetModel"
              },
              "WidgetAttention": {
                "$ref": "#/components/schemas/WidgetAttention"
              },
              "ShowWidgetWithLandingPage": {
                "type": "boolean"
              },
              "WidgetSize": {
                "type": "integer",
                "format": "int32"
              },
              "Platform": {
                "type": "string"
              },
              "CustomScript": {
                "type": "string",
                "nullable": true
              },
              "TenantKey": {
                "type": "string",
                "nullable": true
              },
              "Language": {
                "type": "string",
                "nullable": true
              },
              "CurrencySymbol": {
                "type": "string",
                "nullable": true
              },
              "NamePointsSingular": {
                "type": "string",
                "nullable": true
              },
              "NamePointsPlural": {
                "type": "string",
                "nullable": true
              },
              "CashbackName": {
                "type": "string",
                "maxLength": 50,
                "nullable": true
              },
              "MobileWidgetPositionRight": {
                "type": "boolean"
              },
              "MobileWidgetMarginBottom": {
                "type": "integer",
                "format": "int32"
              },
              "MobileWidgetMarginLeft": {
                "type": "integer",
                "format": "int32"
              },
              "MobileWidgetMarginRight": {
                "type": "integer",
                "format": "int32"
              },
              "MobileWidgetIconUrl": {
                "type": "string",
                "nullable": true
              },
              "MobileWidgetModel": {
                "$ref": "#/components/schemas/WidgetModel"
              },
              "MobileWidgetAttention": {
                "$ref": "#/components/schemas/WidgetAttention"
              },
              "MobileWidgetSize": {
                "type": "integer",
                "format": "int32"
              },
              "MobileHideWidget": {
                "type": "boolean"
              },
              "MobileWidgetWidth": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "WidgetModel": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Icon",
          "BottomBar",
          "LateralBar"
        ],
        "enum": [
          1,
          2,
          3
        ]
      },
      "WidgetAttention": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "None",
          "Pulse",
          "Shake"
        ],
        "enum": [
          1,
          2,
          3
        ]
      },
      "ApiResponseOfApiCheckoutConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCheckoutConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "CheckoutCashbackPreviewResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CashbackRules": {
            "type": "string",
            "nullable": true
          },
          "MaxUsableCashback": {
            "type": "number",
            "format": "decimal"
          },
          "RemainingToTotalCashback": {
            "type": "number",
            "format": "decimal"
          },
          "UsableCashback": {
            "type": "number",
            "format": "decimal"
          },
          "CashbackMultiplier": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "CheckoutPreviewCustomerResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PublicId": {
            "type": "string",
            "format": "guid"
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiConvertizeConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TOKEN": {
            "type": "string"
          },
          "ENVIRONMENT": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiConvertizeConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiConvertizeConfigModel"
              }
            ]
          }
        }
      },
      "ApiCopilotConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "LoginText": {
                "type": "string",
                "nullable": true
              },
              "LoginFontName": {
                "type": "string",
                "nullable": true
              },
              "LoginFontUrl": {
                "type": "string",
                "nullable": true
              },
              "LoginAvailableFontId": {
                "type": "integer",
                "format": "int32"
              },
              "LoginColor": {
                "type": "string",
                "nullable": true
              },
              "LoginActive": {
                "type": "boolean"
              },
              "RewardText": {
                "type": "string",
                "nullable": true
              },
              "RewardFontName": {
                "type": "string",
                "nullable": true
              },
              "RewardFontUrl": {
                "type": "string",
                "nullable": true
              },
              "RewardAvailableFontId": {
                "type": "integer",
                "format": "int32"
              },
              "RewardColor": {
                "type": "string",
                "nullable": true
              },
              "RewardActive": {
                "type": "boolean"
              },
              "CartText": {
                "type": "string",
                "nullable": true
              },
              "CartFontName": {
                "type": "string",
                "nullable": true
              },
              "CartFontUrl": {
                "type": "string",
                "nullable": true
              },
              "CartAvailableFontId": {
                "type": "integer",
                "format": "int32"
              },
              "CartColor": {
                "type": "string",
                "nullable": true
              },
              "CartActive": {
                "type": "boolean"
              },
              "Active": {
                "type": "boolean"
              },
              "Variables": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CopilotConfigurationVariable"
                }
              }
            }
          }
        ]
      },
      "CopilotConfigurationVariable": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          }
        }
      },
      "ApiResponseOfApiCopilotConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCopilotConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "CouponReverseResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Error": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          }
        }
      },
      "ApiCustomerCommunicationConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "IsActive": {
                "type": "boolean"
              },
              "Type": {
                "$ref": "#/components/schemas/CustomerCommunicationType"
              },
              "Body": {
                "type": "string"
              },
              "Variables": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CommunicationConfigurationVariable"
                }
              },
              "Title": {
                "type": "string",
                "nullable": true
              },
              "Description": {
                "type": "string",
                "nullable": true
              },
              "Group": {
                "$ref": "#/components/schemas/CustomerCommunicationGroup"
              },
              "Channel": {
                "$ref": "#/components/schemas/CommunicationChannel"
              },
              "SubType": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "ObjectiveLinkedType": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ObjectiveType"
                  }
                ]
              }
            }
          }
        ]
      },
      "CustomerCommunicationType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "EarnPurchasePoints",
          "EarnBirthdayPoints",
          "EarnSignupPoints",
          "RedeemPoints",
          "EarnReviewPoints",
          "NotifyExpirablePoints",
          "PointsToUse",
          "CouponsToUse",
          "ReferralCommunicationPoints",
          "RewardCustomRedeemNotification",
          "CustomerPointChangeNotification",
          "CustomerTierUpgradeNotification",
          "CustomerTierDowngradeNotification",
          "SentOTPToCustomer",
          "EarnSocialMediaFollowFacebook",
          "EarnSocialMediaFollowInstagram",
          "EarnQuizPoints",
          "EarnCustomObjectivePoints",
          "InactiveAffiliate",
          "InactiveAffiliateProjectAffiliate",
          "EarnSocialMediaFollowLinkedin",
          "EarnSocialMediaFollowTikTok",
          "ReactivationCampaignStart",
          "ReactivationCampaignEnd",
          "Participation",
          "EarnFitnessPoints",
          "AccelerationCampaign"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          29
        ]
      },
      "CommunicationConfigurationVariable": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          }
        }
      },
      "CustomerCommunicationGroup": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Earnpoints",
          "Others"
        ],
        "enum": [
          0,
          1
        ]
      },
      "CommunicationChannel": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Email",
          "SMS",
          "WhatsApp"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ObjectiveType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Purchase",
          "Signup",
          "Birthday",
          "Review",
          "Referral",
          "SocialMediaFollowInstagram",
          "SocialMediaFollowFacebook",
          "Quiz",
          "Custom",
          "SocialMediaFollowLinkedin",
          "SocialMediaFollowTikTok",
          "Participation",
          "Fitness"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12
        ]
      },
      "ApiResponseOfApiCustomerCommunicationConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomerCommunicationConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiResponseOfListOfApiCustomerCommunicationConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiCustomerCommunicationConfiguration"
                }
              }
            }
          }
        ]
      },
      "ApiResponseOfApiCustomer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomer"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiCustomer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Email": {
                "type": "string"
              },
              "Locale": {
                "type": "string",
                "maxLength": 255,
                "nullable": true
              },
              "Phone": {
                "type": "string"
              },
              "BirthdayDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "SignupDate": {
                "type": "string",
                "format": "date-time"
              },
              "Document": {
                "type": "string"
              },
              "IsEnrolled": {
                "type": "boolean"
              },
              "PointsBalance": {
                "type": "integer",
                "format": "int32",
                "deprecated": true,
                "x-deprecatedMessage": "Use BalanceOfPoints for persisted customer point balance. PointsBalance is legacy and should not be used for balance validation."
              },
              "BalanceOfPoints": {
                "type": "integer",
                "format": "int32"
              },
              "Cashback": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "BirthdayUpdateDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "FirstName": {
                "type": "string"
              },
              "PublicId": {
                "type": "string",
                "format": "guid",
                "nullable": true
              },
              "SecondaryId": {
                "type": "string",
                "nullable": true
              },
              "OrderCount": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "ReasonEnrolled": {
                "type": "string",
                "nullable": true
              },
              "AdminId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "EmailAdmin": {
                "type": "string",
                "nullable": true
              },
              "EnrolledDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "TierName": {
                "type": "string"
              },
              "Origin": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CustomerOrigin"
                  }
                ]
              },
              "RfmGroup": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/MatrizRFMItem"
                  }
                ]
              },
              "RfmGroupName": {
                "type": "string",
                "nullable": true
              },
              "SegmentTags": {
                "type": "array",
                "description": "Tags dos segmentos ativos. Só vem preenchido quando a listagem pede IncludeSegments; fora disso vem vazio.",
                "nullable": true,
                "items": {
                  "type": "string"
                }
              },
              "Affiliate": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiAffiliate"
                  }
                ]
              },
              "AffiliateCode": {
                "type": "string",
                "nullable": true
              },
              "AffiliateCodeAssignedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              }
            }
          }
        ]
      },
      "CustomerOrigin": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Platform",
          "PDV",
          "API",
          "OfflinePlatform",
          "Admin",
          "Affiliate"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ]
      },
      "MatrizRFMItem": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "CantMiss",
          "ConstantBuyers",
          "Vips",
          "AtRisk",
          "NeedAttention",
          "Promising",
          "Disconnected",
          "Hibernating",
          "Sleepy",
          "OnTheRise",
          "NewCustomers",
          "Unclassified"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11
        ]
      },
      "CreateCustomerRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Document": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "Phone": {
            "type": "string"
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "BirthdayDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "BaseApiListResultOfApiCustomer": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomer"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "CustomerListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "PartialName": {
                "type": "string",
                "nullable": true
              },
              "PartialEmail": {
                "type": "string",
                "nullable": true
              },
              "Document": {
                "type": "string",
                "nullable": true
              },
              "Phone": {
                "type": "string",
                "nullable": true
              },
              "Active": {
                "type": "boolean",
                "nullable": true
              },
              "Tiers": {
                "type": "string",
                "nullable": true
              },
              "IncludeOrders": {
                "type": "boolean"
              },
              "IncludeTiers": {
                "type": "boolean"
              },
              "OrderCount": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "OrderCountMax": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "OrderCountCondition": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/BaseApiFilterCondition"
                  }
                ]
              },
              "CreateAtFrom": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "RewardType": {
                "$ref": "#/components/schemas/RewardTypeCustomer"
              },
              "RewardTypeSearch": {
                "$ref": "#/components/schemas/RewardTypeCustomer"
              },
              "CashBackValue": {
                "type": "number",
                "format": "decimal"
              },
              "BirthdayPeriod": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RangeDateTimeFilter"
                  }
                ]
              },
              "PointsExpirationPeriod": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RangeDateTimeFilter"
                  }
                ]
              },
              "WithBirthday": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/BirthdayFilter"
                  }
                ]
              },
              "RfmGroup": {
                "type": "string",
                "nullable": true
              },
              "IncludeRfmGroup": {
                "type": "boolean"
              },
              "Segments": {
                "type": "string",
                "description": "Tags dos segmentos separadas por vírgula (a tag é um slug e pode conter \"-\").",
                "nullable": true
              },
              "IncludeSegments": {
                "type": "boolean"
              },
              "CustomerType": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CustomerType"
                  }
                ]
              },
              "UseNewCustomerList": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "BaseApiFilterCondition": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "BiggerThanOrEqual",
          "LessThanOrEqual",
          "Between",
          "NoFilter"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "RewardTypeCustomer": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Points",
          "Cashback"
        ],
        "enum": [
          0,
          1
        ]
      },
      "RangeDateTimeFilter": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "From": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "To": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "BirthdayFilter": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "All",
          "OnlyDate",
          "WithoutDate"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "CustomerType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "All",
          "Default",
          "Affiliate"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "CustomerAdaptiveListResult": {
        "type": "object",
        "description": "Customer page whose total is omitted when adaptive pagination avoids counting.",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomer"
            }
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "CustomerStatusRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AdminId": {
            "type": "integer",
            "format": "int32"
          },
          "Reason": {
            "type": "string"
          },
          "IsEnrolled": {
            "type": "boolean"
          },
          "Date": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ChangePointsRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IdCustomer": {
            "type": "integer",
            "format": "int32"
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Reason": {
            "type": "string"
          },
          "SendCustomerPointChangeNotification": {
            "type": "boolean"
          },
          "CustomerEmailConfigurationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "ApiCustomerCount": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalCustomers": {
            "type": "integer",
            "format": "int32"
          },
          "HavePoints": {
            "type": "integer",
            "format": "int32"
          },
          "Percent": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "ApiCustomerSimpleDataRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ChangeBirthdayCustomerRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "BirthdayDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "ApiCustomerEmailConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "EmailBody": {
                "type": "string"
              },
              "Subject": {
                "type": "string"
              },
              "IsActive": {
                "type": "boolean"
              },
              "Type": {
                "$ref": "#/components/schemas/CustomerCommunicationType"
              },
              "Variables": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/EmailConfigurationVariable"
                }
              },
              "Title": {
                "type": "string",
                "nullable": true
              },
              "Description": {
                "type": "string",
                "nullable": true
              },
              "Group": {
                "$ref": "#/components/schemas/CustomerEmailGroup"
              },
              "SubType": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "HideLogoIsActive": {
                "type": "boolean"
              },
              "ChangeBackgroundColorIsActive": {
                "type": "boolean"
              },
              "ProductsRecommendationIsActive": {
                "type": "boolean"
              },
              "EmailBackgroundColor": {
                "type": "string",
                "nullable": true
              },
              "CustomCssIsActive": {
                "type": "boolean"
              },
              "CustomCss": {
                "type": "string",
                "nullable": true
              },
              "ObjectiveLinkedType": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ObjectiveType"
                  }
                ]
              },
              "PreHeader": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "EmailConfigurationVariable": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          }
        }
      },
      "CustomerEmailGroup": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Earnpoints",
          "Others"
        ],
        "enum": [
          0,
          1
        ]
      },
      "TestEmailRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Configuration": {
            "$ref": "#/components/schemas/ApiCustomerEmailConfiguration"
          },
          "ToEmail": {
            "type": "string"
          }
        }
      },
      "ApiResponseOfApiCustomerEmailConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomerEmailConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "CustomerEmailUpload": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "FileName": {
            "type": "string"
          },
          "Base64EncodedImage": {
            "type": "string"
          }
        }
      },
      "BaseApiListResultOfApiCustomerEmailConfiguration": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomerEmailConfiguration"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomerSegment": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Tag": {
                "type": "string",
                "description": "Identificador público (slug), único por tenant. Write-once no backend."
              },
              "Description": {
                "type": "string",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "MembersCount": {
                "type": "integer",
                "description": "Quantidade de consumidores vinculados. Preenchido pela listagem.",
                "format": "int32"
              },
              "IsProcessing": {
                "type": "boolean",
                "description": "Há alteração de membros em andamento. A tela mostra o segmento em atualização enquanto\nfor verdadeiro, no mesmo padrão do chip da planilha em processamento."
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiCustomerSegment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomerSegment"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "CustomerSegmentListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string",
                "description": "Busca parcial por nome do segmento.",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiCustomerSegmentUsage": {
        "type": "object",
        "description": "Uso de um segmento como público de regras avançadas ATIVAS ou AGENDADAS (online ou com início\nfuturo). Regras pausadas, concluídas ou em rascunho não contam: desativar o segmento não as afeta.",
        "additionalProperties": false,
        "properties": {
          "ActiveAdvancedRules": {
            "type": "integer",
            "format": "int32"
          },
          "AdvancedRuleNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "IsInUse": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomerSegmentAudience": {
        "type": "object",
        "description": "Tamanho do público formado por um conjunto de segmentos (exibido ao montar o público de\numa regra avançada): consumidores distintos e quantos estão em todos os segmentos escolhidos.",
        "additionalProperties": false,
        "properties": {
          "SegmentCount": {
            "type": "integer",
            "description": "Segmentos considerados (ids válidos do tenant).",
            "format": "int32"
          },
          "TotalCustomers": {
            "type": "integer",
            "format": "int32"
          },
          "CustomersInAllSegments": {
            "type": "integer",
            "description": "Consumidores presentes em TODOS os segmentos considerados (igual ao total com um único segmento).",
            "format": "int32"
          }
        }
      },
      "ApiResponseOfInteger": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "ApiCustomerSegmentMemberChange": {
        "type": "object",
        "description": "Diff de membros de um segmento, e não o estado completo: descreve o que o lojista mexeu nesta\nsessão de edição. É o que tira do save um payload proporcional ao tamanho do segmento, nos\ndois sentidos, e o que torna a entrada de auditoria legível.",
        "additionalProperties": false,
        "properties": {
          "AddIds": {
            "type": "array",
            "description": "Marcou o checkbox de quem ainda não era membro.",
            "nullable": true,
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "RemoveIds": {
            "type": "array",
            "description": "Desmarcou o checkbox de quem já era membro. Não confundir com ExcludeIds:\naqui existe vínculo para apagar.",
            "nullable": true,
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "AddFilter": {
            "description": "Recorte de \"selecionar todos os encontrados\". Vai o critério, e não os ids que ele\nresolve — é o que mantém o payload constante num segmento de qualquer tamanho. Quem o\nreexecuta é o worker.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerListFilter"
              }
            ]
          },
          "ExcludeIds": {
            "type": "array",
            "description": "Desmarcados dentro do resultado do filtro. Existe para \"todos os encontrados, menos\nestes três\" continuar cabendo em poucos bytes; sem ele, desmarcar um único consumidor\nobrigaria a tela a voltar a enviar a lista inteira resolvida.",
            "nullable": true,
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "RemoveAllCurrent": {
            "type": "boolean",
            "description": "\"Limpar seleção\": remove todos os membros atuais antes de aplicar as adições. É booleano,\ne não a lista dos membros, porque o worker deve remover o que estiver lá no momento do\nprocessamento, e não o retrato que o navegador tinha."
          }
        }
      },
      "ApiResponseOfApiCustomerSegment": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomerSegment"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiCustomerSegmentImportSummary": {
        "type": "object",
        "description": "Resumo das importações por planilha de um segmento, para os chips do cabeçalho da seção:\ntotal de planilhas enviadas (revertidas não contam) e quantas ainda estão em processamento.",
        "additionalProperties": false,
        "properties": {
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "Processing": {
            "type": "integer",
            "format": "int32"
          },
          "RevertEligible": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BaseApiListResultOfApiCustomerSegmentImportFile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomerSegmentImportFile"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomerSegmentImportFile": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CustomerSegmentId": {
                "type": "integer",
                "format": "int32"
              },
              "FileName": {
                "type": "string"
              },
              "FileUrl": {
                "type": "string",
                "nullable": true
              },
              "UserId": {
                "type": "integer",
                "format": "int32"
              },
              "UserName": {
                "type": "string"
              },
              "UserEmail": {
                "type": "string"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "ImportKey": {
                "type": "string",
                "format": "guid"
              },
              "RowsCount": {
                "type": "integer",
                "format": "int32"
              },
              "LastProcessedRow": {
                "type": "integer",
                "format": "int32"
              },
              "ProcessedRows": {
                "type": "integer",
                "format": "int32"
              },
              "ErrorRows": {
                "type": "integer",
                "format": "int32"
              },
              "IsProcessed": {
                "type": "boolean"
              },
              "ProcessedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "HasErrors": {
                "type": "boolean"
              },
              "ResultMessages": {
                "type": "string",
                "nullable": true
              },
              "IsRevertPending": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "ApiCustomerSegmentParticipation": {
        "type": "object",
        "description": "Uma passagem do consumidor por um segmento ATIVO, do pareamento das movimentações registradas\nem CustomerSegmentMemberHistory. A combinação de IsCurrent e EndedAt\ndistingue três situações, e a do meio existe porque nem toda remoção registra movimentação:\n\nem curso: IsCurrent verdadeiro, sem data de fim;\nencerrada sem registro da saída: IsCurrent falso e EndedAt nulo;\nencerrada: IsCurrent falso, com data de fim, origem e autor.",
        "additionalProperties": false,
        "properties": {
          "CustomerSegmentId": {
            "type": "integer",
            "format": "int32"
          },
          "SegmentName": {
            "type": "string"
          },
          "SegmentTag": {
            "type": "string"
          },
          "IsCurrent": {
            "type": "boolean",
            "description": "O consumidor está no segmento hoje. Vem do vínculo em CustomerSegmentMember, não do\nhistórico: uma entrada registrada sem a saída correspondente não prova permanência."
          },
          "StartedAt": {
            "type": "string",
            "description": "Entrada. Nulo quando não há como saber: uma saída registrada cuja entrada é anterior à\nexistência do histórico não deixou data em lugar nenhum, porque o vínculo já foi apagado.",
            "format": "date-time",
            "nullable": true
          },
          "EndedAt": {
            "type": "string",
            "description": "Saída. Nulo tanto na participação em curso quanto na que terminou sem movimentação\nregistrada — IsCurrent separa os dois casos.",
            "format": "date-time",
            "nullable": true
          },
          "EntryOrigin": {
            "description": "Como o consumidor entrou. Numa participação em curso sai do próprio vínculo, então\nexiste mesmo sem movimentação registrada; numa encerrada depende da entrada no histórico.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerSegmentMemberOrigin"
              }
            ]
          },
          "EntryUserName": {
            "type": "string",
            "description": "Quem incluiu o consumidor — no caso da planilha, quem a enviou. Nulo quando a\nmovimentação não tem autor identificável ou quando o autor não é usuário do tenant.",
            "nullable": true
          },
          "EntryFileName": {
            "type": "string",
            "description": "Planilha que criou o vínculo. Nulo quando a inclusão veio do painel.",
            "nullable": true
          },
          "ExitOrigin": {
            "description": "Como a saída aconteceu. Nulo enquanto a participação estiver em curso.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerSegmentMemberOrigin"
              }
            ]
          },
          "ExitUserName": {
            "type": "string",
            "description": "Quem removeu o consumidor. Nulo quando a movimentação não tem autor identificável ou\nquando o autor não é um usuário do tenant corrente.",
            "nullable": true
          },
          "ExitFileName": {
            "type": "string",
            "description": "Planilha cuja exclusão removeu o vínculo. Nulo quando a saída veio do painel.",
            "nullable": true
          },
          "ActiveAdvancedRules": {
            "type": "integer",
            "description": "Regras avançadas ativas ou agendadas que usam este segmento como público — mesmo recorte\nde ApiCustomerSegmentUsage. Preenchido apenas nas participações em curso: numa encerrada\no consumidor não está mais no segmento, e a regra não o alcança.",
            "format": "int32"
          }
        }
      },
      "CustomerSegmentMemberOrigin": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Admin",
          "ImportFile"
        ],
        "enum": [
          1,
          2
        ]
      },
      "CustomerCommunicationPreviewResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Body": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiCommunicationSmsConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiCustomerCommunicationConfiguration"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "SendEmailWhenSMSUnavailable": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "ApiChannelCommunicationResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Channel": {
            "$ref": "#/components/schemas/CommunicationChannel"
          },
          "HasError": {
            "type": "boolean"
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "ShouldRetry": {
            "type": "boolean"
          }
        }
      },
      "TestSmsRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Configuration": {
            "$ref": "#/components/schemas/ApiCommunicationSmsConfiguration"
          },
          "ToPhone": {
            "type": "string"
          }
        }
      },
      "ApiResponseOfApiCommunicationSmsConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCommunicationSmsConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiCommunicationWhatsappConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "description": "API entity for WhatsApp communication configuration.\nStores which template and phone number to use for each communication type.",
            "additionalProperties": false,
            "properties": {
              "CommunicationType": {
                "description": "The type of customer communication this configuration applies to",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CustomerCommunicationType"
                  }
                ]
              },
              "WhatsappPhoneNumberId": {
                "type": "integer",
                "description": "The ID of the WhatsApp phone number to use for sending",
                "format": "int32",
                "nullable": true
              },
              "WhatsappTemplateId": {
                "type": "integer",
                "description": "The ID of the WhatsApp template to use",
                "format": "int32",
                "nullable": true
              },
              "VariableMappingsJson": {
                "type": "string",
                "description": "JSON string containing variable mappings (template variable index -> system variable name)\nExample: {\"0\": \"Customer.FirstName\", \"1\": \"Point.Points\"}",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean",
                "description": "Whether this WhatsApp configuration is active"
              },
              "Title": {
                "type": "string",
                "description": "Title/description of this communication type",
                "nullable": true
              },
              "Description": {
                "type": "string",
                "description": "Detailed description of when this communication is sent",
                "nullable": true
              },
              "SubType": {
                "type": "integer",
                "description": "SubType for communication (e.g., Quiz ID, Custom Objective ID)",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiResponseOfApiCommunicationWhatsappConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCommunicationWhatsappConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiTestWhatsappRequest": {
        "type": "object",
        "description": "Request model for sending test WhatsApp messages",
        "additionalProperties": false,
        "properties": {
          "PhoneNumber": {
            "type": "string"
          },
          "TemplateId": {
            "type": "integer",
            "format": "int32"
          },
          "PhoneNumberId": {
            "type": "integer",
            "format": "int32"
          },
          "VariableMappings": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "string"
            }
          },
          "CommunicationType": {
            "description": "The communication type being tested (e.g., EarnPurchasePoints, EarnSignupPoints)\nRequired to resolve the correct communication handler via CommunicationFactory",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerCommunicationType"
              }
            ]
          }
        }
      },
      "AvailableFont": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "PublicName": {
            "type": "string"
          },
          "InternalName": {
            "type": "string"
          },
          "Url": {
            "type": "string",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean"
          }
        }
      },
      "ApiResponseOfApiCustomization": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomization"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiCheckoutValidations": {
        "type": "object",
        "description": "Represents the validations for the checkout process.",
        "additionalProperties": false,
        "properties": {
          "CreatedCustomField": {
            "type": "boolean",
            "description": "Indicates whether a custom field has been created."
          },
          "ManualPriceEnabled": {
            "type": "boolean",
            "description": "Indicates whether manual price is enabled."
          },
          "IsPremiumPlan": {
            "type": "boolean",
            "description": "Indicates whether store has plan plus or higher."
          }
        }
      },
      "UrlValidationResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IsValid": {
            "type": "boolean",
            "description": "Indica se o site responde corretamente (status 2xx ou 3xx)"
          },
          "HasRedirect": {
            "type": "boolean",
            "description": "Indica se houve redirecionamento para uma URL diferente"
          },
          "FinalUrl": {
            "type": "string",
            "description": "URL final após seguir todos os redirecionamentos",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "description": "Mensagem de erro amigável, quando aplicável",
            "nullable": true
          }
        }
      },
      "ApiValidateUrlRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Url": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiResponseOfApiCustomObjectiveConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomObjectiveConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiCustomObjectiveConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiObjective"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "HasCustomerMaxCompletion": {
                "type": "boolean"
              },
              "CustomerMaxCompletion": {
                "type": "integer",
                "format": "int32"
              },
              "ShowOnWidgetAndLandingPage": {
                "type": "boolean"
              },
              "IconUrl": {
                "type": "string",
                "nullable": true
              },
              "CardTitle": {
                "type": "string",
                "nullable": true
              },
              "CardDescription": {
                "type": "string",
                "nullable": true
              },
              "SetActionButton": {
                "type": "boolean"
              },
              "ActionButtonText": {
                "type": "string",
                "nullable": true
              },
              "ActionButtonUrl": {
                "type": "string",
                "nullable": true
              },
              "CustomObjectiveId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "TenantId": {
                "type": "integer",
                "format": "int32"
              },
              "Guid": {
                "type": "string",
                "format": "guid"
              }
            }
          }
        ]
      },
      "ApiObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Active": {
                "type": "boolean"
              },
              "AmountOfPoints": {
                "type": "integer",
                "format": "int32"
              },
              "Type": {
                "$ref": "#/components/schemas/ObjectiveType"
              },
              "OnTierBenefit": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiTierBenefit"
                  }
                ]
              },
              "NotifyCustomerWhenPointIsGiven": {
                "type": "boolean"
              },
              "EmailLinkType": {
                "$ref": "#/components/schemas/CustomerCommunicationType"
              },
              "ThirdPartyEmailLinkType": {
                "$ref": "#/components/schemas/ThirdPartyEmailType"
              },
              "Title": {
                "type": "string",
                "nullable": true
              },
              "Description": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiTierBenefit": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Type": {
                "$ref": "#/components/schemas/TierBenefitType"
              },
              "Cashback": {
                "$ref": "#/components/schemas/ApiTierBenefitCashback"
              },
              "Point": {
                "$ref": "#/components/schemas/ApiTierBenefitPoint"
              },
              "Text": {
                "$ref": "#/components/schemas/ApiTierBenefitText"
              },
              "Reward": {
                "$ref": "#/components/schemas/ApiTierBenefitReward"
              },
              "TierId": {
                "type": "integer",
                "format": "int32"
              },
              "Title": {
                "type": "string",
                "nullable": true
              },
              "FrontEndTempId": {
                "type": "string"
              }
            }
          }
        ]
      },
      "TierBenefitType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Cashback",
          "Reward",
          "Points",
          "Text"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "ApiTierBenefitCashback": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PointValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "MinValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "MaxValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "MaxPayment": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "ApiTierBenefitPoint": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Objective": {
            "$ref": "#/components/schemas/ObjectiveType"
          },
          "PurchaseValueSpendToPoint": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "AmountOfPoints": {
            "type": "integer",
            "format": "int32"
          },
          "IsPointBased": {
            "type": "boolean"
          },
          "DiscountType": {
            "$ref": "#/components/schemas/RewardType"
          },
          "DiscountValue": {
            "type": "integer",
            "format": "int32"
          },
          "CumulativeDiscount": {
            "type": "boolean"
          },
          "CodePrefix": {
            "type": "string",
            "nullable": true
          },
          "MinimalValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "RewardType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "PercentDiscountCoupon",
          "ValueDiscountCoupon",
          "FreightDiscountCoupon",
          "PointToCashback",
          "Customized",
          "ProductDiscount"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ]
      },
      "ApiTierBenefitText": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Value": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiTierBenefitReward": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "RewardConfigurationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/RewardType"
          },
          "Points": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Value": {
            "type": "number",
            "format": "decimal"
          },
          "IsActive": {
            "type": "boolean"
          },
          "CustomTitle": {
            "type": "string",
            "nullable": true
          },
          "Title": {
            "type": "string"
          }
        }
      },
      "ThirdPartyEmailType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "FriendReferralPoints",
          "Others"
        ],
        "enum": [
          0,
          1
        ]
      },
      "BaseApiListResultOfApiCustomObjectiveBonificationImportFile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomObjectiveBonificationImportFile"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomObjectiveBonificationImportFile": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "FileName": {
                "type": "string"
              },
              "FileUrl": {
                "type": "string",
                "nullable": true
              },
              "UserId": {
                "type": "integer",
                "format": "int32"
              },
              "UserName": {
                "type": "string",
                "nullable": true
              },
              "UserEmail": {
                "type": "string",
                "nullable": true
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "TotalItems": {
                "type": "integer",
                "format": "int32"
              },
              "TotalErrors": {
                "type": "integer",
                "format": "int32"
              },
              "ProcessedItems": {
                "type": "integer",
                "format": "int32"
              },
              "HasErrors": {
                "type": "boolean"
              },
              "IsCanceled": {
                "type": "boolean"
              },
              "CanceledAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiPoint": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPoint"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiPoint": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Type": {
                "$ref": "#/components/schemas/PointType"
              },
              "EventDate": {
                "type": "string",
                "format": "date-time"
              },
              "Points": {
                "type": "integer",
                "format": "int32"
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32"
              },
              "Customer": {
                "$ref": "#/components/schemas/ApiCustomer"
              },
              "ObjectiveId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "AdminUserId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "Reason": {
                "type": "string",
                "nullable": true
              },
              "ParentId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "Title": {
                "type": "string"
              },
              "Metadatas": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPointMetadata"
                }
              },
              "PointDetails": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiPointDetails"
                }
              },
              "IsRemoved": {
                "type": "boolean"
              },
              "EventKey": {
                "type": "string"
              },
              "SendCustomerPointChangeNotification": {
                "type": "boolean"
              },
              "CustomerEmailConfigurationId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "ExpirationCommunicationSentDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "LinkedPointId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "PointType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Purchase",
          "Signup",
          "Birthday",
          "Ordinary",
          "Reward",
          "Review",
          "Refund",
          "Expire",
          "Referral",
          "SocialMediaFollowFacebook",
          "SocialMediaFollowInstagram",
          "PartialOrderRefund",
          "Quiz",
          "CustomObjective",
          "ReferralAffiliate",
          "SocialMediaFollowLinkedin",
          "SocialMediaFollowTikTok",
          "Campaign",
          "Participation",
          "Fitness"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19
        ]
      },
      "ApiPointMetadata": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          }
        }
      },
      "ApiPointDetails": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          },
          "PointId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiEMillenniumConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "EM_URL": {
            "type": "string"
          },
          "EM_PORT": {
            "type": "string"
          },
          "EM_USER": {
            "type": "string"
          },
          "EM_PASSWORD": {
            "type": "string"
          },
          "SelectedFiliais": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiEmilleniumFiliais"
            }
          },
          "AvailableFiliais": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiEmilleniumFiliais"
            }
          }
        }
      },
      "ApiEmilleniumFiliais": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Cod_filial": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiEMillenniumConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiEMillenniumConfigModel"
              }
            ]
          }
        }
      },
      "ApiEMillenniumFaturamentosConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "EM_URL": {
            "type": "string"
          },
          "EM_PORT": {
            "type": "string"
          },
          "EM_USER": {
            "type": "string"
          },
          "EM_PASSWORD": {
            "type": "string"
          },
          "SelectedFiliais": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiEmilleniumFiliais"
            }
          },
          "AvailableFiliais": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiEmilleniumFiliais"
            }
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiEMillenniumFaturamentosConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiEMillenniumFaturamentosConfigModel"
              }
            ]
          }
        }
      },
      "ApiResponseOfApiExternalApiCredential": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiExternalApiCredential"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiExternalApiCredential": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "IsActive": {
                "type": "boolean"
              },
              "IsPrivate": {
                "type": "boolean"
              },
              "Usage": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ExternalApiCredentialUsage"
                  }
                ]
              },
              "ApiToken": {
                "type": "string"
              },
              "ApiKey": {
                "type": "string",
                "nullable": true
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "ExternalApiCredentialUsage": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Undefined",
          "Ecommerce",
          "Pdv",
          "Reports",
          "Other"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "ApiGenerateCredential": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "IsPrivate": {
            "type": "boolean"
          },
          "Usage": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiCredentialUsage"
              }
            ]
          },
          "Length": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "UseOriginalKeyAsExternalCode": {
            "type": "boolean",
            "description": "For POS apps that send the redeem OriginalKey as the order Coupon: also enables the tenant setting that links them."
          }
        }
      },
      "BaseApiListResultOfApiExternalApiCredential": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiExternalApiCredential"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiFbitsIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TokenFbits": {
            "type": "string"
          },
          "TokenStorefrontFbits": {
            "type": "string",
            "nullable": true
          },
          "CheckoutActive": {
            "type": "boolean"
          },
          "CheckoutMode": {
            "$ref": "#/components/schemas/ApiFbitsPlatformCheckoutMode"
          }
        }
      },
      "ApiFbitsPlatformCheckoutMode": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "WakeWallet",
          "BonifiqIntegrated",
          "BonifiqRate"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiFbitsIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiFbitsIntegrationConfigModel"
              }
            ]
          }
        }
      },
      "WakeAliquotaResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ProdutoVarianteId": {
            "type": "integer",
            "format": "int32"
          },
          "Valor": {
            "type": "number",
            "format": "decimal"
          },
          "Nome": {
            "type": "string"
          },
          "CentroDistribuicaoId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "FbitsRateCallbackRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "string",
            "nullable": true
          },
          "Produtos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FbitsRateProduto"
            }
          },
          "Usuario": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/FbitsRateUsuario"
              }
            ]
          },
          "ValorTotal": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "FbitsRateProduto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ProdutoVarianteId": {
            "type": "integer",
            "format": "int32"
          },
          "Sku": {
            "type": "string",
            "nullable": true
          },
          "Quantidade": {
            "type": "integer",
            "format": "int32"
          },
          "PrecoPor": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "PrecoDe": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "CentroDistribuicaoId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "FbitsRateUsuario": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Cpf": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Nome": {
            "type": "string",
            "nullable": true
          },
          "PessoaJuridica": {
            "type": "boolean"
          },
          "InscricaoEstadual": {
            "type": "boolean"
          }
        }
      },
      "ApiFitnessObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiObjective"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Challenges": {
                "type": "array",
                "description": "Desafios do objetivo fitness",
                "items": {
                  "$ref": "#/components/schemas/ApiFitnessChallenge"
                }
              }
            }
          }
        ]
      },
      "ApiFitnessChallenge": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "FitnessObjectiveId": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "BonusPoints": {
            "type": "integer",
            "format": "int32"
          },
          "LimitParticipation": {
            "type": "boolean"
          },
          "ParticipationLimit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CriteriaType": {
            "$ref": "#/components/schemas/FitnessCriteriaType"
          },
          "GoalValue": {
            "type": "number",
            "format": "decimal"
          },
          "GoalType": {
            "$ref": "#/components/schemas/FitnessGoalType"
          },
          "RecurrenceType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/FitnessRecurrenceType"
              }
            ]
          },
          "OnlyOneActivityPerDay": {
            "type": "boolean"
          },
          "RequireGpsOrHeartRate": {
            "type": "boolean"
          },
          "StartDate": {
            "type": "string",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "format": "date-time"
          },
          "Active": {
            "type": "boolean"
          },
          "NotifyCustomerWhenPointIsGiven": {
            "type": "boolean"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "Activities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiFitnessChallengeActivity"
            }
          }
        }
      },
      "FitnessCriteriaType": {
        "type": "integer",
        "description": "Tipo de critério para o desafio fitness",
        "x-enumNames": [
          "TotalDistance",
          "ActiveDays"
        ],
        "enum": [
          1,
          2
        ]
      },
      "FitnessGoalType": {
        "type": "integer",
        "description": "Tipo de meta do desafio fitness",
        "x-enumNames": [
          "SingleGoal",
          "RecurringGoal"
        ],
        "enum": [
          1,
          2
        ]
      },
      "FitnessRecurrenceType": {
        "type": "integer",
        "description": "Tipo de recorrência para metas recorrentes",
        "x-enumNames": [
          "Weekly",
          "Monthly"
        ],
        "enum": [
          1,
          2
        ]
      },
      "ApiFitnessChallengeActivity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "FitnessChallengeId": {
            "type": "integer",
            "format": "int32"
          },
          "ActivityType": {
            "$ref": "#/components/schemas/StravaActivityType"
          }
        }
      },
      "StravaActivityType": {
        "type": "integer",
        "description": "Tipos de atividade do Strava (oficial)\nAtividades marcadas com [SupportsDistance(true)] medem distância em km.\nAtividades marcadas com [SupportsDistance(false)] só contam como dias ativos.",
        "x-enumNames": [
          "AlpineSki",
          "BackcountrySki",
          "Badminton",
          "Canoeing",
          "Crossfit",
          "EBikeRide",
          "Elliptical",
          "EMountainBikeRide",
          "Golf",
          "GravelRide",
          "Handcycle",
          "HighIntensityIntervalTraining",
          "Hike",
          "IceSkate",
          "InlineSkate",
          "Kayaking",
          "Kitesurf",
          "MountainBikeRide",
          "NordicSki",
          "Pickleball",
          "Pilates",
          "Racquetball",
          "Ride",
          "RockClimbing",
          "RollerSki",
          "Rowing",
          "Run",
          "Sail",
          "Skateboard",
          "Snowboard",
          "Snowshoe",
          "Soccer",
          "Squash",
          "StairStepper",
          "StandUpPaddling",
          "Surfing",
          "Swim",
          "TableTennis",
          "Tennis",
          "TrailRun",
          "Velomobile",
          "VirtualRide",
          "VirtualRow",
          "VirtualRun",
          "Walk",
          "WeightTraining",
          "Wheelchair",
          "Windsurf",
          "Workout",
          "Yoga"
        ],
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          46,
          47,
          48,
          49,
          50
        ]
      },
      "ApiStravaActivityOption": {
        "type": "object",
        "description": "DTO para representar uma opção de atividade do Strava para uso em selects",
        "additionalProperties": false,
        "properties": {
          "Value": {
            "type": "integer",
            "description": "Valor do enum (para enviar ao backend)",
            "format": "int32"
          },
          "Code": {
            "type": "string",
            "description": "Código/nome técnico da atividade (ex: \"Run\", \"Ride\")"
          },
          "Label": {
            "type": "string",
            "description": "Label amigável para exibição no frontend (ex: \"Corrida\", \"Ciclismo\")"
          },
          "ActivityType": {
            "description": "Tipo da atividade do Strava",
            "oneOf": [
              {
                "$ref": "#/components/schemas/StravaActivityType"
              }
            ]
          },
          "SupportsDistance": {
            "type": "boolean",
            "description": "Indica se a atividade suporta medição de distância.\nSe false, a atividade só conta como dias ativos."
          }
        }
      },
      "GlobalSettings": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "GlobalKey": {
                "type": "string"
              },
              "GlobalValue": {
                "type": "string"
              },
              "GlobalCategory": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseEntity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiGoogleAnalyticsPropertySave": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PropertyId": {
            "type": "string"
          }
        }
      },
      "ApiPointSourceReportParams": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "From": {
            "type": "string",
            "format": "date-time"
          },
          "To": {
            "type": "string",
            "format": "date-time"
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "TravelOnly": {
            "type": "boolean"
          },
          "UseOptimizedFlow": {
            "type": "boolean",
            "nullable": true
          },
          "ReportType": {
            "$ref": "#/components/schemas/ReportType"
          }
        }
      },
      "ReportType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "TravelSource",
          "TravelOnly",
          "RemovedOnly",
          "SourceTravel",
          "ExpiredSource"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "ApiHubSpotTenantLinkStatus": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CurrentTenant": {
            "$ref": "#/components/schemas/ApiTenant"
          },
          "CompanyTenantIdProperty": {
            "type": "string"
          },
          "IsConfigured": {
            "type": "boolean"
          },
          "ConfigurationError": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "$ref": "#/components/schemas/ApiHubSpotTenantLinkState"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Companies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiHubSpotCompanySummary"
            }
          }
        }
      },
      "ApiTenant": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Url": {
            "type": "string"
          },
          "Sector": {
            "type": "string",
            "nullable": true
          },
          "SubSector": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiHubSpotTenantLinkState": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "NotLinked",
          "Linked",
          "DuplicateConflict"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiHubSpotCompanySummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CompanyId": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "Domain": {
            "type": "string",
            "nullable": true
          },
          "Website": {
            "type": "string",
            "nullable": true
          },
          "TenantIdValue": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiHubSpotTenantLinkRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CompanyId": {
            "type": "string"
          }
        }
      },
      "ApiInovartiConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "INOVARTI_URL": {
            "type": "string"
          },
          "INOVARTI_USERNAME": {
            "type": "string"
          },
          "INOVARTI_APIKEY": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiInovartiConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiInovartiConfigModel"
              }
            ]
          }
        }
      },
      "ApiIntegrationSetup": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IntegrationSetup": {
            "$ref": "#/components/schemas/IntegrationSetup"
          },
          "Icon": {
            "type": "string"
          },
          "IsConnected": {
            "type": "boolean"
          },
          "UrlPath": {
            "type": "string"
          }
        }
      },
      "IntegrationSetup": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "GA",
          "Online",
          "Offline",
          "ProductCatalog"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "ApiIrrobaConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IRROBA_USERNAME": {
            "type": "string"
          },
          "IRROBA_PASSWORD": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiIrrobaConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiIrrobaConfigModel"
              }
            ]
          }
        }
      },
      "ApiIssueResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiIssueResultItem"
            }
          },
          "HasIssues": {
            "type": "boolean"
          }
        }
      },
      "ApiIssueResultItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IssueType": {
            "$ref": "#/components/schemas/IssueType"
          },
          "Message": {
            "type": "string"
          },
          "ExtraInfo": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "Seveverity": {
            "$ref": "#/components/schemas/IssueSeveverity"
          },
          "Link": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiIssueResultItemLink"
              }
            ]
          }
        }
      },
      "IssueType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "General",
          "RewardPregenCouponNonAvailable",
          "SecurityUsersWithouLogin"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "IssueSeveverity": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Error"
        ],
        "enum": [
          0
        ]
      },
      "ApiIssueResultItemLink": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Caption": {
            "type": "string"
          },
          "Url": {
            "type": "string"
          }
        }
      },
      "ApiJetCommerceConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "JET_INTEGRATIONKEY": {
            "type": "string"
          },
          "JET_STORE_ID": {
            "type": "string"
          },
          "JET_ORDER_USERNAME": {
            "type": "string"
          },
          "JET_ORDER_PASSWORD": {
            "type": "string"
          },
          "JET_PRODUCT_USERNAME": {
            "type": "string"
          },
          "JET_PRODUCT_PASSWORD": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiJetCommerceConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiJetCommerceConfigModel"
              }
            ]
          }
        }
      },
      "ApiResponseOfApiJudgeMeAuthorizationResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiJudgeMeAuthorizationResponse"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiJudgeMeAuthorizationResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AuthorizationUrl": {
            "type": "string"
          }
        }
      },
      "ApiJudgeMeAuthorizationRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ReturnUrl": {
            "type": "string"
          }
        }
      },
      "ApiResponseOfApiKonfidencyKeysValidationResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiKonfidencyKeysValidationResponse"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiKonfidencyKeysValidationResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AccessToken": {
            "type": "string"
          },
          "Scope": {
            "type": "string"
          },
          "ExpiresIn": {
            "type": "integer",
            "format": "int32"
          },
          "TokenType": {
            "type": "string"
          }
        }
      },
      "ApiKonfidencyKeysValidationRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Customer": {
            "type": "string",
            "nullable": true
          },
          "ClientId": {
            "type": "string",
            "nullable": true
          },
          "ClientSecret": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiLandingPageCustomization": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Settings": {
            "type": "string"
          }
        }
      },
      "ApiLinxCommerceConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "LINX_LAYER_URL": {
            "type": "string"
          },
          "LINX_BASIC_AUTHENTICATION": {
            "type": "string"
          },
          "LINX_QUEUE_ALIAS": {
            "type": "string"
          },
          "LINX_CASHBACK_PASSWORD": {
            "type": "string"
          },
          "LINX_PUBLIC_KEY": {
            "type": "string"
          },
          "AvailableSalesChannel": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLinxSalesChannel"
            }
          },
          "SelectedSalesChannel": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLinxSalesChannel"
            }
          }
        }
      },
      "ApiLinxSalesChannel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "WebSiteId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiLinxCommerceConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiLinxCommerceConfigModel"
              }
            ]
          }
        }
      },
      "ApiLiveCommerceConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ClientId": {
            "type": "string"
          },
          "AppKey": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiLiveCommerceConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiLiveCommerceConfigModel"
              }
            ]
          }
        }
      },
      "ApiLojaIntegradaIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "LI_APIKEY": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiLojaIntegradaIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiLojaIntegradaIntegrationConfigModel"
              }
            ]
          }
        }
      },
      "LojaIntegradaAppInstallResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "token": {
            "type": "string"
          },
          "redirect": {
            "type": "string"
          }
        }
      },
      "LojaIntegradaAppInstall": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "cliente_nome": {
            "type": "string",
            "nullable": true
          },
          "name_customer": {
            "type": "string",
            "nullable": true
          },
          "cliente_telefone": {
            "type": "string",
            "nullable": true
          },
          "cliente_email": {
            "type": "string",
            "nullable": true
          },
          "loja_nome": {
            "type": "string",
            "nullable": true
          },
          "loja_dominio": {
            "type": "string",
            "nullable": true
          },
          "loja_apelido": {
            "type": "string",
            "nullable": true
          },
          "chave_api": {
            "type": "string"
          },
          "plano_nome": {
            "type": "string",
            "nullable": true
          },
          "plano_indice": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "conta_id": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiMagazordIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Token": {
            "type": "string"
          },
          "Password": {
            "type": "string"
          },
          "URL": {
            "type": "string"
          },
          "AvailableSalesChannel": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiMagazordSalesChannel"
            }
          },
          "SelectedSalesChannel": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "ApiMagazordSalesChannel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Nome": {
            "type": "string"
          },
          "Id": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiMagazordIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiMagazordIntegrationConfigModel"
              }
            ]
          }
        }
      },
      "ApiMagentoConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "MG_URL": {
            "type": "string"
          },
          "MG_URL_DOMAIN": {
            "type": "string"
          },
          "MG_USER": {
            "type": "string"
          },
          "MG_PASSWORD": {
            "type": "string"
          },
          "AvailableWebsites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiMagentoWebsite"
            }
          },
          "SelectedWebsites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiMagentoWebsite"
            }
          }
        }
      },
      "ApiMagentoWebsite": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Code": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "DefaultGroupId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiMagentoConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiMagentoConfigModel"
              }
            ]
          }
        }
      },
      "ApiManageAdditionalBonuses": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "StartDate": {
                "type": "string",
                "format": "date-time"
              },
              "EndDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "AdditionalBonuses": {
                "type": "integer",
                "format": "int32"
              },
              "FlagEndDateBonuses": {
                "type": "boolean"
              },
              "IsActive": {
                "type": "boolean"
              },
              "Reason": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiMonthlyBonificationSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "MonthYear": {
            "type": "string"
          },
          "TotalAdditionalBonuses": {
            "type": "integer",
            "format": "int32"
          },
          "TotalBonificationPoints": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "MeResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TenantId": {
            "type": "integer",
            "format": "int32"
          },
          "TenantName": {
            "type": "string"
          },
          "UserFullName": {
            "type": "string"
          },
          "IM": {
            "type": "boolean"
          },
          "Email": {
            "type": "string"
          },
          "TenantSite": {
            "type": "string"
          }
        }
      },
      "ApiMicrovixConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "MICROVIX_KEY": {
            "type": "string"
          },
          "MICROVIX_IDPORTAL": {
            "type": "string",
            "nullable": true
          },
          "MICROVIX_CNPJ": {
            "type": "string",
            "nullable": true
          },
          "MICROVIX_CNPJList": {
            "type": "string",
            "nullable": true
          },
          "Stores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiMicrovixStore"
            }
          },
          "SelectedStores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiMicrovixStore"
            }
          },
          "CNPJs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "IdPortais": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ApiMicrovixStore": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CNPJ": {
            "type": "string"
          },
          "nome_empresa": {
            "type": "string"
          },
          "id_empresas_rede": {
            "type": "string"
          },
          "rede": {
            "type": "string"
          },
          "portal": {
            "type": "string"
          },
          "nome_portal": {
            "type": "string"
          },
          "empresa": {
            "type": "string"
          },
          "lojas_proprias": {
            "type": "string"
          },
          "classificacao_portal": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiMicrovixConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiMicrovixConfigModel"
              }
            ]
          }
        }
      },
      "ApiResponseOfApiObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiObjective"
                  }
                ]
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiAdvancedRule": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiAdvancedRule"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiAdvancedRule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "description": "Espelho de API da regra avançada (AdvancedRule).\nUsado pelas telas de \"Regras extras → Avançadas\".",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Description": {
                "type": "string",
                "nullable": true
              },
              "ShowOnWidgetAndLandingPage": {
                "type": "boolean"
              },
              "IconUrl": {
                "type": "string",
                "nullable": true
              },
              "CardTitle": {
                "type": "string",
                "nullable": true
              },
              "CardDescription": {
                "type": "string",
                "nullable": true
              },
              "SetActionButton": {
                "type": "boolean"
              },
              "ActionButtonText": {
                "type": "string",
                "nullable": true
              },
              "ActionButtonUrl": {
                "type": "string",
                "nullable": true
              },
              "RewardType": {
                "$ref": "#/components/schemas/AdvancedRuleRewardType"
              },
              "RewardValue": {
                "type": "number",
                "format": "decimal"
              },
              "RewardDisplay": {
                "type": "string",
                "description": "Recompensa formatada para exibição, sem zeros à direita (ex.: \"10%\" ou \"R$ 10\")."
              },
              "StartDate": {
                "type": "string",
                "format": "date-time"
              },
              "EndDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "DaysToGrantPoints": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "HasExpiration": {
                "type": "boolean"
              },
              "ExpirationDays": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "MinimumOrderValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "HasParticipationLimit": {
                "type": "boolean"
              },
              "ParticipationLimit": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "ParticipationCount": {
                "type": "integer",
                "format": "int32"
              },
              "NotCumulativeWithPurchaseObjective": {
                "type": "boolean"
              },
              "IsActive": {
                "type": "boolean"
              },
              "LastActivationDate": {
                "type": "string",
                "description": "Momento da última ativação (UTC), carimbado pelo backend. Nulo = nunca ativada.",
                "format": "date-time",
                "nullable": true
              },
              "Status": {
                "description": "Status derivado de IsActive + LastActivationDate + período\n(StartDate/EndDate), para exibição em listagens. Espelha a mesma\nregra que o filtro de listagem aplica no backend\n(ApiAdvancedRuleService.ApplyStatusFilter) — o filtro precisa ser uma Expression traduzível\npara SQL e por isso não consegue reusar este getter; os testes de status garantem que não divirjam.",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ExtraPointsStatus"
                  }
                ]
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "Guid": {
                "type": "string",
                "format": "guid"
              },
              "TenantId": {
                "type": "integer",
                "format": "int32"
              },
              "Products": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiAdvancedRuleProduct"
                }
              },
              "Brands": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiAdvancedRuleBrand"
                }
              },
              "Categories": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiAdvancedRuleCategory"
                }
              },
              "PaymentMethods": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiAdvancedRulePaymentMethod"
                }
              },
              "Branches": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiAdvancedRuleBranch"
                }
              },
              "TradePolicies": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiAdvancedRuleTradePolicy"
                }
              },
              "Channels": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiAdvancedRuleChannel"
                }
              },
              "PurchaseAmount": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiAdvancedRulePurchaseAmount"
                  }
                ]
              },
              "Segments": {
                "type": "array",
                "description": "Segmentos de consumidores elegíveis. Vazio significa \"todos os consumidores\" (default).",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiAdvancedRuleSegment"
                }
              }
            }
          }
        ]
      },
      "AdvancedRuleRewardType": {
        "type": "integer",
        "description": "Tipo de recompensa de uma regra avançada (Motor de Regras Avançadas).",
        "x-enumNames": [
          "Percentage",
          "FixedValue"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ExtraPointsStatus": {
        "type": "integer",
        "description": "Status derivado de objetivo de pontos extras para fins de listagem/filtro.\nCalculado a partir de IsActive + datas\n(StartDate/EndDate).",
        "x-enumNames": [
          "Online",
          "Sketch",
          "Scheduled",
          "Completed",
          "Paused"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "ApiAdvancedRuleProduct": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "ProductId": {
            "type": "integer",
            "format": "int32"
          },
          "Product": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiProduct"
              }
            ]
          },
          "RuleGuid": {
            "type": "string",
            "format": "guid",
            "nullable": true
          }
        }
      },
      "ApiProduct": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "description": "Product Model",
            "additionalProperties": false,
            "properties": {
              "Title": {
                "type": "string",
                "description": "Product Name"
              },
              "Url": {
                "type": "string",
                "description": "Direct url to the product on the client store.",
                "nullable": true
              },
              "ImageUrl": {
                "type": "string",
                "description": "Product img url.",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean"
              },
              "ProductPrice": {
                "type": "number",
                "description": "Product price.",
                "format": "decimal",
                "nullable": true
              },
              "ProductDiscountPrice": {
                "type": "number",
                "description": "Product discount price (promotional price).",
                "format": "decimal",
                "nullable": true
              },
              "ProductBrandId": {
                "type": "integer",
                "description": "Brand Id.",
                "format": "int32",
                "nullable": true
              },
              "ProductBrand": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiProductBrand"
                  }
                ]
              },
              "ProductCategoryId": {
                "type": "integer",
                "description": "Category Id.",
                "format": "int32",
                "nullable": true
              },
              "ProductCategory": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiProductCategory"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiProductBrand": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "Name"
            ],
            "properties": {
              "Name": {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              "DateCreated": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "ApiProductCategory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "Name"
            ],
            "properties": {
              "DateCreated": {
                "type": "string",
                "format": "date-time"
              },
              "Name": {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              "Description": {
                "type": "string",
                "nullable": true
              },
              "ParentCategoryId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "Subcategories": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiProductCategory"
                }
              }
            }
          }
        ]
      },
      "ApiAdvancedRuleBrand": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "ProductBrandId": {
            "type": "integer",
            "format": "int32"
          },
          "ProductBrand": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiProductBrand"
              }
            ]
          }
        }
      },
      "ApiAdvancedRuleCategory": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "ProductCategoryId": {
            "type": "integer",
            "format": "int32"
          },
          "ProductCategory": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiProductCategory"
              }
            ]
          }
        }
      },
      "ApiAdvancedRulePaymentMethod": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "PaymentMethodId": {
            "type": "integer",
            "format": "int32"
          },
          "PaymentMethodType": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "PaymentMethod": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiPaymentMethod"
              }
            ]
          }
        }
      },
      "PaymentMethodType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Online",
          "Offline"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ApiPaymentMethod": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "description": "Payment method used in a purchase. Can be used to create rules for extra point",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string",
                "description": "Name of the Payment Method"
              },
              "DateCreated": {
                "type": "string",
                "format": "date-time"
              },
              "Origin": {
                "$ref": "#/components/schemas/OrderOrigin"
              }
            }
          }
        ]
      },
      "OrderOrigin": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Integration",
          "API",
          "Import",
          "PDV",
          "OfflineIntegration"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "ApiAdvancedRuleBranch": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "BranchId": {
            "type": "integer",
            "format": "int32"
          },
          "Branch": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiBranch"
              }
            ]
          }
        }
      },
      "ApiAdvancedRuleTradePolicy": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "TradePolicyId": {
            "type": "integer",
            "format": "int32"
          },
          "TradePolicy": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiTradePolicy"
              }
            ]
          }
        }
      },
      "ApiTradePolicy": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "Name"
            ],
            "properties": {
              "Name": {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              "DateCreated": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "ApiAdvancedRuleChannel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "Channel": {
            "$ref": "#/components/schemas/OrderOrigin"
          }
        }
      },
      "ApiAdvancedRulePurchaseAmount": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "MinimumAmount": {
            "type": "number",
            "format": "decimal"
          },
          "MaximumAmount": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "ApiAdvancedRuleSegment": {
        "type": "object",
        "description": "Público da regra: segmento de consumidores elegível. A regra só participa do cálculo\nquando o consumidor pertence a ao menos um dos segmentos; sem segmentos, vale para todos.",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "CustomerSegmentId": {
            "type": "integer",
            "format": "int32"
          },
          "CustomerSegment": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiCustomerSegment"
              }
            ]
          }
        }
      },
      "AdvancedRuleListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Id": {
                "type": "string",
                "description": "Sequência de dígitos procurada dentro do id da regra: \"10\" traz 10, 101, 110 e 1000,\nmas não 120. É string, e não int, para que zeros à esquerda (\"01\") sobrevivam e a\nsequência buscada seja sempre a que o usuário digitou.",
                "nullable": true
              },
              "Name": {
                "type": "string",
                "description": "Busca parcial por nome da regra.",
                "nullable": true
              },
              "Statuses": {
                "type": "array",
                "description": "Status selecionados (OR entre eles).",
                "items": {
                  "$ref": "#/components/schemas/ExtraPointsStatus"
                }
              },
              "ConditionTypes": {
                "type": "array",
                "description": "Tipos de condição selecionados (OR entre eles).",
                "items": {
                  "$ref": "#/components/schemas/AdvancedRuleConditionType"
                }
              }
            }
          }
        ]
      },
      "AdvancedRuleConditionType": {
        "type": "integer",
        "description": "Tipos de condição que uma regra avançada pode ter (lógica AND entre as configuradas).\nUsado no filtro de listagem para selecionar regras que possuem determinado(s) tipo(s) de condição.",
        "x-enumNames": [
          "Product",
          "Brand",
          "Category",
          "TradePolicy",
          "PurchaseAmount",
          "PaymentMethod",
          "Branch"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ]
      },
      "ApiAdvancedRuleOrderStats": {
        "type": "object",
        "description": "Resultado do cálculo sob demanda (lazy-load, por linha) das colunas \"Qtd. de Pedidos\" e\n\"Valor Gerado\" da listagem de Regras Avançadas.",
        "additionalProperties": false,
        "properties": {
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "OrderCount": {
            "type": "integer",
            "format": "int32"
          },
          "GeneratedValue": {
            "type": "number",
            "format": "decimal"
          },
          "IsPartial": {
            "type": "boolean"
          }
        }
      },
      "ApiAdvancedRuleEditLock": {
        "type": "object",
        "description": "Diz se uma regra avançada já está protegida contra edição. O gatilho é único: só a\nexistência de pedido com a regra aplicada trava alguma coisa.",
        "additionalProperties": false,
        "properties": {
          "AdvancedRuleId": {
            "type": "integer",
            "format": "int32"
          },
          "HasGeneratedOrders": {
            "type": "boolean",
            "description": "Já existe pedido com esta regra aplicada. Trava público, exibição no widget, início da\nvigência, o liga/desliga do limite de participação, condições e recompensa. Vem\nverdadeiro também quando a apuração ficou inconclusiva — ver IsInconclusive."
          },
          "IsInconclusive": {
            "type": "boolean",
            "description": "A apuração de pedidos não conseguiu responder. Existe para diagnóstico: a decisão de\nbloqueio já está refletida em HasGeneratedOrders."
          }
        }
      },
      "ApiPurchaseObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiObjective"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "OrderMinimumValue": {
                "type": "number",
                "format": "decimal"
              },
              "OrderPlacementDateStartDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "DaysToWaitToGrantPoints": {
                "type": "integer",
                "format": "int32"
              },
              "HasCustomGrantDelayPerChannel": {
                "type": "boolean"
              },
              "EcommerceDaysToWaitToGrantPoints": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "PdvDaysToWaitToGrantPoints": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "HasPdvIntegration": {
                "type": "boolean",
                "description": "Computed on load, tells the admin UI whether a PDV integration was identified"
              },
              "CanceledStatus": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "CompletedStatus": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "PossibleCanceledStatus": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "PossibleCompletedStatus": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "IsExclusiveStatuses": {
                "type": "boolean"
              },
              "ValueSpendToPoint": {
                "type": "number",
                "description": "For each ValueSpentToPoint reais spent we wil give Points to customer",
                "format": "decimal"
              },
              "MaxPointsPerPurchase": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "HasMaxCashbackPercentageLimit": {
                "type": "boolean"
              },
              "MaxCashbackPercentageLimit": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "Schedules": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPurchaseObjectiveSchedule"
                }
              }
            }
          }
        ]
      },
      "ApiPurchaseObjectiveSchedule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Guid": {
                "type": "string",
                "format": "guid",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean"
              },
              "StartDate": {
                "type": "string",
                "format": "date-time"
              },
              "EndDate": {
                "type": "string",
                "format": "date-time"
              },
              "ExtraPointsMultiplier": {
                "type": "number",
                "format": "decimal"
              },
              "Type": {
                "$ref": "#/components/schemas/PurchaseObjectiveExtraPointsType"
              },
              "PurchaseObjectiveId": {
                "type": "integer",
                "format": "int32"
              },
              "TitleCard": {
                "type": "string",
                "nullable": true
              },
              "TextCard": {
                "type": "string",
                "nullable": true
              },
              "TextButton": {
                "type": "string",
                "nullable": true
              },
              "Logo": {
                "type": "string",
                "nullable": true
              },
              "UrlButton": {
                "type": "string",
                "nullable": true
              },
              "PurchaseProducts": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPurchaseObjectiveProduct"
                }
              },
              "PurchaseProductCategories": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPurchaseObjectiveProductCategory"
                }
              },
              "PurchasePaymentMethod": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiPurchaseObjectivePaymentMethod"
                  }
                ]
              },
              "PurchaseProductBrands": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPurchaseObjectiveProductBrand"
                }
              },
              "PurchaseObjectiveTradePolicies": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPurchaseObjectiveTradePolicy"
                }
              },
              "PurchaseObjectiveBranches": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPurchaseObjectiveBranch"
                }
              },
              "PurchasePurchaseAmount": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiPurchaseObjectivePurchaseAmount"
                  }
                ]
              },
              "ShouldZeroProductPoints": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "PurchaseObjectiveExtraPointsType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Period",
          "Product",
          "PaymentMethod",
          "ProductBrand",
          "ProductCategory",
          "TradePolicy",
          "Branch",
          "PurchaseAmount"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ]
      },
      "ApiPurchaseObjectiveProduct": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ProductId": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseObjectiveScheduleId": {
            "type": "integer",
            "format": "int32"
          },
          "Product": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiProduct"
              }
            ]
          }
        }
      },
      "ApiPurchaseObjectiveProductCategory": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ProductCategoryId": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseObjectiveScheduleId": {
            "type": "integer",
            "format": "int32"
          },
          "ProductCategory": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiProductCategory"
              }
            ]
          }
        }
      },
      "ApiPurchaseObjectivePaymentMethod": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseObjectiveScheduleId": {
            "type": "integer",
            "format": "int32"
          },
          "PaymentMethodId": {
            "type": "integer",
            "format": "int32"
          },
          "PaymentMethodType": {
            "$ref": "#/components/schemas/PaymentMethodType"
          }
        }
      },
      "ApiPurchaseObjectiveProductBrand": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ProductBrandId": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseObjectiveScheduleId": {
            "type": "integer",
            "format": "int32"
          },
          "ProductBrand": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiProductBrand"
              }
            ]
          }
        }
      },
      "ApiPurchaseObjectiveTradePolicy": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "TradePolicyId": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseObjectiveScheduleId": {
            "type": "integer",
            "format": "int32"
          },
          "TradePolicy": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiTradePolicy"
              }
            ]
          }
        }
      },
      "ApiPurchaseObjectiveBranch": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "BranchId": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseObjectiveScheduleId": {
            "type": "integer",
            "format": "int32"
          },
          "Branch": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiBranch"
              }
            ]
          }
        }
      },
      "ApiPurchaseObjectivePurchaseAmount": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseObjectiveScheduleId": {
            "type": "integer",
            "format": "int32"
          },
          "MinimumAmount": {
            "type": "number",
            "format": "decimal"
          },
          "MaximumAmount": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "ApiResponseOfApiPurchaseObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiPurchaseObjective"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiResponseOfApiAdvancedRule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiAdvancedRule"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiResponseOfApiSignupObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiSignupObjective"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiSignupObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiObjective"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "SignupStartDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiResponseOfApiBirthdayObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiBirthdayObjective"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiBirthdayObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiObjective"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "PointBasedBonification": {
                "type": "boolean"
              },
              "HasTimeLimitToBeEligible": {
                "type": "boolean"
              },
              "DaysToBeEligible": {
                "type": "integer",
                "format": "int32"
              },
              "BenefitAndCommunicationSchedule": {
                "$ref": "#/components/schemas/BirthdayBenefitAndCommunicationSchedule"
              },
              "DaysBeforeBirthday": {
                "type": "integer",
                "format": "int32"
              },
              "DiscountType": {
                "$ref": "#/components/schemas/RewardType"
              },
              "DiscountValue": {
                "type": "integer",
                "format": "int32"
              },
              "CumulativeDiscount": {
                "type": "boolean"
              },
              "CodePrefix": {
                "type": "string",
                "nullable": true
              },
              "MinimalValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "CashbackValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "BenefitDelivery": {
                "$ref": "#/components/schemas/BirthdayBenefitDelivery"
              },
              "IsCouponBonification": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "BirthdayBenefitAndCommunicationSchedule": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "MonthOfBirthday",
          "DayOfBirthday",
          "ChoosePeriod"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "BirthdayBenefitDelivery": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "SendDirectly",
          "NotifyAvailability"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ApiResponseOfApiReferralObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiReferralObjective"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiReferralObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiObjective"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "SignupStartDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "DiscountType": {
                "$ref": "#/components/schemas/ReferralDiscountType"
              },
              "ThirdPartyEmailType": {
                "$ref": "#/components/schemas/ThirdPartyEmailType"
              },
              "BonusValueForFriend": {
                "type": "integer",
                "format": "int32"
              },
              "CodePrefix": {
                "type": "string",
                "nullable": true
              },
              "CouponCodeLength": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "CumulativeDiscount": {
                "type": "boolean"
              },
              "MinimalValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "ValidDays": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "ManualCouponGeneration": {
                "type": "boolean"
              },
              "PreGeneratedCouponLists": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPreGeneratedCouponList"
                }
              },
              "ReferralUrl": {
                "type": "string",
                "nullable": true
              },
              "CustomBonusDescription": {
                "type": "string",
                "nullable": true
              },
              "UseAdvancedSecurity": {
                "type": "boolean"
              },
              "WhatsAppShareText": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "ReferralDiscountType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "PercentualValue",
          "FixedValue",
          "Others"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiPreGeneratedCouponList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ListName": {
                "type": "string"
              },
              "ValidDateStart": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ValidDateEnd": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "PreGeneratedCoupons": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPreGeneratedCoupon"
                }
              },
              "IsInternalList": {
                "type": "boolean"
              },
              "CouponsType": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CouponType"
                  }
                ]
              },
              "CouponsValue": {
                "type": "number",
                "format": "decimal"
              },
              "CouponCount": {
                "type": "integer",
                "format": "int32"
              },
              "UsedCoupons": {
                "type": "integer",
                "format": "int32"
              },
              "ReferralObjectiveId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiPreGeneratedCoupon": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "description": "A Pre Generated Coupon is a coupon that exists at ecommerce but is not used yet by any customer\nWhen a customer wants to redeem points for a coupon, BonifiQ choose an available PreGenerate Coupon for these specific customer",
            "additionalProperties": false,
            "properties": {
              "CouponCode": {
                "type": "string"
              },
              "CreatedDate": {
                "type": "string",
                "format": "date-time"
              },
              "IsAssigned": {
                "type": "boolean"
              },
              "CouponType": {
                "$ref": "#/components/schemas/CouponType"
              },
              "CouponValue": {
                "type": "number",
                "format": "decimal"
              },
              "ValidDateStart": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ValidDateEnd": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "CouponId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "PreGeneratedCouponListId": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "CouponType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "FixedValue",
          "Percent",
          "FreeShipping",
          "DiscountShipping",
          "Others"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "ApiResponseOfApiReviewObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiReviewObjective"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiReviewObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiObjective"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "MaxPossiblePoints": {
                "type": "integer",
                "format": "int32"
              },
              "StartDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ProviderCompany": {
                "$ref": "#/components/schemas/ReviewProviderCompany"
              },
              "ModeratedOnly": {
                "type": "boolean"
              },
              "UseStoreReviews": {
                "type": "boolean"
              },
              "UseExtraPointsForPhotos": {
                "type": "boolean"
              },
              "ExtraPointsForPhotos": {
                "type": "integer",
                "format": "int32"
              },
              "UseExtraPointsForComment": {
                "type": "boolean"
              },
              "ExtraPointsForComment": {
                "type": "integer",
                "format": "int32"
              },
              "UseExtraPointsForVideo": {
                "type": "boolean"
              },
              "ExtraPointsForVideo": {
                "type": "integer",
                "format": "int32"
              },
              "UseMaxObjectiveCompletions": {
                "type": "boolean"
              },
              "MaxObjectiveCompletions": {
                "type": "integer",
                "format": "int32"
              },
              "UseDaysBetweenCompletions": {
                "type": "boolean"
              },
              "DaysBetweenCompletions": {
                "type": "integer",
                "format": "int32"
              },
              "YourviewsApiPublicKey": {
                "type": "string",
                "nullable": true
              },
              "YourviewsApiUser": {
                "type": "string",
                "nullable": true
              },
              "YourviewsApiPassword": {
                "type": "string",
                "nullable": true
              },
              "YourviewsToken": {
                "type": "string",
                "nullable": true
              },
              "KonfidencyCustomer": {
                "type": "string",
                "nullable": true
              },
              "KonfidencyClientId": {
                "type": "string",
                "nullable": true
              },
              "KonfidencyClientSecret": {
                "type": "string",
                "nullable": true
              },
              "JudgeMeShopDomain": {
                "type": "string",
                "nullable": true
              },
              "JudgeMeAccessToken": {
                "type": "string",
                "nullable": true
              },
              "JudgeMeRefreshToken": {
                "type": "string",
                "nullable": true
              },
              "JudgeMeTokenExpiresAtUtc": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "TrustVoxStoreId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "TrustVoxToken": {
                "type": "string",
                "nullable": true
              },
              "VerifiedOnly": {
                "type": "boolean"
              },
              "IsProviderConfigured": {
                "type": "boolean"
              },
              "VtexReviewUse": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "ReviewProviderCompany": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Yourviews",
          "Trustvox",
          "Konfidency",
          "JudgeMe",
          "VTEX",
          "Wake"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ]
      },
      "ApiResponseOfApiSocialMediaInstagramObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiSocialMediaInstagramObjective"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiSocialMediaInstagramObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiSocialMediaObjectiveBase"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ActionButtonURL": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiSocialMediaObjectiveBase": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiObjective"
          },
          {
            "type": "object",
            "x-abstract": true,
            "additionalProperties": false,
            "properties": {
              "IdAccount": {
                "type": "string",
                "nullable": true
              },
              "ActionButtonURL": {
                "type": "string"
              },
              "ObjectiveName": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiResponseOfApiSocialMediaFacebookObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiSocialMediaFacebookObjective"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiSocialMediaFacebookObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiSocialMediaObjectiveBase"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ActionButtonURL": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiResponseOfApiSocialMediaLinkedinObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiSocialMediaLinkedinObjective"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiSocialMediaLinkedinObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiSocialMediaObjectiveBase"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ActionButtonURL": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiResponseOfApiSocialMediaTikTokObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiSocialMediaTikTokObjective"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiSocialMediaTikTokObjective": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiSocialMediaObjectiveBase"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ActionButtonURL": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiResponseOfApiSocialMediaObjectiveBase": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiSocialMediaObjectiveBase"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiPurchaseBonusSimulationResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PurchaseBonusSimulationResult"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CashbackActive": {
                "type": "boolean"
              },
              "EstimatedCashbackPercentage": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "OrderTotalUsed": {
                "type": "number",
                "format": "decimal"
              },
              "ProductLinesTotal": {
                "type": "number",
                "format": "decimal"
              },
              "Warnings": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "RuleDetails": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiPurchaseExtraPointDetails"
                }
              }
            }
          }
        ]
      },
      "ApiPurchaseExtraPointDetails": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/PointCalculationType"
          },
          "SingleMessage": {
            "type": "string"
          },
          "Messages": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ScheduleIds": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "SegmentTags": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PointCalculationType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Base",
          "Tier",
          "ExtraPointsSchedule",
          "ExtraPointsPerProduct",
          "MaxPointsPerPurchase",
          "GambiarraPointsPerPaymentMethod",
          "ExtraPointsPerPaymentMethod",
          "ExtraPointsPerProductBrand",
          "ExtraPointsProductCategory",
          "ExtraPointsPerTradePolicy",
          "ExtraPointsPerBranch",
          "ForceZeroPoints",
          "ExtraPointsPerPurchaseAmount",
          "IgnoredProductsZeroPoints",
          "MaxCashbackPercentagePerPurchase",
          "AdvancedRule"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15
        ]
      },
      "PurchaseBonusSimulationResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "SimulationSucceeded": {
            "type": "boolean"
          },
          "GenerateBonus": {
            "type": "boolean"
          },
          "EstimatedPoints": {
            "type": "integer",
            "format": "int32"
          },
          "EstimatedCashback": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "ApiPurchaseBonusSimulationRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPurchaseBonusSimulationProductRequest"
            }
          },
          "BranchId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ProductCategoryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PurchaseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ProductBrandId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "TradePolicyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PurchaseTotal": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "PaymentMethodId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "ApiPurchaseBonusSimulationProductRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ProductId": {
            "type": "integer",
            "format": "int32"
          },
          "Quantity": {
            "type": "integer",
            "format": "int32"
          },
          "UnitValue": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "BaseApiListResultOfApiPurchaseObjective": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPurchaseObjective"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "PurchaseObjectiveListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Active": {
                "type": "boolean",
                "nullable": true
              },
              "Type": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PurchaseObjectiveExtraPointsType"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiOfflineConfig": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IsActive": {
            "type": "boolean"
          },
          "OverrideOTPNumber": {
            "type": "string"
          },
          "OTPSMSIsActive": {
            "type": "boolean"
          },
          "OTPEmailIsActive": {
            "type": "boolean"
          }
        }
      },
      "ApiOmieConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Itens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOmieConfigModelItem"
            }
          }
        }
      },
      "ApiOmieConfigModelItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OMIE_BRANCHID": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "OMIE_APP_KEY": {
            "type": "string"
          },
          "OMIE_APP_SECRET": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiOmieConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiOmieConfigModel"
              }
            ]
          }
        }
      },
      "ApiOnboarding": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ObjectiveIsCompleted": {
            "type": "boolean"
          },
          "CustomizationIsCompleted": {
            "type": "boolean"
          },
          "RewardIsCompleted": {
            "type": "boolean"
          },
          "IntegrationConfigIsCompleted": {
            "type": "boolean"
          },
          "ProgramPointIsActive": {
            "type": "boolean"
          },
          "GoogleAnalyticsIsCompleted": {
            "type": "boolean"
          }
        }
      },
      "BaseApiListResultOfApiOrder": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOrder"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiOrder": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "description": "Purchase Order model",
            "additionalProperties": false,
            "properties": {
              "OrderPlacementDate": {
                "type": "string",
                "description": "Date of the customer's purchase. ",
                "format": "date-time"
              },
              "OrderCompletedDate": {
                "type": "string",
                "description": "Date the order reached the completed state (usually it's invoiced or delivered).",
                "format": "date-time",
                "nullable": true
              },
              "OrderCancelledDate": {
                "type": "string",
                "description": "if the order is cancelled, contains the date.",
                "format": "date-time",
                "nullable": true
              },
              "OrderStatus": {
                "type": "string",
                "description": "Status at the client's order system."
              },
              "IsCancelledOrReturned": {
                "type": "boolean",
                "description": "if true the order was cancelled or returned."
              },
              "IsCompleted": {
                "type": "boolean",
                "description": "If true it means the order has reached its final status and points can be awarded to the consumer."
              },
              "OrderTotal": {
                "type": "number",
                "description": "Can be used at Loyalty Programs. Important: these values should not include Shipping costs.",
                "format": "decimal"
              },
              "Customer": {
                "description": "Buyer registration.",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomer"
                  }
                ]
              },
              "Products": {
                "type": "array",
                "description": "Products listed on the order.",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiOrderProduct"
                }
              },
              "UpdatedDate": {
                "type": "string",
                "description": "the date from the last update on this order.",
                "format": "date-time"
              },
              "Coupon": {
                "type": "string",
                "description": "Coupon code used on this order.",
                "nullable": true
              },
              "State": {
                "description": "Order State: 0=Inicial, 1= Pendente, 2=Completo, 3=Cancelado, 4=Ignorado",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OrderState"
                  }
                ]
              },
              "Origin": {
                "description": "How this order was integrated into BonifiQ\n0 = Order Integration with ecommerce platform\n1 = External API\n2 = File import",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OrderOrigin"
                  }
                ]
              },
              "Metadatas": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiOrderMetadata"
                }
              },
              "TenantSalesmanId": {
                "type": "integer",
                "description": "Tenant Salesman Id",
                "format": "int32",
                "nullable": true
              },
              "TenantSalesman": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiTenantSalesman"
                  }
                ]
              },
              "BranchId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "Branch": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiBranch"
                  }
                ]
              },
              "PaymentMethod": {
                "description": "The payment method used in this purchase. Can be used later for extra points rules.",
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiPaymentMethod"
                  }
                ]
              },
              "PaymentMethodId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RewardId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "TradePolicy": {
                "description": "Trade Policy associated with this order.",
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiTradePolicy"
                  }
                ]
              },
              "TradePolicyId": {
                "type": "integer",
                "description": "Foreign key for TradePolicy.",
                "format": "int32",
                "nullable": true
              },
              "PlatformOrderCancelledDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ConvertedStatus": {
                "type": "string",
                "description": "When the platform status is different from the status list",
                "nullable": true
              },
              "ExternalCoupon": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiOrderProduct": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ProductsId": {
            "type": "integer",
            "format": "int32"
          },
          "OrdersId": {
            "type": "integer",
            "format": "int32"
          },
          "ProductPrice": {
            "type": "number",
            "format": "decimal"
          },
          "Quantity": {
            "type": "integer",
            "description": "Quantity of products in the order, used to send to other applications",
            "format": "int32",
            "nullable": true
          },
          "UnitPrice": {
            "type": "number",
            "description": "Price of each product in the order, used to send to other applications",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "OrderState": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Initial",
          "Pending",
          "Completed",
          "Cancelled",
          "Ignored"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "ApiOrderMetadata": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "OrderId": {
                "type": "integer",
                "format": "int32"
              },
              "Name": {
                "type": "string"
              },
              "Value": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiTenantSalesman": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Store": {
                "type": "string"
              },
              "Branch": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiBranch"
                  }
                ]
              },
              "BranchId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiOrderListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "OrderStatus": {
                "type": "string",
                "nullable": true
              },
              "State": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "IdPedido": {
                "type": "string",
                "nullable": true
              },
              "EmailCliente": {
                "type": "string",
                "nullable": true
              },
              "CustomerName": {
                "type": "string",
                "nullable": true
              },
              "CustomerDoc": {
                "type": "string",
                "nullable": true
              },
              "CustomerPhone": {
                "type": "string",
                "nullable": true
              },
              "From": {
                "type": "string",
                "format": "date-time"
              },
              "To": {
                "type": "string",
                "format": "date-time"
              },
              "DateFilterType": {
                "$ref": "#/components/schemas/OrderDateFilterType"
              },
              "PointType": {
                "$ref": "#/components/schemas/PointType"
              },
              "Origin": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string"
                }
              },
              "Branch": {
                "type": "string",
                "nullable": true
              },
              "Title": {
                "type": "string",
                "nullable": true
              },
              "PageToken": {
                "type": "string",
                "nullable": true
              },
              "QueryExecutionId": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "OrderDateFilterType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "OrderPlacementDate",
          "DateCreated",
          "UpdatedDate"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "BaseApiListResultOfApiCustomerTimeLine": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomerTimeLine"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomerTimeLine": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Timestamp": {
                "type": "string",
                "format": "date-time"
              },
              "Context": {},
              "Type": {
                "type": "string"
              }
            }
          }
        ]
      },
      "CustomerTimeLineFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CustomerId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "OriginalId": {
                "type": "string",
                "nullable": true
              },
              "TypesToExclude": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/TimeLineType"
                }
              },
              "OrderStates": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/OrderState"
                }
              },
              "IncludeOrderPointEarningState": {
                "type": "boolean",
                "nullable": true
              },
              "ExcludeOrdersWithPurchasePoint": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "TimeLineType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Points",
          "Tiers",
          "Orders",
          "Segments"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "BaseApiListResultOfApiSalesReportTableRow": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiSalesReportTableRow"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiSalesReportTableRow": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "OrderPlacementDate": {
                "type": "string",
                "format": "date-time"
              },
              "DateCreated": {
                "type": "string",
                "format": "date-time"
              },
              "UpdatedDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "OriginalId": {
                "type": "string"
              },
              "OrderTotal": {
                "type": "number",
                "format": "decimal"
              },
              "Coupon": {
                "type": "string",
                "nullable": true
              },
              "State": {
                "$ref": "#/components/schemas/OrderState"
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32"
              },
              "CustomerName": {
                "type": "string"
              },
              "CustomerEmail": {
                "type": "string"
              },
              "CustomerDocument": {
                "type": "string"
              },
              "CashValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiResponseOfApiOrder": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiOrder"
                  }
                ]
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiOrderImportFile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOrderImportFile"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiOrderImportFile": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "FileName": {
                "type": "string"
              },
              "FileUrl": {
                "type": "string",
                "nullable": true
              },
              "UserId": {
                "type": "integer",
                "format": "int32"
              },
              "UserName": {
                "type": "string",
                "nullable": true
              },
              "UserEmail": {
                "type": "string",
                "nullable": true
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "TotalItems": {
                "type": "integer",
                "format": "int32"
              },
              "TotalErrors": {
                "type": "integer",
                "format": "int32"
              },
              "ProcessedItems": {
                "type": "integer",
                "format": "int32"
              },
              "HasErrors": {
                "type": "boolean"
              },
              "RowsCount": {
                "type": "integer",
                "format": "int32"
              },
              "IsProcessed": {
                "type": "boolean"
              },
              "IsCanceled": {
                "type": "boolean"
              },
              "CanceledAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ResultMessages": {
                "type": "string"
              },
              "ImportKey": {
                "type": "string",
                "format": "guid"
              }
            }
          }
        ]
      },
      "ApiParticipationCampaign": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "TenantId": {
                "type": "integer",
                "format": "int32"
              },
              "Name": {
                "type": "string"
              },
              "Description": {
                "type": "string",
                "nullable": true
              },
              "IconUrl": {
                "type": "string",
                "nullable": true
              },
              "RewardType": {
                "$ref": "#/components/schemas/ParticipationRewardType"
              },
              "TotalQuantityAvailable": {
                "type": "integer",
                "format": "int32"
              },
              "RewardValidityDeadline": {
                "type": "string",
                "format": "date-time"
              },
              "RewardValidityType": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ParticipationRewardValidityType"
                  }
                ]
              },
              "RewardValidityDays": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "MinimumPurchaseValue": {
                "type": "number",
                "format": "decimal"
              },
              "RewardUsageInstructions": {
                "type": "string"
              },
              "OnlyForNewCustomers": {
                "type": "boolean"
              },
              "StartDate": {
                "type": "string",
                "format": "date-time"
              },
              "EndDate": {
                "type": "string",
                "format": "date-time"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "Guid": {
                "type": "string",
                "format": "guid"
              },
              "Active": {
                "type": "boolean"
              },
              "AmountOfPoints": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "WalletBalanceAmount": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "CouponPrefix": {
                "type": "string",
                "nullable": true
              },
              "NotifyCustomerWhenPointIsGiven": {
                "type": "boolean"
              },
              "ParticipationObjectiveId": {
                "type": "integer",
                "format": "int32"
              },
              "Status": {
                "description": "Status calculado da campanha baseado em Active, StartDate, EndDate e quantidade disponível.\nEste campo não é armazenado no banco de dados.\nPode ser sobrescrito externamente quando necessário (ex: quando quantidade disponível é atingida).",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ParticipationCampaignStatus"
                  }
                ]
              },
              "Statistics": {
                "description": "Estatísticas da campanha (novos cadastros, recompensas concedidas e vendas geradas)",
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiParticipationCampaignStatistics"
                  }
                ]
              }
            }
          }
        ]
      },
      "ParticipationRewardType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Points",
          "WalletBalance",
          "AutoGeneratedCoupon",
          "ImportedCoupon"
        ],
        "enum": [
          1,
          2,
          3,
          4
        ]
      },
      "ParticipationRewardValidityType": {
        "type": "integer",
        "description": "Modalidade do prazo de validade da recompensa de uma campanha de participação.",
        "x-enumNames": [
          "FixedDate",
          "Days"
        ],
        "enum": [
          1,
          2
        ]
      },
      "ParticipationCampaignStatus": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Inactive",
          "Scheduled",
          "Active",
          "Expired",
          "Paused"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "ApiParticipationCampaignStatistics": {
        "type": "object",
        "description": "Estatísticas de uma campanha de participação",
        "additionalProperties": false,
        "properties": {
          "NewRegistrations": {
            "type": "integer",
            "description": "Número de novos cadastros originados por esta campanha",
            "format": "int32"
          },
          "RewardsGranted": {
            "type": "integer",
            "description": "Número total de recompensas concedidas nesta campanha",
            "format": "int32"
          },
          "TotalGranted": {
            "type": "number",
            "description": "Valor total efetivamente concedido como recompensa nesta campanha.",
            "format": "decimal"
          },
          "GeneratedSales": {
            "type": "number",
            "description": "Valor total das vendas geradas por clientes originados desta campanha",
            "format": "decimal"
          },
          "OrderCount": {
            "type": "integer",
            "description": "Número de pedidos realizados por clientes originados desta campanha",
            "format": "int32"
          }
        }
      },
      "ParticipationCampaignExportFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ParticipationCampaignId": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "ApiParticipationRegistrationRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Cpf": {
            "type": "string"
          },
          "FullName": {
            "type": "string"
          },
          "Phone": {
            "type": "string"
          },
          "Email": {
            "type": "string"
          },
          "BirthDate": {
            "type": "string",
            "format": "date-time"
          },
          "TermsAccepted": {
            "type": "boolean"
          },
          "webClientIP": {
            "type": "string",
            "nullable": true
          },
          "webClientFingerprint": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiResponseOfListOfApiPaymentMethod": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPaymentMethod"
                }
              }
            }
          }
        ]
      },
      "ApiPdvConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Domain": {
                "type": "string"
              },
              "IsActive": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "ApiResponseOfApiPdvConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiPdvConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiPdvUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Username": {
                "type": "string"
              },
              "Password": {
                "type": "string",
                "nullable": true
              },
              "Name": {
                "type": "string"
              },
              "Store": {
                "type": "string",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean"
              },
              "TenantSalesmanId": {
                "type": "integer",
                "format": "int32"
              },
              "BranchId": {
                "type": "string"
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiPdvUser": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPdvUser"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "PdvUserListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "PartialUsername": {
                "type": "string",
                "nullable": true
              },
              "PartialName": {
                "type": "string",
                "nullable": true
              },
              "PartialStore": {
                "type": "string",
                "nullable": true
              },
              "BranchId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiResponseOfApiPdvUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiPdvUser"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiResponseOfPdvPagedListResultOfApiPdvUserActionHistory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PdvPagedListResultOfApiPdvUserActionHistory"
                  }
                ]
              }
            }
          }
        ]
      },
      "PdvPagedListResultOfApiPdvUserActionHistory": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPdvUserActionHistory"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiPdvUserActionHistory": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Operation": {
            "type": "string"
          },
          "Customer": {
            "type": "string"
          },
          "Date": {
            "type": "string",
            "format": "date-time"
          },
          "PdvUserStore": {
            "type": "string",
            "nullable": true
          },
          "PdvUserUsername": {
            "type": "string",
            "nullable": true
          },
          "PdvSalesmanName": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/PdvSalesHistoryType"
          },
          "GroupType": {
            "$ref": "#/components/schemas/PdvSalesHistoryTypeGroup"
          }
        }
      },
      "PdvSalesHistoryType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "OrderCreated",
          "OrderCancelled",
          "RewardRedeemedFixedValue",
          "RewardRedeemedPercentage",
          "RewardRedeemedCashback",
          "RewardRedeemedCustom",
          "RewardCancelledFixedValue",
          "RewardCancelledPercentage",
          "RewardCancelledCashback",
          "RewardCancelledCustom"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ]
      },
      "PdvSalesHistoryTypeGroup": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "OrderCreated",
          "OrderCancelled",
          "RewardRedeemed",
          "RewardCancelled"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "PdvUserActionHistoryListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "PdvUserIds": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "SelectedPdvUsers": {
                "type": "string",
                "nullable": true
              },
              "CustomerName": {
                "type": "string",
                "nullable": true
              },
              "Action": {
                "type": "integer",
                "format": "int32"
              },
              "CustomerEmail": {
                "type": "string",
                "nullable": true
              },
              "CustomerPhone": {
                "type": "string",
                "nullable": true
              },
              "CustomerDocument": {
                "type": "string",
                "nullable": true
              },
              "Page": {
                "type": "integer",
                "format": "int32"
              },
              "Limit": {
                "type": "integer",
                "format": "int32"
              },
              "Asc": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "ApiPlatformCapability": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CouponCanBeCumulative": {
            "type": "boolean"
          },
          "HasDaysLimit": {
            "type": "boolean"
          },
          "CanAssociateCouponWithCustomer": {
            "type": "boolean"
          },
          "CanRedeemCashbackInWidget": {
            "type": "boolean"
          },
          "CashbackCanHaveMinimumPurchaseValue": {
            "type": "boolean"
          },
          "CashbackCanSetMaxPurchaseValue": {
            "type": "boolean"
          },
          "CashbackCanSetPercentOfPurchase": {
            "type": "boolean"
          },
          "CanCreateCouponInAPI": {
            "type": "boolean"
          },
          "UseSecondaryIdForWidgetLogin": {
            "type": "boolean"
          },
          "ThrowErrorSecondaryIdForWidgetLogin": {
            "type": "boolean"
          },
          "UseValidationTokenForWidgetLogin": {
            "type": "boolean"
          },
          "CanSearchForProduct": {
            "type": "boolean"
          },
          "CanBonifiQCancelExpiredCoupons": {
            "type": "boolean"
          },
          "CanRuleTradePolicy": {
            "type": "boolean"
          },
          "SearchCouponByOriginalId": {
            "type": "boolean"
          },
          "CanAuthenticateWithOAuth2": {
            "type": "boolean"
          },
          "CanRulePaymentPolicy": {
            "type": "boolean"
          },
          "HasBranchOrders": {
            "type": "boolean"
          }
        }
      },
      "OrderStatusResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "DefaultCanceledStatus": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "DefaultCompletedStatus": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "PossibleCanceledStatus": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "PossibleCompletedStatus": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AffiliateBalanceResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Balance": {
            "type": "number",
            "format": "decimal"
          },
          "TotalReceived": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "BaseApiListResultOfApiPointCampaign": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPointCampaign"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiPointCampaign": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CampaignName": {
                "type": "string",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean"
              },
              "Clicks": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "CriteriaType": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ReactivationCriteriaType"
                  }
                ]
              },
              "RoundUpPoints": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "UseMinimumExpiredPoints": {
                "type": "boolean",
                "nullable": true
              },
              "MinimumExpiredPoints": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "FilterByLastPurchase": {
                "type": "boolean",
                "nullable": true
              },
              "LastPurchaseOnOrAfter": {
                "type": "string",
                "format": "date",
                "nullable": true
              },
              "FilterNeverPurchased": {
                "type": "boolean",
                "nullable": true
              },
              "ExpirationFilterMode": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ExpirationFilterMode"
                  }
                ]
              },
              "ExpirationStartDate": {
                "type": "string",
                "format": "date",
                "nullable": true
              },
              "ExpirationEndDate": {
                "type": "string",
                "format": "date",
                "nullable": true
              },
              "CampaignStartAt": {
                "type": "string",
                "format": "date-time"
              },
              "CampaignEndAt": {
                "type": "string",
                "format": "date-time"
              },
              "ReactivationAt": {
                "type": "string",
                "format": "date-time"
              },
              "ReactivatedBalanceExpiresAt": {
                "type": "string",
                "format": "date-time"
              },
              "Communications": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiPointCampaignCommunication"
                }
              },
              "CreatedOn": {
                "type": "string",
                "format": "date-time"
              },
              "UpdatedOn": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "CreatedBy": {
                "type": "string",
                "nullable": true
              },
              "UpdatedBy": {
                "type": "string",
                "nullable": true
              },
              "SalesAmount": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "SalesCount": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "EstimatedAffectedCustomers": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "ReactivationCriteriaType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "All",
          "RoundUp"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ExpirationFilterMode": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "All",
          "BetweenDates"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ApiPointCampaignCommunication": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "PointCampaignId": {
                "type": "integer",
                "format": "int32"
              },
              "Period": {
                "$ref": "#/components/schemas/PointCampaignCommunicationTrigger"
              },
              "HasReminderDays": {
                "type": "boolean"
              },
              "ReminderDays": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "EmailEnabled": {
                "type": "boolean"
              },
              "WhatsAppEnabled": {
                "type": "boolean"
              },
              "SmsEnabled": {
                "type": "boolean"
              },
              "CommunicationType": {
                "$ref": "#/components/schemas/CustomerCommunicationType"
              }
            }
          }
        ]
      },
      "PointCampaignCommunicationTrigger": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "OnReactivationDay",
          "ReminderAfterCampaignStartDays",
          "OneDayBeforeCampaignEnd"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiResponseOfApiPointCampaign": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiPointCampaign"
                  }
                ]
              }
            }
          }
        ]
      },
      "PointCampaignPreviewResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerCount": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPoints": {
            "type": "integer",
            "format": "int32"
          },
          "EstimatedAffectedCustomers": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiPointCampaignAffectedCustomer": {
        "type": "object",
        "description": "Cliente afetado por campanha de reativação de pontos, com dados para listagem e exportação (planilha).",
        "additionalProperties": false,
        "properties": {
          "NomeDaMarca": {
            "type": "string",
            "nullable": true
          },
          "NomeDoCliente": {
            "type": "string",
            "nullable": true
          },
          "EmailDoCliente": {
            "type": "string",
            "nullable": true
          },
          "DocumentoDoCliente": {
            "type": "string",
            "nullable": true
          },
          "PontosExpirados": {
            "type": "integer",
            "format": "int32"
          },
          "DataDaUltimaCompra": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "DiasSemComprar": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "FaixaDeDiasSemComprar": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiPointCampaignOrderStats": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CampaignId": {
            "type": "integer",
            "format": "int32"
          },
          "CampaignStartAt": {
            "type": "string",
            "format": "date-time"
          },
          "CampaignEndAt": {
            "type": "string",
            "format": "date-time"
          },
          "OrderCount": {
            "type": "integer",
            "description": "Total de pedidos realizados pelos clientes participantes da campanha durante o período da campanha.\nExclui pedidos Cancelados e Ignorados.",
            "format": "int32"
          },
          "OrderTotal": {
            "type": "number",
            "description": "Soma dos valores (OrderTotal) dos pedidos realizados durante o período da campanha.",
            "format": "decimal"
          },
          "CustomerCount": {
            "type": "integer",
            "description": "Número de clientes distintos que realizaram ao menos um pedido durante o período da campanha.",
            "format": "int32"
          }
        }
      },
      "ApiPointExpirationConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "IsExpirable": {
                "type": "boolean"
              },
              "DaysToExpire": {
                "type": "integer",
                "format": "int32",
                "maximum": 2147483647.0,
                "minimum": 1.0
              },
              "SendExpirationEmailNotification": {
                "type": "boolean"
              },
              "DaysBeforeSendExpirationEmail": {
                "type": "integer",
                "format": "int32",
                "maximum": 2147483647.0,
                "minimum": 1.0
              },
              "AmauntToSendExpirationEmail": {
                "type": "integer",
                "format": "int32",
                "maximum": 2147483647.0,
                "minimum": 1.0
              },
              "SendPointUsableEmailNotification": {
                "type": "boolean"
              },
              "SendCouponUsedEmailNotification": {
                "type": "boolean"
              },
              "ResendPointUsableEmailInDays": {
                "type": "integer",
                "format": "int32"
              },
              "ResendCouponUsedEmailInDays": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "ApiResponseOfApiPointExpirationConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiPointExpirationConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "PointsListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "IdCustomer": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "PublicCustomerId": {
                "type": "string",
                "format": "guid",
                "nullable": true
              },
              "OriginalId": {
                "type": "string",
                "nullable": true
              },
              "IncludeCanceled": {
                "type": "boolean",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiCustomerPointToExpire": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "EventDate": {
                "type": "string",
                "format": "date-time"
              },
              "Points": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "ApiPurchaseCalculationDetails": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PurchaseDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPurchaseExtraPointDetails"
            }
          },
          "PartialCancelValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "PartialCancelProducts": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ApiPartialCancelProductDetail"
            }
          },
          "Metadatas": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ApiPointMetadata"
            }
          }
        }
      },
      "ApiPartialCancelProductDetail": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ProductId": {
            "type": "integer",
            "format": "int32"
          },
          "ProductOriginalId": {
            "type": "string",
            "nullable": true
          },
          "ProductName": {
            "type": "string",
            "nullable": true
          },
          "ProductPrice": {
            "type": "number",
            "format": "decimal"
          },
          "Quantity": {
            "type": "integer",
            "format": "int32"
          },
          "ProductPoints": {
            "type": "integer",
            "format": "int32"
          },
          "RefundedValue": {
            "type": "number",
            "format": "decimal"
          },
          "RefundedPoints": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiResponseOfApiPreGeneratedCouponList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiPreGeneratedCouponList"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiPreGeneratedCouponListImport": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CouponList": {
            "$ref": "#/components/schemas/ApiPreGeneratedCouponList"
          },
          "Coupons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "BaseApiListResultOfApiPreGeneratedCouponList": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPreGeneratedCouponList"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "PreGeneratedCouponFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "RewardId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "ObjectiveId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "ProductBrandListResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Brands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiProductBrand"
            }
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiProductCatalogIntegration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "FileUrl": {
                "type": "string",
                "nullable": true
              },
              "EnableAllCommunication": {
                "type": "boolean",
                "nullable": true
              },
              "UserName": {
                "type": "string",
                "nullable": true
              },
              "UserEmail": {
                "type": "string",
                "nullable": true
              },
              "UserId": {
                "type": "integer",
                "format": "int32"
              },
              "LastIntegrationRun": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "UpdatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiValidateXmlFromUrlRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Url": {
            "type": "string"
          }
        }
      },
      "ApiResponseOfListOfApiProductCategory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiProductCategory"
                }
              }
            }
          }
        ]
      },
      "ApiProductsListResponse": {
        "type": "object",
        "description": "Response model for paginated product list",
        "additionalProperties": false,
        "properties": {
          "Products": {
            "type": "array",
            "description": "List of products in the current page",
            "items": {
              "$ref": "#/components/schemas/ApiProduct"
            }
          },
          "TotalCount": {
            "type": "integer",
            "description": "Total number of products matching the filters",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "description": "Current page number",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Number of items per page",
            "format": "int32"
          },
          "TotalPages": {
            "type": "integer",
            "description": "Total number of pages",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "Indicates if there is a next page"
          },
          "HasPreviousPage": {
            "type": "boolean",
            "description": "Indicates if there is a previous page"
          }
        }
      },
      "ApiProductListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Title": {
                "type": "string",
                "description": "Filter by product title",
                "nullable": true
              },
              "ProductBrandId": {
                "type": "integer",
                "description": "Filter by product brand id",
                "format": "int32",
                "nullable": true
              },
              "ProductCategoryId": {
                "type": "integer",
                "description": "Filter by product category id",
                "format": "int32",
                "nullable": true
              },
              "Ids": {
                "type": "array",
                "description": "Restrict to these product ids",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Page": {
                "type": "integer",
                "description": "Page number",
                "format": "int32"
              },
              "PageSize": {
                "type": "integer",
                "description": "Page size",
                "format": "int32"
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiPurchaseObjectiveProductImportFile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPurchaseObjectiveProductImportFile"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiPurchaseObjectiveProductImportFile": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Id": {
                "type": "integer",
                "format": "int32"
              },
              "ScheduleGuid": {
                "type": "string",
                "format": "guid"
              },
              "FileName": {
                "type": "string"
              },
              "FileUrl": {
                "type": "string"
              },
              "UserId": {
                "type": "integer",
                "format": "int32"
              },
              "UserName": {
                "type": "string"
              },
              "UserEmail": {
                "type": "string"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "RowsCount": {
                "type": "integer",
                "format": "int32"
              },
              "ProcessedRows": {
                "type": "integer",
                "format": "int32"
              },
              "ErrorRows": {
                "type": "integer",
                "format": "int32"
              },
              "IsProcessed": {
                "type": "boolean"
              },
              "IsCanceled": {
                "type": "boolean"
              },
              "CanceledAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ResultMessages": {
                "type": "string"
              },
              "HasErrors": {
                "type": "boolean"
              },
              "ImportKey": {
                "type": "string",
                "format": "guid"
              },
              "LastProcessedRow": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "ApiQrCodeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Base64PngQrCodeString": {
            "type": "string"
          }
        }
      },
      "ApiQrCodeRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Content": {
            "type": "string"
          },
          "PixelsPerModule": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiResponseOfApiQuiz": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiQuiz"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiQuiz": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiObjective"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "AnswerControl": {
                "$ref": "#/components/schemas/QuizAnswerControl"
              },
              "StartDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "EndDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "MaxAnswers": {
                "type": "integer",
                "format": "int32"
              },
              "HasCustomerMaxAttempts": {
                "type": "boolean"
              },
              "CustomerMaxAttempts": {
                "type": "integer",
                "format": "int32"
              },
              "IsTierRestricted": {
                "type": "boolean"
              },
              "TierList": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiTier"
                }
              },
              "QuestionList": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiQuizQuestion"
                }
              },
              "Terminated": {
                "type": "boolean"
              },
              "Active": {
                "type": "boolean"
              },
              "AmountOfPoints": {
                "type": "integer",
                "format": "int32"
              },
              "NotifyCustomerWhenPointIsGiven": {
                "type": "boolean"
              },
              "QuizObjectiveId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "UID": {
                "type": "string",
                "nullable": true
              },
              "HasQrCode": {
                "type": "boolean",
                "nullable": true
              },
              "ShowInChannels": {
                "type": "boolean"
              },
              "TotalFullyAnswered": {
                "type": "integer",
                "format": "int32"
              },
              "TenantId": {
                "type": "integer",
                "format": "int32"
              },
              "IsCompleted": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "QuizAnswerControl": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "None",
          "ByPeriod",
          "ByAnswer"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiTier": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Color": {
                "type": "string"
              },
              "IconUrl": {
                "type": "string"
              },
              "IsActive": {
                "type": "boolean"
              },
              "IsBase": {
                "type": "boolean"
              },
              "Order": {
                "type": "integer",
                "format": "int32"
              },
              "CustomerCount": {
                "type": "integer",
                "format": "int32"
              },
              "Identifier": {
                "type": "string"
              },
              "Caption": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiQuizQuestion": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Question": {
                "type": "string"
              },
              "Order": {
                "type": "integer",
                "format": "int32"
              },
              "Type": {
                "$ref": "#/components/schemas/QuizQuestionType"
              },
              "QuizId": {
                "type": "integer",
                "format": "int32"
              },
              "Options": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiQuizQuestionOption"
                }
              },
              "Identifier": {
                "type": "string"
              },
              "IsDeleted": {
                "type": "boolean"
              },
              "IsAnswered": {
                "type": "boolean"
              },
              "TenantId": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "QuizQuestionType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "MultipleChoice",
          "SelectionBox",
          "OpenAnswer"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiQuizQuestionOption": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "QuestionId": {
                "type": "integer",
                "format": "int32"
              },
              "Text": {
                "type": "string"
              },
              "Order": {
                "type": "integer",
                "format": "int32"
              },
              "IsCorrect": {
                "type": "boolean"
              },
              "CustomerAnswers": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiQuizCustomerAnswer"
                }
              },
              "TenantId": {
                "type": "integer",
                "format": "int32"
              },
              "IsDeleted": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "ApiQuizCustomerAnswer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CustomerId": {
                "type": "integer",
                "format": "int32"
              },
              "QuizQuestionId": {
                "type": "integer",
                "format": "int32"
              },
              "Options": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiQuizQuestionOption"
                }
              },
              "OpenAnswer": {
                "type": "string",
                "nullable": true
              },
              "Customer": {
                "$ref": "#/components/schemas/ApiCustomer"
              },
              "QuizQuestion": {
                "$ref": "#/components/schemas/ApiQuizQuestion"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "QuizAttempt": {
                "type": "integer",
                "format": "int32"
              },
              "Guid": {
                "type": "string",
                "format": "guid"
              }
            }
          }
        ]
      },
      "ApiQuota": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Chanel": {
                "$ref": "#/components/schemas/CommunicationChannel"
              },
              "Type": {
                "$ref": "#/components/schemas/QuotaType"
              },
              "InitialDate": {
                "type": "string",
                "format": "date-time"
              },
              "FinalDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "Amount": {
                "type": "integer",
                "format": "int32"
              },
              "IsActive": {
                "type": "boolean"
              },
              "Used": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "QuotaType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Monthly",
          "Punctual"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ApiReportDataFilter": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PointReportGroupingType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PointReportGroupType"
              }
            ]
          },
          "From": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "To": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ClientOffsetMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CustomerEmail": {
            "type": "string",
            "nullable": true
          },
          "CustomerName": {
            "type": "string",
            "nullable": true
          },
          "CustomerDoc": {
            "type": "string",
            "nullable": true
          },
          "Origin": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "Branch": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "PointType": {
            "$ref": "#/components/schemas/PointType"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PointReportGroupType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Daily",
          "Monthly",
          "Yearly",
          "Weekly",
          "Smart"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "ApiPointChartPaperData": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Title": {
            "type": "string"
          },
          "DisplayFormat": {
            "type": "string"
          },
          "Value": {
            "type": "number",
            "format": "double"
          },
          "Context": {
            "$ref": "#/components/schemas/ApexChartItemContext"
          }
        }
      },
      "ApexChartItemContext": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Selected": {
            "type": "boolean"
          },
          "DisplayFormat": {
            "type": "string"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApexChartItem"
            }
          }
        }
      },
      "ApexChartItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "XValue": {},
          "YValue": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "ApiPointCashbackSwitchData": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "WalletPaper": {
            "$ref": "#/components/schemas/ApiPointChartPaperData"
          },
          "UsedPaper": {
            "$ref": "#/components/schemas/ApiPointChartPaperData"
          }
        }
      },
      "ApiPoints2026SummaryResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomersThatGetPointsCount": {
            "type": "integer",
            "format": "int64"
          },
          "CustomersThatGetRewards": {
            "type": "integer",
            "format": "int64"
          },
          "CustomersThatGetAndUseRewards": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ApiPoints2026TrendResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "BasePointReportData": {
            "$ref": "#/components/schemas/ApiPointReportResult"
          },
          "BaseUsedPaperData": {
            "$ref": "#/components/schemas/ApiPointChartPaperData"
          },
          "BaseExpiredPaperData": {
            "$ref": "#/components/schemas/ApiPointChartPaperData"
          },
          "CashbackSwitchData": {
            "$ref": "#/components/schemas/ApiPointCashbackSwitchData"
          }
        }
      },
      "ApiPointReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ConvertedPoints": {
            "type": "integer",
            "format": "int64"
          },
          "TotalPoints": {
            "type": "integer",
            "format": "int64"
          },
          "NotConvertedPoints": {
            "type": "integer",
            "format": "int64"
          },
          "GeneratedCoupons": {
            "type": "integer",
            "format": "int64"
          },
          "CustomersThatGetPointsCount": {
            "type": "integer",
            "format": "int64"
          },
          "OrderTotalPoints": {
            "type": "integer",
            "format": "int64"
          },
          "CustomersThatGetRewards": {
            "type": "integer",
            "format": "int64"
          },
          "CustomersThatGetAndUseRewards": {
            "type": "integer",
            "format": "int64"
          },
          "GeneratedPointsBarChart": {
            "$ref": "#/components/schemas/ApiReportBarChartResultsOfLong"
          },
          "ConvertedPointsBarChart": {
            "$ref": "#/components/schemas/ApiReportBarChartResultsOfLong"
          }
        }
      },
      "ApiReportBarChartResultsOfLong": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Values": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          }
        }
      },
      "ApiObjectiveReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ObjectiveType": {
            "title": "Objetivo",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ObjectiveType"
              }
            ]
          },
          "ObjectiveName": {
            "type": "string"
          },
          "ClientesUnicos": {
            "title": "Clientes Únicos",
            "type": "integer",
            "format": "int32"
          },
          "ObjetivosCumpridos": {
            "title": "Objetivos Cumpridos",
            "type": "integer",
            "format": "int32"
          },
          "SaldoGerado": {
            "title": "Saldo Gerado",
            "type": "number",
            "format": "double"
          }
        }
      },
      "ApiCouponReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CouponConversionRate": {
            "type": "integer",
            "format": "int32"
          },
          "CouponsUsedOnAOrder": {
            "type": "integer",
            "format": "int32"
          },
          "CouponsNotUsedOnAOrder": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCoupons": {
            "type": "integer",
            "format": "int32"
          },
          "CustomersThatConvertPointsToCoupons": {
            "type": "integer",
            "format": "int32"
          },
          "CustomersThaUsesACouponOnAOrder": {
            "type": "integer",
            "format": "int32"
          },
          "Summaries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCouponReportSummary"
            }
          }
        }
      },
      "ApiCouponReportSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Order": {
            "type": "integer",
            "format": "int32"
          },
          "Value": {
            "type": "string"
          },
          "UsedCount": {
            "type": "number",
            "format": "double"
          },
          "AssignedCount": {
            "type": "number",
            "format": "double"
          },
          "CouponType": {
            "$ref": "#/components/schemas/CouponType"
          }
        }
      },
      "CouponReportDataFilter": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PointReportGroupingType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PointReportGroupType"
              }
            ]
          },
          "CouponTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CouponType"
            }
          },
          "Code": {
            "type": "string",
            "nullable": true
          },
          "From": {
            "type": "string",
            "format": "date-time"
          },
          "To": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BqBarChartBoxPaper": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Title": {
            "type": "string"
          },
          "Tooltips": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Value": {
            "type": "string"
          },
          "Index": {
            "type": "integer",
            "format": "int32"
          },
          "Selected": {
            "type": "boolean"
          },
          "Contexts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApexChartItemContext"
            }
          }
        }
      },
      "ApiEmailReportDateSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Date": {
            "type": "string"
          },
          "TotalSent": {
            "type": "integer",
            "format": "int32"
          },
          "TotalOpen": {
            "type": "integer",
            "format": "int32"
          },
          "TotalClicked": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiEmailReportFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Email": {
                "type": "string",
                "nullable": true
              },
              "From": {
                "type": "string",
                "format": "date-time"
              },
              "To": {
                "type": "string",
                "format": "date-time"
              },
              "EmailLineChartGroup": {
                "$ref": "#/components/schemas/PointReportGroupType"
              },
              "Types": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "ApiTicketReportDateSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Date": {
            "type": "string"
          },
          "BonifiqAverageTicketTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "AverageTicketTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        }
      },
      "ApiCustomerReportDateSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Date": {
            "type": "string"
          },
          "NewCustomerTicketCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CurrentCustomerTicketCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CurrentCustomerTicketSum": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "NewCustomerTicketSum": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        }
      },
      "ApiEmailReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalSent": {
            "type": "integer",
            "format": "int32"
          },
          "TotalOpen": {
            "type": "integer",
            "format": "int32"
          },
          "TotalClicked": {
            "type": "integer",
            "format": "int32"
          },
          "TotalOpenPercent": {
            "type": "number",
            "format": "double"
          },
          "TotalClickedPercent": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "BaseApiListResultOfApiCustomerEmailSent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomerEmailSent"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomerEmailSent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CustomerEmail": {
                "type": "string"
              },
              "CustomerId": {
                "type": "string"
              },
              "CustomerName": {
                "type": "string"
              },
              "SentDate": {
                "type": "string",
                "format": "date-time"
              },
              "Opened": {
                "type": "integer",
                "format": "int32"
              },
              "EmailSentType": {
                "type": "string"
              },
              "Clicked": {
                "type": "integer",
                "format": "int32"
              },
              "Status": {
                "$ref": "#/components/schemas/CustomerEmailSentStatus"
              }
            }
          }
        ]
      },
      "CustomerEmailSentStatus": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Clicked",
          "Opened",
          "Sent"
        ],
        "enum": [
          0,
          1,
          3
        ]
      },
      "ApiGroupingCustomerNotificationSent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "EmailSentType": {
            "type": "string"
          },
          "EmailSentTypeDisplay": {
            "type": "string"
          },
          "SentTotal": {
            "type": "integer",
            "format": "int32"
          },
          "ClickedTotal": {
            "type": "integer",
            "format": "int32"
          },
          "OpenTotal": {
            "type": "integer",
            "format": "int32"
          },
          "DeliveredTotal": {
            "type": "integer",
            "format": "int32"
          },
          "ReadTotal": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiCommunicationReportFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Channel": {
                "$ref": "#/components/schemas/CommunicationChannel"
              },
              "Address": {
                "type": "string",
                "nullable": true
              },
              "From": {
                "type": "string",
                "format": "date-time"
              },
              "To": {
                "type": "string",
                "format": "date-time"
              },
              "CommunicationLineChartGroup": {
                "$ref": "#/components/schemas/PointReportGroupType"
              },
              "StringTypes": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "Types": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CustomerCommunicationType"
                }
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiCustomerCommunicationSentTimeLine": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomerCommunicationSentTimeLine"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomerCommunicationSentTimeLine": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CommunicationDate": {
                "type": "string",
                "format": "date-time"
              },
              "CommunicationSentType": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CustomerCommunicationType"
                  }
                ]
              },
              "CommunicationMessage": {
                "type": "string",
                "nullable": true
              },
              "Channel": {
                "$ref": "#/components/schemas/CommunicationChannel"
              },
              "Clicked": {
                "type": "integer",
                "format": "int32"
              },
              "Opened": {
                "type": "integer",
                "format": "int32"
              },
              "IsUnsubscribe": {
                "type": "boolean"
              },
              "HasError": {
                "type": "boolean"
              },
              "ErrorMessage": {
                "type": "string",
                "nullable": true
              },
              "Status": {
                "$ref": "#/components/schemas/CustomerCommunicationSentStatus"
              }
            }
          }
        ]
      },
      "CustomerCommunicationSentStatus": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Clicked",
          "Opened",
          "Sent",
          "Delivered",
          "Read",
          "Failed"
        ],
        "enum": [
          0,
          1,
          3,
          4,
          5,
          6
        ]
      },
      "CommunicationTimeLineListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "IdCustomer": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "LastDateItem": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "ApiCommunicationReportDateSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Date": {
            "type": "string"
          },
          "TotalSent": {
            "type": "integer",
            "format": "int32"
          },
          "TotalOpen": {
            "type": "integer",
            "format": "int32"
          },
          "TotalClicked": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiCommunicationReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalSent": {
            "type": "integer",
            "format": "int32"
          },
          "TotalOpen": {
            "type": "integer",
            "format": "int32"
          },
          "TotalClicked": {
            "type": "integer",
            "format": "int32"
          },
          "TotalDelivered": {
            "type": "integer",
            "format": "int32"
          },
          "TotalRead": {
            "type": "integer",
            "format": "int32"
          },
          "TotalFailed": {
            "type": "integer",
            "format": "int32"
          },
          "TotalOpenPercent": {
            "type": "number",
            "format": "double"
          },
          "TotalClickedPercent": {
            "type": "number",
            "format": "double"
          },
          "TotalDeliveredPercent": {
            "type": "number",
            "format": "double"
          },
          "TotalReadPercent": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "BaseApiListResultOfApiCustomerCommunicationSent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomerCommunicationSent"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomerCommunicationSent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CustomerAddress": {
                "type": "string"
              },
              "CustomerId": {
                "type": "string"
              },
              "CustomerName": {
                "type": "string"
              },
              "SentDate": {
                "type": "string",
                "format": "date-time"
              },
              "CommunicationSentType": {
                "type": "string"
              },
              "Clicked": {
                "type": "integer",
                "format": "int32"
              },
              "TemplateName": {
                "type": "string",
                "nullable": true
              },
              "IsDelivered": {
                "type": "boolean"
              },
              "IsRead": {
                "type": "boolean"
              },
              "IsFailed": {
                "type": "boolean"
              },
              "ErrorMessage": {
                "type": "string",
                "nullable": true
              },
              "Status": {
                "$ref": "#/components/schemas/CustomerCommunicationSentStatus"
              }
            }
          }
        ]
      },
      "ApiDashboardDataResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "GeneratedPoints": {
            "type": "integer",
            "format": "int32"
          },
          "ConvertedPoints": {
            "type": "integer",
            "format": "int32"
          },
          "TotalSalesValue": {
            "type": "number",
            "format": "double"
          },
          "TotalPendingSalesValue": {
            "type": "number",
            "format": "decimal"
          },
          "TotalCancelledSalesValue": {
            "type": "number",
            "format": "decimal"
          },
          "TotalCompletedSalesValue": {
            "type": "number",
            "format": "decimal"
          },
          "TotalOrdersValue": {
            "type": "number",
            "format": "double"
          },
          "CustomerBalanceList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomer"
            }
          }
        }
      },
      "ApiDashboardDataFilter": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "From": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "To": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "ApiSalesReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalReferralSalesValue": {
            "type": "number",
            "format": "decimal"
          },
          "TotalReferralSales": {
            "type": "integer",
            "format": "int32"
          },
          "TotalSalesValue": {
            "type": "number",
            "format": "decimal"
          },
          "TotalPendingSalesValue": {
            "type": "number",
            "format": "decimal"
          },
          "TotalCompletedSalesValue": {
            "type": "number",
            "format": "decimal"
          },
          "TotalGaSalesValue": {
            "type": "number",
            "format": "decimal"
          },
          "TotalPendingSales": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCompletedSales": {
            "type": "integer",
            "format": "int32"
          },
          "TotalGaSales": {
            "type": "integer",
            "format": "int32"
          },
          "GeneratedSalesValue": {
            "type": "integer",
            "format": "int32"
          },
          "MediumTicketValue": {
            "type": "number",
            "format": "decimal"
          },
          "TractionReportValue": {
            "type": "number",
            "format": "decimal"
          },
          "ROI": {
            "type": "number",
            "format": "decimal"
          },
          "TotalSalesChart": {
            "$ref": "#/components/schemas/ApiReportBarChartResultsOfDecimal"
          },
          "GeneratedSalesChart": {
            "$ref": "#/components/schemas/ApiReportBarChartResultsOfInteger"
          },
          "MediumTicketsChart": {
            "$ref": "#/components/schemas/ApiReportBarChartResultsOfDecimal"
          },
          "GeneratedMediumTicketsChart": {
            "$ref": "#/components/schemas/ApiReportBarChartResultsOfDecimal"
          }
        }
      },
      "ApiReportBarChartResultsOfDecimal": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Values": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "decimal"
            }
          }
        }
      },
      "ApiReportBarChartResultsOfInteger": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Values": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "ReportChartDataType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "TotalSalesChart",
          "GeneratedSalesChart",
          "MediumTicketsChart",
          "TotalReferral",
          "OtherTotalReferral",
          "GeneratedPoints",
          "ConvertedPoints",
          "SalesPoints",
          "ExpiredPoints",
          "ExpiredCashback",
          "UsedCashback",
          "GeneratedCashback",
          "BalanceCashback"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12
        ]
      },
      "BaseApiListResultOfApiStorePerformanceRow": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiStorePerformanceRow"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiStorePerformanceRow": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiStorePerformanceMetrics"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "StoreName": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiStorePerformanceMetrics": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "x-abstract": true,
            "additionalProperties": false,
            "properties": {
              "BonifiqSales": {
                "type": "number",
                "format": "decimal"
              },
              "RedeemedOrderCount": {
                "type": "integer",
                "format": "int32"
              },
              "AverageTicket": {
                "type": "number",
                "format": "decimal"
              },
              "RedeemedBonuses": {
                "type": "number",
                "format": "decimal"
              },
              "RedeemedOrdersPercentage": {
                "type": "number",
                "format": "decimal"
              },
              "GeneratedBonuses": {
                "type": "number",
                "format": "decimal"
              },
              "BonifiedOrdersCount": {
                "type": "integer",
                "format": "int32"
              },
              "BonifiedSales": {
                "type": "number",
                "format": "decimal"
              },
              "BonifiedOrdersPercentage": {
                "type": "number",
                "format": "decimal"
              },
              "TotalOrders": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "ApiStorePerformanceFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "From": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "To": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiStorePerformanceSummary": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiStorePerformanceMetrics"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "GeneratedBonusPoints": {
                "type": "integer",
                "format": "int32"
              },
              "GeneratedBonusCashback": {
                "type": "number",
                "format": "decimal"
              },
              "IsCashbackActive": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiCoupon": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCoupon"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCoupon": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "OrderId": {
                "type": "string"
              },
              "OrderOrigin": {
                "$ref": "#/components/schemas/OrderOrigin"
              },
              "CouponCode": {
                "type": "string"
              },
              "BranchName": {
                "type": "string"
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32"
              },
              "TenantSalesmanName": {
                "type": "string"
              },
              "CreatedDate": {
                "type": "string",
                "format": "date-time"
              },
              "Refunded": {
                "type": "boolean",
                "nullable": true
              },
              "IsAssigned": {
                "type": "boolean"
              },
              "CouponType": {
                "$ref": "#/components/schemas/CouponType"
              },
              "Customer": {
                "$ref": "#/components/schemas/ApiCustomer"
              },
              "IsUsed": {
                "type": "boolean",
                "nullable": true
              },
              "CouponValue": {
                "type": "number",
                "format": "decimal"
              },
              "ValidDateStart": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ValidDateEnd": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "CanceledDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "Status": {
                "$ref": "#/components/schemas/CouponStatus"
              },
              "CouponValueDisplay": {
                "type": "string"
              }
            }
          }
        ]
      },
      "CouponStatus": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Available",
          "Used",
          "Cancelled",
          "Expired"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "ApiCouponListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Types": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CouponType"
                }
              },
              "Statuss": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CouponStatus"
                }
              },
              "CustomerName": {
                "type": "string",
                "nullable": true
              },
              "CustomerEmail": {
                "type": "string",
                "nullable": true
              },
              "CustomerDoc": {
                "type": "string",
                "nullable": true
              },
              "Code": {
                "type": "string",
                "nullable": true
              },
              "From": {
                "type": "string",
                "format": "date-time"
              },
              "To": {
                "type": "string",
                "format": "date-time"
              },
              "HasCustomerData": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiPointTableRow": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPointTableRow"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiPointTableRow": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "PointId": {
                "type": "integer",
                "format": "int32"
              },
              "ObjectiveId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "ParentId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "EventDate": {
                "type": "string",
                "format": "date-time"
              },
              "ExpirationDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32"
              },
              "CustomerEmail": {
                "type": "string"
              },
              "CustomerPhone": {
                "type": "string"
              },
              "CustomerName": {
                "type": "string"
              },
              "CustomerDoc": {
                "type": "string"
              },
              "CustomerBalance": {
                "type": "integer",
                "format": "int32"
              },
              "CurrentBalancePoints": {
                "type": "integer",
                "format": "int32"
              },
              "Type": {
                "$ref": "#/components/schemas/PointType"
              },
              "Origin": {
                "$ref": "#/components/schemas/OrderOrigin"
              },
              "Salesman": {
                "type": "string"
              },
              "Branch": {
                "type": "string"
              },
              "OrderDate": {
                "type": "string",
                "format": "date-time"
              },
              "OrderOriginalId": {
                "type": "string"
              },
              "RewardOrderId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RewardOrderOriginalId": {
                "type": "string",
                "nullable": true
              },
              "RewardOrderPlacementDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "RewardOrderCompletedDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "RewardOrderState": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RewardOrderStatus": {
                "type": "string",
                "nullable": true
              },
              "RewardOrderTotal": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "RewardOrderCoupon": {
                "type": "string",
                "nullable": true
              },
              "RewardOrderOrigin": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RewardOrderUpdatedDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "RewardOrderBranchId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RewardOrderBranchOriginalId": {
                "type": "string",
                "nullable": true
              },
              "RewardOrderBranchName": {
                "type": "string",
                "nullable": true
              },
              "RewardOrderTenantSalesmanId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RewardOrderTenantSalesmanOriginalId": {
                "type": "string",
                "nullable": true
              },
              "RewardOrderTenantSalesmanName": {
                "type": "string",
                "nullable": true
              },
              "RewardOrderTenantSalesmanBranchId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RewardOrderTenantSalesmanBranchOriginalId": {
                "type": "string",
                "nullable": true
              },
              "RewardOrderTenantSalesmanBranchName": {
                "type": "string",
                "nullable": true
              },
              "Points": {
                "type": "integer",
                "format": "int32"
              },
              "Reason": {
                "type": "string"
              },
              "PointMetadatas": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string"
                }
              },
              "PointAction": {
                "$ref": "#/components/schemas/PointAction"
              }
            }
          }
        ]
      },
      "PointAction": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Take",
          "Grant"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ApiOrderReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Initial": {
            "type": "integer",
            "format": "int32"
          },
          "Completed": {
            "type": "integer",
            "format": "int32"
          },
          "Canceled": {
            "type": "integer",
            "format": "int32"
          },
          "Online": {
            "type": "integer",
            "format": "int32"
          },
          "PVD": {
            "type": "integer",
            "format": "int32"
          },
          "Import": {
            "type": "integer",
            "format": "int32"
          },
          "API": {
            "type": "integer",
            "format": "int32"
          },
          "CompletedRate": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BaseApiListResultOfApiReward": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiReward"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiReward": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Points": {
                "$ref": "#/components/schemas/ApiPoint"
              },
              "IsActive": {
                "type": "boolean"
              },
              "Value": {
                "type": "number",
                "format": "decimal"
              },
              "CashValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "RedeemDate": {
                "type": "string",
                "format": "date-time"
              },
              "Customer": {
                "$ref": "#/components/schemas/ApiCustomer"
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "Success": {
                "type": "boolean"
              },
              "ErrorMessage": {
                "type": "string",
                "nullable": true
              },
              "RewardStatus": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiRewardStatus"
                  }
                ]
              },
              "RewardStatusId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RewardConfiguration": {
                "$ref": "#/components/schemas/ApiRewardConfiguration"
              },
              "Coupon": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCoupon"
                  }
                ]
              },
              "CouponId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "PointsId": {
                "type": "integer",
                "format": "int32"
              },
              "ExternalCode": {
                "type": "string"
              },
              "IsCanceled": {
                "type": "boolean"
              },
              "RedeemOrigin": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RedeemOrigin"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiRewardStatus": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "RewardId": {
                "type": "integer",
                "format": "int32"
              },
              "CurrentStatus": {
                "$ref": "#/components/schemas/RewardPossibleStatus"
              },
              "LastStatusDate": {
                "type": "string",
                "format": "date-time"
              },
              "Comments": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "RewardPossibleStatus": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Initial",
          "InProgress",
          "Completed"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiRewardConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Points": {
                "type": "integer",
                "format": "int32"
              },
              "RewardType": {
                "$ref": "#/components/schemas/RewardType"
              },
              "IsActive": {
                "type": "boolean"
              },
              "Value": {
                "type": "number",
                "format": "decimal"
              },
              "PreTitle": {
                "type": "string",
                "nullable": true
              },
              "Title": {
                "type": "string",
                "nullable": true
              },
              "Description": {
                "type": "string",
                "nullable": true
              },
              "LongDescription": {
                "type": "string",
                "nullable": true
              },
              "HasValidDate": {
                "type": "boolean"
              },
              "ValidDateStart": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ValidDateEnd": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "HasSameCustomerUsageLimit": {
                "type": "boolean"
              },
              "SameCustomerUsageLimit": {
                "type": "integer",
                "format": "int32"
              },
              "HasGlobalUsageLimit": {
                "type": "boolean"
              },
              "GlobalUsageLimit": {
                "type": "integer",
                "format": "int32"
              },
              "CustomTitle": {
                "type": "string",
                "nullable": true
              },
              "UsageInstructions": {
                "type": "string",
                "nullable": true
              },
              "CustomIconUrl": {
                "type": "string",
                "nullable": true
              },
              "SendClientRedeemNotification": {
                "type": "boolean"
              },
              "ClientEmailsNotification": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "SendCustomerRedeemNotification": {
                "type": "boolean"
              },
              "CustomerEmailConfigurationId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "CustomerEmailConfiguration": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomerEmailConfiguration"
                  }
                ]
              },
              "CodePrefix": {
                "type": "string",
                "nullable": true
              },
              "CouponCodeLength": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "CumulativeDiscount": {
                "type": "boolean"
              },
              "MinimalValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "ValidDays": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "CashbackMaxPurchaseValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "MinimumPercentPurchase": {
                "type": "number",
                "format": "double",
                "nullable": true
              },
              "ManualCouponGeneration": {
                "type": "boolean"
              },
              "PreGeneratedCouponLists": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiPreGeneratedCouponList"
                }
              },
              "Tiers": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiTier"
                }
              },
              "AvailableCashback": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "TiersCountInformation": {
                "type": "string",
                "nullable": true
              },
              "CashbackPercentage": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "CashbackName": {
                "type": "string",
                "nullable": true
              },
              "WebTitle": {
                "type": "string",
                "nullable": true
              },
              "IsCashbackInformativeOnly": {
                "type": "boolean"
              },
              "CashbackInformativeText": {
                "type": "string",
                "nullable": true
              },
              "CashbackRules": {
                "type": "string",
                "nullable": true
              },
              "CashbackBalance": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "PointBalance": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "CashbackPointValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "CashbackAmount": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "MaxCashbackForCurrentPurchase": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "Enabled": {
                "type": "boolean"
              },
              "DisabledReason": {
                "type": "string",
                "nullable": true
              },
              "NoPointCost": {
                "type": "boolean"
              },
              "RequiredToAddMoreText": {
                "type": "string",
                "nullable": true
              },
              "ShouldUseCustomInstruction": {
                "type": "boolean"
              },
              "ShouldExpireCouponsWhenNotAvailableInPlatform": {
                "type": "boolean"
              },
              "RewardChannel": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RewardChannel"
                  }
                ]
              },
              "ProductCollections": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string"
                }
              },
              "WidgetIconActive": {
                "type": "boolean"
              },
              "WidgetIcon": {
                "type": "string",
                "nullable": true
              },
              "LandingPageIconActive": {
                "type": "boolean"
              },
              "LandingPageIcon": {
                "type": "string",
                "nullable": true
              },
              "ValidOnlyProductCollections": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string"
                }
              },
              "AllowProductCollection": {
                "type": "boolean"
              },
              "ProductCollectionSelection": {
                "$ref": "#/components/schemas/ProductCollectionSelection"
              },
              "HasProductCollection": {
                "type": "boolean"
              },
              "EnableVtexCashbackCollectionSalesChannelRestriction": {
                "type": "boolean"
              },
              "VtexCashbackCollectionSalesChannelPairs": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string"
                }
              },
              "VtexCashbackCollectionSalesChannelSelection": {
                "$ref": "#/components/schemas/ProductCollectionSelection"
              },
              "HasVtexCashbackCollectionSalesChannelRestriction": {
                "type": "boolean"
              },
              "Rules": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiRewardConfigurationRules"
                  }
                ]
              },
              "ProductDiscount": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiRewardConfigurationProduct"
                  }
                ]
              }
            }
          }
        ]
      },
      "RewardChannel": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Online",
          "Offline"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ProductCollectionSelection": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "DenyCollections",
          "AllowCollections"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ApiRewardConfigurationRules": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "RewardDescription": {
            "type": "string",
            "nullable": true
          },
          "NonCumulativePromotion": {
            "type": "string",
            "nullable": true
          },
          "MaximumPurchaseCashback": {
            "type": "string",
            "nullable": true
          },
          "MinimalPurchaseRequirement": {
            "type": "string",
            "nullable": true
          },
          "CouponValidityDays": {
            "type": "string",
            "nullable": true
          },
          "CouponEmailConfirmation": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiRewardConfigurationProduct": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "RewardConfigurationId": {
                "type": "integer",
                "format": "int32"
              },
              "ProductId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "OnlineExternalProductId": {
                "type": "string",
                "nullable": true
              },
              "OfflineExternalProductId": {
                "type": "string",
                "nullable": true
              },
              "DisplayName": {
                "type": "string",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean"
              },
              "DiscountMode": {
                "$ref": "#/components/schemas/ProductDiscountRewardMode"
              },
              "DiscountValue": {
                "type": "number",
                "format": "decimal"
              },
              "MaxUnitsPerRedeem": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "OnlineUsageLimit": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "OfflineUsageLimit": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "ProductDiscountRewardMode": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "PercentDiscount",
          "FixedFinalPrice",
          "FreeGift",
          "FixedDiscountAmount"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "RedeemOrigin": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "LandingPage",
          "Widget",
          "Copilot",
          "Checkout",
          "API",
          "PDV"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ]
      },
      "RewardsListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Status": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "RewardConfigurationId": {
                "type": "integer",
                "format": "int32"
              },
              "From": {
                "type": "string",
                "format": "date-time"
              },
              "To": {
                "type": "string",
                "format": "date-time"
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "IncludeCoupon": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiOrderReportTableRow": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOrderReportTableRow"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiOrderReportTableRow": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "OrderStatus": {
                "type": "string"
              },
              "OrderPlacementDate": {
                "type": "string",
                "format": "date-time"
              },
              "DateCreated": {
                "type": "string",
                "format": "date-time"
              },
              "UpdatedDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32"
              },
              "CustomerName": {
                "type": "string"
              },
              "CustomerEmail": {
                "type": "string"
              },
              "CustomerPhone": {
                "type": "string"
              },
              "State": {
                "$ref": "#/components/schemas/OrderState"
              },
              "OrderTotal": {
                "type": "number",
                "format": "decimal"
              },
              "Origin": {
                "$ref": "#/components/schemas/OrderOrigin"
              },
              "Branch": {
                "type": "string"
              },
              "OrderCompletedDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "Points": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "CustomerDocument": {
                "type": "string"
              }
            }
          }
        ]
      },
      "BaseApiListResultOfReferralReportListItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReferralReportListItem"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ReferralReportListItem": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "Customer": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomer"
                  }
                ]
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32"
              },
              "FriendEmail": {
                "type": "string"
              },
              "FriendId": {
                "type": "string"
              },
              "CouponCode": {
                "type": "string",
                "nullable": true
              },
              "Order": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiOrder"
                  }
                ]
              },
              "OrderId": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "CustomerWithMostReferralsResult": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Customer": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomer"
                  }
                ]
              },
              "AmountOfReferralsMade": {
                "type": "integer",
                "format": "int32"
              },
              "AmountOfReferralsWithPurchase": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "ApiReferralReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ReferralConversionRate": {
            "type": "integer",
            "format": "int32"
          },
          "ReferralCouponUsedOnAOrder": {
            "type": "integer",
            "format": "int32"
          },
          "ReferralCouponNotUsedOnAOrder": {
            "type": "integer",
            "format": "int32"
          },
          "TotalReferral": {
            "type": "integer",
            "format": "int32"
          },
          "CustomersThathaveMakeAReferral": {
            "type": "integer",
            "format": "int32"
          },
          "AverageReferralMadePerCustomer": {
            "type": "number",
            "format": "double"
          },
          "TotalOrdersValue": {
            "type": "number",
            "format": "decimal"
          },
          "TotalOrdersWithReferralCouponsValue": {
            "type": "number",
            "format": "decimal"
          },
          "TotalOrdersForOtherCouponsValue": {
            "type": "number",
            "format": "decimal"
          },
          "ReferralOrderForOtherCoupons": {
            "type": "integer",
            "format": "int32"
          },
          "ReferralGenerationChart": {
            "$ref": "#/components/schemas/ApiReportBarChartResultsOfInteger"
          },
          "ReferralConversionChart": {
            "$ref": "#/components/schemas/ApiReportBarChartResultsOfInteger"
          }
        }
      },
      "BaseApiListResultOfApiCashbackResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCashbackResult"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCashbackResult": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Id": {
                "type": "integer",
                "format": "int32"
              },
              "Date": {
                "type": "string",
                "format": "date-time"
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32"
              },
              "CustomerName": {
                "type": "string"
              },
              "CustomerEmail": {
                "type": "string"
              },
              "Order": {
                "type": "integer",
                "format": "int32"
              },
              "Value": {
                "type": "number",
                "format": "decimal"
              },
              "Coupon": {
                "type": "string"
              },
              "OrderOriginalId": {
                "type": "string",
                "nullable": true
              },
              "CustomerDocument": {
                "type": "string"
              },
              "OrderValue": {
                "type": "number",
                "format": "decimal"
              },
              "BranchName": {
                "type": "string"
              },
              "TenantSalesmanName": {
                "type": "string"
              },
              "OrderOrigin": {
                "$ref": "#/components/schemas/OrderOrigin"
              },
              "OrderStatus": {
                "type": "string"
              },
              "State": {
                "$ref": "#/components/schemas/OrderState"
              }
            }
          }
        ]
      },
      "ApiCashbackReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CashbackConversionRate": {
            "type": "integer",
            "format": "int32"
          },
          "CashbackUsed": {
            "type": "number",
            "format": "decimal"
          },
          "CashbackNotUsed": {
            "type": "number",
            "format": "decimal"
          },
          "CashbackExpired": {
            "type": "number",
            "format": "decimal"
          },
          "CashbackGenerated": {
            "type": "number",
            "format": "decimal"
          },
          "CashbackAvarageUse": {
            "type": "number",
            "format": "decimal"
          },
          "TotalCustomers": {
            "type": "integer",
            "format": "int32"
          },
          "CashbackTotalCustomers": {
            "type": "integer",
            "format": "int32"
          },
          "CashbackConversionChart": {
            "$ref": "#/components/schemas/ApiReportBarChartResultsOfInteger"
          }
        }
      },
      "ApiTierReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TierCustomerData": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTierCustomerData"
            }
          }
        }
      },
      "ApiTierCustomerData": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TierId": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCustomers": {
            "type": "integer",
            "format": "int32"
          },
          "TierColor": {
            "type": "string"
          },
          "TierName": {
            "type": "string"
          }
        }
      },
      "ApiMatrizRFMResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "HasData": {
            "type": "boolean"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiMatrizRFMItemDataResult"
            }
          }
        }
      },
      "ApiMatrizRFMItemDataResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ItemType": {
            "$ref": "#/components/schemas/MatrizRFMItem"
          },
          "Title": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          },
          "Amount": {
            "type": "integer",
            "format": "int32"
          },
          "ConsumersNumber": {
            "type": "integer",
            "format": "int32"
          },
          "MinValue": {
            "type": "number",
            "format": "decimal"
          },
          "MaxValue": {
            "type": "number",
            "format": "decimal"
          },
          "AverageTicket": {
            "type": "number",
            "format": "decimal"
          },
          "LastPurchaseMinDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "LastPurchaseMaxDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "MinFrequency": {
            "type": "integer",
            "format": "int32"
          },
          "AverageFrequency": {
            "type": "integer",
            "format": "int32"
          },
          "MaxFrequency": {
            "type": "integer",
            "format": "int32"
          },
          "_18_24": {
            "type": "integer",
            "format": "int32"
          },
          "_25_29": {
            "type": "integer",
            "format": "int32"
          },
          "_30_34": {
            "type": "integer",
            "format": "int32"
          },
          "_35_39": {
            "type": "integer",
            "format": "int32"
          },
          "_40_44": {
            "type": "integer",
            "format": "int32"
          },
          "_45_49": {
            "type": "integer",
            "format": "int32"
          },
          "_50_54": {
            "type": "integer",
            "format": "int32"
          },
          "others": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BaseApiListResultOfApiAffiliateReferralOrder": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiAffiliateReferralOrder"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiAffiliateReferralOrder": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "deprecated": true,
            "x-deprecatedMessage": "Use AffiliateClient instead. Kept only for legacy compatibility.",
            "additionalProperties": false,
            "properties": {
              "OrderPlacementDate": {
                "type": "string",
                "format": "date-time"
              },
              "CustomerId": {
                "type": "integer",
                "format": "int32"
              },
              "CustomerName": {
                "type": "string"
              },
              "CustomerEmail": {
                "type": "string",
                "nullable": true
              },
              "OrderTotal": {
                "type": "number",
                "format": "decimal"
              },
              "ComissionPoint": {
                "type": "integer",
                "format": "int32"
              },
              "Coupon": {
                "type": "string"
              },
              "CustomerAffiliateId": {
                "type": "integer",
                "format": "int32"
              },
              "AffiliateName": {
                "type": "string"
              },
              "AffiliateEmail": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiAffiliateOrderListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Coupon": {
                "type": "string",
                "nullable": true
              },
              "PartialAffiliateEmail": {
                "type": "string",
                "nullable": true
              },
              "PartialAffiliateName": {
                "type": "string",
                "nullable": true
              },
              "From": {
                "type": "string",
                "format": "date-time"
              },
              "To": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiExpiringPointListItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiExpiringPointListItem"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiExpiringPointListItem": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "description": "Represents a single item in the expiring points report list.",
            "additionalProperties": false,
            "properties": {
              "PointId": {
                "type": "integer",
                "description": "The ID of the point record.",
                "format": "int32"
              },
              "ExpirationDate": {
                "type": "string",
                "description": "The calculated date when the points will expire.",
                "format": "date-time",
                "nullable": true
              },
              "Points": {
                "type": "integer",
                "description": "The number of points expiring.",
                "format": "int32"
              },
              "ReasonType": {
                "description": "The reason/type why the points were granted (e.g., Purchase, Signup).",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PointType"
                  }
                ]
              },
              "GenerationDate": {
                "type": "string",
                "description": "The date when the points were originally generated.",
                "format": "date-time"
              },
              "CustomerId": {
                "type": "integer",
                "description": "The ID of the customer these points belong to.",
                "format": "int32"
              },
              "CustomerName": {
                "type": "string",
                "description": "The name of the customer."
              },
              "CustomerEmail": {
                "type": "string",
                "description": "The email of the customer."
              },
              "CustomerPhone": {
                "type": "string",
                "description": "The phone number of the customer."
              },
              "CustomerDocument": {
                "type": "string",
                "description": "The document number (e.g., CPF) of the customer."
              },
              "BranchName": {
                "type": "string"
              },
              "BranchId": {
                "type": "integer",
                "format": "int32"
              },
              "CashbackValue": {
                "type": "number",
                "description": "The calculated cashback value equivalent to the expiring points.",
                "format": "decimal"
              },
              "OrderOrigin": {
                "type": "string",
                "description": "The origin of the order associated with the points (e.g., WEB, PDV)."
              },
              "Salesman": {
                "type": "string"
              },
              "PointMetadatas": {
                "type": "object",
                "description": "Point metadata key-value pairs for export.",
                "nullable": true,
                "additionalProperties": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "ApiExpiringPointsFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "description": "Filter for querying points that are expiring within a specific date range.",
            "additionalProperties": false,
            "properties": {
              "From": {
                "type": "string",
                "description": "Start date of the expiration period.",
                "format": "date-time",
                "nullable": true
              },
              "To": {
                "type": "string",
                "description": "End date of the expiration period.",
                "format": "date-time",
                "nullable": true
              },
              "BranchIds": {
                "type": "array",
                "description": "Optional list of Branch IDs to filter points by.\nDefaults to empty list if null.",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "CustomerEmail": {
                "type": "string",
                "description": "Optional customer email filter for partial matching.",
                "nullable": true
              },
              "CustomerDocument": {
                "type": "string",
                "description": "Optional customer document filter for partial matching.",
                "nullable": true
              },
              "CustomerPhone": {
                "type": "string",
                "description": "Optional customer phone filter for partial matching.",
                "nullable": true
              },
              "OrderOrigin": {
                "type": "string",
                "description": "Optional order origin filter.",
                "nullable": true
              },
              "Salesman": {
                "type": "string",
                "description": "Optional salesman name filter for partial matching.",
                "nullable": true
              },
              "PointsFilterType": {
                "description": "Type of points/cashback to filter by (points or cashback)",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PointType"
                  }
                ]
              },
              "PointsComparison": {
                "description": "Comparison type for points/cashback filtering",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/FilterComparison"
                  }
                ]
              },
              "PointsMinValue": {
                "type": "number",
                "description": "Minimum value for points/cashback filter (used for GreaterOrEqual and Between)",
                "format": "decimal",
                "nullable": true
              },
              "PointsMaxValue": {
                "type": "number",
                "description": "Maximum value for points/cashback filter (used for LessOrEqual and Between)",
                "format": "decimal",
                "nullable": true
              }
            }
          }
        ]
      },
      "FilterComparison": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "None",
          "GreaterOrEqual",
          "LessOrEqual",
          "Between"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "ApiExpiringReportResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PointsSum": {
            "type": "integer",
            "format": "int32"
          },
          "CustomerCount": {
            "type": "integer",
            "format": "int32"
          },
          "Sum": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "ApiDashboard3AggregatedResult": {
        "type": "object",
        "description": "Aggregated result for Dashboard3 that combines all metrics in a single response\nto reduce the number of Athena queries.",
        "additionalProperties": false,
        "properties": {
          "SalesData": {
            "description": "Sales data including completed, pending, referral and GA sales",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiSalesReportResult"
              }
            ]
          },
          "TotalSalesPercent": {
            "type": "number",
            "description": "Percentage of sales influenced by Bonifiq",
            "format": "double"
          },
          "ROI": {
            "type": "number",
            "description": "Return on Investment",
            "format": "decimal"
          },
          "TicketAvg": {
            "type": "number",
            "description": "Average ticket value",
            "format": "double"
          },
          "Recency": {
            "type": "integer",
            "description": "Average days between purchases for repurchasers",
            "format": "int32"
          },
          "CustomerChartData": {
            "type": "array",
            "description": "Customer report date summary for the chart",
            "items": {
              "$ref": "#/components/schemas/ApiCustomerReportDateSummary"
            }
          }
        }
      },
      "ApiDashboard3Filter": {
        "type": "object",
        "description": "Filter for Dashboard3 aggregated endpoint",
        "additionalProperties": false,
        "properties": {
          "From": {
            "type": "string",
            "description": "Start date for the filter",
            "format": "date-time",
            "nullable": true
          },
          "To": {
            "type": "string",
            "description": "End date for the filter",
            "format": "date-time",
            "nullable": true
          },
          "PointReportGroupType": {
            "description": "Grouping type for the customer chart (Daily, Weekly, Monthly, Yearly)",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PointReportGroupType"
              }
            ]
          }
        }
      },
      "ApiPurchasePointReportSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "LastSnapshotStartedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "PublishedSnapshotStartedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "LastSnapshotFinishedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "LatestRunStatus": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PurchasePointReportSnapshotStatus"
              }
            ]
          },
          "StatusMessage": {
            "type": "string",
            "nullable": true
          },
          "HasPublishedSnapshot": {
            "type": "boolean"
          },
          "IsInitialLoadComplete": {
            "type": "boolean"
          },
          "HasPendingWork": {
            "type": "boolean"
          },
          "LastSuccessfulSyncAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "GrantedPoints": {
            "type": "integer",
            "format": "int32"
          },
          "GrantedCashback": {
            "type": "number",
            "format": "decimal"
          },
          "PendingPoints": {
            "type": "integer",
            "format": "int32"
          },
          "PendingCashback": {
            "type": "number",
            "format": "decimal"
          },
          "CancelledOrReversedPoints": {
            "type": "integer",
            "format": "int32"
          },
          "CancelledOrReversedCashback": {
            "type": "number",
            "format": "decimal"
          },
          "GrantedOrderCount": {
            "type": "integer",
            "format": "int32"
          },
          "PendingOrderCount": {
            "type": "integer",
            "format": "int32"
          },
          "CancelledOrReversedOrderCount": {
            "type": "integer",
            "format": "int32"
          },
          "InferredAllocationCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PurchasePointReportSnapshotStatus": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Processing",
          "Completed",
          "Failed"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiPurchasePointReportFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "From": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "To": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "State": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PurchasePointReportState"
                  }
                ]
              },
              "IsOrderReadyToGrant": {
                "type": "boolean",
                "nullable": true
              },
              "IsCancelledOrReversed": {
                "type": "boolean",
                "nullable": true
              },
              "CampaignIds": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "CampaignKeys": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/PurchasePointReportCampaignKey"
                }
              },
              "CampaignType": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PurchaseObjectiveExtraPointsType"
                  }
                ]
              },
              "AttributionSource": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PurchasePointReportAttributionSource"
                  }
                ]
              },
              "OrderOriginalId": {
                "type": "string",
                "nullable": true
              },
              "CustomerOriginalId": {
                "type": "string",
                "nullable": true
              },
              "Search": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "PurchasePointReportState": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Granted",
          "Pending"
        ],
        "enum": [
          0,
          1
        ]
      },
      "PurchasePointReportCampaignKey": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CampaignId": {
            "type": "integer",
            "format": "int32"
          },
          "CampaignSource": {
            "$ref": "#/components/schemas/PurchasePointReportCampaignSource"
          }
        }
      },
      "PurchasePointReportCampaignSource": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Legacy",
          "AdvancedRule"
        ],
        "enum": [
          0,
          1
        ]
      },
      "PurchasePointReportAttributionSource": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Exact",
          "Inferred"
        ],
        "enum": [
          0,
          1
        ]
      },
      "BaseApiGenericPagedListResultOfApiPurchasePointReportOrder": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPurchasePointReportOrder"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiPurchasePointReportOrder": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "State": {
            "$ref": "#/components/schemas/PurchasePointReportState"
          },
          "OrderState": {
            "$ref": "#/components/schemas/OrderState"
          },
          "IsCancelledOrReversed": {
            "type": "boolean"
          },
          "OrderId": {
            "type": "integer",
            "format": "int32"
          },
          "OrderOriginalId": {
            "type": "string",
            "nullable": true
          },
          "OrderPlacementDate": {
            "type": "string",
            "format": "date-time"
          },
          "OrderCompletedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "OrderCancelledDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "GrantAvailabilityDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsOrderReadyToGrant": {
            "type": "boolean"
          },
          "OrderTotal": {
            "type": "number",
            "format": "decimal"
          },
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          },
          "CustomerOriginalId": {
            "type": "string",
            "nullable": true
          },
          "CustomerPublicId": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "CustomerName": {
            "type": "string",
            "nullable": true
          },
          "CustomerEmail": {
            "type": "string",
            "nullable": true
          },
          "CustomerDocument": {
            "type": "string",
            "nullable": true
          },
          "CustomerPhone": {
            "type": "string",
            "nullable": true
          },
          "PointId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ForecastCalculatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ForecastPoints": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ForecastCashback": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ForecastBase": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiPurchasePointReportBase"
              }
            ]
          },
          "GrantedBase": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiPurchasePointReportBase"
              }
            ]
          },
          "GrantedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "GrantedPoints": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "GrantedCashback": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "IsGrantedCashbackEstimated": {
            "type": "boolean"
          },
          "TotalOrderPoints": {
            "type": "integer",
            "format": "int32"
          },
          "TotalOrderCashback": {
            "type": "number",
            "format": "decimal"
          },
          "IsCashbackEstimated": {
            "type": "boolean"
          },
          "CampaignCount": {
            "type": "integer",
            "format": "int32"
          },
          "HasInferredAttribution": {
            "type": "boolean"
          },
          "CampaignAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPurchasePointReportOrderCampaignAllocation"
            }
          }
        }
      },
      "ApiPurchasePointReportBase": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "ApiPurchasePointReportOrderCampaignAllocation": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CampaignSource": {
            "$ref": "#/components/schemas/PurchasePointReportCampaignSource"
          },
          "ValueKind": {
            "$ref": "#/components/schemas/PurchasePointReportValueKind"
          },
          "CampaignId": {
            "type": "integer",
            "format": "int32"
          },
          "CampaignName": {
            "type": "string"
          },
          "CampaignType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PurchaseObjectiveExtraPointsType"
              }
            ]
          },
          "BonusPoints": {
            "type": "integer",
            "format": "int32"
          },
          "BonusCashback": {
            "type": "number",
            "format": "decimal"
          },
          "AttributionSource": {
            "$ref": "#/components/schemas/PurchasePointReportAttributionSource"
          }
        }
      },
      "PurchasePointReportValueKind": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Forecast",
          "Granted"
        ],
        "enum": [
          0,
          1
        ]
      },
      "BaseApiGenericPagedListResultOfApiPurchasePointReportCampaign": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPurchasePointReportCampaign"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiPurchasePointReportCampaign": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CampaignSource": {
            "$ref": "#/components/schemas/PurchasePointReportCampaignSource"
          },
          "CampaignId": {
            "type": "integer",
            "format": "int32"
          },
          "CampaignName": {
            "type": "string"
          },
          "CampaignType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PurchaseObjectiveExtraPointsType"
              }
            ]
          },
          "CampaignIsActive": {
            "type": "boolean"
          },
          "CampaignStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CampaignEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ExtraPointsMultiplier": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "BonusPoints": {
            "type": "integer",
            "format": "int32"
          },
          "BonusCashback": {
            "type": "number",
            "format": "decimal"
          },
          "GrantedBonusPoints": {
            "type": "integer",
            "format": "int32"
          },
          "GrantedBonusCashback": {
            "type": "number",
            "format": "decimal"
          },
          "PendingBonusPoints": {
            "type": "integer",
            "format": "int32"
          },
          "PendingBonusCashback": {
            "type": "number",
            "format": "decimal"
          },
          "CancelledOrReversedBonusPoints": {
            "type": "integer",
            "format": "int32"
          },
          "CancelledOrReversedBonusCashback": {
            "type": "number",
            "format": "decimal"
          },
          "OrderCount": {
            "type": "integer",
            "format": "int32"
          },
          "CustomerCount": {
            "type": "integer",
            "format": "int32"
          },
          "InferredOrderCount": {
            "type": "integer",
            "format": "int32"
          },
          "AverageTicket": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "ApiPurchasePointReportCampaignOption": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CampaignSource": {
            "$ref": "#/components/schemas/PurchasePointReportCampaignSource"
          },
          "CampaignId": {
            "type": "integer",
            "format": "int32"
          },
          "CampaignName": {
            "type": "string"
          },
          "CampaignType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PurchaseObjectiveExtraPointsType"
              }
            ]
          },
          "CampaignIsActive": {
            "type": "boolean"
          }
        }
      },
      "ApiResponseOfApiRewardConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiRewardConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiRewardConfiguration": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiRewardConfiguration"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "RewardConfigurationListFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "IsActive": {
                "type": "boolean",
                "nullable": true
              },
              "RewardChannel": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RewardChannel"
                  }
                ]
              },
              "TierIds": {
                "type": "array",
                "description": "Filter by tier IDs",
                "nullable": true,
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "Title": {
                "type": "string",
                "description": "Filter by reward title (partial match)",
                "nullable": true
              },
              "RewardType": {
                "description": "Filter by reward type",
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RewardType"
                  }
                ]
              },
              "FilterComparison": {
                "description": "Comparison type for points/value filtering",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RewardFilterComparison"
                  }
                ]
              },
              "MinValue": {
                "type": "number",
                "description": "Minimum value for points/value filter (used for GreaterThan and Between)",
                "format": "decimal",
                "nullable": true
              },
              "MaxValue": {
                "type": "number",
                "description": "Maximum value for points/value filter (used for LessThan and Between)",
                "format": "decimal",
                "nullable": true
              }
            }
          }
        ]
      },
      "RewardFilterComparison": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "None",
          "GreaterThan",
          "LessThan",
          "Between"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "ApiRewardConfigurationAvailable": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Customer": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiCustomer"
              }
            ]
          },
          "Rewards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiRewardConfigurationAvailableItem"
            }
          },
          "AvailablePoints": {
            "type": "integer",
            "format": "int32"
          },
          "CanUseReward": {
            "type": "boolean"
          },
          "HasRewards": {
            "type": "boolean"
          },
          "CashbackEnabled": {
            "type": "boolean"
          },
          "AvailableCashback": {
            "type": "number",
            "format": "decimal"
          },
          "MaxCashbackForCurrentPurchase": {
            "type": "number",
            "format": "decimal"
          },
          "HasRestrictedItems": {
            "type": "boolean",
            "description": "True if any items were restricted from cashback eligibility.\nOnly populated when Items are provided in the request."
          },
          "RestrictedValue": {
            "type": "number",
            "description": "Total value of restricted items that cannot receive cashback.\nOnly populated when Items are provided in the request.",
            "format": "decimal"
          },
          "EligibleValue": {
            "type": "number",
            "description": "Total value eligible for cashback (after filtering restricted items).\nOnly populated when Items are provided in the request.",
            "format": "decimal"
          }
        }
      },
      "ApiRewardConfigurationAvailableItem": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiRewardConfiguration"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CanUse": {
                "type": "boolean"
              },
              "MaxCashbackForCurrentPurchase": {
                "type": "number",
                "format": "decimal"
              },
              "AvailableCashback": {
                "type": "number",
                "format": "decimal"
              },
              "Requirements": {
                "type": "string"
              },
              "CannotUseReason": {
                "$ref": "#/components/schemas/CannotUseReasons"
              },
              "RewardCanBeCumulative": {
                "type": "boolean"
              },
              "ExternalProductId": {
                "type": "string",
                "nullable": true
              },
              "ProductDisplayName": {
                "type": "string",
                "nullable": true
              },
              "ProductDiscountMode": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ProductDiscountRewardMode"
                  }
                ]
              },
              "ProductDiscountValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "ProductMaxUnitsPerRedeem": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "ProductAvailableQuantity": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "CannotUseReasons": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "CanUse",
          "NotEnoughtPoints",
          "MinValueNotReached",
          "CashbackNotAvailable",
          "NoCustomer",
          "ValueRewardBiggerThanPurchase",
          "MinimumPercentPurchaseNotReached",
          "CustomerNotEnrolled",
          "CannotUseCumulativeDiscount",
          "ProductRewardUsageLimitReached"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ]
      },
      "ApiAdminRedeemRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "RedeemFormat": {
            "$ref": "#/components/schemas/RedeemFormat"
          },
          "AdminId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "RewardConfigurationId": {
            "type": "integer",
            "format": "int32"
          },
          "CashbackValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "PointToUse": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "RedeemFormat": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "RedeemToOnline",
          "RedeemToOffline"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ApiIntegration": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IntegrationExecutionIdentifier": {
            "type": "string"
          },
          "LastExecution": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "LastExecutionStatus": {
            "type": "string",
            "nullable": true
          },
          "LastExecutionMessage": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiPubSubIntegration": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ShortName": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "RunType": {
            "type": "string"
          },
          "Body": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IdList": {
            "type": "string",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Operation": {
            "$ref": "#/components/schemas/ApiPubSubOperation"
          },
          "ForceResend": {
            "type": "boolean",
            "description": "When true, bypasses the \"Already Sent\" rule, allowing communications \nthat were previously sent to be resent. Useful for testing."
          }
        }
      },
      "ApiPubSubOperation": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "GetLatest",
          "GetById",
          "Custom",
          "ListOfIds"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "ApiReportIntegrationResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ResultsBRTimeZoneByDay": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiDataReport"
            }
          },
          "ResultsTimeZoneByDay": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiDataReport"
            }
          },
          "Results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiDataReport"
            }
          },
          "ResultsBRTimeZone": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiDataReport"
            }
          }
        }
      },
      "ApiDataReport": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "$ref": "#/components/schemas/DataReportName"
              },
              "Date": {
                "type": "string",
                "format": "date-time"
              },
              "Sum": {
                "type": "number",
                "format": "double"
              },
              "Count": {
                "type": "integer",
                "format": "int32"
              },
              "Avg": {
                "type": "number",
                "format": "double"
              }
            }
          }
        ]
      },
      "DataReportName": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "BonifiqPendingTicket",
          "NewCustomerTicket",
          "CustomerTicket",
          "ReferralTicket",
          "Ticket",
          "DistinctCustomer",
          "BonifiqSalesReferralCoupon",
          "BonifiqSalesReferralOtherCoupons",
          "BonifiqSalesCashback",
          "BonifiqSalesCoupon",
          "BonifiqPointsConsumed",
          "BonifiqPointsDistributed",
          "BonifiqCashbackDistributed",
          "BonifiqPointsCustomerDistributed",
          "BonifiqPointsCustomerConsumed",
          "BonifiqReferralCount",
          "BonifiqReferralCustomerCount",
          "BonifiqCoupon",
          "BonifiqCouponConsumed",
          "BonifiqCouponWallet",
          "BonifiqCouponWalletCustomerCount",
          "BonifiqSalesDiscountCoupon",
          "BonifiqSalesDiscountCashback",
          "BonifiqSalesDiscountReferralCoupon",
          "BonifiqSalesDiscountReferralOtherCoupons",
          "BonifiqSalesCustomerCoupon",
          "BonifiqSalesCustomerCashback",
          "BonifiqSalesCustomerReferralCoupon",
          "BonifiqSalesCustomerReferralOtherCoupons",
          "BonifiqCanceledTicket",
          "BonifiqCompletedTicket",
          "BonifiqSalesCustomerCashbackFromBegin",
          "BonifiqSalesCustomerCouponFromBegin",
          "BonifiqPointsCustomerDistributedFromBegin",
          "UsedRewardsPointsReportProcessor",
          "BonifiqCashbackInWallet",
          "CustomerRepurchase",
          "BonifiqCashbackExpired",
          "BonifiqObjectivePurchaseActivated",
          "BonifiqObjectiveSignUpActivated",
          "BonifiqObjectiveReviewActivated",
          "BonifiqObjectiveReferralActivated",
          "BonifiqObjectiveBirthdayActivated",
          "GoogleAnalytics"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39,
          40,
          41,
          42,
          43
        ]
      },
      "ApiReportIntegration": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "From": {
            "type": "string",
            "format": "date-time"
          },
          "To": {
            "type": "string",
            "format": "date-time"
          },
          "Report": {
            "$ref": "#/components/schemas/DataReportName"
          },
          "Sum": {
            "type": "boolean"
          }
        }
      },
      "ApiIntegrationLog": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "EnqueueDate": {
                "type": "string",
                "format": "date-time"
              },
              "DequeueDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "FinishDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "Vendor": {
                "$ref": "#/components/schemas/PlatformVendor"
              },
              "IntegrationExecutionIdentifier": {
                "type": "string"
              },
              "IntegrationResult": {
                "type": "string"
              },
              "Message": {
                "type": "string",
                "nullable": true
              },
              "ProcessingId": {
                "type": "string",
                "format": "guid"
              }
            }
          }
        ]
      },
      "ApiAffiliateOrderReprocessRequest": {
        "type": "object",
        "description": "Reprocessamento de pedidos retroativos de cupons de afiliado (AFI-882).\nRepublica no tópico OrderInsertUpdate os pedidos que já existiam antes de o afiliado\nser cadastrado no Affiliates e que, por isso, foram descartados na primeira publicação.",
        "additionalProperties": false,
        "properties": {
          "Coupons": {
            "type": "array",
            "description": "Cupons a reprocessar. Normalizados (trim + case-insensitive) e deduplicados antes da consulta.",
            "items": {
              "type": "string"
            }
          },
          "StartDate": {
            "type": "string",
            "description": "Data inicial de OrderPlacementDate (obrigatória, inclusiva).",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "description": "Data final de OrderPlacementDate (opcional, inclusiva). Sem valor, o filtro vai até o presente.",
            "format": "date-time",
            "nullable": true
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Teto de pedidos publicados por execução, agregado entre todos os cupons.\nLimitado a MaxPageSize para proteger a fila compartilhada entre tenants.",
            "format": "int32"
          }
        }
      },
      "ApiBillingHistoryItemsSyncRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Year": {
            "type": "integer",
            "format": "int32"
          },
          "Month": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiTenantActivation": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean"
          }
        }
      },
      "ApiInactivationSchedule": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ShouldInactive": {
            "type": "boolean"
          },
          "InactivationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "ApiProgramPointsActivity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IsActive": {
            "type": "boolean"
          }
        }
      },
      "ConsumerIdentifierType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Default",
          "Email",
          "Document"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiCustomerImportUploadResult": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiFileImportResult"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ImportKey": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiCustomerImport": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomerImport"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomerImport": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ImportKey": {
                "type": "string"
              },
              "RowNumber": {
                "type": "integer",
                "format": "int32"
              },
              "KeyType": {
                "$ref": "#/components/schemas/CustomerImportKeyType"
              },
              "KeyValue": {
                "type": "string"
              },
              "Document": {
                "type": "string",
                "nullable": true
              },
              "Email": {
                "type": "string",
                "nullable": true
              },
              "Name": {
                "type": "string",
                "nullable": true
              },
              "Phone": {
                "type": "string",
                "nullable": true
              },
              "Birthdate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "SignupDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "StartDate": {
                "type": "string",
                "format": "date-time"
              },
              "ImportSuccess": {
                "type": "boolean",
                "nullable": true
              },
              "EndDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ResultMessages": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "CustomerImportKeyType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Email",
          "Document"
        ],
        "enum": [
          1,
          2
        ]
      },
      "ApiCustomerImportFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiFilter"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ImportKey": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiCustomerImportSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiCustomerImportSummary"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomerImportSummary": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ImportKey": {
                "type": "string"
              },
              "TotalImported": {
                "type": "integer",
                "format": "int32"
              },
              "ProcessedCount": {
                "type": "integer",
                "format": "int32"
              },
              "ErrorCount": {
                "type": "integer",
                "format": "int32"
              },
              "PendingCount": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "ApiFeatureFlag": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Description": {
                "type": "string"
              },
              "IsTemporary": {
                "type": "boolean"
              },
              "Enabled": {
                "type": "boolean"
              },
              "UpdatedBy": {
                "type": "string"
              },
              "UpdatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "FeatureFlagType": {
                "$ref": "#/components/schemas/FeatureFlagType"
              }
            }
          }
        ]
      },
      "FeatureFlagType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Affiliates",
          "Copilot",
          "LoyaltyAtCheckout",
          "CheckoutRedeem",
          "ConceitoDeLoja",
          "RedeemRewardModal",
          "ProductRecommendations",
          "ProductCatalogIntegration",
          "AffiliateProject",
          "SocialMediaFollowLinkedin",
          "SocialMediaFollowTikTok",
          "YampiUseOAuth2",
          "WakeAliquotaCheckout",
          "WidgetEditor",
          "ExportPointMetadata",
          "WhatsappCommunication",
          "CouponCodeLength",
          "VtexHostnameFilter",
          "RequireSso",
          "CashbackRestrictedProducts",
          "EngageProject",
          "ZeroPointsProducts",
          "ParticipationObjective",
          "FitnessObjective",
          "PartialCancelBurningRefund",
          "DisableLoyalty",
          "ParticipationSignupExport",
          "ExtraPointsRulesSimulator",
          "ParticipationSignupGeneratedSales",
          "PointHistoryOrderInfo",
          "AdvancedRules",
          "ParticipationTotalGranted",
          "PurchaseGrantDelayPerChannel",
          "WakeAliquotaWidgetRedeem",
          "AthenaIceberg",
          "AdvancedRuleOrderStats",
          "VtexCashbackCollectionSalesChannelRestriction",
          "CustomerSegments",
          "PurchasePointReport",
          "ShopifyCustomAppPartialRefund",
          "CustomerListAdaptivePagination",
          "CashbackNameCustomization",
          "PurchaseZeroDefaultRate",
          "PointHistoryMetadata",
          "CashbackPointValueThreeDecimals",
          "AdvancedRuleProductUpload",
          "ProductDiscountReward",
          "MatrizRfmLargeTenantRecalculation",
          "RequireAdminTwoFactor"
        ],
        "enum": [
          0,
          1,
          2,
          5,
          6,
          7,
          9,
          10,
          11,
          12,
          13,
          14,
          16,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          46,
          47,
          48,
          49,
          50,
          51,
          52,
          53
        ]
      },
      "Tenant": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "CreatedDate": {
                "type": "string",
                "format": "date-time"
              },
              "PublicKey": {
                "type": "string"
              },
              "Platform": {
                "$ref": "#/components/schemas/PlatformVendor"
              },
              "OfflinePlatform": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PlatformVendor"
                  }
                ]
              },
              "IsActive": {
                "type": "boolean"
              },
              "AdminUsers": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/AdminUser"
                }
              },
              "Url": {
                "type": "string",
                "nullable": true
              },
              "OriginalId": {
                "type": "string",
                "nullable": true
              },
              "PointsProgramActive": {
                "type": "boolean"
              },
              "Phone": {
                "type": "string",
                "nullable": true
              },
              "BillingPlan": {
                "$ref": "#/components/schemas/BillingPlan"
              },
              "IsTrial": {
                "type": "boolean"
              },
              "TrialStart": {
                "type": "string",
                "format": "date-time"
              },
              "PlanFeatures": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/BillingPlanFeature"
                }
              },
              "OrderRange": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OrderRange"
                  }
                ]
              },
              "PausedIntegration": {
                "type": "boolean"
              },
              "Locale": {
                "type": "string",
                "nullable": true
              },
              "IsOverdue": {
                "type": "boolean"
              },
              "TenantUsers": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/TenantUser"
                }
              },
              "IsTest": {
                "type": "boolean"
              },
              "HideFromMetabase": {
                "type": "boolean"
              },
              "Sector": {
                "type": "string",
                "nullable": true
              },
              "SubSector": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "AdminUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/IdentityUserOfInteger"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "TenantId": {
                "type": "integer",
                "format": "int32"
              },
              "FullName": {
                "type": "string"
              },
              "HasTempPassword": {
                "type": "boolean"
              },
              "IsActive": {
                "type": "boolean"
              },
              "LastLogin": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "TenantUsers": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TenantUser"
                }
              }
            }
          }
        ]
      },
      "TenantUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseTenantEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "AdminUserId": {
                "type": "integer",
                "format": "int32"
              },
              "AdminUser": {
                "$ref": "#/components/schemas/AdminUser"
              }
            }
          }
        ]
      },
      "BaseTenantEntity": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "TenantId": {
                "type": "integer",
                "format": "int32"
              },
              "Tenant": {
                "$ref": "#/components/schemas/Tenant"
              }
            }
          }
        ]
      },
      "IdentityUserOfInteger": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "UserName": {
            "type": "string",
            "nullable": true
          },
          "NormalizedUserName": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "NormalizedEmail": {
            "type": "string",
            "nullable": true
          },
          "EmailConfirmed": {
            "type": "boolean"
          },
          "PasswordHash": {
            "type": "string",
            "nullable": true
          },
          "SecurityStamp": {
            "type": "string",
            "nullable": true
          },
          "ConcurrencyStamp": {
            "type": "string",
            "nullable": true
          },
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "PhoneNumberConfirmed": {
            "type": "boolean"
          },
          "TwoFactorEnabled": {
            "type": "boolean"
          },
          "LockoutEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "LockoutEnabled": {
            "type": "boolean"
          },
          "AccessFailedCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BillingPlanFeature": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "PointsByRangeSpend",
          "PointsByPaymentMethod",
          "PointsByReferral",
          "PointsForReviews",
          "PointsForSocialNetworksShare",
          "PointsForAmmountOfPurchases",
          "CouponForFreight",
          "Giftcard",
          "ProductPrizes",
          "PointsReminder",
          "RewardsReminder",
          "ExpiredPoints",
          "SegmentByObjective",
          "SegmentAdvantages",
          "EmailCustomization",
          "WidgetCustomization",
          "API",
          "CashbackWallet",
          "RedeemPointInCheckout",
          "ShippingCouponDiscount",
          "CustomRewards",
          "Tiers"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21
        ]
      },
      "PublishAffiliateOrders": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "StartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "InviteLinkHashCreateModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "User": {
            "type": "integer",
            "format": "int32"
          },
          "Products": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "Plan": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/BillingPlan"
              }
            ]
          }
        }
      },
      "ResendImportNotificationRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "ResendKey",
          "OriginalKey"
        ],
        "properties": {
          "ResendKey": {
            "type": "string",
            "minLength": 1
          },
          "OriginalKey": {
            "type": "string",
            "minLength": 1
          },
          "Channel": {
            "$ref": "#/components/schemas/CommunicationChannel"
          },
          "ConfigurationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "DirectText": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiWebhookTopicInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Topic": {
            "$ref": "#/components/schemas/WebhookTopic"
          },
          "Name": {
            "type": "string"
          },
          "DisplayName": {
            "type": "string"
          }
        }
      },
      "WebhookTopic": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Point_Add",
          "Point_Removed",
          "Point_Update",
          "Communication_EarnPurchasePoints",
          "Communication_EarnBirthdayPoints",
          "Communication_EarnSignupPoints",
          "Communication_EarnReviewPoints",
          "Communication_ReferralCommunicationPoints",
          "Communication_RedeemPoints",
          "Communication_NotifyExpirablePoints",
          "Communication_PointsToUse",
          "Communication_CouponsToUse",
          "Communication_RewardCustomRedeemNotification",
          "Communication_CustomerPointChangeNotification",
          "Communication_CustomerTierUpgradeNotification",
          "Communication_CustomerTierDowngradeNotification",
          "Communication_SentOTPToCustomer",
          "Communication_EarnSocialMediaFollowFacebook",
          "Communication_EarnSocialMediaFollowInstagram",
          "Communication_EarnQuizPoints",
          "Communication_EarnCustomObjectivePoints",
          "EarnPointsReferralAffilidate",
          "OrderInsert",
          "OrderUpdate",
          "Communication_EarnSocialMediaFollowLinkedin",
          "Communication_EarnSocialMediaFollowTikTok",
          "Customer_Created",
          "Customer_Updated",
          "Communication_Participation",
          "Customer_TierChanged",
          "Reward_Redeemed",
          "Reward_Cancelled"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31
        ]
      },
      "ApiWebhookEventPreview": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "WebhookEventId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Topic": {
            "$ref": "#/components/schemas/WebhookTopic"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "RenderedBody": {
            "type": "string",
            "nullable": true
          },
          "Found": {
            "type": "boolean"
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "EndpointUrl": {
            "type": "string",
            "nullable": true
          },
          "WebhookSubscriptionId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "ApiWebhookOperation": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "GetLatest",
          "GetById",
          "Custom"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiWebhookTestResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "StatusCode": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Response": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "SentPayload": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiWebhookIntegration": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Topic": {
            "$ref": "#/components/schemas/WebhookTopic"
          },
          "WebhookEventId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CustomBody": {
            "type": "string",
            "nullable": true
          },
          "Operation": {
            "$ref": "#/components/schemas/ApiWebhookOperation"
          }
        }
      },
      "ApiSensedataRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "DateFrom": {
            "type": "string"
          },
          "DateTo": {
            "type": "string"
          },
          "Limit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "NextPageToken": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiShopifyAppConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "SF_TOKEN": {
            "type": "string",
            "nullable": true
          },
          "SF_APIKEY": {
            "type": "string",
            "nullable": true
          },
          "SF_SECRETKEY": {
            "type": "string",
            "nullable": true
          },
          "SF_URL": {
            "type": "string"
          },
          "SF_URL_SUBDOMAIN": {
            "type": "string",
            "nullable": true
          },
          "STOREFRONT_API_TOKEN": {
            "type": "string",
            "nullable": true
          },
          "UseCashbackInCheckout": {
            "type": "boolean"
          },
          "FilterOrdersByChannel": {
            "type": "boolean"
          },
          "SelectedOrderSourceNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiShopifyAppConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiShopifyAppConfigModel"
              }
            ]
          }
        }
      },
      "ApiShopifyCartpandaConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ShopifyConfig": {
            "$ref": "#/components/schemas/ApiShopifyConfigModel"
          },
          "CartpandaConfig": {
            "$ref": "#/components/schemas/ApiCartpandaConfigModel"
          }
        }
      },
      "ApiShopifyConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "SF_TOKEN": {
            "type": "string",
            "nullable": true
          },
          "SF_URL": {
            "type": "string",
            "nullable": true
          },
          "SF_URL_SUBDOMAIN": {
            "type": "string",
            "nullable": true
          },
          "STOREFRONT_API_TOKEN": {
            "type": "string",
            "nullable": true
          },
          "UseCashbackInCheckout": {
            "type": "boolean"
          },
          "FilterOrdersByChannel": {
            "type": "boolean"
          },
          "SelectedOrderSourceNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "UseClientCredentials": {
            "type": "boolean",
            "description": "When true, uses ClientId and ClientSecret to obtain temporary access tokens via OAuth.\nWhen false (default), uses the permanent SF_TOKEN directly."
          },
          "ClientId": {
            "type": "string",
            "description": "OAuth Client ID for client credentials flow",
            "nullable": true
          },
          "ClientSecret": {
            "type": "string",
            "description": "OAuth Client Secret for client credentials flow",
            "nullable": true
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiShopifyCartpandaConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiShopifyCartpandaConfigModel"
              }
            ]
          }
        }
      },
      "ApiShopifyPlanModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "IsPlus": {
            "type": "boolean"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiShopifyConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiShopifyConfigModel"
              }
            ]
          }
        }
      },
      "ApiShopifyCustomAppConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AdminAccessToken": {
            "type": "string",
            "nullable": true
          },
          "StorefrontAccessToken": {
            "type": "string",
            "nullable": true
          },
          "ClientId": {
            "type": "string",
            "nullable": true
          },
          "ClientSecret": {
            "type": "string",
            "nullable": true
          },
          "WebhookSecret": {
            "type": "string",
            "nullable": true
          },
          "SF_URL": {
            "type": "string",
            "nullable": true
          },
          "SF_URL_SUBDOMAIN": {
            "type": "string",
            "nullable": true
          },
          "UseCashbackInCheckout": {
            "type": "boolean"
          },
          "FilterOrdersByChannel": {
            "type": "boolean"
          },
          "SelectedOrderSourceNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiShopifyCustomAppConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiShopifyCustomAppConfigModel"
              }
            ]
          }
        }
      },
      "ApiShopifyCustomAppCashbackCombinabilityModel": {
        "type": "object",
        "description": "Acumulação do desconto do cashback com os demais descontos da loja, um\nmodo por flag. O padrão (sem chave no CustomSettings) é permitir tudo.",
        "additionalProperties": false,
        "properties": {
          "CombinesWithOrderDiscounts": {
            "type": "boolean"
          },
          "CombinesWithProductDiscounts": {
            "type": "boolean"
          },
          "CombinesWithShippingDiscounts": {
            "type": "boolean"
          }
        }
      },
      "ApiShopifyCustomAppCashbackCombinabilitySaveResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "AppliedToShopify": {
            "type": "boolean",
            "description": "True quando a reconciliação imediata na automatic discount da loja\nfuncionou; false quando ficou para a próxima validação da integração\n(ex.: loja ainda não autorizada)."
          },
          "Message": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiShopifyYampiConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ShopifyConfig": {
            "$ref": "#/components/schemas/ApiShopifyConfigModel"
          },
          "YampiConfig": {
            "$ref": "#/components/schemas/ApiYampiConfigModel"
          }
        }
      },
      "ApiYampiConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AuthMode": {
            "type": "string"
          },
          "SF_ALIAS": {
            "type": "string",
            "nullable": true
          },
          "SF_TOKEN": {
            "type": "string",
            "nullable": true
          },
          "SF_SECRET_KEY": {
            "type": "string",
            "nullable": true
          },
          "ClientId": {
            "type": "string",
            "nullable": true
          },
          "MerchantAlias": {
            "type": "string",
            "nullable": true
          },
          "AccessToken": {
            "type": "string",
            "nullable": true
          },
          "RefreshToken": {
            "type": "string",
            "nullable": true
          },
          "TokenExpirationUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiShopifyYampiConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiShopifyYampiConfigModel"
              }
            ]
          }
        }
      },
      "CreateHandoffBody": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Destination": {
            "type": "string"
          }
        }
      },
      "ExchangeHandoffBody": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HandoffId": {
            "type": "string"
          },
          "Destination": {
            "type": "string"
          }
        }
      },
      "LogoutBody": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "SecurityStamp": {
            "type": "string"
          }
        }
      },
      "RedeemGrantBody": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "GrantId": {
            "type": "string"
          },
          "Destination": {
            "type": "string"
          }
        }
      },
      "IntrospectBody": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "SecurityStamp": {
            "type": "string"
          }
        }
      },
      "ApiStravaGlobalConfiguration": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ClientId": {
            "type": "string",
            "nullable": true
          },
          "ClientSecret": {
            "type": "string",
            "nullable": true
          },
          "VerifyToken": {
            "type": "string",
            "nullable": true
          },
          "CallbackUrl": {
            "type": "string",
            "nullable": true
          },
          "SubscriptionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        }
      },
      "ApiStravaWebhookSubscription": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "ResourceState": {
            "type": "integer",
            "format": "int32"
          },
          "ApplicationId": {
            "type": "integer",
            "format": "int64"
          },
          "CallbackUrl": {
            "type": "string"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiTenantModules": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasLoyalty": {
            "type": "boolean"
          },
          "HasAffiliates": {
            "type": "boolean"
          },
          "HasEngage": {
            "type": "boolean"
          }
        }
      },
      "ApiTerms": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Term": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiResponseOfApiTerms": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiTerms"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiThirdPartyEmailConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "EmailBody": {
                "type": "string"
              },
              "Subject": {
                "type": "string"
              },
              "IsActive": {
                "type": "boolean"
              },
              "Type": {
                "$ref": "#/components/schemas/ThirdPartyEmailType"
              },
              "Variables": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ThirdPartyEmailConfigurationVariable"
                }
              },
              "Title": {
                "type": "string",
                "nullable": true
              },
              "Description": {
                "type": "string",
                "nullable": true
              },
              "Group": {
                "$ref": "#/components/schemas/ThirdPartyEmailGroup"
              },
              "ObjectiveLinkedType": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ThirdPartyObjectivesType"
                  }
                ]
              }
            }
          }
        ]
      },
      "ThirdPartyEmailConfigurationVariable": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IsRequired": {
            "type": "boolean"
          },
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          },
          "Customer": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiCustomer"
              }
            ]
          }
        }
      },
      "ThirdPartyEmailGroup": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Referral",
          "Others"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ThirdPartyObjectivesType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Referral",
          "Others"
        ],
        "enum": [
          0,
          1
        ]
      },
      "PreviewEmailRequestThirdParty": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Configuration": {
            "$ref": "#/components/schemas/ApiThirdPartyEmailConfiguration"
          },
          "ToEmail": {
            "type": "string"
          }
        }
      },
      "ApiResponseOfApiThirdPartyEmailConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiThirdPartyEmailConfiguration"
                  }
                ]
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiThirdPartyEmailConfiguration": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiThirdPartyEmailConfiguration"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiResponseOfListOfApiTier": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiTier"
                }
              }
            }
          }
        ]
      },
      "BaseApiListResultOfApiTier": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTier"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiCustomerTier": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          },
          "TierId": {
            "type": "integer",
            "format": "int32"
          },
          "OldTierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "GracePeriodInDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "GracePeriodComments": {
            "type": "string",
            "nullable": true
          },
          "GracePeriodDateUpdate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "GracePeriodManualUpdate": {
            "type": "boolean",
            "nullable": true
          },
          "Tier": {
            "$ref": "#/components/schemas/ApiTier"
          }
        }
      },
      "BaseApiListResultOfApiTierTarget": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTierTarget"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiTierTarget": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Type": {
                "$ref": "#/components/schemas/TierTargetType"
              },
              "DueSummary": {
                "$ref": "#/components/schemas/TierTargetDueSummary"
              },
              "Due": {
                "type": "integer",
                "format": "int32"
              },
              "Target": {
                "type": "number",
                "format": "double"
              },
              "IsActive": {
                "type": "boolean"
              },
              "TierId": {
                "type": "integer",
                "format": "int32"
              },
              "ProgressDescription": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "TierTargetType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Point",
          "Expense",
          "Purchase",
          "Referral"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "TierTargetDueSummary": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "InDays",
          "InMonths"
        ],
        "enum": [
          0,
          1
        ]
      },
      "BaseApiListResultOfApiTierBenefit": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTierBenefit"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiNextTierProgress": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TargetType": {
            "$ref": "#/components/schemas/TierTargetType"
          },
          "Target": {
            "type": "number",
            "format": "double"
          },
          "Current": {
            "type": "number",
            "format": "double"
          },
          "ProgressDescription": {
            "type": "string"
          },
          "Due": {
            "type": "string",
            "format": "date-time"
          },
          "DueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "DueString": {
            "type": "string",
            "nullable": true
          },
          "DueInDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "OnTarget": {
            "type": "boolean"
          },
          "Balance": {
            "type": "number",
            "format": "double"
          },
          "Percent": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "ApiResponseOfBoolean": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "ApiTinyConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Itens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTinyConfigModelItem"
            }
          }
        }
      },
      "ApiTinyConfigModelItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TINY_BRANCHID": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "TINY_TOKEN": {
            "type": "string",
            "nullable": true
          },
          "TINY_STATUS_COMPLETED": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "TINY_STATUS_CANCELED": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiTinyConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiTinyConfigModel"
              }
            ]
          }
        }
      },
      "ApiResponseOfApiTrustvoxKeysValidationResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiTrustvoxKeysValidationResponse"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiTrustvoxKeysValidationResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Token": {
            "type": "string",
            "nullable": true
          },
          "StoreId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "ApiTrustvoxKeysValidationRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Token": {
            "type": "string",
            "nullable": true
          },
          "StoreId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "ApiUappiIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "UAPPI_TOKEN": {
            "type": "string"
          },
          "UAPPI_PASS": {
            "type": "string"
          },
          "UAPPI_URL": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiUappiIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiUappiIntegrationConfigModel"
              }
            ]
          }
        }
      },
      "BaseApiListResultOfApiUser": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiUser"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Email": {
                "type": "string"
              },
              "Role": {
                "$ref": "#/components/schemas/ApiUserRole"
              },
              "RoleDescription": {
                "type": "string"
              },
              "Password": {
                "type": "string",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean"
              },
              "TenantId": {
                "type": "integer",
                "format": "int32"
              },
              "LastLogin": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiUserRole": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Master",
          "Admin",
          "Manager",
          "Attendant",
          "Read",
          "Limited"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ]
      },
      "ApiResponseOfApiUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiUser"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiVarejoOnlineConfig": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "UsePIN": {
            "type": "boolean"
          },
          "UseMasterPIN": {
            "type": "boolean"
          },
          "RefundUsedCashback": {
            "type": "boolean"
          },
          "MasterPIN": {
            "type": "string",
            "nullable": true
          },
          "Token": {
            "type": "string",
            "nullable": true
          },
          "TokenConfigured": {
            "type": "boolean"
          },
          "UseCustomerCategory": {
            "type": "boolean"
          },
          "CustomerCategory": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiVndaIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "VD_TOKEN": {
            "type": "string"
          },
          "VD_URL": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiVndaIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiVndaIntegrationConfigModel"
              }
            ]
          }
        }
      },
      "ApiVTEXIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "VTEX_APIAPPTOKEN": {
            "type": "string"
          },
          "VTEX_APIAPPKEY": {
            "type": "string"
          },
          "VTEX_APIDOMAIN": {
            "type": "string"
          },
          "VTEX_USECASHBACK": {
            "type": "boolean"
          },
          "AvailableSalesChannel": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiVTEXSalesChannel"
            }
          },
          "SelectedSalesChannel": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiVTEXSalesChannel"
            }
          },
          "AllowedHostnames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ApiVTEXSalesChannel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Id": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiVTEXIntegrationConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiVTEXIntegrationConfigModel"
              }
            ]
          }
        }
      },
      "BaseApiListResultOfApiWebhookEvent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiWebhookEvent"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiWebhookEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "WebhookSubscriptionId": {
                "type": "integer",
                "format": "int32"
              },
              "IsSent": {
                "type": "boolean"
              },
              "SentDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "HasErrors": {
                "type": "boolean"
              },
              "LatestError": {
                "type": "string",
                "nullable": true
              },
              "SendAttempts": {
                "type": "integer",
                "format": "int32"
              },
              "Context": {
                "type": "string"
              },
              "ReferenceId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "Uuid": {
                "type": "string"
              },
              "Topic": {
                "$ref": "#/components/schemas/WebhookTopic"
              },
              "Name": {
                "type": "string",
                "nullable": true
              },
              "SentDateOffset": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "ParsedPayload": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiResponseOfApiWebhookSubscription": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiWebhookSubscription"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiWebhookSubscription": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Topics": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiWebhookSubscriptionTopic"
                }
              },
              "EndpointUrl": {
                "type": "string"
              },
              "CustomBody": {
                "type": "string",
                "nullable": true
              },
              "UseCustomBody": {
                "type": "boolean"
              },
              "ManagerEmail": {
                "type": "string"
              },
              "IsActive": {
                "type": "boolean"
              },
              "CustomMethod": {
                "type": "string",
                "nullable": true
              },
              "Headers": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiWebhookSubscriptionHeaders"
                }
              }
            }
          }
        ]
      },
      "ApiWebhookSubscriptionTopic": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Topic": {
            "$ref": "#/components/schemas/WebhookTopic"
          }
        }
      },
      "ApiWebhookSubscriptionHeaders": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          }
        }
      },
      "BaseApiListResultOfApiWebhookSubscription": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiWebhookSubscription"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiWhatsappBusinessAccount": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "AccessToken": {
                "type": "string",
                "description": "Access token from Meta Business Manager (masked for display)"
              },
              "BusinessAccountId": {
                "type": "string",
                "description": "WhatsApp Business Account ID from Meta"
              },
              "IsGlobal": {
                "type": "boolean",
                "description": "If true, this is a global account (Bonifiq's) that can be shared with tenants"
              },
              "IsActive": {
                "type": "boolean"
              },
              "LastSyncAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "UpdatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "PhoneNumbers": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiWhatsappPhoneNumber"
                }
              },
              "Templates": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiWhatsappTemplate"
                }
              }
            }
          }
        ]
      },
      "ApiWhatsappPhoneNumber": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "WhatsappBusinessAccountId": {
                "type": "integer",
                "format": "int32"
              },
              "PhoneNumberId": {
                "type": "string",
                "description": "Phone Number ID from Meta API (used for sending messages)"
              },
              "DisplayPhoneNumber": {
                "type": "string",
                "description": "Display format of the phone number (e.g., +55 11 99999-9999)"
              },
              "VerifiedName": {
                "type": "string",
                "description": "Verified business name associated with this phone number"
              },
              "QualityRating": {
                "type": "string",
                "description": "Quality rating from Meta (GREEN, YELLOW, RED)"
              },
              "IsActive": {
                "type": "boolean"
              },
              "DailyMessageLimit": {
                "type": "integer",
                "description": "Maximum number of messages that can be sent per day from this number",
                "format": "int32"
              },
              "UtilityDailyLimit": {
                "type": "integer",
                "description": "Maximum number of utility messages per day",
                "format": "int32"
              },
              "UtilityWarmupDailyLimit": {
                "type": "integer",
                "description": "Current warm-up limit for utility messages",
                "format": "int32"
              },
              "IsInWarmup": {
                "type": "boolean",
                "description": "Indicates if this number is in warm-up period"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "UpdatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "TodayMessagesSent": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "TodayUtilityMessagesSent": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RemainingDailyQuota": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "ApiWhatsappTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "WhatsappBusinessAccountId": {
                "type": "integer",
                "format": "int32"
              },
              "TemplateId": {
                "type": "string",
                "description": "Template ID from Meta API"
              },
              "Name": {
                "type": "string",
                "description": "Template name (used when sending messages)"
              },
              "Language": {
                "type": "string",
                "description": "Language code (e.g., pt_BR, en_US)"
              },
              "Category": {
                "description": "Template category: UTILITY, MARKETING, or AUTHENTICATION",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiWhatsappTemplateCategory"
                  }
                ]
              },
              "Status": {
                "description": "Approval status from Meta",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiWhatsappTemplateStatus"
                  }
                ]
              },
              "HeaderFormat": {
                "type": "string",
                "description": "Header format: TEXT, IMAGE, DOCUMENT, VIDEO, or null",
                "nullable": true
              },
              "HeaderText": {
                "type": "string",
                "description": "Header text content",
                "nullable": true
              },
              "BodyText": {
                "type": "string",
                "description": "Body text with placeholders like {{1}}, {{2}}, etc."
              },
              "FooterText": {
                "type": "string",
                "description": "Footer text (optional)",
                "nullable": true
              },
              "ButtonsJson": {
                "type": "string",
                "description": "JSON array of buttons configuration",
                "nullable": true
              },
              "VariableCount": {
                "type": "integer",
                "description": "Number of variable placeholders in the template",
                "format": "int32"
              },
              "SampleValuesJson": {
                "type": "string",
                "description": "Sample values for preview",
                "nullable": true
              },
              "IsActive": {
                "type": "boolean"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "UpdatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "CategoryDisplay": {
                "type": "string"
              },
              "StatusDisplay": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ApiWhatsappTemplateCategory": {
        "type": "integer",
        "description": "WhatsApp template categories",
        "x-enumNames": [
          "UTILITY",
          "MARKETING",
          "AUTHENTICATION"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ApiWhatsappTemplateStatus": {
        "type": "integer",
        "description": "WhatsApp template approval status",
        "x-enumNames": [
          "PENDING",
          "APPROVED",
          "REJECTED",
          "DISABLED"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "ApiWhatsappValidationResult": {
        "type": "object",
        "description": "Result of validating WABA credentials",
        "additionalProperties": false,
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "IsValid": {
            "type": "boolean"
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "AccountName": {
            "type": "string",
            "nullable": true
          },
          "AccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "ApiWhatsappBusinessAccountInput": {
        "type": "object",
        "description": "Input model for creating/updating a WABA account",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AccountName": {
            "type": "string"
          },
          "AccessToken": {
            "type": "string"
          },
          "BusinessAccountId": {
            "type": "string"
          },
          "IsGlobal": {
            "type": "boolean"
          },
          "TenantId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          }
        }
      },
      "WhatsappConnectionTestResult": {
        "type": "object",
        "description": "Result of testing connection to a WABA account",
        "additionalProperties": false,
        "properties": {
          "IsValid": {
            "type": "boolean"
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "AccountName": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiWhatsappSyncResult": {
        "type": "object",
        "description": "Result of syncing a WABA account with Meta API",
        "additionalProperties": false,
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "PhoneNumbersAdded": {
            "type": "integer",
            "format": "int32"
          },
          "PhoneNumbersUpdated": {
            "type": "integer",
            "format": "int32"
          },
          "TemplatesAdded": {
            "type": "integer",
            "format": "int32"
          },
          "TemplatesUpdated": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiWhatsappPhoneNumberLimitsInput": {
        "type": "object",
        "description": "Model for updating phone number limits",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "DailyMessageLimit": {
            "type": "integer",
            "format": "int32"
          },
          "UtilityDailyLimit": {
            "type": "integer",
            "format": "int32"
          },
          "UtilityWarmupDailyLimit": {
            "type": "integer",
            "format": "int32"
          },
          "IsInWarmup": {
            "type": "boolean"
          },
          "IsActive": {
            "type": "boolean"
          }
        }
      },
      "WhatsappUsageStatistics": {
        "type": "object",
        "description": "Usage statistics for a WhatsApp phone number",
        "additionalProperties": false,
        "properties": {
          "PhoneNumberId": {
            "type": "integer",
            "format": "int32"
          },
          "StartDate": {
            "type": "string",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "format": "date-time"
          },
          "TotalMessagesSent": {
            "type": "integer",
            "format": "int32"
          },
          "MarketingMessagesSent": {
            "type": "integer",
            "format": "int32"
          },
          "UtilityMessagesSent": {
            "type": "integer",
            "format": "int32"
          },
          "AuthenticationMessagesSent": {
            "type": "integer",
            "format": "int32"
          },
          "DailyStats": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WhatsappDailyUsageStat"
            }
          }
        }
      },
      "WhatsappDailyUsageStat": {
        "type": "object",
        "description": "Daily usage statistics",
        "additionalProperties": false,
        "properties": {
          "Date": {
            "type": "string",
            "format": "date-time"
          },
          "MessagesSent": {
            "type": "integer",
            "format": "int32"
          },
          "MarketingMessages": {
            "type": "integer",
            "format": "int32"
          },
          "UtilityMessages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiTenantWhatsappAccess": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "description": "Configuration for tenant access to WhatsApp resources",
            "additionalProperties": false,
            "properties": {
              "WhatsappBusinessAccountId": {
                "type": "integer",
                "format": "int32"
              },
              "AllowedPhoneNumberIds": {
                "type": "array",
                "description": "List of phone number IDs the tenant can use",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "AllowedTemplateIds": {
                "type": "array",
                "description": "List of template IDs the tenant can use",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "IsActive": {
                "type": "boolean"
              },
              "CreatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "UpdatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "BusinessAccountName": {
                "type": "string",
                "nullable": true
              },
              "AllowedPhoneNumbers": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiWhatsappPhoneNumber"
                }
              },
              "AllowedTemplates": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ApiWhatsappTemplate"
                }
              }
            }
          }
        ]
      },
      "ApiTenantWhatsappAccessInput": {
        "type": "object",
        "description": "Input model for configuring tenant WhatsApp access",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "TenantId": {
            "type": "integer",
            "format": "int32"
          },
          "BusinessAccountId": {
            "type": "integer",
            "format": "int32"
          },
          "AllowedPhoneNumberIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "AllowedTemplateIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "IsActive": {
            "type": "boolean"
          }
        }
      },
      "ApiWhatsappSystemVariable": {
        "type": "object",
        "description": "Available system variable for mapping",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          },
          "Example": {
            "type": "string"
          }
        }
      },
      "ApiTenantWhatsappAccessSummary": {
        "type": "object",
        "description": "Summary view for listing tenant access configurations",
        "additionalProperties": false,
        "properties": {
          "TenantId": {
            "type": "integer",
            "format": "int32"
          },
          "TenantName": {
            "type": "string"
          },
          "HasAccess": {
            "type": "boolean"
          },
          "BusinessAccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "BusinessAccountName": {
            "type": "string",
            "nullable": true
          },
          "AllowedPhoneNumberCount": {
            "type": "integer",
            "format": "int32"
          },
          "AllowedTemplateCount": {
            "type": "integer",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean"
          }
        }
      },
      "ApiWidgetCustomization": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Settings": {
            "type": "string"
          }
        }
      },
      "ApiWooCommerceConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "WOO_URL": {
            "type": "string"
          },
          "WOO_KEY": {
            "type": "string"
          },
          "WOO_SECRET": {
            "type": "string"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiWooCommerceConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiWooCommerceConfigModel"
              }
            ]
          }
        }
      },
      "ApiWooCommerceYampiConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "WooCommerceConfig": {
            "$ref": "#/components/schemas/ApiWooCommerceConfigModel"
          },
          "YampiConfig": {
            "$ref": "#/components/schemas/ApiYampiConfigModel"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiWooCommerceYampiConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiWooCommerceYampiConfigModel"
              }
            ]
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiYampiConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiYampiConfigModel"
              }
            ]
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiYampiResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiYampiResult"
              }
            ]
          }
        }
      },
      "ApiYampiResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Message": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiYampiV2ConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ClientId": {
            "type": "string",
            "nullable": true
          },
          "MerchantAlias": {
            "type": "string",
            "nullable": true
          },
          "IsAuthenticated": {
            "type": "boolean"
          }
        }
      },
      "ApiPlatformVendorIntegrationConfigResultOfApiYampiV2ConfigModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "HasErrors": {
            "type": "boolean"
          },
          "Config": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiYampiV2ConfigModel"
              }
            ]
          }
        }
      },
      "BaseWidgetResponseOfWizardLoginResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WizardLoginResponse"
              }
            ]
          }
        }
      },
      "WizardLoginResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PublicId": {
            "type": "string"
          },
          "HasBirthday": {
            "type": "boolean"
          },
          "HasStravaAuthorization": {
            "type": "boolean"
          },
          "IsActive": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "WidgetLoginRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "UserId": {
            "type": "string"
          },
          "Context": {
            "nullable": true
          }
        }
      },
      "WidgetAccountChallengeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "IsActive": {
            "type": "boolean"
          },
          "RequestSignup": {
            "type": "boolean"
          }
        }
      },
      "WidgetAccountChallengeRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string"
          }
        }
      },
      "WidgetAccountChallengeValidateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "Item": {
            "$ref": "#/components/schemas/WidgetAccountChallengeValidateResponseItem"
          }
        }
      },
      "WidgetAccountChallengeValidateResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PublicId": {
            "type": "string"
          },
          "HasBirthday": {
            "type": "boolean"
          },
          "SecureToken": {
            "type": "string"
          }
        }
      },
      "WidgetAccountChallengeValidate": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string"
          },
          "Code": {
            "type": "string"
          }
        }
      },
      "BaseWidgetResponseOfBoolean": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "boolean"
          }
        }
      },
      "BaseWidgetResponseOfAdviseResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/AdviseResponse"
              }
            ]
          }
        }
      },
      "AdviseResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/AdviseType"
          },
          "Title": {
            "type": "string"
          },
          "Subtitle": {
            "type": "string",
            "nullable": true
          },
          "RewardValue": {
            "type": "number",
            "format": "decimal"
          },
          "RewardPoint": {
            "type": "integer",
            "format": "int32"
          },
          "RewardId": {
            "type": "integer",
            "format": "int32"
          },
          "CartTotalPrice": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "CouponId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CouponCode": {
            "type": "string",
            "nullable": true
          },
          "Font": {
            "type": "string",
            "nullable": true
          },
          "Color": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "AdviseType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Login",
          "AddMoreProductsToUseReward",
          "AvailableRewardToRedeem",
          "AvailableCoupons",
          "PointToCashback"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "WidgetAdviseRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Context": {},
          "Session": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WidgetAdviseRequestSession"
              }
            ]
          }
        }
      },
      "WidgetAdviseRequestSession": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Url": {
            "type": "string"
          },
          "User-Agent": {
            "type": "string"
          }
        }
      },
      "BaseWidgetResponseOfAffiliateHistoryInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "$ref": "#/components/schemas/AffiliateHistoryInfo"
          }
        }
      },
      "AffiliateHistoryInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AvailableBalance": {
            "type": "number",
            "format": "decimal"
          },
          "AvailablePointsBalance": {
            "type": "integer",
            "format": "int32"
          },
          "ComissionValue": {
            "type": "number",
            "format": "decimal"
          },
          "ComissionPointsValue": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AffiliateOrderInfo"
            }
          },
          "UsePoints": {
            "type": "boolean"
          }
        }
      },
      "AffiliateOrderInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OrderPlacementDate": {
            "type": "string",
            "format": "date-time"
          },
          "ValueReceived": {
            "type": "number",
            "format": "decimal"
          },
          "PointsValueReceived": {
            "type": "integer",
            "format": "int32"
          },
          "OrderId": {
            "type": "string"
          },
          "NetValue": {
            "type": "number",
            "format": "decimal"
          },
          "IsCancelled": {
            "type": "boolean"
          }
        }
      },
      "BaseWidgetResponseOfJsonObject": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/KeyValuePairOfStringAndJsonNode"
            }
          }
        }
      },
      "KeyValuePairOfStringAndJsonNode": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Key": {
            "type": "string",
            "nullable": true
          },
          "Value": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/JsonNode"
              }
            ]
          }
        }
      },
      "JsonNode": {
        "type": "object",
        "x-abstract": true,
        "additionalProperties": false,
        "properties": {
          "Options": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/JsonNodeOptions"
              }
            ]
          },
          "Parent": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/JsonNode"
              }
            ]
          },
          "Root": {
            "$ref": "#/components/schemas/JsonNode"
          }
        }
      },
      "JsonNodeOptions": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PropertyNameCaseInsensitive": {
            "type": "boolean"
          }
        }
      },
      "CheckoutConfigurationResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Text": {
            "type": "string"
          },
          "ProgramName": {
            "type": "string"
          },
          "Color": {
            "type": "string"
          },
          "Active": {
            "type": "boolean"
          },
          "UseCashback": {
            "type": "boolean"
          },
          "UsePoints": {
            "type": "boolean"
          }
        }
      },
      "CheckoutCashbackValidateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CashbackBalance": {
            "type": "number",
            "format": "decimal"
          },
          "UsableCashback": {
            "type": "number",
            "format": "decimal"
          },
          "MaxUsableCashback": {
            "type": "number",
            "format": "decimal"
          },
          "CashbackRules": {
            "type": "string",
            "nullable": true
          },
          "CanUse": {
            "type": "boolean"
          },
          "CustomerMessage": {
            "type": "string",
            "nullable": true
          },
          "CashbackWillReceiveText": {
            "type": "string",
            "nullable": true
          },
          "RequiredToAddMoreText": {
            "type": "string",
            "nullable": true
          },
          "IsCashbackAvailable": {
            "type": "boolean",
            "nullable": true
          },
          "RemainingToTotalCashback": {
            "type": "number",
            "format": "decimal"
          },
          "RemainingToUse": {
            "type": "number",
            "format": "decimal"
          },
          "hasProductsIneligibleForCashback": {
            "type": "boolean"
          },
          "MinValueToUse": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "CheckoutIntegrationBody": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CheckoutId": {
            "type": "string"
          },
          "Total": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Discounts": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CheckoutIntegrationBodyDiscount"
            }
          },
          "CartHasRedemptionAttribute": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "CheckoutIntegrationBodyDiscount": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Code": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CheckoutApplyCashbackResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AppliedCashback": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Success": {
            "type": "boolean"
          },
          "CustomerMessage": {
            "type": "string"
          },
          "CashbackRules": {
            "type": "string",
            "nullable": true
          },
          "InternalMessage": {
            "type": "string",
            "nullable": true
          },
          "CouponCode": {
            "type": "string",
            "nullable": true
          },
          "Token": {
            "type": "string",
            "nullable": true
          },
          "RewardId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SecurityKey": {
            "type": "string",
            "nullable": true
          },
          "SecurityKeyValid": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "CheckoutCashbackRedeemRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CashbackValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Token": {
            "type": "string",
            "nullable": true
          },
          "RedeemOrigin": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RedeemOrigin"
              }
            ]
          },
          "Total": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "CheckoutCashbackRedeemPostRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CheckoutId": {
            "type": "string"
          },
          "CashbackValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Token": {
            "type": "string",
            "nullable": true
          },
          "RedeemOrigin": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RedeemOrigin"
              }
            ]
          },
          "Total": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "CheckoutRemoveCashbackResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "CustomerMessage": {
            "type": "string"
          }
        }
      },
      "CheckoutRemoveCashbackRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CheckoutIntegrationBody"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "MissingSecurityKey": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "CheckoutRedeemedCashbackRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CheckoutIntegrationBody"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "SecurityKey": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "CheckoutRefreshCashbackResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CashbackRemoved": {
            "type": "boolean"
          },
          "CustomerMessage": {
            "type": "string"
          }
        }
      },
      "BaseWidgetResponseOfPointsBalanceResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "$ref": "#/components/schemas/PointsBalanceResponse"
          }
        }
      },
      "PointsBalanceResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PointsBalance": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BaseWidgetResponseOfCustomerInfoResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "$ref": "#/components/schemas/CustomerInfoResponse"
          }
        }
      },
      "CustomerInfoResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PointsBalance": {
            "type": "integer",
            "format": "int32"
          },
          "PointsText": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "CurrentTier": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WidgetTier"
              }
            ]
          },
          "IsAffiliate": {
            "type": "boolean"
          },
          "LastPointUpdateDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "WidgetTier": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Image": {
            "type": "string"
          },
          "Color": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "Order": {
            "type": "integer",
            "format": "int32"
          },
          "Benefits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetTierBenefit"
            }
          },
          "Goals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetTierGoal"
            }
          },
          "GoalsDueDate": {
            "type": "string"
          }
        }
      },
      "WidgetTierBenefit": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IsUsed": {
            "type": "boolean"
          },
          "Description": {
            "type": "string"
          },
          "Type": {
            "$ref": "#/components/schemas/TierBenefitType"
          },
          "SubType": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Reward": {
            "$ref": "#/components/schemas/RewardsResponse"
          },
          "Objective": {}
        }
      },
      "RewardsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Type": {
            "$ref": "#/components/schemas/RewardType"
          },
          "Title": {
            "type": "string"
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Description": {
            "type": "string"
          },
          "Enabled": {
            "type": "boolean"
          },
          "DisabledReason": {
            "type": "string",
            "nullable": true
          },
          "CashbackBalance": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "PointBalance": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CashbackPointValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "IsCashbackInformativeOnly": {
            "type": "boolean"
          },
          "CashbackInformativeText": {
            "type": "string",
            "nullable": true
          },
          "CashbackRules": {
            "type": "string",
            "nullable": true
          },
          "CashbackAmount": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "NoPointCost": {
            "type": "boolean"
          },
          "CanUse": {
            "type": "boolean"
          },
          "UseReason": {
            "$ref": "#/components/schemas/CannotUseReasons"
          },
          "WidgetIconActive": {
            "type": "boolean"
          },
          "WidgetIcon": {
            "type": "string",
            "nullable": true
          },
          "LandingPageIconActive": {
            "type": "boolean"
          },
          "LandingPageIcon": {
            "type": "string",
            "nullable": true
          },
          "RemainingToUse": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "MinValueToUse": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ShouldUseCustomInstruction": {
            "type": "boolean"
          },
          "Rules": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiRewardConfigurationRules"
              }
            ]
          },
          "MaxUsableCashback": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Value": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "WidgetTierGoal": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "GoalValue": {
            "type": "number",
            "format": "double"
          },
          "CurrentValue": {
            "type": "number",
            "format": "double"
          },
          "PercentToGoal": {
            "type": "number",
            "format": "double"
          },
          "Due": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "DueString": {
            "type": "string",
            "nullable": true
          },
          "DueInDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/TierTargetType"
          }
        }
      },
      "BaseWidgetResponseOfPagedResponseOfWidgetPointHistoryItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PagedResponseOfWidgetPointHistoryItem"
              }
            ]
          }
        }
      },
      "PagedResponseOfWidgetPointHistoryItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetPointHistoryItem"
            }
          },
          "Pagination": {
            "$ref": "#/components/schemas/PagedInfo"
          }
        }
      },
      "WidgetPointHistoryItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Type": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Title": {
            "type": "string"
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Value": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "CashbackValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Cashback": {
            "type": "string",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "format": "date-time"
          },
          "DateTimeOffset": {
            "type": "string",
            "format": "date-time"
          },
          "OrderState": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderState"
              }
            ]
          },
          "CancelledDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "OriginalId": {
            "type": "string"
          },
          "CouponCode": {
            "type": "string",
            "nullable": true
          },
          "HasCouponCode": {
            "type": "boolean"
          },
          "CustomIcon": {
            "type": "string",
            "nullable": true
          },
          "IsCanceled": {
            "type": "boolean"
          },
          "IsPendingPointEarning": {
            "type": "boolean"
          }
        }
      },
      "PagedInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CurrentPage": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "BaseWidgetResponseOfString": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "BaseWidgetResponseOfListOfCustomerPointToExpire": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerPointToExpire"
            }
          }
        }
      },
      "CustomerPointToExpire": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Value": {
            "type": "integer",
            "format": "int32"
          },
          "Date": {
            "type": "string"
          }
        }
      },
      "BaseWidgetResponseOfSetAffiliateCodeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/SetAffiliateCodeResponse"
              }
            ]
          }
        }
      },
      "SetAffiliateCodeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Status": {
            "type": "string"
          },
          "Message": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "SetAffiliateCodeRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string"
          },
          "Code": {
            "type": "string"
          },
          "Metadata": {
            "nullable": true
          }
        }
      },
      "BaseWidgetResponseOfApiFitnessChallengeJoinResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiFitnessChallengeJoinResult"
              }
            ]
          }
        }
      },
      "ApiFitnessChallengeJoinResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ChallengeId": {
            "type": "integer",
            "format": "int32"
          },
          "ParticipationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IsJoined": {
            "type": "boolean"
          },
          "IsSuccess": {
            "type": "boolean"
          },
          "RequiresStravaAuthorization": {
            "type": "boolean"
          },
          "Code": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/FitnessChallengeParticipationStatus"
              }
            ]
          },
          "CurrentProgress": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "FitnessChallengeParticipationStatus": {
        "type": "integer",
        "description": "Status da participação do cliente em um objetivo fitness",
        "x-enumNames": [
          "Active",
          "Completed",
          "Failed",
          "Canceled"
        ],
        "enum": [
          1,
          2,
          3,
          4
        ]
      },
      "BaseWidgetResponseOfObject": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true
          }
        }
      },
      "BaseWidgetResponseOfListOfFitnessEnrolledChallengeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/FitnessEnrolledChallengeResponse"
            }
          }
        }
      },
      "FitnessEnrolledChallengeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "format": "date-time"
          },
          "GoalValue": {
            "type": "number",
            "format": "decimal"
          },
          "CriteriaType": {
            "$ref": "#/components/schemas/FitnessCriteriaType"
          },
          "GoalType": {
            "$ref": "#/components/schemas/FitnessGoalType"
          },
          "RecurrenceType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/FitnessRecurrenceType"
              }
            ]
          },
          "CurrentProgress": {
            "type": "number",
            "format": "decimal"
          },
          "Status": {
            "$ref": "#/components/schemas/FitnessChallengeParticipationStatus"
          }
        }
      },
      "BaseWidgetResponseOfObjectiveReferralReferResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ObjectiveReferralReferResponse"
              }
            ]
          }
        }
      },
      "ObjectiveReferralReferResponse": {
        "type": "object",
        "additionalProperties": false
      },
      "WidgetReferralRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "email": {
            "type": "string"
          },
          "webClientIP": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "BaseWidgetResponseOfWidgetFriendCouponLinkResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WidgetFriendCouponLinkResponse"
              }
            ]
          }
        }
      },
      "WidgetFriendCouponLinkResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Customer": {
            "$ref": "#/components/schemas/CustomerDTO"
          },
          "Discount": {
            "$ref": "#/components/schemas/DiscountDTO"
          },
          "AskForEmail": {
            "type": "boolean"
          }
        }
      },
      "CustomerDTO": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Id": {
            "type": "string"
          }
        }
      },
      "DiscountDTO": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/ReferralDiscountType"
          },
          "Value": {
            "type": "integer",
            "format": "int32"
          },
          "DiscountValueAsString": {
            "type": "string"
          },
          "DiscountTerms": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "WidgetFriendCouponLinkRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "string"
          },
          "FriendId": {
            "type": "string",
            "nullable": true
          },
          "webClientIP": {
            "type": "string",
            "nullable": true
          },
          "webClientFingerprint": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "BaseWidgetResponseOfWidgetFriendCouponGenerateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WidgetFriendCouponGenerateResponse"
              }
            ]
          }
        }
      },
      "WidgetFriendCouponGenerateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Code": {
            "type": "string"
          }
        }
      },
      "WidgetFriendCouponGenerateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "string"
          },
          "FriendId": {
            "type": "string"
          },
          "FriendEmail": {
            "type": "string",
            "nullable": true
          },
          "webClientIP": {
            "type": "string",
            "nullable": true
          },
          "webClientFingerprint": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "BaseWidgetResponseOfWidgetProcessPointsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WidgetProcessPointsResponse"
              }
            ]
          }
        }
      },
      "WidgetProcessPointsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Valid": {
            "type": "boolean"
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "WidgetSocialMediaRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "pointTypeSocialMedia": {
            "$ref": "#/components/schemas/PointType"
          }
        }
      },
      "BaseWidgetResponseOfRedeemResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RedeemResponse"
              }
            ]
          }
        }
      },
      "RedeemResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "ResultMessage": {
            "type": "string"
          },
          "Code": {
            "type": "string"
          },
          "CouponCode": {
            "type": "string",
            "nullable": true
          },
          "HasCouponCode": {
            "type": "boolean"
          },
          "AfterMessage": {
            "type": "string",
            "nullable": true
          },
          "Reward": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardsRedeemedResponse"
              }
            ]
          }
        }
      },
      "RewardsRedeemedResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RewardsResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "RedeemedId": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RedeemedPoints": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              },
              "RedeemedValue": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseWidgetResponseOfListOfReferralSentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReferralSentResponse"
            }
          }
        }
      },
      "ReferralSentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Email": {
            "type": "string"
          },
          "Status": {
            "$ref": "#/components/schemas/ReferralStatus"
          }
        }
      },
      "ReferralStatus": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Sent",
          "Purchased"
        ],
        "enum": [
          0,
          1
        ]
      },
      "BaseWidgetResponseOfListOfReviewUrlWidgetResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReviewUrlWidgetResponse"
            }
          }
        }
      },
      "ReviewUrlWidgetResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Url": {
            "type": "string"
          },
          "OrderId": {
            "type": "string"
          }
        }
      },
      "BaseWidgetResponseOfListOfWidgetQuiz": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/WidgetQuiz"
            }
          }
        }
      },
      "WidgetQuiz": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "AmountOfPoints": {
            "type": "integer",
            "format": "int32"
          },
          "AttemptsLeft": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IsCompleted": {
            "type": "boolean"
          },
          "Questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetQuizQuestion"
            }
          }
        }
      },
      "WidgetQuizQuestion": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Question": {
            "type": "string"
          },
          "Order": {
            "type": "integer",
            "format": "int32"
          },
          "Type": {
            "$ref": "#/components/schemas/QuizQuestionType"
          },
          "QuizId": {
            "type": "integer",
            "format": "int32"
          },
          "Options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WidgetQuizQuestionOption"
            }
          }
        }
      },
      "WidgetQuizQuestionOption": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "QuestionId": {
            "type": "integer",
            "format": "int32"
          },
          "Text": {
            "type": "string"
          },
          "Order": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BaseWidgetResponseOfWidgetQuiz": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WidgetQuiz"
              }
            ]
          }
        }
      },
      "ApiQuizCustomerAnswerRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "QuizQuestionId": {
            "type": "integer",
            "format": "int32"
          },
          "OpenAnswer": {
            "type": "string",
            "nullable": true
          },
          "OptionIds": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "BaseWidgetResponseOfListOfRewardsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/RewardsResponse"
            }
          }
        }
      },
      "WidgetCustomizationResponseOfListOfRewardsResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseWidgetResponseOfListOfRewardsResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ProgramName": {
                "type": "string",
                "nullable": true
              },
              "PointsBalance": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "WidgetRewardRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "nullable": true
          },
          "CashbackValue": {
            "type": "number",
            "format": "decimal"
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "RedeemOrigin": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RedeemOrigin"
              }
            ]
          }
        }
      },
      "WidgetCustomizationResponseOfListOfRewardsRedeemedResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseWidgetResponseOfListOfRewardsRedeemedResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ProgramName": {
                "type": "string",
                "nullable": true
              },
              "PointsBalance": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseWidgetResponseOfListOfRewardsRedeemedResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/RewardsRedeemedResponse"
            }
          }
        }
      },
      "WidgetCustomizationResponseOfCheckoutPurchasePointsResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseWidgetResponseOfCheckoutPurchasePointsResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ProgramName": {
                "type": "string",
                "nullable": true
              },
              "PointsBalance": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseWidgetResponseOfCheckoutPurchasePointsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CheckoutPurchasePointsResponse"
              }
            ]
          }
        }
      },
      "CheckoutPurchasePointsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "MinValueToReceive": {
            "type": "number",
            "format": "decimal"
          },
          "PurchasePoints": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseCashback": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "HasPurchaseObjective": {
            "type": "boolean"
          }
        }
      },
      "WidgetCustomizationResponseOfCheckoutRedeemResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseWidgetResponseOfCheckoutRedeemResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ProgramName": {
                "type": "string",
                "nullable": true
              },
              "PointsBalance": {
                "type": "integer",
                "format": "int32",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseWidgetResponseOfCheckoutRedeemResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CheckoutRedeemResponse"
              }
            ]
          }
        }
      },
      "CheckoutRedeemResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "CouponCode": {
            "type": "string",
            "nullable": true
          },
          "Reward": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardsRedeemedResponse"
              }
            ]
          }
        }
      },
      "CheckoutRedeemRewardRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CheckoutCode": {
            "type": "string"
          }
        }
      },
      "BaseWidgetResponseOfListOfCustomerRedeemedRewardResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerRedeemedRewardResponse"
            }
          }
        }
      },
      "CustomerRedeemedRewardResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Title": {
            "type": "string"
          },
          "ExpirationDate": {
            "type": "string",
            "format": "date-time"
          },
          "Expired": {
            "type": "boolean"
          },
          "UsedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CouponCode": {
            "type": "string"
          },
          "Used": {
            "type": "boolean"
          },
          "Active": {
            "type": "boolean"
          },
          "RedeemedAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "Status": {
            "type": "string"
          },
          "WidgetIconActive": {
            "type": "boolean"
          },
          "WidgetIcon": {
            "type": "string",
            "nullable": true
          },
          "RewardType": {
            "$ref": "#/components/schemas/RewardType"
          }
        }
      },
      "BaseWidgetResponseOfCashbackRewardResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CashbackRewardResponse"
              }
            ]
          }
        }
      },
      "CashbackRewardResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Enabled": {
            "type": "boolean"
          },
          "CashbackPointValue": {
            "type": "number",
            "format": "decimal"
          },
          "MinimalValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "MaxUsableCashback": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "MinimumPercentPurchase": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        }
      },
      "BaseWidgetResponseOfStravaAuthorizationUrlResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/StravaAuthorizationUrlResponse"
              }
            ]
          }
        }
      },
      "StravaAuthorizationUrlResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AuthorizationUrl": {
            "type": "string"
          }
        }
      },
      "BaseWidgetResponseOfStravaAppAuthorizationUrlResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/StravaAppAuthorizationUrlResponse"
              }
            ]
          }
        }
      },
      "StravaAppAuthorizationUrlResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AuthorizationUrl": {
            "type": "string"
          },
          "AppAuthorizationUrl": {
            "type": "string"
          }
        }
      },
      "BaseWidgetResponseOfStravaAppAuthorizationCompleteResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/StravaAppAuthorizationCompleteResponse"
              }
            ]
          }
        }
      },
      "StravaAppAuthorizationCompleteResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Connected": {
            "type": "boolean"
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "AthleteId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "FitnessChallengeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "StravaAppAuthorizationCompleteRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Code": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "Scope": {
            "type": "string",
            "nullable": true
          },
          "Error": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "BaseWidgetResponseOfTermsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/TermsResponse"
              }
            ]
          }
        }
      },
      "TermsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Terms": {
            "type": "string"
          }
        }
      },
      "TFAffiliateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "orderFormId": {
            "type": "string"
          },
          "affiliateId": {
            "type": "string"
          },
          "customerEmail": {
            "type": "string",
            "nullable": true
          },
          "IsRetry": {
            "type": "boolean",
            "nullable": true
          },
          "IsUrlLastClick": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "BaseWidgetResponseOfWidgetSecureLoginResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Item": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WidgetSecureLoginResponse"
              }
            ]
          }
        }
      },
      "WidgetSecureLoginResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "UserId": {
            "type": "string"
          },
          "SecureToken": {
            "type": "string"
          }
        }
      },
      "CompraRapidaRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "Document": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LinxBenefitsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Transaction": {
            "$ref": "#/components/schemas/LinxTransaction"
          },
          "Benefits": {
            "$ref": "#/components/schemas/LinxBenefits"
          },
          "BenefitsErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinxApiError"
            }
          }
        }
      },
      "LinxTransaction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CreatedDate": {
            "type": "string",
            "format": "date-time"
          },
          "SessionID": {
            "type": "string"
          },
          "ShopperTicketID": {
            "type": "string"
          },
          "BasketID": {
            "type": "integer",
            "format": "int32"
          },
          "Source": {
            "type": "string"
          },
          "PromotionID": {
            "type": "integer",
            "format": "int32"
          },
          "PromotionName": {
            "type": "string"
          },
          "PromotionDocumentNumber": {
            "type": "string"
          }
        }
      },
      "LinxBenefits": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Cashback": {
            "$ref": "#/components/schemas/LinxCashback"
          }
        }
      },
      "LinxCashback": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "BalanceAmount": {
            "type": "number",
            "format": "decimal"
          },
          "Message": {
            "type": "string"
          }
        }
      },
      "LinxApiError": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Code": {
            "type": "string"
          },
          "Message": {
            "type": "string"
          }
        }
      },
      "LinxBenefitRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Transaction": {
            "$ref": "#/components/schemas/LinxBenefitTransaction"
          },
          "Customer": {
            "$ref": "#/components/schemas/LinxBenefitCustomer"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinxBenefitItem"
            }
          },
          "DeliveryMethods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinxBenefitDeliveryMethod"
            }
          },
          "PaymentMethods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinxBenefitPaymentMethod"
            }
          },
          "SubTotal": {
            "type": "number",
            "format": "decimal"
          },
          "Total": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "LinxBenefitTransaction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "SessionID": {
            "type": "string",
            "nullable": true
          },
          "ShopperTicketID": {
            "type": "string",
            "nullable": true
          },
          "BasketID": {
            "type": "integer",
            "format": "int32"
          },
          "Source": {
            "type": "string",
            "nullable": true
          },
          "PromotionID": {
            "type": "integer",
            "format": "int32"
          },
          "PromotionName": {
            "type": "string",
            "nullable": true
          },
          "PromotionDocumentNumber": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LinxBenefitCustomer": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerID": {
            "type": "integer",
            "format": "int32"
          },
          "Cpf": {
            "type": "string",
            "nullable": true
          },
          "Rg": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "CellPhone": {
            "type": "string",
            "nullable": true
          },
          "Birthday": {
            "type": "string",
            "nullable": true
          },
          "DeliveryRegion": {
            "$ref": "#/components/schemas/LinxBenefitDeliveryRegion"
          }
        }
      },
      "LinxBenefitDeliveryRegion": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "UF": {
            "type": "string",
            "nullable": true
          },
          "Cep": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LinxBenefitItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "BasketItemID": {
            "type": "integer",
            "format": "int32"
          },
          "ProductName": {
            "type": "string",
            "nullable": true
          },
          "ProductID": {
            "type": "integer",
            "format": "int32"
          },
          "SkuId": {
            "type": "integer",
            "format": "int32"
          },
          "IntegrationID": {
            "type": "string",
            "nullable": true
          },
          "Quantity": {
            "type": "integer",
            "format": "int32"
          },
          "Price": {
            "type": "number",
            "format": "decimal"
          },
          "SpecialType": {
            "type": "string",
            "nullable": true
          },
          "Brand": {
            "type": "string",
            "nullable": true
          },
          "Categories": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LinxBenefitDeliveryMethod": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "DeliveryMethodID": {
            "type": "string",
            "nullable": true
          },
          "DeliveryAmount": {
            "type": "number",
            "format": "decimal"
          },
          "DeliveryName": {
            "type": "string",
            "nullable": true
          },
          "Alias": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LinxBenefitPaymentMethod": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PaymentMethodID": {
            "type": "integer",
            "format": "int32"
          },
          "PaymentType": {
            "type": "string",
            "nullable": true
          },
          "IntegrationID": {
            "type": "string",
            "nullable": true
          },
          "Alias": {
            "type": "string",
            "nullable": true
          },
          "MinInstallmentAmount": {
            "type": "number",
            "format": "decimal"
          },
          "MaxInstallments": {
            "type": "integer",
            "format": "int32"
          },
          "MaxInstallmentsNoInterest": {
            "type": "integer",
            "format": "int32"
          },
          "InterestRate": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "FbitsWebhookReceived": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "topico": {
            "type": "string"
          },
          "evento": {
            "$ref": "#/components/schemas/FbitsWebhookReceivedEvento"
          },
          "data_envio": {
            "type": "string",
            "format": "date-time"
          },
          "tentativa": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "FbitsWebhookReceivedEvento": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "loja": {
            "type": "string"
          },
          "pedido": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "usuario": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "data_evento": {
            "type": "string"
          }
        }
      },
      "LinxNotifyPartnerResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IsValid": {
            "type": "boolean"
          },
          "BenefitsErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinxApiError"
            }
          },
          "SuccessMessage": {
            "type": "string"
          }
        }
      },
      "LinxNotifyPartnerRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Transaction": {
            "$ref": "#/components/schemas/LinxNotifyPartnerRequestTransaction"
          },
          "Order": {
            "$ref": "#/components/schemas/LinxNotifyPartnerRequestOrder"
          },
          "Customer": {
            "$ref": "#/components/schemas/LinxNotifyPartnerRequestCustomer"
          },
          "AppliedBenefits": {
            "$ref": "#/components/schemas/LinxNotifyPartnerRequestAppliedBenefits"
          }
        }
      },
      "LinxNotifyPartnerRequestTransaction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CreatedDate": {
            "type": "string",
            "format": "date-time"
          },
          "SessionID": {
            "type": "string",
            "nullable": true
          },
          "ShopperTicketID": {
            "type": "string",
            "nullable": true
          },
          "BasketID": {
            "type": "integer",
            "format": "int32"
          },
          "Source": {
            "type": "string",
            "nullable": true
          },
          "PromotionID": {
            "type": "integer",
            "format": "int32"
          },
          "PromotionName": {
            "type": "string",
            "nullable": true
          },
          "PromotionDocumentNumber": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LinxNotifyPartnerRequestOrder": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OrderID": {
            "type": "string",
            "nullable": true
          },
          "CreatedDate": {
            "type": "string",
            "format": "date-time"
          },
          "Status": {
            "type": "integer",
            "format": "int32"
          },
          "ModifiedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "LinxNotifyPartnerRequestCustomer": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerID": {
            "type": "integer",
            "format": "int32"
          },
          "Cpf": {
            "type": "string",
            "nullable": true
          },
          "Rg": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "CellPhone": {
            "type": "string",
            "nullable": true
          },
          "Birthday": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LinxNotifyPartnerRequestAppliedBenefits": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ExternalPromotionIDs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Cashback": {
            "$ref": "#/components/schemas/LinxNotifyPartnerRequestCashback"
          }
        }
      },
      "LinxNotifyPartnerRequestCashback": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Amount": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "StravaWebhookEvent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "object_type": {
            "type": "string"
          },
          "object_id": {
            "type": "integer",
            "format": "int64"
          },
          "aspect_type": {
            "type": "string"
          },
          "owner_id": {
            "type": "integer",
            "format": "int64"
          },
          "subscription_id": {
            "type": "integer",
            "format": "int64"
          },
          "event_time": {
            "type": "integer",
            "format": "int64"
          },
          "updates": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PostmarkUnsubscribe": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          },
          "Type": {
            "type": "string"
          }
        }
      },
      "VindiWebhook": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "event": {
            "$ref": "#/components/schemas/VindiWebhookEventBase"
          }
        }
      },
      "VindiWebhookEventBase": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "type": "string"
          },
          "data": {}
        }
      },
      "VtexCalculatePromotionRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "correlationId": {
            "type": "string",
            "nullable": true
          },
          "shopperProfileId": {
            "type": "string",
            "nullable": true
          },
          "salesChannelId": {
            "type": "string"
          },
          "customFields": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "object",
              "nullable": true,
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VtexPromotionCartItem"
            }
          }
        }
      },
      "VtexPromotionCartItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "number",
            "format": "decimal"
          },
          "catalogInfo": {
            "$ref": "#/components/schemas/VtexPromotionCatalogInfo"
          }
        }
      },
      "VtexPromotionCatalogInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "productId": {
            "type": "string"
          },
          "collectionIds": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VtexNotifyPromotionUsageRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "correlationId": {
            "type": "string",
            "nullable": true
          },
          "orderId": {
            "type": "string"
          },
          "promotionUsages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VtexPromotionUsage"
            }
          }
        }
      },
      "VtexPromotionUsage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "promotionId": {
            "type": "string"
          }
        }
      },
      "VtexOrderHookNotification": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "hookConfig": {
            "type": "string",
            "nullable": true
          },
          "Domain": {
            "type": "string",
            "nullable": true
          },
          "OrderId": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "VtexGiftcardHomolog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "relationName": {
            "type": "string",
            "nullable": true
          },
          "emissionDate": {
            "type": "string",
            "nullable": true
          },
          "expiringDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "caption": {
            "type": "string",
            "nullable": true
          },
          "restrictedToOwner": {
            "nullable": true
          },
          "multipleRedemptions": {
            "nullable": true
          },
          "multipleCredits": {
            "nullable": true
          },
          "profileId": {
            "type": "string",
            "nullable": true
          },
          "currencyCode": {
            "nullable": true
          }
        }
      },
      "VtexGiftcardSearchResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "redemptionCode": {
            "type": "string"
          },
          "balance": {
            "type": "number",
            "format": "decimal"
          },
          "caption": {
            "type": "string"
          },
          "emissionDate": {
            "type": "string",
            "format": "date-time"
          },
          "expiringDate": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "transaction": {
            "$ref": "#/components/schemas/VtexGiftcardSearchResultTransaction"
          }
        }
      },
      "VtexGiftcardSearchResultTransaction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "href": {
            "type": "string"
          }
        }
      },
      "VtexGiftcardSearch": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "cart": {
            "$ref": "#/components/schemas/VtexGiftcardSearchCart"
          },
          "client": {
            "$ref": "#/components/schemas/VtexGiftcardSearchClient"
          }
        }
      },
      "VtexGiftcardSearchCart": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "grandTotal": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "relationName": {
            "nullable": true
          },
          "redemptionCode": {
            "nullable": true
          },
          "discounts": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "shipping": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "taxes": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "items": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/VtexGiftcardTransactionItem"
            }
          },
          "payments": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/VtexGiftcardSearchPayment"
            }
          },
          "sc": {
            "type": "string",
            "nullable": true
          },
          "itemsTotal": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "shippingData": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/VtexGiftcardSearchShippingData"
              }
            ]
          }
        }
      },
      "VtexGiftcardTransactionItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "productId": {
            "type": "string",
            "nullable": true
          },
          "refId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "sellingPrice": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "totalShippingDiscount": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "sellerId": {
            "type": "string",
            "nullable": true
          },
          "totalDiscount": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "VtexGiftcardSearchPayment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "paymentSystem": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "referenceValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "value": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "bin": {
            "nullable": true
          },
          "lastDigits": {
            "nullable": true
          }
        }
      },
      "VtexGiftcardSearchShippingData": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "receiverName": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "neighborhood": {
            "type": "string",
            "nullable": true
          },
          "complement": {
            "nullable": true
          },
          "reference": {
            "nullable": true
          }
        }
      },
      "VtexGiftcardSearchClient": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "ip": {
            "nullable": true
          },
          "userAgent": {
            "nullable": true
          },
          "document": {
            "type": "string",
            "nullable": true
          },
          "documentType": {
            "nullable": true
          },
          "corporateName": {
            "nullable": true
          },
          "tradeName": {
            "nullable": true
          },
          "corporateDocument": {
            "nullable": true
          }
        }
      },
      "VtexGiftcardTransactionResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "cardId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "_self": {
            "$ref": "#/components/schemas/VtexGiftcardTransactionResultSelf"
          }
        }
      },
      "VtexGiftcardTransactionResultSelf": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "href": {
            "type": "string"
          }
        }
      },
      "VtexGiftcardTransaction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "operation": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "number",
            "format": "decimal"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "redemptionToken": {
            "nullable": true
          },
          "redemptionCode": {
            "type": "string",
            "nullable": true
          },
          "requestId": {
            "type": "string",
            "nullable": true
          },
          "orderInfo": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/VtexGiftcardTransactionOrderInfo"
              }
            ]
          },
          "paymentRelatedSellerInfo": {
            "nullable": true
          }
        }
      },
      "VtexGiftcardTransactionOrderInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "orderId": {
            "type": "string",
            "nullable": true
          },
          "sequence": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cart": {
            "$ref": "#/components/schemas/VtexGiftcardTransactionCart"
          },
          "clientProfile": {
            "$ref": "#/components/schemas/VtexGiftcardTransactionClientProfile"
          },
          "shipping": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/VtexGiftcardTransactionShipping"
              }
            ]
          }
        }
      },
      "VtexGiftcardTransactionCart": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VtexGiftcardTransactionItem"
            }
          },
          "payments": {
            "nullable": true
          },
          "grandTotal": {
            "type": "number",
            "format": "decimal"
          },
          "discounts": {
            "type": "number",
            "format": "decimal"
          },
          "shipping": {
            "type": "number",
            "format": "decimal"
          },
          "taxes": {
            "type": "number",
            "format": "decimal"
          },
          "itemsTotal": {
            "type": "number",
            "format": "decimal"
          },
          "sc": {
            "nullable": true
          }
        }
      },
      "VtexGiftcardTransactionClientProfile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "document": {
            "type": "string",
            "nullable": true
          },
          "documentType": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "birthDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isCorporate": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "VtexGiftcardTransactionShipping": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "receiverName": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "neighborhood": {
            "type": "string",
            "nullable": true
          },
          "complement": {
            "nullable": true
          },
          "reference": {
            "nullable": true
          }
        }
      },
      "VtexGiftcardListCancelResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "oid": {
            "type": "string"
          },
          "value": {
            "type": "number",
            "format": "decimal"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "VtexGiftcardListCancel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "number",
            "format": "decimal"
          },
          "requestId": {
            "type": "string"
          }
        }
      },
      "WhatsappWebhookMessage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "object": {
            "type": "string"
          },
          "entry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WhatsappWebhookMessageEntry"
            }
          }
        }
      },
      "WhatsappWebhookMessageEntry": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "changes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WhatsappWebhookMessageChange"
            }
          }
        }
      },
      "WhatsappWebhookMessageChange": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "$ref": "#/components/schemas/WhatsappWebhookMessageValue"
          },
          "field": {
            "type": "string"
          }
        }
      },
      "WhatsappWebhookMessageValue": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "messaging_product": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/WhatsappWebhookMessageMetadata"
          },
          "contacts": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/WhatsappWebhookMessageContact"
            }
          },
          "messages": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/WhatsappWebhookMessageMessage"
            }
          },
          "statuses": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/WhatsappWebhookStatus"
            }
          }
        }
      },
      "WhatsappWebhookMessageMetadata": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "display_phone_number": {
            "type": "string"
          },
          "phone_number_id": {
            "type": "string"
          }
        }
      },
      "WhatsappWebhookMessageContact": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "profile": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WhatsappWebhookMessageProfile"
              }
            ]
          },
          "wa_id": {
            "type": "string"
          }
        }
      },
      "WhatsappWebhookMessageProfile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "WhatsappWebhookMessageMessage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "from": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "timestamp": {
            "type": "string"
          },
          "text": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WhatsappWebhookMessageText"
              }
            ]
          },
          "type": {
            "type": "string"
          }
        }
      },
      "WhatsappWebhookMessageText": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "body": {
            "type": "string"
          }
        }
      },
      "WhatsappWebhookStatus": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "timestamp": {
            "type": "string"
          },
          "recipient_id": {
            "type": "string"
          },
          "conversation": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WhatsappWebhookConversation"
              }
            ]
          },
          "pricing": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WhatsappWebhookPricing"
              }
            ]
          },
          "errors": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/WhatsappWebhookError"
            }
          }
        }
      },
      "WhatsappWebhookConversation": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "origin": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WhatsappWebhookOrigin"
              }
            ]
          },
          "expiration_timestamp": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "WhatsappWebhookOrigin": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string"
          }
        }
      },
      "WhatsappWebhookPricing": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "billable": {
            "type": "boolean"
          },
          "pricing_model": {
            "type": "string"
          },
          "category": {
            "type": "string"
          }
        }
      },
      "WhatsappWebhookError": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "error_data": {
            "nullable": true
          }
        }
      },
      "CustomerPointsResponse": {
        "type": "object",
        "description": "Customer Points Response Model",
        "additionalProperties": false,
        "properties": {
          "CustomerExists": {
            "type": "boolean",
            "description": "If True the customer was found on the Bonifiq DB"
          },
          "InternalId": {
            "type": "string",
            "description": "ID for this customer on the Bonifiq DB"
          },
          "PointsBalance": {
            "type": "integer",
            "description": "Amount of points for this customer.",
            "format": "int32"
          },
          "PointsToExpire": {
            "type": "array",
            "description": "Points to expire, ordered by expiration date.\nA batch with no expiration date of its own gets an estimated date, which may not happen.",
            "items": {
              "$ref": "#/components/schemas/CustomerPointsToExpire"
            }
          },
          "NextPointsToExpire": {
            "description": "The next batch of points to expire, the same information the widget shows to the customer.\nNull when the customer has no points close to expiration or when expiration is not active.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerPointsToExpire"
              }
            ]
          },
          "CashbackBalance": {
            "type": "number",
            "description": "When the cashback reward is active it returns the amount (in R$) of cashback the customer have\nReturns 0 when the cashback is inactive ",
            "format": "decimal"
          },
          "RedeemKey": {
            "type": "string",
            "description": "Returns a key for this given point change",
            "nullable": true
          },
          "PointHistory": {
            "type": "array",
            "description": "A detailed list of point transactions for the customer.",
            "items": {
              "$ref": "#/components/schemas/PointDetailItem"
            }
          },
          "PendingOrders": {
            "type": "array",
            "description": "Most recent orders still waiting to receive purchase points, with the estimated points and cashback.\nThe estimate may change until the points are granted.",
            "items": {
              "$ref": "#/components/schemas/CustomerPendingOrderResponse"
            }
          },
          "Name": {
            "type": "string"
          }
        }
      },
      "CustomerPointsToExpire": {
        "type": "object",
        "description": "Customer Points to expire Model",
        "additionalProperties": false,
        "properties": {
          "Points": {
            "type": "integer",
            "description": "Amount of Points",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "description": "Cashback value represented by the expiring points",
            "format": "decimal",
            "nullable": true
          },
          "When": {
            "type": "string",
            "description": "Expiration Date of the points",
            "format": "date-time"
          }
        }
      },
      "PointDetailItem": {
        "type": "object",
        "description": "Represents a single point transaction detail.",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The unique identifier for the point transaction.",
            "format": "int64"
          },
          "IsCanceled": {
            "type": "boolean",
            "description": "Indicates whether this history item was canceled."
          },
          "DateReceived": {
            "type": "string",
            "description": "The date when the points were received or redeemed.",
            "format": "date-time"
          },
          "ExpirationDate": {
            "type": "string",
            "description": "The calculated expiration date for these points.",
            "format": "date-time",
            "nullable": true
          },
          "Amount": {
            "type": "integer",
            "description": "The amount of points in this transaction (positive for received, negative for redeemed).",
            "format": "int32"
          },
          "CashbackAmount": {
            "type": "number",
            "description": "The amount of cashback associated with this transaction, if applicable.",
            "format": "decimal",
            "nullable": true
          },
          "BranchId": {
            "type": "string",
            "description": "The ID of the branch associated with the point transaction (if applicable, e.g., from an order).",
            "nullable": true
          },
          "BranchName": {
            "type": "string",
            "description": "The name of the branch associated with the point transaction (if applicable, e.g., from an order).",
            "nullable": true
          },
          "OrderOrigin": {
            "description": "The order origin associated with the point transaction when the point comes from a purchase order.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderOrigin"
              }
            ]
          },
          "OrderOriginDescription": {
            "type": "string",
            "description": "Human-readable description for the order origin when the point comes from a purchase order.",
            "nullable": true
          },
          "PointType": {
            "type": "integer",
            "description": "The type of the point transaction (e.g., Purchase, Signup, Birthday, etc.).",
            "format": "int32",
            "nullable": true
          },
          "PointTypeDescription": {
            "type": "string",
            "description": "Human-readable description of the point type.",
            "nullable": true
          },
          "OrderValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "OrderId": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CustomerPendingOrderResponse": {
        "type": "object",
        "description": "Pending points and cashback projection for a single order.",
        "additionalProperties": false,
        "properties": {
          "OrderId": {
            "type": "string",
            "description": "Order id from the client's store.",
            "nullable": true
          },
          "OrderDate": {
            "type": "string",
            "description": "Order date informed by the integration.",
            "format": "date-time"
          },
          "OrderValue": {
            "type": "number",
            "description": "Order amount considered for point calculation.",
            "format": "decimal"
          },
          "PendingPoints": {
            "type": "integer",
            "description": "Estimated points to be granted for this order.",
            "format": "int32"
          },
          "PendingCashback": {
            "type": "number",
            "description": "Estimated cashback equivalent for this order when cashback is active. Otherwise null.",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "CustomerTierResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Color": {
            "type": "string"
          },
          "IconUrl": {
            "type": "string"
          }
        }
      },
      "CustomerEventRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string"
          }
        }
      },
      "ExternalAPICustomizationResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Logo": {
            "type": "string",
            "description": "The URL of the store. This is usually used in the e-mails sent do customers.",
            "nullable": true
          },
          "CashbackName": {
            "type": "string",
            "description": "The user can change the name \"cashback\" to something like \"Giftback\". Returned as plain text, exactly as configured.\nIf null, the name was not customized and \"cashback\" (or its translation) should be used",
            "nullable": true
          },
          "ProgramName": {
            "type": "string",
            "description": "The name of the loyalty program. This could be different from the store name. Eg: \"MyStore Rewards\"",
            "nullable": true
          },
          "FontName": {
            "type": "string",
            "description": "Name of the font set. If null use a default font",
            "nullable": true
          },
          "FontUrl": {
            "type": "string",
            "description": "URL for the font. For webfonts the FontUrl is null otherwise the URL if given in this field",
            "nullable": true
          },
          "MainColor": {
            "type": "string",
            "description": "The hexadecimal color used as a main theme color for the program.  "
          },
          "Url": {
            "type": "string",
            "description": "The URL of the store or loyalty landing page. It could be useful when communicating with the customer for sending him to the store.",
            "nullable": true
          },
          "CompanyName": {
            "type": "string",
            "description": "Name of the store or company. Can be used in communications."
          },
          "Locale": {
            "type": "string",
            "description": "Locale configured for the tenant.",
            "nullable": true
          },
          "WidgetIconUrl": {
            "type": "string",
            "description": "The URL of the icon used as reference in the loyaty program. Used in widget an landing pages. If null, the default icon should be used",
            "nullable": true
          },
          "HaveIconUrl": {
            "type": "boolean",
            "description": "if true the icon URL is set and should be used. If false, the default icon should be used"
          },
          "WidgetColor": {
            "type": "string",
            "description": "if `HaveIconUrl` is false, this color should be used in the widget. ",
            "nullable": true
          },
          "PointsNameSingular": {
            "type": "string",
            "description": "The user can change the name \"Points\" to something like \"Coins\". This is the Singular version"
          },
          "PointNamePlural": {
            "type": "string",
            "description": "The user can change the name \"Points\" to something like \"Coins\". This is the Plural version"
          },
          "CustomerMainKey": {
            "type": "string",
            "description": "Customer identification key configured for the tenant: \"email\" or \"document\". Defaults to \"email\"."
          },
          "CashbackActive": {
            "type": "boolean",
            "description": "True when the cashback reward is active. When false, the customer's balance should be shown in points only"
          },
          "OtherRewardsActive": {
            "type": "boolean",
            "description": "True when at least one reward other than cashback (discount coupons, free shipping or customized rewards) is active.\nWhen only the cashback reward is active (`CashbackActive` true and this false), the balance should be shown in cashback only"
          }
        }
      },
      "ApiResponseOfListOfProductPointResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ProductPointResponse"
                }
              }
            }
          }
        ]
      },
      "ProductPointResponse": {
        "type": "object",
        "description": "Earnings estimate and cashback usage eligibility for one requested product.",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "string",
            "description": "External product identifier, returned exactly as supplied in the request.",
            "example": "SKU-001"
          },
          "Points": {
            "type": "integer",
            "description": "Estimated earned points after applicable bonuses, limits and zero-point rules.\nThis is a product estimate, not a guarantee of points granted for a completed order.",
            "format": "int32",
            "example": 499
          },
          "Cashback": {
            "type": "number",
            "description": "Estimated cashback earned from the simulated points, truncated to whole currency units.\nNull when cashback is unavailable; zero is a valid estimate and differs from null.",
            "format": "decimal",
            "nullable": true,
            "example": 4
          },
          "CashbackPercent": {
            "type": "number",
            "description": "The cashback percentage calculated from the final simulated points and product price,\nincluding bonuses and limits, rounded up to a whole percentage before monetary truncation.\nIt will be null if cashback is unavailable or the product price is not positive.",
            "format": "decimal",
            "nullable": true,
            "example": 1
          },
          "CanUseCashback": {
            "type": "boolean",
            "description": "Whether cashback can be used on this product, considering product restrictions only,\nnot the customer's balance. False for restricted products, true for eligible products\n(including unknown products or disabled restrictions), and null when cashback is inactive.",
            "nullable": true,
            "example": true
          },
          "CanUseCashbackPercent": {
            "type": "number",
            "description": "Maximum percentage of this product's price payable with cashback, assuming sufficient balance.\nIncludes product restrictions, the configured percentage limit and monetary cap, before redemption rounding.\nNull without active cashback or for a nonpositive price; zero for a restricted product.",
            "format": "decimal",
            "nullable": true,
            "example": 20
          }
        }
      },
      "ProductPointRequest": {
        "type": "object",
        "description": "One product to estimate independently. Supply prices in the currency used by the loyalty program.",
        "additionalProperties": false,
        "required": [
          "Id",
          "Price"
        ],
        "properties": {
          "Id": {
            "type": "string",
            "description": "Product Id on the ecommerce platform",
            "minLength": 1,
            "example": "SKU-001"
          },
          "Price": {
            "type": "number",
            "description": "Current product selling price",
            "format": "decimal",
            "example": 499.99
          },
          "PriceCurrency": {
            "type": "string",
            "description": "Optional currency label (for example, BRL). It does not select a currency or perform conversion;\nthe calculation uses Price as supplied.",
            "nullable": true,
            "example": "BRL"
          },
          "Name": {
            "type": "string",
            "description": "Optional product name. It does not affect product lookup, earning rules or cashback restrictions.",
            "nullable": true,
            "example": "Running shoes"
          },
          "TradePolicyId": {
            "type": "string",
            "description": "Optional trade policy (sales channel) identifier from the ecommerce platform, such as the VTEX `sc`.\nEarning rules restricted to this trade policy are included in the estimate.\nAn unknown or empty value is ignored, so the estimate is the same as when the field is omitted.",
            "nullable": true,
            "example": 2
          }
        }
      },
      "ExternalApiTierResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Color": {
            "type": "string"
          },
          "IconUrl": {
            "type": "string"
          },
          "IsActive": {
            "type": "boolean"
          },
          "IsBase": {
            "type": "boolean"
          },
          "Order": {
            "type": "integer",
            "format": "int32"
          },
          "Caption": {
            "type": "string"
          }
        }
      },
      "ExternalApiTierTargetResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/TierTargetType"
          },
          "DueSummary": {
            "$ref": "#/components/schemas/TierTargetDueSummary"
          },
          "Due": {
            "type": "integer",
            "format": "int32"
          },
          "Target": {
            "type": "number",
            "format": "double"
          },
          "IsActive": {
            "type": "boolean"
          },
          "TierId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ExternalApiTierBenefitResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/TierBenefitType"
          },
          "TierId": {
            "type": "integer",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Details": {}
        }
      },
      "ExternalApiCustomerOriginalIdRequest": {
        "type": "object",
        "description": "Request used by private endpoints that identify the customer in the body.",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "string",
            "description": "Legacy customer identifier used by the merchant platform. This field remains required.\nWhen `Checkout.CustomerOriginalIdSource` is configured as `document` or `email`,\nBonifiQ ignores this value for lookup and uses the configured `Customer` field instead."
          },
          "Customer": {
            "description": "Customer identifiers used when `Checkout.CustomerOriginalIdSource`\nis configured as `document` or `email`.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiCustomerIdentifierRequest"
              }
            ]
          }
        }
      },
      "ExternalApiCustomerIdentifierRequest": {
        "type": "object",
        "description": "Optional customer identifiers used when the tenant configuration changes\nwhich value is used as the customer's OriginalId.",
        "additionalProperties": false,
        "properties": {
          "Document": {
            "type": "string",
            "description": "Customer document. Required when `Checkout.CustomerOriginalIdSource` is set to `document`.\nThe value is normalized to digits only before the customer lookup.",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "description": "Customer e-mail. Required when `Checkout.CustomerOriginalIdSource` is set to `email`.",
            "nullable": true
          }
        }
      },
      "CustomerPendingPointsResponse": {
        "type": "object",
        "description": "Summary of purchase points and cashback that are still pending for a customer.",
        "additionalProperties": false,
        "properties": {
          "TotalPendingPoints": {
            "type": "integer",
            "description": "Total amount of pending points considering all eligible pending orders.",
            "format": "int32"
          },
          "TotalPendingCashback": {
            "type": "number",
            "description": "Total cashback equivalent for the pending points when cashback is active. Otherwise null.",
            "format": "decimal",
            "nullable": true
          },
          "PendingOrders": {
            "type": "array",
            "description": "Orders that still have points pending to be processed or are still waiting for the scoring status.",
            "items": {
              "$ref": "#/components/schemas/CustomerPendingOrderResponse"
            }
          }
        }
      },
      "BaseExternalApiResponseOfCreateCustomerResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateCustomerResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CreateCustomerResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "This is the Id in the client store. "
          },
          "PublicId": {
            "type": "string",
            "description": "Bonifiq Plubic Id",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Customer name."
          },
          "Email": {
            "type": "string",
            "description": "Customer email."
          },
          "Phone": {
            "type": "string",
            "description": "Customer Contact Phone.",
            "nullable": true
          },
          "BirthdayDate": {
            "type": "string",
            "description": "Customer Birthdate.",
            "format": "date-time",
            "nullable": true
          },
          "SignupDate": {
            "type": "string",
            "description": "Date when the customer made the register on client store.",
            "format": "date-time",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "description": "Some document number from the customer, accepts any string.",
            "nullable": true
          },
          "IsEnrolled": {
            "type": "boolean",
            "description": "If true the customer is participating on the points plan from the store."
          },
          "ReferralURL": {
            "type": "string",
            "description": "Customer`s Referral URL. Will be null if the Referral Objective is not active.",
            "nullable": true
          },
          "WhatsappReferralUrl": {
            "type": "string",
            "description": "Customer`s Referral URL for sharing in Whatsapp. Will be null if Referral Objective is not active",
            "nullable": true
          },
          "CurrentTier": {
            "description": "If the customer is in a Tier returns it. Otherwise returns null",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerTierResponse"
              }
            ]
          },
          "BalanceOfPoints": {
            "type": "integer",
            "description": "Customer's current points balance",
            "format": "int32"
          },
          "BalanceCashback": {
            "type": "number",
            "description": "Customer's current cashback balance (calculated from points). Will be null if cashback is not enabled.",
            "format": "decimal",
            "nullable": true
          },
          "Segments": {
            "type": "array",
            "description": "Active customer segments the customer belongs to (name and tag). Inactive segments are not returned.\nEmpty list when the customer is not in any active segment. Populated by the customer endpoints\n(get, list, create, update, upsert and set birthday).",
            "items": {
              "$ref": "#/components/schemas/CustomerSegmentResponse"
            }
          }
        }
      },
      "CustomerSegmentResponse": {
        "type": "object",
        "description": "Customer segment (a manual group of customers maintained by the store) the customer belongs to.",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "description": "Segment name, as shown in the store's admin panel."
          },
          "Tag": {
            "type": "string",
            "description": "Segment public identifier (slug, unique per store). Use it to reference the segment in integrations."
          }
        }
      },
      "ExternalApiResponseSeverity": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Success",
          "Warning",
          "Error"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ExternalCreateCustomerRequest": {
        "type": "object",
        "description": "Creater Customer body Request",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "This is the Id in the client store. "
          },
          "Name": {
            "type": "string",
            "description": "Customer name."
          },
          "Email": {
            "type": "string",
            "description": "Customer email.",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "description": "Customer Contact Phone.",
            "nullable": true
          },
          "BirthdayDate": {
            "type": "string",
            "description": "Customer Birthdate.",
            "format": "date-time",
            "nullable": true
          },
          "SignupDate": {
            "type": "string",
            "description": "Date when the customer made the register on client store.",
            "format": "date-time",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "description": "Some document number from the customer, accepts any string.",
            "nullable": true
          },
          "IsEnrolled": {
            "type": "boolean",
            "description": "If true the customer is participating on the points plan from the store."
          },
          "EnrolledDate": {
            "type": "string",
            "description": "Date when the customer made entered into the program. Use the OrderPlacementDate if not informed.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "BaseExternalApiResponseOfUpsertCustomerResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/UpsertCustomerResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "UpsertCustomerResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateCustomerResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Operation": {
                "type": "string",
                "description": "Indicates if the upsert operation created or updated the customer."
              }
            }
          }
        ]
      },
      "BaseExternalApiResponseOfCustomerPointsWithErrorResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerPointsWithErrorResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CustomerPointsWithErrorResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerPointsResponse"
          },
          {
            "type": "object",
            "description": "Returns points customer have and an error if any",
            "additionalProperties": false,
            "properties": {
              "Error": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "CustomerChangePointRequest": {
        "type": "object",
        "description": "Change Points from a customer. Either E-mail or CustomerId are required",
        "additionalProperties": false,
        "properties": {
          "Points": {
            "type": "integer",
            "description": "Amount of points to add or remove from customer. If adding it must be positive. If removing it must be negative",
            "format": "int32"
          },
          "OperationType": {
            "description": "Either is adding or removing points from customer",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ChangePointOperation"
              }
            ]
          },
          "Reason": {
            "type": "string",
            "description": "Information regarding why these points are being add/removed. Internal information only. Required."
          },
          "ChangeKey": {
            "type": "string",
            "description": "This is a unique key for this add/remove point removal. If you try to use the same key more than once it will result in error"
          },
          "CustomerReason": {
            "type": "string",
            "description": "Customer-facing reason displayed in the customer's points history. Optional, max 255 characters.\nHTML tags are stripped automatically. If null, empty, or whitespace, the default system message is shown.",
            "nullable": true
          }
        }
      },
      "ChangePointOperation": {
        "type": "integer",
        "description": "Identify if the points are being given or taken \n\\n0 - Adding Points\n1 - Removing Points",
        "x-enumNames": [
          "AddPoints",
          "RemovePoints"
        ],
        "enum": [
          0,
          1
        ]
      },
      "CustomerChangeCashbackRequest": {
        "type": "object",
        "description": "Change Cashback balance from a Customer",
        "additionalProperties": false,
        "properties": {
          "Value": {
            "type": "number",
            "description": "Value (in R$) that will be added or removed from customer`s cashback balance",
            "format": "decimal"
          },
          "OperationType": {
            "description": "Either is adding or removing cashback from customer",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ChangePointOperation"
              }
            ]
          },
          "Reason": {
            "type": "string",
            "description": "Information regarding why these cashback are being add/removed. Internal information only. Required."
          },
          "ChangeKey": {
            "type": "string",
            "description": "This is a unique key for this add/remove cashback. If you try to use the same key more than once it will result in error"
          },
          "CustomerReason": {
            "type": "string",
            "description": "Customer-facing reason displayed in the customer's points history. Optional, max 255 characters.\nHTML tags are stripped automatically. If null, empty, or whitespace, the default system message is shown.",
            "nullable": true
          }
        }
      },
      "BaseExternalApiListResponseOfPointHistoryResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PointHistoryResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PointHistoryResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Date": {
            "type": "string",
            "description": "Date when the point was given or taken",
            "format": "date-time"
          },
          "Points": {
            "type": "integer",
            "description": "Amount of points received or used. For points received (such as points for purchase) it will be positive. For points taken (such as points used in purchases) it will be negative",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "description": "Quick description of the event"
          },
          "PointType": {
            "description": "0 - Purchase points\n1 - Account creation points\n2 - Birthday points\n3 - Admin-generated points. Can be either positive or negative\n4 - Points used in a reward\n5 - Review points\n6 - Points refunded (for cancelled purchases)\n7 - Points expired\n8 - Points for referral ",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PointType"
              }
            ]
          },
          "IsCanceled": {
            "type": "boolean",
            "description": "If true this points was used and canceled afterwards"
          },
          "CouponCode": {
            "type": "string",
            "description": "If this reward contains a coupon this field represents it",
            "nullable": true
          },
          "CouponRefunded": {
            "type": "boolean",
            "description": "true if the coupon was refunded and cannot be used"
          },
          "CouponIsUsed": {
            "type": "boolean",
            "description": "True if the coupon was used in a purchase and cannot be used again"
          },
          "CouponIsAvailable": {
            "type": "boolean",
            "description": "If true the Coupon in the field `CouponCode` can be used in a purchase"
          },
          "CashbackDescription": {
            "type": "string",
            "nullable": true
          },
          "CashbackValue": {
            "type": "number",
            "description": "If cashback is enabled this field will contain the value of the cashback otherwise it will be zero",
            "format": "decimal"
          },
          "IsTierHistory": {
            "type": "boolean",
            "description": "If true the fields is about tier change"
          },
          "TierUpdate": {
            "description": "0 - Upgrade\n1 - Downgrade\n            ",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerTierUpdate"
              }
            ]
          },
          "TierName": {
            "type": "string",
            "description": "Tier name that was applied",
            "nullable": true
          },
          "Metadatas": {
            "type": "array",
            "description": "List of metadata associated with this point. A metadata can came from when inserting an order or redeeming a reward",
            "items": {
              "$ref": "#/components/schemas/PointHistoryResponseMetadata"
            }
          }
        }
      },
      "CustomerTierUpdate": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Upgrade",
          "Downgrade"
        ],
        "enum": [
          0,
          1
        ]
      },
      "PointHistoryResponseMetadata": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          }
        }
      },
      "BaseExternalApiResponseOfListOfCustomerNextTierProgressResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "type": "array",
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerNextTierProgressResponse"
            }
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CustomerNextTierProgressResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TargetType": {
            "$ref": "#/components/schemas/TierTargetType"
          },
          "Target": {
            "type": "number",
            "format": "double"
          },
          "Current": {
            "type": "number",
            "format": "double"
          },
          "Balance": {
            "type": "number",
            "format": "double"
          },
          "Percent": {
            "type": "number",
            "format": "double"
          },
          "ProgressDescription": {
            "type": "string",
            "nullable": true
          },
          "Due": {
            "type": "string",
            "format": "date-time"
          },
          "DueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "DueString": {
            "type": "string",
            "nullable": true
          },
          "DueInDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "OnTarget": {
            "type": "boolean"
          }
        }
      },
      "BaseExternalApiResponseOfListOfCustomerSegmentRuleResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "type": "array",
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CustomerSegmentRuleResponse"
            }
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CustomerSegmentRuleResponse": {
        "type": "object",
        "description": "Advanced rule (extra rule) currently available to a customer because of the customer segments they belong to.",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Rule identifier. It is the same value the purchase points report returns as `CampaignId` when `CampaignSource` is `AdvancedRule`.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Rule name, as shown in the store's admin panel."
          },
          "Description": {
            "type": "string",
            "description": "Rule description, as shown in the store's admin panel.",
            "nullable": true
          },
          "RewardType": {
            "description": "How `RewardValue` must be read: `0` (Percentage) is a percentage of the eligible purchase amount; `1` (FixedValue) is a fixed amount granted when the rule applies.\nWhether the benefit is granted as points or as cashback follows the loyalty program configuration.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/AdvancedRuleRewardType"
              }
            ]
          },
          "RewardValue": {
            "type": "number",
            "description": "Percentage (eg: `100` for 100%) or fixed amount, according to `RewardType`.",
            "format": "decimal"
          },
          "StartDate": {
            "type": "string",
            "description": "When the rule started to be valid (UTC).",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "description": "When the rule stops being valid (UTC). `null` means the rule has no end date.",
            "format": "date-time",
            "nullable": true
          },
          "PurchaseAmount": {
            "description": "\"Amount spent\" condition: range of the order total that activates the rule. `null` means the rule has no such condition.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerSegmentRulePurchaseAmountResponse"
              }
            ]
          },
          "MinimumOrderValue": {
            "type": "number",
            "description": "Minimum order total required for the rule to apply. `null` means there is no minimum.",
            "format": "decimal",
            "nullable": true
          },
          "DaysToGrantPoints": {
            "type": "integer",
            "description": "Days after the order for the benefit to become available. `null` means the loyalty program default is used.",
            "format": "int32",
            "nullable": true
          },
          "ExpirationDays": {
            "type": "integer",
            "description": "Validity, in days, of the benefit granted by this rule. `null` means the loyalty program default expiration is used.",
            "format": "int32",
            "nullable": true
          },
          "ShowOnWidgetAndLandingPage": {
            "type": "boolean",
            "description": "Whether the store chose to advertise this rule on the BonifiQ widget and landing page.\nRules with `false` still apply to the customer's orders; use this flag to mirror the store's choice on your own pages."
          },
          "CardTitle": {
            "type": "string",
            "description": "Title of the rule card, exactly as the BonifiQ widget and landing page show it. It replicates `Name`."
          },
          "CardDescription": {
            "type": "string",
            "description": "Description of the rule card, exactly as the BonifiQ widget and landing page show it. It replicates `Description`.",
            "nullable": true
          },
          "IconUrl": {
            "type": "string",
            "description": "Icon of the rule card.",
            "nullable": true
          },
          "ActionButtonText": {
            "type": "string",
            "description": "Text of the card's call-to-action button. `null` when the store did not configure a button.",
            "nullable": true
          },
          "ActionButtonUrl": {
            "type": "string",
            "description": "Destination of the card's call-to-action button. `null` when the store did not configure a button.",
            "nullable": true
          },
          "Segments": {
            "type": "array",
            "description": "Active segments of the customer that make this rule available to them. A rule may target other segments too; only the ones the customer belongs to are listed.",
            "items": {
              "$ref": "#/components/schemas/CustomerSegmentResponse"
            }
          }
        }
      },
      "CustomerSegmentRulePurchaseAmountResponse": {
        "type": "object",
        "description": "\"Amount spent\" condition of an advanced rule. Both limits are inclusive and compared with the order total.",
        "additionalProperties": false,
        "properties": {
          "MinimumAmount": {
            "type": "number",
            "description": "The order total must be at least this amount (\"from X\").",
            "format": "decimal"
          },
          "MaximumAmount": {
            "type": "number",
            "description": "The order total must be at most this amount. `null` means there is no upper limit.",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "BaseExternalApiResponseOfCustomerExistsResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerExistsResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CustomerExistsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string"
          },
          "PublicId": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CustomerSetBirthdayRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Birthday": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BaseExternalApiListResponseOfCreateCouponResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CreateCouponResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CreateCouponResponse": {
        "type": "object",
        "description": "Create Coupon Response Model ",
        "additionalProperties": false,
        "properties": {
          "CouponCode": {
            "type": "string",
            "description": "Coupon Code"
          },
          "CreatedDate": {
            "type": "string",
            "description": "Create Date ",
            "format": "date-time"
          },
          "IsUsed": {
            "type": "boolean",
            "description": "if true the coupon was already bein use or inactivated.",
            "nullable": true
          },
          "CouponValue": {
            "type": "number",
            "description": "Discount value for the coupon",
            "format": "decimal"
          },
          "CustomerId": {
            "type": "integer",
            "description": "the customer that the coupon is being given.",
            "format": "int32"
          },
          "ValidDateStart": {
            "type": "string",
            "description": "Date the coupon is start to being enable for rewards",
            "format": "date-time",
            "nullable": true
          },
          "ValidDateEnd": {
            "type": "string",
            "description": "Date the coupon will not be able for rewards anymore.",
            "format": "date-time",
            "nullable": true
          },
          "CouponType": {
            "description": "What type of coupons is this.\n0: Cash value Coupon (such as R$10,00). 1: Percent discount (such as 10%). 4: Imported Coupoun",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CouponType"
              }
            ]
          }
        }
      },
      "CustomerAvailableCouponsByCustomerRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerAvailableCouponsRequest"
          },
          {
            "type": "object",
            "description": "Request used by the body-based available coupons endpoint.",
            "additionalProperties": false,
            "properties": {
              "CustomerId": {
                "type": "string",
                "description": "Legacy customer identifier used by the merchant platform. This field remains required.\nWhen `Checkout.CustomerOriginalIdSource` is configured as `document` or `email`,\nBonifiQ ignores this value for lookup and uses the configured `Customer` field instead."
              },
              "Customer": {
                "description": "Customer identifiers used when `Checkout.CustomerOriginalIdSource`\nis configured as `document` or `email`.",
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ExternalApiCustomerIdentifierRequest"
                  }
                ]
              }
            }
          }
        ]
      },
      "CustomerAvailableCouponsRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseExternalApiFilter"
          },
          {
            "type": "object",
            "description": "Filter used to list the customer's available coupons.",
            "additionalProperties": false
          }
        ]
      },
      "BaseExternalApiFilter": {
        "type": "object",
        "description": "Base Filter model",
        "additionalProperties": false,
        "properties": {
          "PageNumber": {
            "type": "integer",
            "description": "Pagenation number",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Amount of items per page, Max size is 50 items per page.",
            "format": "int32"
          }
        }
      },
      "BaseExternalApiListResponseOfListCustomerResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ListCustomerResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ListCustomerResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateCustomerResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "PointsBalance": {
                "type": "integer",
                "description": "How many points the customer have",
                "format": "int32"
              }
            }
          }
        ]
      },
      "BaseExternalApiResponseOfBoolean": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "type": "boolean",
            "description": "Business payload returned by the endpoint."
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "ChangeTierCustomerRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "GracePeriodInDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "TierId": {
            "type": "integer",
            "format": "int32"
          },
          "GracePeriodComments": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "BaseExternalApiResponseOfCustomerRemoveTierResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerRemoveTierResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CustomerRemoveTierResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "MessageResult": {
            "type": "string"
          },
          "OldTierName": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ExternalApiChangeStatusCustomerRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IsEnabled": {
            "type": "boolean",
            "description": "If true the customer is marked as active and can receive points and participate in the program points.\nIf false the customer is inactive and will not receive points nor will be able to redeem rewards."
          },
          "Reason": {
            "type": "string",
            "description": "The reason why the status has changed. This will not be visible to the customer only to administrators."
          }
        }
      },
      "BaseExternalApiResponseOfPrivateOrderCreateResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PrivateOrderCreateResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "PrivateOrderCreateResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OrderCreateResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "EstimatedBonus": {
                "$ref": "#/components/schemas/OrderEstimatedBonusResponse"
              }
            }
          }
        ]
      },
      "OrderEstimatedBonusResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "GenerateBonus": {
            "type": "boolean"
          },
          "EstimatedPoints": {
            "type": "integer",
            "format": "int32"
          },
          "EstimatedCashback": {
            "type": "number",
            "format": "decimal"
          },
          "EstimatedCashbackFormatted": {
            "type": "string"
          }
        }
      },
      "OrderCreateResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOriginalIdApiEntity"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "OrderPlacementDate": {
                "type": "string",
                "description": "Date of the customer's purchase. ",
                "format": "date-time"
              },
              "OrderCompletedDate": {
                "type": "string",
                "description": "Date the order reached the completed state (usually it's invoiced or delivered).",
                "format": "date-time",
                "nullable": true
              },
              "OrderCancelledDate": {
                "type": "string",
                "description": "if the order is cancelled, contains the date.",
                "format": "date-time",
                "nullable": true
              },
              "OrderStatus": {
                "type": "string",
                "description": "Status at the client's order system."
              },
              "IsCancelledOrReturned": {
                "type": "boolean",
                "description": "if true the order was cancelled or returned."
              },
              "IsCompleted": {
                "type": "boolean",
                "description": "If true it means the order has reached its final status and points can be awarded to the consumer."
              },
              "OrderTotal": {
                "type": "number",
                "description": "Can be used at Loyalty Programs. Important: these values should not include Shipping costs.",
                "format": "decimal"
              },
              "Customer": {
                "description": "Buyer registration.",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiCustomer"
                  }
                ]
              },
              "Products": {
                "type": "array",
                "description": "Products listed on the order.",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/CreateProductResponse"
                }
              },
              "UpdatedDate": {
                "type": "string",
                "description": "the date from the last update on this order.",
                "format": "date-time"
              },
              "Coupon": {
                "type": "string",
                "description": "Coupon code used on this order.",
                "nullable": true
              },
              "State": {
                "description": "Order State: 0=Inicial, 1= Pendente, 2=Completo, 3=Cancelado, 4=Ignorado",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OrderState"
                  }
                ]
              },
              "Origin": {
                "description": "How this order was integrated into BonifiQ\n0 = Order Integration with ecommerce platform\n1 = External API\n2 = File import",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OrderOrigin"
                  }
                ]
              },
              "Branch": {
                "description": "Branch associated with this order, when available.",
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiBranch"
                  }
                ]
              },
              "TenantSalesman": {
                "description": "Salesman associated with this order, when available.",
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiTenantSalesman"
                  }
                ]
              },
              "Metadatas": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ApiOrderMetadata"
                }
              },
              "ExternalCoupon": {
                "type": "string",
                "description": "This is the \"official\" field for coupons from the ecomm platform - normally used for affiliate Coupon",
                "nullable": true
              }
            }
          }
        ]
      },
      "CreateProductResponse": {
        "type": "object",
        "description": "Create Product Response model",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "Id from the client store"
          },
          "Title": {
            "type": "string",
            "description": "Product Title/Name"
          },
          "Url": {
            "type": "string",
            "description": "Url from the client store from the product.",
            "nullable": true
          },
          "ImageUrl": {
            "type": "string",
            "description": "Url from where the Product image is hosted.",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "If true the product is active."
          },
          "ProductPrice": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "CreateOrderRequest": {
        "type": "object",
        "description": "Purchase Order Model",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "This is the Id in the client store. "
          },
          "OrderPlacementDate": {
            "type": "string",
            "description": "Date of the customer's purchase. ",
            "format": "date-time"
          },
          "OrderCompletedDate": {
            "type": "string",
            "description": "Date the order reached the completed state (usually it's invoiced or delivered).",
            "format": "date-time",
            "nullable": true
          },
          "OrderCancelledDate": {
            "type": "string",
            "description": "if the order is cancelled, contains the date.",
            "format": "date-time",
            "nullable": true
          },
          "OrderStatus": {
            "type": "string",
            "description": "Status at the client's order system."
          },
          "IsCancelledOrReturned": {
            "type": "boolean",
            "description": "if true the order was cancelled or returned."
          },
          "IsCompleted": {
            "type": "boolean",
            "description": "If true it means the order has reached its final status and points can be awarded to the consumer."
          },
          "OrderTotal": {
            "type": "number",
            "description": "Can be used at Loyalty Programs. Important: these values should not include Shipping costs.",
            "format": "decimal"
          },
          "Customer": {
            "description": "Buyer registration.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalCreateCustomerRequest"
              }
            ]
          },
          "Products": {
            "type": "array",
            "description": "Products listed on the order.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CreateProductRequest"
            }
          },
          "UpdatedDate": {
            "type": "string",
            "description": "the date from the last update on this order.",
            "format": "date-time"
          },
          "Coupon": {
            "type": "string",
            "description": "Coupon code used on this order.",
            "nullable": true
          },
          "Metadatas": {
            "type": "array",
            "description": "This is a key-value list of extra information regarding the order.\nIt could be informative only or being part of an business rule to be used later.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CreateOrderRequestMetadata"
            }
          },
          "PaymentMethod": {
            "description": "Obsolete: use PaymentMethods instead. This legacy field is still supported for backward compatibility.\nThe Payment Method used in this purchase. Should be the more specific as possible (ie: instead of using \"Credit Card\" use \"Visa Credit Card\" and so on).\nThis field can be used later on to create extra points purchase rules.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateOrderPaymentMethod"
              }
            ]
          },
          "PaymentMethods": {
            "type": "array",
            "description": "Preferred field for the payment methods used in this purchase. Each item should be as specific as possible\n(ie: instead of using \"Credit Card\" use \"Visa Credit Card\" and so on).",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CreateOrderPaymentMethod"
            }
          },
          "Branch": {
            "description": "A Branch is physical location or outlet of a store (loja, filial, etc). This is used to receive information of which store the purchase was made. It can be later used to create rules for points or filtering reports.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateOrderBranch"
              }
            ]
          },
          "SalesPerson": {
            "description": "A sales person is the person responsible for the sale. It can be used for filtering reports.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateOrderSalesPerson"
              }
            ]
          },
          "ExternalCoupon": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CreateProductRequest": {
        "type": "object",
        "description": "Product model.",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "Id from the client store."
          },
          "Title": {
            "type": "string",
            "description": "Product Name"
          },
          "Url": {
            "type": "string",
            "description": "Direct url to the product on the client store.",
            "nullable": true
          },
          "ImageUrl": {
            "type": "string",
            "description": "Product img url.",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "if true the product is active on the store."
          },
          "ProductPrice": {
            "type": "number",
            "description": "How much the customer paid for this product. If it is not null and not zero it can be used with extra points for products rule",
            "format": "decimal",
            "nullable": true
          },
          "ProductBrand": {
            "description": "Product Brand",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateProductBrandRequest"
              }
            ]
          },
          "ProductCategory": {
            "description": "Product Category. Supports hierarchical categories with parent references.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateProductCategoryRequest"
              }
            ]
          }
        }
      },
      "CreateProductBrandRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "Id from the client store"
          },
          "Name": {
            "type": "string",
            "description": "Brand Name"
          }
        }
      },
      "CreateProductCategoryRequest": {
        "type": "object",
        "description": "Product Category model with support for hierarchical categories.",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "Id from the client store"
          },
          "Name": {
            "type": "string",
            "description": "Category Name"
          },
          "Description": {
            "type": "string",
            "description": "Category Description",
            "nullable": true
          },
          "ParentCategory": {
            "description": "Parent Category. Use this to create a category tree.\nFor example, if you have Electronics > Smartphones > Android,\nthe Android category would have Smartphones as its ParentCategory,\nand Smartphones would have Electronics as its ParentCategory.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateProductCategoryRequest"
              }
            ]
          }
        }
      },
      "CreateOrderRequestMetadata": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          }
        }
      },
      "CreateOrderPaymentMethod": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "The If of the Payment method. Can be any string unique to this Payment Method. If no Id is available you can used the Payment Method Name as Id"
          },
          "Name": {
            "type": "string",
            "description": "Name of the payment method used. It could be shown to the customer so it should be meaningful."
          },
          "PaidAmount": {
            "type": "number",
            "description": "Optional amount paid using this payment method.",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "CreateOrderBranch": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "This is the Id of the branch (filial, loja, etc) in the client store. Can be any string."
          },
          "Name": {
            "type": "string",
            "description": "This is the name of the branch. Can be any string possible"
          }
        }
      },
      "CreateOrderSalesPerson": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "This is the Id of the Sales Person. Can be any string or number."
          },
          "Name": {
            "type": "string",
            "description": "This is the name of the sales person. Can be any string."
          }
        }
      },
      "BaseExternalApiResponseOfCancelOrderResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CancelOrderResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CancelOrderResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "isCanceled": {
            "type": "boolean",
            "description": "If true the order was found and Cancelled"
          },
          "UpdatedAt": {
            "type": "string",
            "description": "The time the order was canceled",
            "format": "date-time"
          },
          "Status": {
            "description": "Order status.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderRequestStatus"
              }
            ]
          },
          "RefundErrorDetails": {
            "description": "Details explaining why a partial refund was not accepted.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RefundErrorDetailsResponse"
              }
            ]
          }
        }
      },
      "OrderRequestStatus": {
        "type": "integer",
        "description": "Order Status model",
        "x-enumNames": [
          "Accepted",
          "Refuse",
          "Error",
          "Completed",
          "Cancel"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "RefundErrorDetailsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Code": {
            "type": "string",
            "description": "Stable code that integrations can use to handle the refund error."
          },
          "Message": {
            "type": "string",
            "description": "Human-readable explanation of what must be fixed."
          },
          "Field": {
            "type": "string",
            "description": "Request field related to the error, when applicable.",
            "nullable": true
          },
          "ProductOriginalId": {
            "type": "string",
            "description": "Product OriginalId related to the error, when applicable.",
            "nullable": true
          },
          "ExpectedValue": {
            "type": "number",
            "description": "Expected numeric value, when the error is caused by a mismatch.",
            "format": "decimal",
            "nullable": true
          },
          "ActualValue": {
            "type": "number",
            "description": "Actual numeric value received or calculated, when the error is caused by a mismatch.",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "CancelOrderRequest": {
        "type": "object",
        "description": "Order cancel request body",
        "additionalProperties": false,
        "properties": {
          "OrderCancelledDate": {
            "type": "string",
            "description": "Date when the order has been cancel.",
            "format": "date-time"
          },
          "OrderStatus": {
            "type": "string",
            "description": "Order status. ",
            "nullable": true
          }
        }
      },
      "BaseExternalApiResponseOfCompletedOrderResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CompletedOrderResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CompletedOrderResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IsCompleted": {
            "type": "boolean",
            "description": "if true the order status is seted to complete."
          },
          "UpdatedAt": {
            "type": "string",
            "description": "Last update on this order.",
            "format": "date-time"
          },
          "Status": {
            "description": "Order status/comment.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderRequestStatus"
              }
            ]
          }
        }
      },
      "CompleteOrderRequest": {
        "type": "object",
        "description": "Order Complete request body",
        "additionalProperties": false,
        "properties": {
          "OrderCompletedDate": {
            "type": "string",
            "description": "Date the order was set complete on store",
            "format": "date-time"
          },
          "OrderStatus": {
            "type": "string",
            "description": "status from the order",
            "nullable": true
          }
        }
      },
      "OrderGetResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OrderCreateResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "RedeemedReward": {
                "description": "Reward used in this order (if any)",
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CustomerRedeemedHistoryItem"
                  }
                ]
              }
            }
          }
        ]
      },
      "CustomerRedeemedHistoryItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique ID for this redeem",
            "format": "int32"
          },
          "ExternalCode": {
            "type": "string",
            "description": "Unique external code for this redeem. Could be used for integrating with third-party systems"
          },
          "CashValue": {
            "type": "number",
            "description": "If it is a Cashback or Value rewards represents the amount in cash (R$) given for the customer",
            "format": "decimal",
            "nullable": true
          },
          "IsCanceled": {
            "type": "boolean",
            "description": "If true means this reward was cancelled and the points was given back to the customer"
          },
          "RedeemDate": {
            "type": "string",
            "description": "Date the reward was redeemed",
            "format": "date-time"
          },
          "Points": {
            "description": "Points record regenerated upon redeeming process",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardRedeemedReponsePoints"
              }
            ]
          },
          "Coupon": {
            "description": "The coupon recording that was generated for the customer ",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateCouponResponse"
              }
            ]
          }
        }
      },
      "RewardRedeemedReponsePoints": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique ID of the generated point",
            "format": "int32"
          },
          "Points": {
            "type": "integer",
            "description": "How many points was used",
            "format": "int32"
          },
          "Type": {
            "description": "Type of the point. Could be any of:",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PointType"
              }
            ]
          },
          "EventKey": {
            "type": "string",
            "description": "Unique key for this record. Used to preventing duplication"
          }
        }
      },
      "PartialCancelOrderRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ValueToRefund": {
            "type": "number",
            "description": "Value to be refunded from the order total. \nThis value must be greater than 0 and less or equal than the OrderTotal value sent when the order was created or updated.",
            "format": "decimal"
          },
          "CancelKey": {
            "type": "string",
            "description": "This key is used to avoid duplicated partial cancel on the same order. Use a unique value (such as an ID) for each partial cancel request."
          },
          "Products": {
            "type": "array",
            "description": "Optional list of products being refunded. When provided, BonifiQ will reverse points using the product point history saved on the original purchase.\nThe sum of all product ValueToRefund values must match ValueToRefund after currency rounding.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PartialCancelOrderProductRequest"
            }
          },
          "ShouldRefundRedeem": {
            "type": "boolean",
            "description": "Controls whether BonifiQ should refund points/cashback redeemed on this order.\nTrue forces redeem refund, false skips redeem refund, null follows the tenant feature flag.",
            "nullable": true
          }
        }
      },
      "PartialCancelOrderProductRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "Product OriginalId sent when the order was created."
          },
          "ValueToRefund": {
            "type": "number",
            "description": "Refunded value for this product.",
            "format": "decimal"
          }
        }
      },
      "RewardConfigSimulateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Customer": {
            "description": "Customer data resolved from the informed id. Can be null when the customer is not found.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardConfigSimulateCustomerResponse"
              }
            ]
          },
          "Rewards": {
            "type": "array",
            "description": "A list of all available rewards regardless if the user can redeem it or not. Even if the user doest not have enought points to redeem a reward it is still usefull for him ",
            "items": {
              "$ref": "#/components/schemas/RewardConfigSimulateResponseItem"
            }
          },
          "HasRestrictedItems": {
            "type": "boolean",
            "description": "True if any items were restricted from cashback eligibility.\nOnly populated when Items are provided in the request."
          },
          "RestrictedValue": {
            "type": "number",
            "description": "Total value of restricted items that cannot receive cashback.\nOnly populated when Items are provided in the request.",
            "format": "decimal"
          },
          "EligibleValue": {
            "type": "number",
            "description": "Total value eligible for cashback (after filtering restricted items).\nOnly populated when Items are provided in the request.",
            "format": "decimal"
          },
          "HasRewards": {
            "type": "boolean",
            "description": "False if there is no available rewards to redeem. In this case the flow should proceed without showing any information to the user"
          },
          "ShouldValidateCustomer": {
            "type": "boolean",
            "description": "If true the caller must follow the Validation flow, calling the BonifiQ API to request a token-code from customer.\nIf false the flow can be directed to conclusion"
          },
          "ShouldValidateCustomerSignup": {
            "type": "boolean",
            "description": "If true the caller must validate the customer signup before considering the customer enrolled."
          },
          "AvailablePoints": {
            "type": "integer",
            "description": "How many points the customer have. It is useful in scenarios without cashback where rewards are fully point-based.",
            "format": "int32"
          },
          "CashbackEnabled": {
            "type": "boolean",
            "description": "Returns true if exists a cashback reward. In this case the user will need to be aware of how much Cashback is Available "
          },
          "AvailableCashback": {
            "type": "number",
            "description": "Returns the total amount of cashback the user have. Will be 0 if CashbackEnable=false.",
            "format": "decimal"
          },
          "MaxCashbackForCurrentPurchase": {
            "type": "number",
            "description": "The maximum amount that can be used for the current purchase order value\nCashback have some rules to use such as: in order to spend R$10,00 in cashback the total order value must be of at least R$50,00. \nIn this scenario, the user could have a total amount of available cashback (AvailableCashback) of R$20,00 but as the rule requires at least R$50,00 of purchase he can only use R$10,00.\nThat way even if the customer have a certain amount of Cashback BonifiQ caps this value to the maxium amount he can use for the current purchase, according to rules",
            "format": "decimal"
          }
        }
      },
      "RewardConfigSimulateCustomerResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "OriginalId": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "Email": {
            "type": "string"
          },
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "nullable": true
          },
          "IsEnrolled": {
            "type": "boolean"
          },
          "CurrentTier": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerTierResponse"
              }
            ]
          }
        }
      },
      "RewardConfigSimulateResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique ID for this reward. Used afterwards for redeeming",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "description": "Name of this reward. Can be shown to the user",
            "example": "R$50,00 de desconto"
          },
          "RewardType": {
            "description": "Type of the reward\n            \n            \n            0\n            Percent Discount (eg: 15% off)\n            \n            \n            1\n            Value Discount (eg: R$10,00)\n            \n             \n            2\n            Not Used\n            \n            \n            3\n            Cashback (eg: R$10,00 on purchases of at least R$30,00)\n            \n            \n            4\n            Customized Reward (eg: Uma toalha de Brinde)\n            \n            \n            5\n            Product Discount or Free Gift\n            \n            \n            ",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardType"
              }
            ]
          },
          "Value": {
            "type": "number",
            "description": "Value of the reward, if applicable. Eg:        \n\n\nFor Percent Discount\nReturns the discount percent value: 10.00 for 10% discount\n\n\nFor Value Discount\nReturns the discount amount in R$: 10.00 for R$10,00 discount\n\n\nFor Cashback\nReturns how much a single point is worth. This is not much of useful for returning to the user so using the **AvailableCashback** field for this scenário should be preferred\n\n\nFor Customized\nAlways returns zero",
            "format": "decimal"
          },
          "CanSelectValue": {
            "type": "boolean",
            "description": "Returns true if the customer can select the amount of cashback he wants to use. Uses in cashback only."
          },
          "IsCashback": {
            "type": "boolean",
            "description": "Returns true if this is a Cashback reward.\nA Cashback reward is special in a sense that its amount can be selected by the customer. "
          },
          "Requirements": {
            "type": "string",
            "description": "All the requirements to use this reward in a user-friendly text. Can be shown to the user.\n\nThe possible Requirements are:\n- Minimum Purchase Value\n- Maximum Cashback that can be used in this purchase",
            "example": "Válido para compras acima de R$50,00."
          },
          "AvailableCashback": {
            "type": "number",
            "description": "This is the total Cashback the customer currently have. Its not necessarily the amount the user can use as there as some usage rules (see the MaxCashbackForCurrentPurchase field). ",
            "format": "decimal"
          },
          "MaxCashbackForCurrentPurchase": {
            "type": "number",
            "description": "The maximum amount that can be used for the current purchase order value\nCashback have some rules to use such as: in order to spend R$10,00 in cashback the total order value must be of at least R$50,00. \nIn this scenario, the user could have a total amount of available cashback (AvailableCashback) of R$20,00 but as the rule requires at least R$50,00 of purchase he can only use R$10,00.\nThat way even if the customer have a certain amount of Cashback BonifiQ caps this value to the maxium amount he can use for the current purchase, according to rules",
            "format": "decimal"
          },
          "CanUse": {
            "type": "boolean",
            "description": "If true the customer can use this reward. It can be useful to shown to customers what are the rewards he can use in the future by gaining more points."
          },
          "Points": {
            "type": "integer",
            "description": "How many points will be spent in this reward. This is useful for Percent and Value Discounts so the user will be aware of how many points he is using.\nIt`s also useful to shown users which rewards he will have acces in the future with more points.\nFor cashback it represents the MaxCashbackForCurrentPurchase value.",
            "format": "int32"
          },
          "RewardCanBeCumulative": {
            "type": "boolean",
            "description": "If true the user can use this reward in conjunction with other discounts. If false the user can only use this reward if there is no other discount in the order. "
          },
          "ExternalProductId": {
            "type": "string",
            "description": "For ProductDiscount rewards, this is the configured offline product identifier.",
            "nullable": true
          },
          "ProductDisplayName": {
            "type": "string",
            "description": "Consumer-facing name of the configured ProductDiscount product.",
            "nullable": true
          },
          "ProductDiscountMode": {
            "description": "ProductDiscount mode: percentage, final price, free gift or fixed discount amount.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ProductDiscountRewardMode"
              }
            ]
          },
          "ProductDiscountValue": {
            "type": "number",
            "description": "Configured percentage, final price or fixed discount amount. Zero for gifts.",
            "format": "decimal",
            "nullable": true
          },
          "ProductMaxUnitsPerRedeem": {
            "type": "integer",
            "description": "Units covered by a single redemption. Each POS redeem confirms one unit of the product.",
            "format": "int32",
            "nullable": true
          },
          "ProductAvailableQuantity": {
            "type": "integer",
            "description": "Units the customer can redeem now: 1 while the offline usage limit has units left, 0 when it is exhausted.",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "RewardConfigSimulateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "string",
            "description": "The id of the customer. It can be email or document (CPF/CNPJ). If a document use numbers only."
          },
          "Customer": {
            "description": "Optional customer identifiers. `Customer.Document` is required and used for lookup\nwhen `Checkout.CustomerOriginalIdSource` is `document`; `Customer.Email` is required\nand used for lookup when the setting is `email`.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiCustomerIdentifierRequest"
              }
            ]
          },
          "PurchaseValue": {
            "type": "number",
            "description": "Current value of the order. Should not contains discounts or other promotions.",
            "format": "decimal"
          },
          "DiscountValue": {
            "type": "number",
            "description": "If there is another discount in the order (not from BonifiQ) it can be passed here. BonifiQ use this information to return only rewards that can be used with other discounts.",
            "format": "decimal",
            "nullable": true
          },
          "Products": {
            "type": "array",
            "description": "Optional: List of products for cashback eligibility validation.\nIf provided, restricted products will be filtered and the cashback \nwill be calculated based only on eligible items.\nIf not provided, the full PurchaseValue will be used (backward compatible behavior).\nProductDiscount availability is based on the configured offline product ID and does not read this list.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/RewardAvailableProductItem"
            }
          }
        }
      },
      "RewardAvailableProductItem": {
        "type": "object",
        "description": "Represents a product item for the rewards/available endpoint.\nThis is a simplified model containing only the fields needed for cashback eligibility validation.",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "External product identifier from the e-commerce platform (SKU, barcode, etc.)",
            "example": 530648963003
          },
          "Title": {
            "type": "string",
            "description": "Product name/title",
            "example": "CAMISA ML SLIM VICHY MELANGE 13 2601 001 - VERDE ESCURO - 3"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Whether the product is active"
          },
          "ProductPrice": {
            "type": "number",
            "description": "Product regular price",
            "format": "decimal",
            "nullable": true,
            "example": 499.9
          },
          "ProductDiscountPrice": {
            "type": "number",
            "description": "Product promotional/discount price",
            "format": "decimal",
            "nullable": true,
            "example": 50.5
          },
          "ProductBrand": {
            "description": "Product brand information",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardAvailableProductBrand"
              }
            ]
          },
          "ProductCategory": {
            "description": "Product category information (supports hierarchical categories)",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardAvailableProductCategory"
              }
            ]
          }
        }
      },
      "RewardAvailableProductBrand": {
        "type": "object",
        "description": "Represents a product brand for the rewards/available endpoint",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "External brand identifier",
            "nullable": true,
            "example": "Vichy"
          },
          "Name": {
            "type": "string",
            "description": "Brand name",
            "nullable": true,
            "example": "VC0112"
          }
        }
      },
      "RewardAvailableProductCategory": {
        "type": "object",
        "description": "Represents a product category for the rewards/available endpoint.\nSupports hierarchical categories through ParentCategory.",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "External category identifier",
            "nullable": true,
            "example": "CA123"
          },
          "Name": {
            "type": "string",
            "description": "Category name",
            "nullable": true,
            "example": "Camisas"
          },
          "ParentCategory": {
            "description": "Parent category (for hierarchical categories)",
            "nullable": true,
            "example": null,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardAvailableProductCategory"
              }
            ]
          }
        }
      },
      "BaseExternalApiResponseOfPosRewardRedeemResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PosRewardRedeemResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "PosRewardRedeemResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CouponlessRewardRedeemResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ExternalProductId": {
                "type": "string",
                "description": "Offline product identifier configured for a ProductDiscount reward.\nNull for other reward types.",
                "nullable": true
              }
            }
          }
        ]
      },
      "CouponlessRewardRedeemResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "RewardId": {
            "type": "integer",
            "description": "This is the unique-id for this reward",
            "format": "int32"
          },
          "Point": {
            "description": "It`s the underlining point record generating from using this reward",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CouponlessRewardRedeemPointResponse"
              }
            ]
          },
          "ExternalCode": {
            "type": "string",
            "description": "When sending orders to BonifiQ use this field value in the `Coupon` field for the Order\nThis is necessary so we know that this order used this reward"
          },
          "OriginalKey": {
            "type": "string",
            "description": "This is the key that was send in the redeem request"
          },
          "Coupon": {
            "description": "If the request forces the coupon generation It is returned here",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardRedeemCoupon"
              }
            ]
          }
        }
      },
      "CouponlessRewardRedeemPointResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PointId": {
            "type": "integer",
            "format": "int32"
          },
          "Quantity": {
            "type": "integer",
            "format": "int32"
          },
          "Metadatas": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ExternalApiPointMetadata"
            }
          }
        }
      },
      "ExternalApiPointMetadata": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          }
        }
      },
      "RewardRedeemCoupon": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CouponCode": {
            "type": "string"
          },
          "CouponType": {
            "$ref": "#/components/schemas/CouponType"
          },
          "CouponValue": {
            "type": "number",
            "format": "decimal"
          },
          "ValidDateStart": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValidDateEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "CouponlessRewardGenerateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "string",
            "description": "The id of the customer. It can be email or document (CPF/CNPJ)."
          },
          "Customer": {
            "description": "Optional customer identifiers. `Customer.Document` is required and used for lookup\nwhen `Checkout.CustomerOriginalIdSource` is `document`; `Customer.Email` is required\nand used for lookup when the setting is `email`.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiCustomerIdentifierRequest"
              }
            ]
          },
          "Value": {
            "type": "number",
            "description": "Used only for Cashback Rewards. It the Cashback value selected by the customer. You can use either Points or Value for representing the selected amount of cashback to use.",
            "format": "decimal",
            "nullable": true
          },
          "Points": {
            "type": "integer",
            "description": "Used only for Cashback Rewards. It the Cashback represented by points selected by the customer. You can use either Points or Value for representing the selected amount of cashback to use.",
            "format": "int32",
            "nullable": true
          },
          "OriginalKey": {
            "type": "string",
            "description": "This field allows you to create idempotency: even if you make the exactly same request twice it will consume the redeem only once.\nAs distributed systems should be fault-tolerant it may result in requests being done more than one time. Not using the `OriginalKey` may duplicate a redeem request \nInform some string that is unique for this change. \nFor instance: if you are redeeming the reward Id=OPQ for customerID=ABC regarding the OrderId=123 with Value=10,our key could be `OPQ-ABC-123-10`\nIf you dont need this kind of verification you can just use some time-related string, such as `2023-01-01 23:59:00:000`"
          },
          "Metadatas": {
            "type": "array",
            "description": "Use this field as a key-value store for fields unique to your Business Use Case",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CouponlessRewardGenerateRequestMetadata"
            }
          },
          "RedeemOrigin": {
            "description": "Use this field to send redeem origin. Have 4 types:  LandingPage,  Widget, Copilot, Checkout, API, PDV.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RedeemOrigin"
              }
            ]
          },
          "Branch": {
            "description": "A Branch is physical location or outlet of a store (loja, filial, etc). This is used to receive information of which store the purchase was made. It can be later used to create rules for points or filtering reports.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateOrderBranch"
              }
            ]
          },
          "SalesPerson": {
            "description": "A sales person is the person responsible for the sale. It can be used for filtering reports.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateOrderSalesPerson"
              }
            ]
          },
          "ForceGenerateCoupon": {
            "type": "boolean",
            "description": "Normally this endpoint generates a redeem without a coupon. Setting this property to true forces to generate a coupon in the ecommerce plataform",
            "nullable": true
          }
        }
      },
      "CouponlessRewardGenerateRequestMetadata": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          }
        }
      },
      "BaseExternalApiResponseOfRewardRedeemedResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardRedeemedResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "RewardRedeemedResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique ID for this redeem",
            "format": "int32"
          },
          "Customer": {
            "description": "Customer that redeemed this reward",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateCustomerResponse"
              }
            ]
          },
          "ExternalCode": {
            "type": "string",
            "description": "Unique external code for this redeem. Could be used for integrating with third-party systems"
          },
          "CashValue": {
            "type": "number",
            "description": "If it is a Cashback or Value rewards represents the amount in cash (R$) given for the customer",
            "format": "decimal",
            "nullable": true
          },
          "IsCanceled": {
            "type": "boolean",
            "description": "If true means this reward was cancelled and the points was given back to the customer"
          },
          "RedeemDate": {
            "type": "string",
            "description": "Date the reward was redeemed",
            "format": "date-time"
          },
          "Points": {
            "description": "Points record regenerated upon redeeming process",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardRedeemedReponsePoints"
              }
            ]
          }
        }
      },
      "RewardCancelRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalKey": {
            "type": "string",
            "description": "The same `OriginalKey` used upon redeeming"
          }
        }
      },
      "CustomerChallengeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Success": {
            "type": "boolean",
            "description": "If true, the challenge was successfuly sent"
          },
          "FriendlyErrorMessage": {
            "type": "string",
            "description": "If Success=false them this field will display some helpful message"
          },
          "ShouldInformPhone": {
            "type": "boolean",
            "description": "Is Success=False and this field is true them the customer Phone must be informed in a new request call"
          },
          "ShouldInformEmail": {
            "type": "boolean",
            "description": "Is Success=False and this field is true them the customer Email must be informed in a new request call"
          },
          "SentBySMS": {
            "type": "boolean",
            "description": "If true, the challenge PIN was sent by SMS"
          },
          "SentByEmail": {
            "type": "boolean",
            "description": "If true, the challenge PIN was sent by Email"
          },
          "TransactionId": {
            "type": "string",
            "description": "Same Transaction ID as informed in the request",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "description": "If Success=false this field will show information regarding the problem",
            "nullable": true
          },
          "Code": {
            "type": "string",
            "description": "The code sent to the customer"
          }
        }
      },
      "CustomerChallengeRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TransactionId": {
            "type": "string",
            "description": "This is a unique ID that is used to identify this request. Can be any string that is linked to the currente purchase.\nIf no ID is available, the current timestamp can be used",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "description": "If the customers dont have a phone number in BonifiQ yet it can be informed by the customer. \nBonifiQ can use this number to execute the challenge",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "description": "If the customer dont have an e-mail address yet in BonifiQ it can be informed by the customer.\nBonifiQ can use this address to execute the challenge   ",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "description": "Customer document. Used only when a new customer is created by this challenge flow.",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Customer name. Used only when a new customer is created by this challenge flow.",
            "nullable": true
          }
        }
      },
      "CustomerChallengeValidateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TransactionId": {
            "type": "string",
            "description": "Same Transaction ID as informed in the request",
            "nullable": true
          },
          "Success": {
            "type": "boolean",
            "description": "If true, the challenge was successful and the purchase flow can continue"
          },
          "FriendlyErrorMessage": {
            "type": "string",
            "description": "If Success=false this field will show information regarding the problem ",
            "nullable": true
          }
        }
      },
      "CustomerChallengeValidateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TransactionId": {
            "type": "string",
            "description": "Same ID used in the Challenge call",
            "nullable": true
          },
          "Code": {
            "type": "string",
            "description": "The PIN Code informed by the customer"
          }
        }
      },
      "ReportPurchasePointsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasPublishedSnapshot": {
            "type": "boolean"
          },
          "SnapshotStartedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "SnapshotCompletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "LatestRunStatus": {
            "type": "string",
            "nullable": true
          },
          "StatusMessage": {
            "type": "string",
            "nullable": true
          },
          "IsInitialLoadComplete": {
            "type": "boolean"
          },
          "HasPendingWork": {
            "type": "boolean"
          },
          "LastSuccessfulSyncAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Summary": {
            "$ref": "#/components/schemas/ReportPurchasePointsSummary"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportPurchasePointItem"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ReportPurchasePointsSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PendingPoints": {
            "type": "integer",
            "format": "int32"
          },
          "PendingCashback": {
            "type": "number",
            "format": "decimal"
          },
          "PendingOrderCount": {
            "type": "integer",
            "format": "int32"
          },
          "GrantedPoints": {
            "type": "integer",
            "format": "int32"
          },
          "GrantedCashback": {
            "type": "number",
            "format": "decimal"
          },
          "GrantedOrderCount": {
            "type": "integer",
            "format": "int32"
          },
          "CancelledOrReversedPoints": {
            "type": "integer",
            "format": "int32"
          },
          "CancelledOrReversedCashback": {
            "type": "number",
            "format": "decimal"
          },
          "CancelledOrReversedOrderCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ReportPurchasePointItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "State": {
            "type": "string"
          },
          "IsCancelledOrReversed": {
            "type": "boolean"
          },
          "OrderOriginalId": {
            "type": "string",
            "nullable": true
          },
          "OrderState": {
            "type": "string"
          },
          "OrderPlacementDate": {
            "type": "string",
            "format": "date-time"
          },
          "OrderCompletedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "OrderCancelledDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "OrderTotal": {
            "type": "number",
            "format": "decimal"
          },
          "Customer": {
            "$ref": "#/components/schemas/ReportPurchasePointCustomer"
          },
          "Forecast": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ReportPurchasePointForecast"
              }
            ]
          },
          "Grant": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ReportPurchasePointGrant"
              }
            ]
          }
        }
      },
      "ReportPurchasePointCustomer": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "nullable": true
          },
          "PublicId": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ReportPurchasePointForecast": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Base": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ReportPurchasePointBase"
              }
            ]
          },
          "CalculatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "AvailableAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsReadyToGrant": {
            "type": "boolean"
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "format": "decimal"
          },
          "Campaigns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportPurchasePointCampaignAllocation"
            }
          }
        }
      },
      "ReportPurchasePointBase": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "ReportPurchasePointCampaignAllocation": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CampaignSource": {
            "type": "string"
          },
          "CampaignId": {
            "type": "integer",
            "format": "int32"
          },
          "CampaignName": {
            "type": "string"
          },
          "CampaignType": {
            "type": "string",
            "nullable": true
          },
          "BonusPoints": {
            "type": "integer",
            "format": "int32"
          },
          "BonusCashback": {
            "type": "number",
            "format": "decimal"
          },
          "AttributionSource": {
            "type": "string"
          }
        }
      },
      "ReportPurchasePointGrant": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Base": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ReportPurchasePointBase"
              }
            ]
          },
          "PointId": {
            "type": "integer",
            "format": "int32"
          },
          "GrantedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "format": "decimal"
          },
          "NetPoints": {
            "type": "integer",
            "format": "int32"
          },
          "NetCashback": {
            "type": "number",
            "format": "decimal"
          },
          "IsCashbackEstimated": {
            "type": "boolean"
          },
          "Reversal": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ReportPurchasePointReversal"
              }
            ]
          },
          "Campaigns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportPurchasePointCampaignAllocation"
            }
          }
        }
      },
      "ReportPurchasePointReversal": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "format": "decimal"
          },
          "IsFull": {
            "type": "boolean"
          }
        }
      },
      "BaseExternalApiListResponseOfReportPointToExpireResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReportPointToExpireResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReportPointToExpireResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "string",
            "description": "Point unique Id"
          },
          "EventDate": {
            "type": "string",
            "description": "The date the customer earned the points",
            "format": "date-time"
          },
          "Points": {
            "type": "integer",
            "description": "How many points are going to expire",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "description": "The amount of cashback that will be expired along with the points. It will be null if the cashback is not available.",
            "format": "decimal",
            "nullable": true
          },
          "ExpirationDate": {
            "type": "string",
            "description": "The date when the points will expire",
            "format": "date-time",
            "nullable": true
          },
          "Type": {
            "description": "Type of the point. The possibilities are:\n0 - Purchase points\n1 - Signup\n2 - Birthday\n3 - Granted by administrator (Ordinary)\n4 - Redeemed for reward\n5 - Review\n6 - Points refunded\n7 - Points expired\n8 - Friend referral\n9 - Social media follow (Facebook)\n10 - Social media follow (Instagram)\n11 - Partial order refund\n12 - Answered a quiz\n13 - Custom objective points\n14 - Affiliate referral",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PointType"
              }
            ]
          },
          "Customer": {
            "description": "The customer that owns the points that will expire.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateCustomerResponse"
              }
            ]
          },
          "NotificationDate": {
            "type": "string",
            "description": "Date when the customer will be notified about the points expiration.",
            "format": "date-time",
            "nullable": true
          },
          "CashbackPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "TotalCashbackAvailable": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "BaseExternalApiListResponseOfReportPointWithOrderResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReportPointWithOrderResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReportPointWithOrderResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ReportPointToExpireResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Order": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OrderCreateResponse"
                  }
                ]
              },
              "Objective": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ReportAssociatedObjectiveResponse"
                  }
                ]
              },
              "PurchaseDetails": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ReportPurchaseExtraPointDetails"
                }
              }
            }
          }
        ]
      },
      "ReportAssociatedObjectiveResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/ObjectiveType"
          }
        }
      },
      "ReportPurchaseExtraPointDetails": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/PointCalculationType"
          },
          "TypeDescription": {
            "type": "string",
            "nullable": true
          },
          "SingleMessage": {
            "type": "string",
            "nullable": true
          },
          "ScheduleIds": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "BaseExternalApiListResponseOfReportSalesResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReportSalesResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReportSalesResponse": {
        "type": "object",
        "description": "Sales report response",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique identifier of the order on BonifiQ",
            "format": "int32"
          },
          "OrderPlacementDate": {
            "type": "string",
            "description": "Date when the order was placed in commerce",
            "format": "date-time"
          },
          "DateCreated": {
            "type": "string",
            "description": "Date when the order was created in BonifiQ system",
            "format": "date-time"
          },
          "UpdatedDate": {
            "type": "string",
            "description": "Date when the order was last updated in BonifiQ system",
            "format": "date-time",
            "nullable": true
          },
          "OriginalId": {
            "type": "string",
            "description": "Original order ID from the commerce platform"
          },
          "OrderTotal": {
            "type": "number",
            "description": "Total value of the order",
            "format": "decimal"
          },
          "Coupon": {
            "type": "string",
            "description": "Coupon code used in the order",
            "nullable": true
          },
          "State": {
            "description": "Order state. The possibilities are:\n0 - Initial,\n1 - Pending\n2 - Completed\n3 - Cancelled\n4 - Ignored",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderState"
              }
            ]
          },
          "CustomerId": {
            "type": "integer",
            "description": "Customer Id",
            "format": "int32"
          },
          "CustomerName": {
            "type": "string",
            "description": "Customer name"
          },
          "CustomerEmail": {
            "type": "string",
            "description": "Customer email"
          },
          "CustomerDocument": {
            "type": "string",
            "description": "Customer document (CPF/CNPJ)"
          }
        }
      },
      "BaseExternalApiListResponseOfReportOrderResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReportOrderResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReportOrderResponse": {
        "type": "object",
        "description": "Order report response",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Order Id",
            "format": "int32"
          },
          "OriginalId": {
            "type": "string",
            "description": "Original order ID from the e-commerce platform"
          },
          "OrderStatus": {
            "type": "string",
            "description": "Order status description"
          },
          "OrderPlacementDate": {
            "type": "string",
            "description": "Date when the order was placed",
            "format": "date-time"
          },
          "DateCreated": {
            "type": "string",
            "description": "Date when the order was created in BonifiQ system",
            "format": "date-time"
          },
          "UpdatedDate": {
            "type": "string",
            "description": "Date when the order was last updated in BonifiQ system",
            "format": "date-time",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "description": "Customer Id",
            "format": "int32"
          },
          "CustomerName": {
            "type": "string",
            "description": "Customer name"
          },
          "CustomerEmail": {
            "type": "string",
            "description": "Customer email"
          },
          "CustomerPhone": {
            "type": "string",
            "description": "Customer phone"
          },
          "State": {
            "description": "Order state. The possibilities are:\n0 - Initial,\n1 - Pending\n2 - Completed\n3 - Cancelled\n4 - Ignored",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderState"
              }
            ]
          },
          "OrderTotal": {
            "type": "number",
            "description": "Total value of the order",
            "format": "decimal"
          },
          "Origin": {
            "description": "Order origin. The possibilities are:\n0 - Ecommerce Integration\n1 - API\n2 - Import\n3 - PDV (fidelidade no caixa)\n4 - Offline integration",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderOrigin"
              }
            ]
          },
          "Branch": {
            "type": "string",
            "description": "Branch name"
          },
          "OrderCompletedDate": {
            "type": "string",
            "description": "Date when the order was completed",
            "format": "date-time",
            "nullable": true
          },
          "Points": {
            "type": "integer",
            "description": "Points earned from this order",
            "format": "int32",
            "nullable": true
          },
          "CustomerDocument": {
            "type": "string",
            "description": "Customer document (CPF/CNPJ)"
          },
          "Products": {
            "type": "array",
            "description": "Products associated with the order in the report snapshot.",
            "items": {
              "$ref": "#/components/schemas/ReportOrderProductResponse"
            }
          }
        }
      },
      "ReportOrderProductResponse": {
        "type": "object",
        "description": "Product line associated with an order report entry.",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "Product ID from the client store."
          },
          "Quantity": {
            "type": "integer",
            "description": "Quantity stored for this product in the order, when available.",
            "format": "int32",
            "nullable": true
          },
          "UnitPrice": {
            "type": "number",
            "description": "Unit price stored for this product in the order, when available.",
            "format": "decimal",
            "nullable": true
          },
          "ProductPrice": {
            "type": "number",
            "description": "Product price stored for this product in the order.",
            "format": "decimal"
          }
        }
      },
      "BaseExternalApiListResponseOfReportPointResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReportPointResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReportPointResponse": {
        "type": "object",
        "description": "Point report response",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Point Id",
            "format": "int32"
          },
          "EventDate": {
            "type": "string",
            "description": "Date when the point was generated",
            "format": "date-time"
          },
          "CustomerId": {
            "type": "integer",
            "description": "Legacy internal customer id. Use Customer.PublicId or Customer.OriginalId instead.",
            "format": "int32",
            "deprecated": true,
            "x-deprecatedMessage": "Use Customer.PublicId or Customer.OriginalId instead. This internal flattened id is kept for backward compatibility."
          },
          "CustomerEmail": {
            "type": "string",
            "description": "Legacy customer email. Use Customer.Email instead.",
            "deprecated": true,
            "x-deprecatedMessage": "Use Customer.Email instead. This flattened field is kept for backward compatibility."
          },
          "CustomerPhone": {
            "type": "string",
            "description": "Legacy customer phone. Use Customer.Phone instead.",
            "deprecated": true,
            "x-deprecatedMessage": "Use Customer.Phone instead. This flattened field is kept for backward compatibility."
          },
          "CustomerName": {
            "type": "string",
            "description": "Legacy customer name. Use Customer.Name instead.",
            "deprecated": true,
            "x-deprecatedMessage": "Use Customer.Name instead. This flattened field is kept for backward compatibility."
          },
          "CustomerDoc": {
            "type": "string",
            "description": "Legacy customer document (CPF/CNPJ). Use Customer.Document instead.",
            "deprecated": true,
            "x-deprecatedMessage": "Use Customer.Document instead. This flattened field is kept for backward compatibility."
          },
          "CustomerBalance": {
            "type": "integer",
            "description": "Legacy customer current point balance. Use Customer.BalanceOfPoints instead.",
            "format": "int32",
            "deprecated": true,
            "x-deprecatedMessage": "Use Customer.BalanceOfPoints instead. This flattened field is kept for backward compatibility."
          },
          "Customer": {
            "description": "Customer that owns the point. Prefer this structured node over the legacy flattened Customer* fields.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateCustomerResponse"
              }
            ]
          },
          "Type": {
            "description": "Type of the point. The possibilities are:\n0 - Purchase points\n1 - Signup\n2 - Birthday\n3 - Granted by administrator (Ordinary)\n4 - Redeemed for reward\n5 - Review\n6 - Points refunded\n7 - Points expired\n8 - Friend referral\n9 - Social media follow (Facebook)\n10 - Social media follow (Instagram)\n11 - Partial order refund\n12 - Answered a quiz\n13 - Custom objective points\n14 - Affiliate referral",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PointType"
              }
            ]
          },
          "Origin": {
            "description": "Order origin. The possibilities are:\n0 - Integration\n1 - Manual\n2 - Import",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderOrigin"
              }
            ]
          },
          "Salesman": {
            "type": "string",
            "description": "Salesman name"
          },
          "Branch": {
            "type": "string",
            "description": "Branch name"
          },
          "OrderDate": {
            "type": "string",
            "description": "Order date",
            "format": "date-time"
          },
          "OrderOriginalId": {
            "type": "string",
            "description": "Original order ID from the e-commerce platform"
          },
          "Order": {
            "description": "Order associated with the point, when available.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderCreateResponse"
              }
            ]
          },
          "Points": {
            "type": "integer",
            "description": "Number of points",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "description": "The amount of cashback equivalent to the points. It will be null if cashback is not available.",
            "format": "decimal",
            "nullable": true
          },
          "CashbackPercent": {
            "type": "number",
            "description": "Cashback percentage configured for the tenant. It will be null if cashback is not available.",
            "format": "double",
            "nullable": true
          },
          "ExpirationDate": {
            "type": "string",
            "description": "The date when the points will expire.",
            "format": "date-time",
            "nullable": true
          },
          "Reason": {
            "type": "string",
            "description": "Reason for the point generation"
          },
          "Objective": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ReportAssociatedObjectiveResponse"
              }
            ]
          },
          "Reward": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ReportAssociatedRewardResponse"
              }
            ]
          },
          "PurchaseDetails": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReportPurchaseExtraPointDetails"
            }
          },
          "PointAction": {
            "description": "Action performed on the point. The possibilities are:\n0 - Take (point was taken from the customer, e.g., redeemed for a reward)\n1 - Grant (point was granted to the customer, e.g., earned from a purchase)",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PointAction"
              }
            ]
          }
        }
      },
      "ReportAssociatedRewardResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "AmountOfPoints": {
            "type": "integer",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "BaseExternalApiListResponseOfReportCashbackResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReportCashbackResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReportCashbackResponse": {
        "type": "object",
        "description": "Cashback report response",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Cashback Id",
            "format": "int32"
          },
          "Date": {
            "type": "string",
            "description": "Date when the cashback was generated",
            "format": "date-time"
          },
          "CustomerId": {
            "type": "integer",
            "description": "Customer Id",
            "format": "int32"
          },
          "CustomerName": {
            "type": "string",
            "description": "Customer name"
          },
          "CustomerEmail": {
            "type": "string",
            "description": "Customer email"
          },
          "Order": {
            "type": "integer",
            "description": "Order Id",
            "format": "int32"
          },
          "Value": {
            "type": "number",
            "description": "Cashback value in currency",
            "format": "decimal"
          },
          "Coupon": {
            "type": "string",
            "description": "Coupon code used"
          },
          "OrderOriginalId": {
            "type": "string",
            "description": "Original order ID from the e-commerce platform",
            "nullable": true
          },
          "CustomerDocument": {
            "type": "string",
            "description": "Customer document (CPF/CNPJ)"
          },
          "OrderValue": {
            "type": "number",
            "description": "Total value of the order",
            "format": "decimal"
          },
          "BranchName": {
            "type": "string",
            "description": "Branch name"
          },
          "TenantSalesmanName": {
            "type": "string",
            "description": "Salesman name"
          },
          "OrderOrigin": {
            "description": "Order origin. The possibilities are:\n0 - Ecommerce Integration\n1 - API\n2 - Import\n3 - PDV (fidelidade no caixa)\n4 - Offline integration",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderOrigin"
              }
            ]
          },
          "OrderStatus": {
            "type": "string",
            "description": "Order status description"
          },
          "State": {
            "description": "Order state. The possibilities are:\n0 - Initial\n1 - Pending\n2 - Completed\n3 - Cancelled\n4 - Ignored",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderState"
              }
            ]
          }
        }
      },
      "BaseExternalApiListResponseOfReportCanceledCashbackResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReportCanceledCashbackResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReportCanceledCashbackResponse": {
        "type": "object",
        "description": "Canceled cashback redemption report response. Uses the same fields as the Reward_Cancelled webhook payload,\nplus CancellationTypeDescription, Customer.InternalId, BranchOriginalId, BranchName and TenantSalesmanName.\nThe webhook Customer.Rfm field is not returned.",
        "additionalProperties": false,
        "properties": {
          "RewardId": {
            "type": "integer",
            "description": "Id of the redemption. The same RewardId of the Reward_Redeemed and Reward_Cancelled webhooks and of the /v1/pvt/Rewards/{id} endpoints",
            "format": "int32"
          },
          "RewardConfigurationId": {
            "type": "integer",
            "description": "Id of the configured reward",
            "format": "int32"
          },
          "RewardType": {
            "description": "Reward type. Always 3 (PointToCashback) in this report",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardType"
              }
            ]
          },
          "CouponCode": {
            "type": "string",
            "description": "Coupon code generated by the redemption (null when the redemption does not generate a coupon)",
            "nullable": true
          },
          "ExternalCode": {
            "type": "string",
            "description": "External code of the redemption",
            "nullable": true
          },
          "PointId": {
            "type": "integer",
            "description": "Id of the points transaction of the redemption",
            "format": "int32"
          },
          "Points": {
            "type": "integer",
            "description": "Points of the redemption given back to the customer",
            "format": "int32"
          },
          "CashValue": {
            "type": "number",
            "description": "Cashback value of the redemption, in currency",
            "format": "decimal",
            "nullable": true
          },
          "RedeemDate": {
            "type": "string",
            "description": "Date when the customer redeemed the cashback (ISO 8601, UTC)",
            "format": "date-time"
          },
          "RedeemOrigin": {
            "description": "Where the customer redeemed the cashback. The possibilities are:\n0 - LandingPage\n1 - Widget\n2 - Copilot\n3 - Checkout\n4 - API\n5 - PDV",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RedeemOrigin"
              }
            ]
          },
          "Customer": {
            "description": "Customer of the redemption",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ReportCanceledCashbackCustomer"
              }
            ]
          },
          "PointsBalance": {
            "description": "Current points balance of the customer. Unlike the Reward_Cancelled webhook, it is not the balance at the\nmoment of the cancellation, and it may take a few hours to reflect recent changes",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ReportCanceledCashbackPointsBalance"
              }
            ]
          },
          "CancelledDate": {
            "type": "string",
            "description": "Date when the cashback redemption was canceled (ISO 8601, UTC)",
            "format": "date-time"
          },
          "CancellationType": {
            "description": "What canceled the redemption. The possibilities are:\n0 - Refresh (checkout updated with a new cashback redemption)\n1 - Removed (cashback removed from the checkout)\n2 - AbandonedCart (abandoned checkout cleanup)\n3 - API (canceled through the API)\n4 - PDV (canceled at the point of sale)\n5 - MissingSecurityKey (checkout loaded without the redemption security key)\nnull - No type was recorded: cancellations from before mid-2025 (when the type started being recorded), refunds of\ncanceled orders, replacement redemptions canceled when the original one was restored, and some integration and internal flows",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CancellationType"
              }
            ]
          },
          "CancellationTypeDescription": {
            "type": "string",
            "description": "Description of the cancellation type. Not present in the webhook",
            "nullable": true
          },
          "BranchOriginalId": {
            "type": "string",
            "description": "Branch Id in the client store, when the redemption was made in a branch. Not present in the webhook",
            "nullable": true
          },
          "BranchName": {
            "type": "string",
            "description": "Branch name, when the redemption was made in a branch. Not present in the webhook",
            "nullable": true
          },
          "TenantSalesmanName": {
            "type": "string",
            "description": "Salesman name, when the redemption was made by a salesman. Not present in the webhook",
            "nullable": true
          }
        }
      },
      "ReportCanceledCashbackCustomer": {
        "type": "object",
        "description": "Customer of a canceled cashback redemption, with the same fields as the webhook Customer object (except Rfm)",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string",
            "description": "Customer email",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Customer Id in the client store (OriginalId), as in the webhook",
            "nullable": true
          },
          "InternalId": {
            "type": "string",
            "description": "ID for this customer on the Bonifiq DB (PublicId). Not present in the webhook",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Customer name",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "description": "Customer phone",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "description": "Customer document (CPF/CNPJ)",
            "nullable": true
          },
          "BirthdayDate": {
            "type": "string",
            "description": "Customer birthday",
            "format": "date-time",
            "nullable": true
          },
          "PointsBalance": {
            "type": "integer",
            "description": "Current points balance of the customer (not the balance at the moment of the cancellation)",
            "format": "int32"
          }
        }
      },
      "ReportCanceledCashbackPointsBalance": {
        "type": "object",
        "description": "Current points balance of the customer",
        "additionalProperties": false,
        "properties": {
          "PointsBalance": {
            "type": "integer",
            "description": "Current points balance",
            "format": "int32"
          },
          "CashbackBalance": {
            "type": "number",
            "description": "Current balance converted to cashback with the active cashback reward, in currency (0 when there is none)",
            "format": "decimal"
          }
        }
      },
      "CancellationType": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Refresh",
          "Removed",
          "AbandonedCart",
          "API",
          "PDV",
          "MissingSecurityKey"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ]
      },
      "BaseExternalApiListResponseOfReportGeneratedCouponResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReportGeneratedCouponResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReportGeneratedCouponResponse": {
        "type": "object",
        "description": "Response model for generated coupon reports",
        "additionalProperties": false,
        "properties": {
          "CouponCode": {
            "type": "string",
            "description": "Coupon code"
          },
          "CustomerId": {
            "type": "integer",
            "description": "Customer ID who owns the coupon",
            "format": "int32"
          },
          "CustomerName": {
            "type": "string",
            "description": "Customer name"
          },
          "CustomerEmail": {
            "type": "string",
            "description": "Customer email"
          },
          "CustomerDocument": {
            "type": "string",
            "description": "Customer document (CPF/CNPJ)"
          },
          "CreatedDate": {
            "type": "string",
            "description": "Date when the coupon was created/generated",
            "format": "date-time"
          },
          "CouponType": {
            "description": "Type of coupon.\nPossible values:\n- 0 (FixedValue): Fixed value discount\n- 1 (Percent): Percentage discount\n- 2 (FreeShipping): Free shipping\n- 3 (DiscountShipping): Shipping discount\n- 4 (Others): Other types (usually for pre-generated coupons)",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CouponType"
              }
            ]
          },
          "CouponValue": {
            "type": "number",
            "description": "Coupon value (depends on CouponType)",
            "format": "decimal"
          },
          "Status": {
            "description": "Current status of the coupon.\nPossible values:\n- 0 (Available): Coupon has been redeemed and is available for use\n- 1 (Used): Coupon has been used in an order\n- 2 (Cancelled): Coupon has been cancelled\n- 3 (Expired): Coupon has expired",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CouponStatus"
              }
            ]
          },
          "IsUsed": {
            "type": "boolean",
            "description": "Indicates if the coupon has been used in an order",
            "nullable": true
          },
          "OrderId": {
            "type": "string",
            "description": "Order ID where the coupon was used (if applicable)",
            "nullable": true
          },
          "OrderOrigin": {
            "description": "Origin of the order where the coupon was used.\nPossible values:\n- 0 (Integration): Order from platform integration\n- 1 (API): Order via External API\n- 2 (Import): Order imported from file\n- 3 (PDV): Order from point of sale\n- 4 (OfflineIntegration): Order from offline platform integration",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/OrderOrigin"
              }
            ]
          },
          "BranchName": {
            "type": "string",
            "description": "Branch name where the coupon was generated or used",
            "nullable": true
          },
          "TenantSalesmanName": {
            "type": "string",
            "description": "Salesman name associated with the coupon",
            "nullable": true
          },
          "ValidDateStart": {
            "type": "string",
            "description": "Start date of coupon validity period",
            "format": "date-time",
            "nullable": true
          },
          "ValidDateEnd": {
            "type": "string",
            "description": "End date of coupon validity period",
            "format": "date-time",
            "nullable": true
          },
          "CanceledDate": {
            "type": "string",
            "description": "Date when the coupon was cancelled (if applicable)",
            "format": "date-time",
            "nullable": true
          },
          "Refunded": {
            "type": "boolean",
            "description": "Indicates if the coupon was refunded",
            "nullable": true
          },
          "IsAssigned": {
            "type": "boolean",
            "description": "Indicates if the coupon is assigned to a customer"
          }
        }
      },
      "BaseExternalApiListResponseOfReportCustomerResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReportCustomerResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReportCustomerResponse": {
        "type": "object",
        "description": "Customer report response with points balance, points to expire and point history",
        "additionalProperties": false,
        "properties": {
          "InternalId": {
            "type": "string",
            "description": "ID for this customer on the Bonifiq DB (PublicId)"
          },
          "OriginalId": {
            "type": "string",
            "description": "This is the Id in the client store"
          },
          "Name": {
            "type": "string",
            "description": "Customer name"
          },
          "Email": {
            "type": "string",
            "description": "Customer email",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "description": "Customer Contact Phone",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "description": "Customer document (CPF/CNPJ)",
            "nullable": true
          },
          "BirthdayDate": {
            "type": "string",
            "description": "Customer Birthdate",
            "format": "date-time",
            "nullable": true
          },
          "SignupDate": {
            "type": "string",
            "description": "Date when the customer made the register on client store",
            "format": "date-time",
            "nullable": true
          },
          "IsEnrolled": {
            "type": "boolean",
            "description": "If true the customer is participating on the points plan from the store"
          },
          "CreatedDate": {
            "type": "string",
            "description": "Date when customer was created in BonifiQ",
            "format": "date-time"
          },
          "UpdateDate": {
            "type": "string",
            "description": "Date when the customer registration data was last updated in BonifiQ.\nPoints balance and tier changes do not update this date",
            "format": "date-time"
          },
          "PointsBalance": {
            "type": "integer",
            "description": "Amount of points for this customer",
            "format": "int32"
          },
          "CashbackBalance": {
            "type": "number",
            "description": "When the cashback reward is active it returns the amount (in R$) of cashback the customer have.\nReturns 0 when the cashback is inactive",
            "format": "decimal"
          },
          "CurrentTier": {
            "description": "If the customer is in a Tier returns it. Otherwise returns null",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerTierResponse"
              }
            ]
          },
          "PointsToExpire": {
            "type": "array",
            "description": "List of points that will expire soon",
            "items": {
              "$ref": "#/components/schemas/CustomerPointsToExpire"
            }
          },
          "PointHistory": {
            "type": "array",
            "description": "A detailed list of point transactions for the customer",
            "items": {
              "$ref": "#/components/schemas/PointDetailItem"
            }
          },
          "Origin": {
            "description": "Origin of the customer into BonifiQ Database",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerOrigin"
              }
            ]
          }
        }
      },
      "ApiTierProcessed": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CurrentTier": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiTierProcessedItem"
              }
            ]
          },
          "NextTiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTierProcessedItem"
            }
          },
          "AllTiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTierProcessedItem"
            }
          }
        }
      },
      "ApiTierProcessedItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Image": {
            "type": "string"
          },
          "Color": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "Order": {
            "type": "integer",
            "format": "int32"
          },
          "Benefits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTierProcessedBenefit"
            }
          },
          "Goals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTierProcessedGoal"
            }
          }
        }
      },
      "ApiTierProcessedBenefit": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IsUsed": {
            "type": "boolean"
          },
          "Description": {
            "type": "string"
          },
          "Type": {
            "$ref": "#/components/schemas/TierBenefitType"
          },
          "SubType": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Objective": {}
        }
      },
      "ApiTierProcessedGoal": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "GoalValue": {
            "type": "number",
            "format": "double"
          },
          "CurrentValue": {
            "type": "number",
            "format": "double"
          },
          "PercentToGoal": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "ExternalTierAvailableRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CreateUpdateAffiliateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Email": {
            "type": "string",
            "description": "Email address of the affiliate, used in OriginalId",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "Coupon": {
            "type": "string",
            "description": "Affiliate code or coupon",
            "nullable": true
          },
          "InviteToPortal": {
            "type": "boolean",
            "description": "Invite to affiliate portal, if the portal is active"
          }
        }
      },
      "BaseExternalApiResponseOfCouponlessRewardRedeemResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CouponlessRewardRedeemResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "ExternalApiCheckoutRedeemRequest": {
        "type": "object",
        "description": "Request to redeem cashback in a checkout",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "string",
            "description": "Customer identifier (email or document/CPF)"
          },
          "Customer": {
            "description": "Optional customer identifiers. `Customer.Document` is required and used for lookup\nwhen `Checkout.CustomerOriginalIdSource` is `document`; `Customer.Email` is required\nand used for lookup when the setting is `email`.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiCustomerIdentifierRequest"
              }
            ]
          },
          "CheckoutId": {
            "type": "string",
            "description": "The checkout/cart ID from the e-commerce platform"
          },
          "CashbackValue": {
            "type": "number",
            "description": "Optional: The specific amount of cashback to apply. \nIf not provided, the maximum available cashback will be used.",
            "format": "decimal",
            "nullable": true
          },
          "Total": {
            "type": "number",
            "description": "Optional: The checkout total value. Used for validation.",
            "format": "decimal",
            "nullable": true
          },
          "Token": {
            "type": "string",
            "description": "Optional: Platform-specific token for the checkout",
            "nullable": true
          },
          "OriginalKey": {
            "type": "string",
            "description": "Optional: A unique key to identify this redemption (for idempotency).\nFor VTEX, omit it (recommended) or use exactly checkout-{CheckoutId} with the actual cart ID.\nUnrelated partner references are unsupported for automatic checkout cleanup/refund,\neven if prefixed with checkout-. Currently accepted without format validation;\nan unresolvable cart can leave the redemption debit preserved.",
            "nullable": true
          },
          "Items": {
            "type": "array",
            "description": "Optional: List of order items for cashback eligibility validation.\nIf provided, only eligible items will be considered for cashback calculation.\nIf not provided, the full order total will be used (backward compatible behavior).",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ExternalApiCheckoutOrderItem"
            }
          }
        }
      },
      "ExternalApiCheckoutOrderItem": {
        "type": "object",
        "description": "Represents an order item for cashback eligibility validation in external API",
        "additionalProperties": false,
        "properties": {
          "ExternalProductId": {
            "type": "string",
            "description": "External product identifier from the e-commerce platform",
            "nullable": true
          },
          "Value": {
            "type": "number",
            "description": "Item value (price * quantity)",
            "format": "decimal"
          },
          "Quantity": {
            "type": "integer",
            "description": "Quantity of the item",
            "format": "int32"
          }
        }
      },
      "BaseExternalApiResponseOfCheckoutPurchasePointsSimulationResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CheckoutPurchasePointsSimulationResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CheckoutPurchasePointsSimulationResponse": {
        "type": "object",
        "description": "Result returned by the checkout purchase points simulation operation.",
        "additionalProperties": false,
        "properties": {
          "PurchasePoints": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseCashback": {
            "type": "number",
            "format": "decimal"
          },
          "GenerateBonus": {
            "type": "boolean"
          }
        }
      },
      "ExternalApiCheckoutSimulateRequest": {
        "type": "object",
        "description": "Request to simulate purchase points for the current checkout/cart.\nThe checkout total is always fetched from the platform integration.",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "string",
            "description": "Optional customer identifier resolved according to the tenant checkout customer lookup setting.",
            "nullable": true
          },
          "Customer": {
            "description": "Optional customer identifiers used when checkout customer lookup is configured by document or email.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiCustomerIdentifierRequest"
              }
            ]
          },
          "CheckoutId": {
            "type": "string",
            "description": "The checkout/cart ID from the e-commerce platform."
          }
        }
      },
      "BaseExternalApiResponseOfCheckoutRefreshCashbackResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CheckoutRefreshCashbackResponse2"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CheckoutRefreshCashbackResponse2": {
        "type": "object",
        "description": "Result returned by the checkout refresh operation.",
        "additionalProperties": false,
        "properties": {
          "CashbackRemoved": {
            "type": "boolean",
            "description": "Indicates whether the refresh operation removed the cashback from the checkout."
          },
          "CustomerMessage": {
            "type": "string",
            "description": "Human-readable message describing the final checkout state after the refresh operation."
          }
        }
      },
      "ExternalApiCheckoutActionRequest": {
        "type": "object",
        "description": "Request payload for checkout actions that need both customer identification and checkout reference.",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "string",
            "description": "Required customer identifier used by the merchant platform, such as e-mail or CPF/document."
          },
          "Customer": {
            "description": "Optional customer identifiers. `Customer.Document` is required and used for lookup\nwhen `Checkout.CustomerOriginalIdSource` is `document`; `Customer.Email` is required\nand used for lookup when the setting is `email`.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiCustomerIdentifierRequest"
              }
            ]
          },
          "CheckoutId": {
            "type": "string",
            "description": "Required checkout or cart identifier from the e-commerce platform."
          },
          "Total": {
            "type": "number",
            "description": "Optional current checkout total value.\nSend this only when the platform integration needs the caller to provide the latest checkout amount explicitly.",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "BaseExternalApiResponseOfCheckoutRemoveCashbackResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CheckoutRemoveCashbackResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "BaseExternalApiResponseOfCreateCouponResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateCouponResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "CreateCouponRequest": {
        "type": "object",
        "description": "Create Coupon Request model",
        "additionalProperties": false,
        "properties": {
          "OriginalId": {
            "type": "string",
            "description": "Id from the client store."
          },
          "CouponCode": {
            "type": "string",
            "description": "Coupon Code."
          },
          "CreatedDate": {
            "type": "string",
            "description": "Date of creation of this coupon.",
            "format": "date-time"
          },
          "CouponType": {
            "description": "If 0 = Coupon is absolute value (eg R$10.00), 1 = the Coupon has a percentage value (Ex: 10%), 2 = its a free shipping Coupon, 3 = its a shipping discount Coupon.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CouponType"
              }
            ]
          },
          "IsUsed": {
            "type": "boolean",
            "description": "If true, the coupon was already being used in a purchase."
          },
          "CouponValue": {
            "type": "number",
            "description": "Coupon Discount Value",
            "format": "decimal"
          },
          "ValidDateStart": {
            "type": "string",
            "description": "Coupon validity start date",
            "format": "date-time"
          },
          "ValidDateEnd": {
            "type": "string",
            "description": "Coupon expiration date",
            "format": "date-time"
          },
          "CustomerId": {
            "type": "string",
            "description": "Id for the customer that this coupon is being given."
          },
          "Customer": {
            "description": "Customer Data",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalCreateCustomerRequest"
              }
            ]
          }
        }
      },
      "BaseExternalApiResponseOfApiCouponPromotionModel": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiCouponPromotionModel"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "ApiCouponPromotionModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IsCumulative": {
            "type": "boolean"
          },
          "Value": {
            "type": "number",
            "format": "decimal"
          },
          "Type": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardType"
              }
            ]
          },
          "Requirements": {
            "type": "string"
          },
          "BeginDate": {
            "type": "string"
          },
          "EndDate": {
            "type": "string"
          },
          "Title": {
            "type": "string"
          },
          "IsActive": {
            "type": "boolean"
          },
          "MinValue": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "BaseExternalApiListResponseOfGetObjectivesResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/GetObjectivesResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "GetObjectivesResponse": {
        "type": "object",
        "description": "Objectives response model",
        "additionalProperties": false,
        "properties": {
          "Title": {
            "type": "string",
            "description": "Title of the Objective"
          },
          "Description": {
            "type": "string",
            "description": "Description of the Objective"
          },
          "AmountOfPoints": {
            "type": "number",
            "description": "The amount of points the customer will receive on objective completion.",
            "format": "decimal"
          },
          "Active": {
            "type": "boolean",
            "description": "If true, the objective is active and can be used to give rewards to customers."
          },
          "Details": {},
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Type": {
            "$ref": "#/components/schemas/ObjectiveType"
          },
          "IsSchedule": {
            "type": "boolean"
          },
          "ScheduleId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ObjectiveId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "BaseExternalApiResponseOfGetObjectivesResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/GetObjectivesResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "ImportCustomerPointsRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ExpiringPointsRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseExternalApiFilter"
          },
          {
            "type": "object",
            "description": "Request filter for retrieving expiring points via the external API.",
            "additionalProperties": false,
            "properties": {
              "From": {
                "type": "string",
                "description": "Optional start date for the expiration period (inclusive). Filters points expiring on or after this date.\nExpected format: ISO 8601 (e.g., \"2023-10-27T00:00:00Z\").",
                "format": "date-time",
                "nullable": true
              },
              "To": {
                "type": "string",
                "description": "Optional end date for the expiration period (inclusive). Filters points expiring on or before this date.\nExpected format: ISO 8601 (e.g., \"2023-11-27T23:59:59Z\").",
                "format": "date-time",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseExternalApiResponseOfBaseApiListResultOfApiPointWithCustomerListItem": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/BaseApiListResultOfApiPointWithCustomerListItem"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "BaseApiListResultOfApiPointWithCustomerListItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPointWithCustomerListItem"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean"
          }
        }
      },
      "ApiPointWithCustomerListItem": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseApiEntity"
          },
          {
            "type": "object",
            "description": "Represents a single item in a list of points, including associated customer data.",
            "additionalProperties": false,
            "properties": {
              "PointId": {
                "type": "integer",
                "description": "The unique identifier for the point record.",
                "format": "int32"
              },
              "Points": {
                "type": "integer",
                "description": "The number of points.",
                "format": "int32"
              },
              "ReasonType": {
                "description": "The reason/type why the points were granted (e.g., Purchase, Signup, Manual).",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PointType"
                  }
                ]
              },
              "GenerationDate": {
                "type": "string",
                "description": "The date when the points were generated/awarded.",
                "format": "date-time"
              },
              "ExpirationDate": {
                "type": "string",
                "description": "The date when these points expire, if applicable.",
                "format": "date-time",
                "nullable": true
              },
              "Description": {
                "type": "string",
                "description": "Optional description or comments related to the points."
              },
              "CustomerId": {
                "type": "integer",
                "description": "The ID of the customer these points belong to.",
                "format": "int32"
              },
              "CustomerName": {
                "type": "string",
                "description": "The name of the customer."
              },
              "CustomerEmail": {
                "type": "string",
                "description": "The email of the customer."
              },
              "CustomerPhone": {
                "type": "string",
                "description": "The phone number of the customer."
              },
              "CustomerDocument": {
                "type": "string",
                "description": "The document number (e.g., CPF) of the customer."
              },
              "BranchName": {
                "type": "string",
                "description": "Name of the branch where the points transaction occurred, if applicable."
              },
              "BranchId": {
                "type": "integer",
                "description": "ID of the branch where the points transaction occurred, if applicable.",
                "format": "int32",
                "nullable": true
              },
              "Origin": {
                "type": "string",
                "description": "The origin of the order or transaction associated with the points (e.g., WEB, PDV, MANUAL)."
              },
              "CustomerBalance": {
                "type": "integer",
                "description": "How much points the customer have",
                "format": "int32"
              }
            }
          }
        ]
      },
      "ListPointsRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseExternalApiFilter"
          },
          {
            "type": "object",
            "description": "Request filter for listing points from a specific date via the external API.",
            "additionalProperties": false,
            "properties": {
              "DateFrom": {
                "type": "string",
                "description": "Optional date from which to list points (inclusive).\nFilters points created or relevant on or after this date.\nExpected format: ISO 8601 (e.g., \"2023-10-27T00:00:00Z\" or \"2023-10-27\").",
                "format": "date-time",
                "nullable": true
              }
            }
          }
        ]
      },
      "BaseExternalApiResponseOfCreateProductResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateProductResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "BaseExternalApiResponseOfListOfExternalApiQuizResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "type": "array",
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ExternalApiQuizResponse"
            }
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "ExternalApiQuizResponse": {
        "type": "object",
        "description": "Represents a quiz item in a list response for the external API.",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "StartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsCompleted": {
            "type": "boolean"
          },
          "QuestionList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalApiQuizResponseQuestion"
            }
          },
          "AmountOfPoints": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ExternalApiQuizResponseQuestion": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Question": {
            "type": "string"
          },
          "Type": {
            "description": "0 = Multiple Choices\n\n1 = Single Selection\n\n2 = Open Question",
            "oneOf": [
              {
                "$ref": "#/components/schemas/QuizQuestionType"
              }
            ]
          },
          "Options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalApiQuizResponseQuestionItem"
            }
          }
        }
      },
      "ExternalApiQuizResponseQuestionItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Text": {
            "type": "string"
          },
          "Type": {
            "$ref": "#/components/schemas/QuizQuestionType"
          }
        }
      },
      "BaseExternalApiResponseOfAnswerQuizResponse": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/AnswerQuizResponse"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "AnswerQuizResponse": {
        "type": "object",
        "description": "Represents the response payload after submitting quiz answers via the external API.",
        "additionalProperties": false,
        "properties": {
          "Success": {
            "type": "boolean",
            "description": "Indicates whether the quiz submission was processed successfully.\nNote: This doesn't necessarily mean the answers were correct, just that the submission was accepted."
          },
          "Message": {
            "type": "string",
            "description": "Optional message providing more details about the submission result (e.g., \"Quiz completed successfully\", \"Already submitted\")."
          },
          "PointsAwarded": {
            "type": "integer",
            "description": "The number of points awarded for completing the quiz, if applicable.\nCould be null if no points are awarded or if the submission failed.",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "ExternalAPiQuizCustomerAnswerRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "QuizQuestionId": {
            "type": "integer",
            "format": "int32"
          },
          "OpenAnswer": {
            "type": "string",
            "nullable": true
          },
          "OptionIds": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "BaseExternalApiListResponseOfRewardConfigResponse": {
        "type": "object",
        "description": "Base List response model methods",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "description": "Collection with the found entities on the bonifiq DB.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/RewardConfigResponse"
            }
          },
          "TotalItemCount": {
            "type": "integer",
            "description": "Total of rewards Configurations founds.",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "description": "Pagination size",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "description": "Actual Page Number",
            "format": "int32"
          },
          "HasNextPage": {
            "type": "boolean",
            "description": "true if there is another page to be load."
          },
          "HasError": {
            "type": "boolean",
            "description": "If true the request had an error."
          },
          "ErrorMessages": {
            "type": "array",
            "description": "List with the error messages",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RewardConfigResponse": {
        "type": "object",
        "description": "Rewards configuration model",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Reward configuration ID.",
            "format": "int32"
          },
          "Title": {
            "type": "string",
            "description": "Reward Title."
          },
          "Description": {
            "type": "string",
            "description": "Reward Description."
          },
          "IsActive": {
            "type": "boolean",
            "description": "If true the reward is active and can be \"granted\"."
          },
          "Value": {
            "type": "number",
            "description": "Value for the reward being used.",
            "format": "decimal"
          },
          "Points": {
            "type": "number",
            "description": "Amoiunt of points for this reward.",
            "format": "decimal"
          },
          "RewardType": {
            "description": "Type of the Reward/Discount.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RewardType"
              }
            ]
          }
        }
      },
      "BaseExternalApiResponseOfApiRewardConfiguration": {
        "type": "object",
        "description": "Standard response envelope used by the External API.",
        "additionalProperties": false,
        "properties": {
          "ErrorMessage": {
            "type": "string",
            "description": "Error message returned when the request fails validation or processing.\nFor warnings and successful responses, consumers should usually inspect `Result`, `Code` and `Severity` first.",
            "nullable": true
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Legacy numeric error code derived from internal API errors when available.\nThis field is relevant only for error flows that use `ApiResponseErrorDescription`.",
            "format": "int32",
            "nullable": true
          },
          "Result": {
            "description": "Business payload returned by the endpoint.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ApiRewardConfiguration"
              }
            ]
          },
          "Code": {
            "type": "string",
            "description": "Endpoint-specific business code formatted as a two-digit string, such as `03` or `07`.\nThis field is available for success, warning and error outcomes.",
            "nullable": true
          },
          "CodeName": {
            "type": "string",
            "description": "Symbolic enum name associated with `Code`, such as `CheckoutNotFound`.",
            "nullable": true
          },
          "Severity": {
            "description": "Final severity of the response.\n`Success` means the action completed as expected, `Warning` means the request was valid but the business outcome is informational or non-ideal, and `Error` means the request should be treated as a failure.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiResponseSeverity"
              }
            ]
          },
          "HasWarning": {
            "type": "boolean",
            "description": "Convenience flag that is `true` when `Severity` is `Warning`.\nWarnings are valid `200 OK` business outcomes and should not be handled as transport or validation errors."
          },
          "HasError": {
            "type": "boolean",
            "description": "Indicates whether the request failed and should be handled as an error response.\nThis flag is reserved for real API errors; warnings must keep this property as `false`."
          }
        }
      },
      "RedeemRewardRequest": {
        "type": "object",
        "description": "Reward Redeem Request model",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "string",
            "description": "ID of the customer requesting the reward redeem. its the ID from the client store."
          },
          "Customer": {
            "description": "Optional customer identifiers. `Customer.Document` is required and used for lookup\nwhen `Checkout.CustomerOriginalIdSource` is `document`; `Customer.Email` is required\nand used for lookup when the setting is `email`.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExternalApiCustomerIdentifierRequest"
              }
            ]
          }
        }
      },
      "RewardUpdateMetadataRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginalKey": {
            "type": "string",
            "description": "The same `OriginalKey` used on reward redeeming "
          },
          "Metadatas": {
            "type": "array",
            "description": "A list of name-value that will be added to the point metadatas for this reward.",
            "items": {
              "$ref": "#/components/schemas/CouponlessRewardGenerateRequestMetadata"
            }
          }
        }
      },
      "TermsResponse2": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Terms": {
            "type": "string"
          }
        }
      },
      "ApiLinxFidelityConfig": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Itens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLinxFidelityConfigItem"
            }
          },
          "PinMaster": {
            "type": "string",
            "nullable": true
          },
          "UsePIN": {
            "type": "boolean"
          },
          "UseEANAsProduct": {
            "type": "boolean"
          },
          "RequirePinBeforeEnrollment": {
            "type": "boolean"
          }
        }
      },
      "ApiLinxFidelityConfigItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "string"
          },
          "Authorization": {
            "type": "string"
          },
          "CNPJ": {
            "type": "string"
          },
          "TipoAmbiente": {
            "$ref": "#/components/schemas/TipoAmbienteLinxEnum"
          }
        }
      },
      "TipoAmbienteLinxEnum": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Homologacao",
          "Producao"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ApiLinxFidelityMicrovixAuxiliaryConfig": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Enabled": {
            "type": "boolean"
          },
          "ProcessOrders": {
            "type": "boolean"
          },
          "ProcessPartialCancellations": {
            "type": "boolean"
          },
          "OrdersLookbackDays": {
            "type": "integer",
            "format": "int32"
          },
          "PortalId": {
            "type": "string",
            "nullable": true
          },
          "HasApiKey": {
            "type": "boolean"
          },
          "InitialSyncDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Stores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLinxFidelityMicrovixAuxiliaryStore"
            }
          },
          "Orders": {
            "$ref": "#/components/schemas/ApiLinxFidelityMicrovixAuxiliaryJobSummary"
          },
          "PartialCancellations": {
            "$ref": "#/components/schemas/ApiLinxFidelityMicrovixAuxiliaryJobSummary"
          }
        }
      },
      "ApiLinxFidelityMicrovixAuxiliaryStore": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Cnpj": {
            "type": "string"
          },
          "CompanyName": {
            "type": "string",
            "nullable": true
          },
          "BelongsToPortal": {
            "type": "boolean",
            "description": "True/false when the portal could be queried; null when validation was unavailable.",
            "nullable": true
          }
        }
      },
      "ApiLinxFidelityMicrovixAuxiliaryJobSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "LastSuccessAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "LastProcessedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "PendingCount": {
            "type": "integer",
            "format": "int32"
          },
          "DeferredCount": {
            "type": "integer",
            "format": "int32"
          },
          "NeedsReviewCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ApiLinxFidelityMicrovixAuxiliaryUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Enabled": {
            "type": "boolean"
          },
          "ProcessOrders": {
            "type": "boolean",
            "nullable": true
          },
          "ProcessPartialCancellations": {
            "type": "boolean",
            "nullable": true
          },
          "OrdersLookbackDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PortalId": {
            "type": "string",
            "description": "Null or whitespace preserves the currently stored portal.",
            "nullable": true
          },
          "ApiKey": {
            "type": "string",
            "description": "Write-only. Null or whitespace preserves the currently stored key.",
            "nullable": true
          }
        }
      },
      "ApiLinxFidelityMicrovixAuxiliaryValidationResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Valid": {
            "type": "boolean"
          },
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Stores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLinxFidelityMicrovixAuxiliaryStore"
            }
          }
        }
      },
      "ApiLinxFidelityMicrovixAuxiliaryValidationRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PortalId": {
            "type": "string",
            "nullable": true
          },
          "ApiKey": {
            "type": "string",
            "description": "Write-only. Null or whitespace uses the currently stored key.",
            "nullable": true
          }
        }
      },
      "AtualizarClienteRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Nome": {
            "type": "string",
            "nullable": true
          },
          "RG": {
            "type": "string",
            "nullable": true
          },
          "CPF": {
            "type": "string",
            "nullable": true
          },
          "EstadoCivil": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "DataNascimento": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Sexo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Profissao": {
            "type": "string",
            "nullable": true
          },
          "NomeMae": {
            "type": "string",
            "nullable": true
          },
          "NomePai": {
            "type": "string",
            "nullable": true
          },
          "NomeConjuge": {
            "type": "string",
            "nullable": true
          },
          "Naturalidade": {
            "type": "string",
            "nullable": true
          },
          "Escolariedade": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "RendaMensal": {
            "type": "number",
            "format": "decimal"
          },
          "NumeroDependentes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "LocalDeTrabalho": {
            "type": "string",
            "nullable": true
          },
          "TempoNoAtualEmprego": {
            "type": "string",
            "nullable": true
          },
          "Endereco": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/EnderecoRequest"
              }
            ]
          },
          "Contato": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ContatoRequest"
              }
            ]
          }
        }
      },
      "EnderecoRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Cep": {
            "type": "string",
            "nullable": true
          },
          "Logradouro": {
            "type": "string",
            "nullable": true
          },
          "Numero": {
            "type": "string",
            "nullable": true
          },
          "Complemento": {
            "type": "string",
            "nullable": true
          },
          "Bairro": {
            "type": "string",
            "nullable": true
          },
          "Cidade": {
            "type": "string",
            "nullable": true
          },
          "UF": {
            "type": "string",
            "nullable": true
          },
          "Pais": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ContatoRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Telefone": {
            "type": "string",
            "nullable": true
          },
          "Celular": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ConsultarSaldoClienteRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Venda": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ConsultarSaldoClienteVenda"
              }
            ]
          }
        }
      },
      "ConsultarSaldoClienteVenda": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Cpf": {
            "type": "string",
            "nullable": true
          },
          "Vendedor": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ConsultarSaldoClienteVendedor"
              }
            ]
          },
          "DataHora": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValorLiquido": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorBruto": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "DescontoTotalValor": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "QuantidadeTotalItens": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "FormasDePagamento": {
            "type": "array",
            "nullable": true,
            "items": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ConsultarSaldoClientePagamento"
                }
              ]
            }
          },
          "Itens": {
            "type": "array",
            "items": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ConsultarSaldoClienteItem"
                }
              ]
            }
          }
        }
      },
      "ConsultarSaldoClienteVendedor": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Nome": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ConsultarSaldoClientePagamento": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ValorPago": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "ConsultarSaldoClienteItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ValorAcrescimo": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorUnitario": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Ordem": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Codigo": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "Ean": {
            "type": "string",
            "nullable": true
          },
          "Produto": {
            "type": "string",
            "nullable": true
          },
          "QuantidadeTotal": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorLiquido": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorBruto": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorDesconto": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "SolicitarPinRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Celular": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Cpf": {
            "type": "string",
            "nullable": true
          },
          "TipoPin": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "ValidarPinRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Cpf": {
            "type": "string",
            "nullable": true
          },
          "Pin": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ConsultarCampanhaRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "IdentificadorTransacao": {
            "type": "string",
            "nullable": true
          },
          "Venda": {
            "$ref": "#/components/schemas/ConsultarCampanhaRequestVenda"
          }
        }
      },
      "ConsultarCampanhaRequestVenda": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ValorLiquido": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorBruto": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorAcrescimo": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "DescontoTotalValor": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorResgate": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "CupomDesconto": {
            "type": "string",
            "nullable": true
          },
          "QuantidadeTotalItens": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "FormasDePagamento": {
            "type": "array",
            "items": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ConsultarCampanhaRequestFormasDePagamento"
                }
              ]
            }
          },
          "Cpf": {
            "type": "string",
            "nullable": true
          },
          "Vendedor": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ConsultarCampanhaRequestVendedor"
              }
            ]
          },
          "DataHora": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Itens": {
            "type": "array",
            "items": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ConsultarCampanhaRequestItem"
                }
              ]
            }
          }
        }
      },
      "ConsultarCampanhaRequestFormasDePagamento": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ValorPago": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "ConsultarCampanhaRequestVendedor": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Nome": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ConsultarCampanhaRequestItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Ordem": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Codigo": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "Ean": {
            "type": "string",
            "nullable": true
          },
          "Produto": {
            "type": "string",
            "nullable": true
          },
          "QuantidadeTotal": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorLiquido": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorBruto": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorDesconto": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorAcrescimo": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorUnitario": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "ValidarBonusRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Cpf": {
            "type": "string",
            "nullable": true
          },
          "VendaValorLiquido": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorResgatado": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "IdentificadorTransacao": {
            "type": "string",
            "nullable": true
          },
          "Venda": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ValidarBonusVenda"
              }
            ]
          }
        }
      },
      "ValidarBonusVenda": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "FormasDePagamento": {
            "type": "array",
            "nullable": true,
            "items": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ValidarBonusPagamento"
                }
              ]
            }
          }
        }
      },
      "ValidarBonusPagamento": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ValorPago": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "GerarBonusRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "IdentificadorTransacao"
        ],
        "properties": {
          "Venda": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/GerarBonusVenda"
              }
            ]
          },
          "CampanhaId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IdentificadorTransacao": {
            "type": "string",
            "maxLength": 36,
            "minLength": 36
          }
        }
      },
      "GerarBonusVenda": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "SerieNF"
        ],
        "properties": {
          "Cpf": {
            "type": "string",
            "nullable": true
          },
          "Vendedor": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/GerarBonusVendedor"
              }
            ]
          },
          "DataHora": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValorLiquido": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorBruto": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "DocumentoNF": {
            "type": "string",
            "nullable": true
          },
          "SerieNF": {
            "type": "string",
            "minLength": 1
          },
          "DescontoTotalValor": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorResgate": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "CupomDesconto": {
            "type": "string",
            "nullable": true
          },
          "QuantidadeTotalItens": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "FormasDePagamento": {
            "type": "array",
            "items": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/GerarBonusPagamento"
                }
              ]
            }
          },
          "Itens": {
            "type": "array",
            "items": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/GerarBonusItem"
                }
              ]
            }
          },
          "NomeCliente": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GerarBonusVendedor": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Nome": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GerarBonusPagamento": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ValorPago": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "GerarBonusItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ValorAcrescimo": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorUnitario": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Ordem": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Codigo": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "Ean": {
            "type": "string",
            "nullable": true
          },
          "Produto": {
            "type": "string",
            "nullable": true
          },
          "QuantidadeTotal": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorLiquido": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorBruto": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "ValorDesconto": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "EstornarBonusRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "SerieNF",
          "IdentificadorTransacao"
        ],
        "properties": {
          "DocumentoNF": {
            "type": "string",
            "nullable": true
          },
          "SerieNF": {
            "type": "string",
            "minLength": 1
          },
          "Cpf": {
            "type": "string",
            "nullable": true
          },
          "IdentificadorTransacao": {
            "type": "string",
            "maxLength": 36,
            "minLength": 36
          },
          "DataVenda": {
            "type": "string",
            "nullable": true
          },
          "CodigoVenda": {
            "type": "string",
            "nullable": true
          },
          "Itens": {
            "type": "array",
            "nullable": true,
            "items": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/GerarBonusItem"
                }
              ]
            }
          }
        }
      },
      "ApiTotvsFidelityConfig": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CompanyCode": {
            "type": "string",
            "nullable": true
          },
          "CustomCode": {
            "type": "string",
            "nullable": true
          },
          "SkipAuth": {
            "type": "boolean"
          },
          "GivePointsImmediately": {
            "type": "boolean"
          },
          "RequirePhone": {
            "type": "boolean"
          },
          "RequireName": {
            "type": "boolean"
          },
          "RequireEmail": {
            "type": "boolean"
          },
          "RequireBirthday": {
            "type": "boolean"
          },
          "AuthorizationCode": {
            "type": "string",
            "nullable": true
          },
          "Product": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/TotvsProduct"
              }
            ]
          }
        }
      },
      "TotvsProduct": {
        "type": "integer",
        "description": "",
        "x-enumNames": [
          "Moda",
          "Protheus"
        ],
        "enum": [
          0,
          1
        ]
      },
      "TotvsIdentificationAvailableResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TotvsBaseResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "partnerCode": {
                "type": "string"
              },
              "nextStep": {
                "type": "string"
              },
              "customerText": {
                "type": "string"
              },
              "operatorText": {
                "type": "string"
              },
              "identificationForms": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TotvsIdentificationResponseIdentificationForm"
                }
              },
              "_expandables": {
                "type": "array",
                "items": {}
              }
            }
          }
        ]
      },
      "TotvsIdentificationResponseIdentificationForm": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "isIdentificationCode": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "operatorText": {
            "type": "string"
          },
          "customerText": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "isPassword": {
            "type": "boolean"
          }
        }
      },
      "TotvsBaseResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "message": {
            "type": "string"
          }
        }
      },
      "TotvsIdentificationResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TotvsBaseResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "nextStep": {
                "type": "string",
                "nullable": true
              },
              "partnerCode": {
                "type": "string"
              },
              "customerText": {
                "type": "string"
              },
              "operatorText": {
                "type": "string"
              },
              "authentication": {
                "$ref": "#/components/schemas/TotvsIdentificationResponseAuthentication"
              },
              "identification": {
                "$ref": "#/components/schemas/TotvsIdentificationResponseIdentification"
              },
              "bonus": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TotvsBonusBase"
                }
              },
              "status": {
                "type": "boolean"
              },
              "errorsListReponse": {
                "$ref": "#/components/schemas/TotvsErrorsListReponse"
              }
            }
          }
        ]
      },
      "TotvsIdentificationResponseAuthentication": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "operatorText": {
            "type": "string"
          },
          "customerText": {
            "type": "string"
          },
          "isPassword": {
            "type": "boolean"
          }
        }
      },
      "TotvsIdentificationResponseIdentification": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "storeId": {
            "type": "string"
          },
          "costumerId": {
            "type": "string"
          }
        }
      },
      "TotvsBonusBase": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "bonusId": {
            "type": "string"
          },
          "bonusAmount": {
            "type": "number",
            "format": "decimal"
          },
          "type": {
            "type": "string"
          },
          "partner": {
            "type": "string"
          },
          "partnerCode": {
            "type": "string"
          },
          "mandatoryUseBonuses": {
            "type": "boolean"
          },
          "canDiscountAfterBonus": {
            "type": "boolean"
          },
          "canUsePartialBonus": {
            "type": "boolean"
          },
          "operatorText": {
            "type": "string"
          },
          "customerText": {
            "type": "string"
          },
          "bonusReferenceValue": {
            "type": "number",
            "format": "decimal"
          },
          "bonusMax": {
            "type": "number",
            "format": "decimal"
          },
          "bonusMin": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "TotvsErrorsListReponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TotvsErrorListError"
            }
          }
        }
      },
      "TotvsErrorListError": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "locationType": {
            "type": "string"
          },
          "location": {
            "type": "string"
          }
        }
      },
      "TotvsIdentificationRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalBusinessUnitId": {
            "type": "string",
            "nullable": true
          },
          "partnerCode": {
            "type": "string",
            "nullable": true
          },
          "sale": {
            "$ref": "#/components/schemas/TotvsIdentificationRequestSale"
          },
          "identification": {
            "$ref": "#/components/schemas/TotvsIdentificationRequestIdentification"
          }
        }
      },
      "TotvsIdentificationRequestSale": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "netSaleValue": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "TotvsIdentificationRequestIdentification": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identificationCode": {
            "type": "string",
            "nullable": true
          },
          "document": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "birthday": {
            "type": "string",
            "nullable": true
          },
          "gender": {
            "type": "string",
            "nullable": true
          },
          "operatorCode": {
            "type": "string",
            "nullable": true
          },
          "operatorName": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TotvsAuthenticationResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TotvsBaseResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "nextStep": {
                "type": "string"
              },
              "partnerCode": {
                "type": "string"
              },
              "authentication": {
                "$ref": "#/components/schemas/TotvsAuthenticationResponseAuthentication"
              }
            }
          }
        ]
      },
      "TotvsAuthenticationResponseAuthentication": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "authenticated": {
            "type": "boolean"
          },
          "validatedByException": {
            "type": "boolean"
          }
        }
      },
      "TotvsAuthenticationRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalBusinessUnitId": {
            "type": "string"
          },
          "partnerCode": {
            "type": "string"
          },
          "sale": {
            "$ref": "#/components/schemas/TotvsAuthenticationRequestSale"
          },
          "identification": {
            "$ref": "#/components/schemas/TotvsAuthenticationRequestIdentification"
          },
          "authentication": {
            "$ref": "#/components/schemas/TotvsAuthenticationRequestAuthentication"
          }
        }
      },
      "TotvsAuthenticationRequestSale": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "netSaleValue": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "TotvsAuthenticationRequestIdentification": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identificationCode": {
            "type": "string"
          },
          "storeId": {
            "type": "string"
          },
          "costumerId": {
            "type": "string"
          }
        }
      },
      "TotvsAuthenticationRequestAuthentication": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "TotvsBonusListResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TotvsBaseResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "nextStep": {
                "type": "string"
              },
              "customerText": {
                "type": "string"
              },
              "operatorText": {
                "type": "string"
              },
              "bonus": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TotvsBonusBase"
                }
              }
            }
          }
        ]
      },
      "TotvsBonusListRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalBusinessUnitId": {
            "type": "string"
          },
          "partnerCode": {
            "type": "string"
          },
          "sale": {
            "$ref": "#/components/schemas/TotvsBonusListRequestSale"
          },
          "identification": {
            "$ref": "#/components/schemas/TotvsBonusListRequestIdentification"
          }
        }
      },
      "TotvsBonusListRequestSale": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "netSaleValue": {
            "type": "number",
            "format": "decimal"
          },
          "items": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/TotvsOrderItem"
            }
          }
        }
      },
      "TotvsOrderItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "netSaleValue": {
            "type": "number",
            "format": "decimal"
          },
          "itenID": {
            "type": "integer",
            "format": "int32"
          },
          "productDescription": {
            "type": "string",
            "nullable": true
          },
          "productCode": {
            "type": "string",
            "nullable": true
          },
          "quantityItems": {
            "type": "number",
            "format": "decimal"
          },
          "grossSaleValue": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "TotvsBonusListRequestIdentification": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identificationCode": {
            "type": "string"
          },
          "storeId": {
            "type": "string"
          },
          "costumerId": {
            "type": "string"
          }
        }
      },
      "TotvsBonusFinalizeResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TotvsBaseResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "nextStep": {
                "type": "string",
                "nullable": true
              },
              "bonusId": {
                "type": "string"
              },
              "partnerSaleId": {
                "type": "string"
              },
              "transactionId": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "customerText": {
                "type": "string"
              }
            }
          }
        ]
      },
      "TotvsBonusFinalizeRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TotvsOrder"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "bonus": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/TotvsBonusFinalizeRequestBonus"
                  }
                ]
              },
              "campaigns": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/TotvsBonusFinalizeRequestCampaign"
                }
              },
              "authentication": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/TotvsBonusFinalizeRequestAuthentication"
                  }
                ]
              }
            }
          }
        ]
      },
      "TotvsBonusFinalizeRequestBonus": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "bonusId": {
            "type": "string"
          },
          "bonusAmountUsed": {
            "type": "number",
            "format": "decimal"
          },
          "bonusReferenceValue": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "TotvsBonusFinalizeRequestCampaign": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "TotvsBonusFinalizeRequestAuthentication": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "validatedByException": {
            "type": "boolean"
          }
        }
      },
      "TotvsOrder": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalBusinessUnitId": {
            "type": "string"
          },
          "sale": {
            "$ref": "#/components/schemas/TotvsOrderSale"
          },
          "identification": {
            "$ref": "#/components/schemas/TotvsOrderIdentification"
          }
        }
      },
      "TotvsOrderSale": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "netSaleValue": {
            "type": "number",
            "format": "decimal"
          },
          "salesChannel": {
            "type": "string",
            "nullable": true
          },
          "posCode": {
            "type": "string",
            "nullable": true
          },
          "sellerName": {
            "type": "string",
            "nullable": true
          },
          "externalSaleId": {
            "type": "string"
          },
          "fiscalId": {
            "type": "string",
            "nullable": true
          },
          "custumerName": {
            "type": "string"
          },
          "totalQuantityItems": {
            "type": "number",
            "format": "decimal"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TotvsOrderItem"
            }
          },
          "paymentMethods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TotvsOrderPaymentMethod"
            }
          }
        }
      },
      "TotvsOrderPaymentMethod": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "netSaleValue": {
            "type": "number",
            "format": "decimal"
          },
          "paymentMethodId": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TotvsOrderIdentification": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identificationCode": {
            "type": "string",
            "nullable": true
          },
          "storeId": {
            "type": "string",
            "nullable": true
          },
          "costumerId": {
            "type": "string",
            "nullable": true
          },
          "operatorCode": {
            "type": "string",
            "nullable": true
          },
          "operatorName": {
            "type": "string",
            "nullable": true
          },
          "customerDocument": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TotvsBonusCancelResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TotvsBaseResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "transactionId": {
                "type": "string"
              },
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TotvsBonusCancelResponseItem"
                }
              },
              "status": {
                "type": "boolean"
              },
              "message": {
                "type": "string"
              }
            }
          }
        ]
      },
      "TotvsBonusCancelResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "itenID": {
            "type": "integer",
            "format": "int32"
          },
          "productDescription": {
            "type": "string"
          },
          "productCode": {
            "type": "string"
          },
          "QuantityItems": {
            "type": "number",
            "format": "double"
          },
          "grossSaleValue": {
            "type": "number",
            "format": "double"
          },
          "netSaleValue": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "TotvsBonusCancelRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalBusinessUnitId": {
            "type": "string"
          },
          "externalSaleCode": {
            "type": "string"
          },
          "posCode": {
            "type": "string"
          },
          "identification": {
            "$ref": "#/components/schemas/TotvsBonusCancelRequestIdentification"
          },
          "items": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/TotvsBonusCancelRequestItem"
            }
          }
        }
      },
      "TotvsBonusCancelRequestIdentification": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identificationCode": {
            "type": "string"
          },
          "customerDocument": {
            "type": "string",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TotvsBonusCancelRequestItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "itenID": {
            "type": "integer",
            "format": "int32"
          },
          "productDescription": {
            "type": "string"
          },
          "productCode": {
            "type": "string"
          },
          "QuantityItems": {
            "type": "number",
            "format": "double"
          },
          "grossSaleValue": {
            "type": "number",
            "format": "double"
          },
          "netSaleValue": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "TotvsOrderResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TotvsBaseResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "transactionId": {
                "type": "string"
              },
              "status": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "TotvsCampaignResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TotvsBaseResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "nextStep": {
                "type": "string"
              },
              "customerText": {
                "type": "string"
              },
              "operatorText": {
                "type": "string"
              },
              "campaigns": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TotvsCampaignResponseCampaign"
                }
              }
            }
          }
        ]
      },
      "TotvsCampaignResponseCampaign": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "operatorText": {
            "type": "string"
          },
          "customerText": {
            "type": "string"
          },
          "futureBonusValue": {
            "type": "number",
            "format": "double"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "TotvsCampaignRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalBusinessUnitId": {
            "type": "string"
          },
          "partnerCode": {
            "type": "string",
            "nullable": true
          },
          "sale": {
            "$ref": "#/components/schemas/TotvsCampaignRequestSale"
          },
          "identification": {
            "$ref": "#/components/schemas/TotvsCampaignRequestIdentification"
          }
        }
      },
      "TotvsCampaignRequestSale": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "netSaleValue": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "TotvsCampaignRequestIdentification": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identificationCode": {
            "type": "string"
          },
          "storeId": {
            "type": "string"
          },
          "costumerId": {
            "type": "string"
          }
        }
      },
      "ApiResponseOfApiAffiliateOrderReprocessResult": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiAffiliateOrderReprocessResult"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiAffiliateOrderReprocessResult": {
        "type": "object",
        "description": "Resultado de uma execução de reprocessamento de pedidos retroativos de afiliado (AFI-882).",
        "additionalProperties": false,
        "properties": {
          "TotalPublished": {
            "type": "integer",
            "description": "Pedidos efetivamente republicados nesta execução.",
            "format": "int32"
          },
          "TotalMatched": {
            "type": "integer",
            "description": "Total de pedidos que atendem ao filtro, considerando todas as páginas.",
            "format": "int32"
          },
          "HasMore": {
            "type": "boolean",
            "description": "Indica que restaram pedidos além desta página. Continuar incrementando PageNumber."
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "ByCoupon": {
            "type": "array",
            "description": "Detalhamento por cupom. Cupom sem pedidos no período aparece com zero publicados.",
            "items": {
              "$ref": "#/components/schemas/ApiAffiliateOrderReprocessCouponResult"
            }
          }
        }
      },
      "ApiAffiliateOrderReprocessCouponResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Coupon": {
            "type": "string"
          },
          "Published": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TriggerAccelerationCampaignEmailRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerOriginalId": {
            "type": "string"
          },
          "EngageCampaignId": {
            "type": "integer",
            "format": "int32"
          },
          "EventKey": {
            "type": "string"
          },
          "CampaignEndDate": {
            "type": "string"
          },
          "EmailBody": {
            "type": "string"
          },
          "Subject": {
            "type": "string"
          },
          "CampaignPointsValue": {
            "type": "number",
            "format": "decimal"
          },
          "CampaignCashbackValue": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "ApiResponseOfCreateInternalCustomerResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CreateInternalCustomerResponse"
                  }
                ]
              }
            }
          }
        ]
      },
      "CreateInternalCustomerResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          },
          "Document": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "WasCreated": {
            "type": "boolean"
          }
        }
      },
      "CreateInternalCustomerRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "Origin": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerOrigin2"
              }
            ]
          }
        }
      },
      "CustomerOrigin2": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "Platform",
          "PDV",
          "API",
          "OfflinePlatform",
          "Admin",
          "Affiliate"
        ],
        "enum": [
          "Platform",
          "PDV",
          "API",
          "OfflinePlatform",
          "Admin",
          "Affiliate"
        ]
      },
      "ApiPointCampaignStats": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CampaignId": {
            "type": "integer",
            "format": "int32"
          },
          "CampaignStartAt": {
            "type": "string",
            "format": "date-time"
          },
          "CampaignEndAt": {
            "type": "string",
            "format": "date-time"
          },
          "Orders": {
            "$ref": "#/components/schemas/ApiPointCampaignOrderStats"
          },
          "ChannelMetrics": {
            "$ref": "#/components/schemas/ApiPointCampaignChannelMetrics"
          }
        }
      },
      "ApiPointCampaignChannelMetrics": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CampaignId": {
            "type": "integer",
            "format": "int32"
          },
          "CampaignStartAt": {
            "type": "string",
            "format": "date-time"
          },
          "CampaignEndAt": {
            "type": "string",
            "format": "date-time"
          },
          "TotalSent": {
            "type": "integer",
            "description": "Total de e-mails enviados no período da campanha para os clientes participantes.",
            "format": "int32"
          },
          "UniqueReach": {
            "type": "integer",
            "description": "Número de clientes distintos que receberam ao menos um e-mail da campanha.",
            "format": "int32"
          },
          "DeliveryRate": {
            "type": "number",
            "description": "Taxa de Entrega: percentual de e-mails entregues sem erro sobre o total enviado.",
            "format": "double"
          },
          "EngagementRate": {
            "type": "number",
            "description": "Engajamento: percentual de e-mails abertos sobre o total entregue.",
            "format": "double"
          },
          "ClickThroughRate": {
            "type": "number",
            "description": "Taxa de Clique (CTR): percentual de e-mails com ao menos um clique sobre o total entregue.",
            "format": "double"
          },
          "UnsubscribeRate": {
            "type": "number",
            "description": "Taxa de Desinscrição: percentual de descadastros ocorridos no período sobre o total entregue.",
            "format": "double"
          }
        }
      },
      "OrderAffiliateRewardResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "format": "decimal"
          },
          "EventDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "ApiResponseOfPointStatementResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PointStatementResponse"
                  }
                ]
              }
            }
          }
        ]
      },
      "PointStatementResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Movements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PointStatementMovementResponse"
            }
          },
          "ExpiringBalance": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PointStatementExpiringResponse"
            }
          }
        }
      },
      "PointStatementMovementResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Date": {
            "type": "string",
            "format": "date-time"
          },
          "Type": {
            "type": "string"
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "OrderOriginalId": {
            "type": "string",
            "nullable": true
          },
          "IsAffiliateOriginated": {
            "type": "boolean"
          },
          "IsCanceled": {
            "type": "boolean"
          }
        }
      },
      "PointStatementExpiringResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Cashback": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "When": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseOfListOfInternalApiProductResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/InternalApiProductResponse"
                }
              }
            }
          }
        ]
      },
      "InternalApiProductResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiProduct"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Quantity": {
                "type": "integer",
                "format": "int32"
              },
              "UnitPrice": {
                "type": "number",
                "format": "decimal"
              }
            }
          }
        ]
      },
      "InternalApiRfmCampaignCustomerResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TenantId": {
            "type": "integer",
            "format": "int32"
          },
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          },
          "BrandName": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string"
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "nullable": true
          },
          "OriginalId": {
            "type": "string",
            "nullable": true
          },
          "PointsBalance": {
            "type": "integer",
            "format": "int32"
          },
          "Segment": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/MatrizRFMItem"
              }
            ]
          },
          "SegmentName": {
            "type": "string"
          },
          "LastPurchaseDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "DaysSinceLastPurchase": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IsEmailUnsubscribed": {
            "type": "boolean"
          },
          "ExpiredPointsBalance": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "MeInternalResult": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TenantId": {
            "type": "integer",
            "format": "int32"
          },
          "TenantName": {
            "type": "string"
          },
          "UserFullName": {
            "type": "string"
          },
          "IM": {
            "type": "boolean"
          },
          "Email": {
            "type": "string"
          },
          "TenantSite": {
            "type": "string"
          }
        }
      },
      "ApiResponseOfListOfInternalApiUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/InternalApiUser"
                }
              }
            }
          }
        ]
      },
      "InternalApiUser": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string"
          },
          "Email": {
            "type": "string"
          },
          "Role": {
            "$ref": "#/components/schemas/ApiUserRole"
          }
        }
      },
      "PdvLoginRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Username": {
            "type": "string"
          },
          "Password": {
            "type": "string"
          }
        }
      },
      "PdvSalesHistoryRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "Limit": {
            "type": "integer",
            "format": "int32"
          },
          "From": {
            "type": "string",
            "format": "date-time"
          },
          "To": {
            "type": "string",
            "format": "date-time"
          },
          "Asc": {
            "type": "boolean"
          }
        }
      },
      "PdvCustomerSearchRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Searchfield": {
            "type": "string"
          }
        }
      },
      "PdvCustomer": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "Document": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Birthdate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "PdvCustomerHistoryRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "Limit": {
            "type": "integer",
            "format": "int32"
          },
          "From": {
            "type": "string",
            "format": "date-time"
          },
          "To": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PdvOrderRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseId": {
            "type": "string",
            "nullable": true
          },
          "PurchaseNetValue": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "PdvCancelRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PdvUpdateNFRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PurchaseId": {
            "type": "string"
          },
          "NF": {
            "type": "string"
          }
        }
      },
      "PdvRewardRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          },
          "PurchaseValue": {
            "type": "number",
            "format": "decimal"
          },
          "Items": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ApiOrderItem"
            }
          }
        }
      },
      "ApiOrderItem": {
        "type": "object",
        "description": "Represents an order item for cashback eligibility and reward calculations.\nUsed across checkout, PDV, and widget contexts.",
        "additionalProperties": false,
        "properties": {
          "ProductId": {
            "type": "integer",
            "description": "Internal product ID (if known)",
            "format": "int32",
            "nullable": true
          },
          "ExternalProductId": {
            "type": "string",
            "description": "External product identifier from the e-commerce platform (SKU, barcode, etc.)",
            "nullable": true
          },
          "UnitPrice": {
            "type": "number",
            "description": "Unit price of the item. The total line value is calculated as UnitPrice * Quantity.",
            "format": "decimal"
          },
          "Quantity": {
            "type": "integer",
            "description": "Quantity of the item",
            "format": "int32"
          }
        }
      },
      "PdvRewardRedeemRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomerId": {
            "type": "integer",
            "format": "int32"
          },
          "CashbackValue": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "Points": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PurchaseId": {
            "type": "string",
            "nullable": true
          },
          "PurchaseNetValue": {
            "type": "number",
            "format": "decimal"
          },
          "RedeemOrigin": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RedeemOrigin"
              }
            ]
          },
          "Items": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ApiOrderItem"
            }
          }
        }
      },
      "PdvWelcomeRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "domain": {
            "type": "string"
          }
        }
      },
      "PdvCustomerCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PublicId": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "Name": {
            "type": "string"
          },
          "Email": {
            "type": "string"
          },
          "Phone": {
            "type": "string"
          },
          "Document": {
            "type": "string"
          },
          "Birthdate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "PdvCustomerChallengeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "PublicId": {
            "type": "string",
            "format": "guid"
          },
          "RequestSignup": {
            "type": "boolean"
          }
        }
      },
      "PdvCustomerChallengeRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string",
            "nullable": true
          },
          "PublicId": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PdvCustomerChallengeValidateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "HasError": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "Item": {
            "$ref": "#/components/schemas/PdvCustomerChallengeValidateResponseItem"
          }
        }
      },
      "PdvCustomerChallengeValidateResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PublicId": {
            "type": "string"
          },
          "HasBirthday": {
            "type": "boolean"
          },
          "SecureToken": {
            "type": "string"
          }
        }
      },
      "PdvCustomerChallengeValidate": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Email": {
            "type": "string"
          },
          "PublicId": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "Code": {
            "type": "string"
          }
        }
      },
      "ApiResponseOfTermsResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponse"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Result": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/TermsResponse3"
                  }
                ]
              }
            }
          }
        ]
      },
      "TermsResponse3": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Terms": {
            "type": "string"
          }
        }
      }
    },
    "securitySchemes": {
      "TokenAuthentication": {
        "type": "apiKey",
        "description": "API Tokeen",
        "name": "X-BQ-ApiToken",
        "in": "header"
      }
    }
  },
  "tags": [
    {
      "name": "Customization",
      "description": "Retrieve customizations for the loyalty program"
    }
  ]
}