{ "openapi": "3.0.0", "info": { "title": "Pricing API", "description": "Pricing (v2) is the VTEX module responsible for the SKU`s price list. At this module we have the base price of each SKU, some optional fixed prices by trade policy, and some rules that can be applied to generate dynamically different final prices accordingly with purchase context and Trade Policy. The variables used in this collection are:\n\n**{{account}}** = You VTEX account name.\n\n**{{tradePolicyId}}** = Current Trade Policy ID.\n\n**{{itemId}}** = SKU ID.\n\n**{{X-VTEX-API-AppKey}}** and **{{X-VTEX-API-AppToken}}** = Credentials.\n\nYou can get more information about how to use this module and its business logic at [VTEX Help](http://help.vtex.com).\n\n\n--------------\n\n\n# Rate Limits\n\n#### Limits per route\n\n- `GET`: routes are not rate limited at the moment\n\n- `PUT or POST`: `40 requests/second/account` in any **price insert/update route** with 1000 *Burst Credits*\n\n- `DELETE`: `16 requests/second/account` in any **price deletion route**, with 300 *Burst Credits*.\n\n\n#### What are Burst Credits?\n\nIn case the account exceeds the limit frequency for a `Rate Limiter` (for instance, when one account makes `41 requests/second` in any `price insert/update route`), we decrease from the *Burst Credit* count the exceeding (in this example, *1 Credit*).\n\nIn the event of the *Burst Credits* reaching **0 (zero)**, the request is blocked with a `Status 429` response.\n\nThe credits fill up over time when the route is not being used, in the same rate as the route's `Rate Limiter`. In our example, for each second not sending a **PUT or POST request**, we increase *40 Burst Credits* to this `Rate Limiter`\n\n\n#### New Response Headers\n\nIn the response headers of any request to Pricing v2 there are some new headers indicating the current status of the Rate Limiting.\nThis information may be useful to evaluate the ideal frequency to send requests to a route, and when to send a new request in the event of reaching a Rate Limit.\n\n- `Ratelimit-Limit` - Total *Burst Credits* offered to a route\n- `Ratelimit-Remaining` - How many *Burst Credits* are still available to use\n- `Ratelimit-Reset` - How long (in seconds) it will take to the *Burst Credits* to fill up completely (It will fill up to the `Ratelimit-Limit`)\n- `Retry-After` - Indicates how many seconds you will need to wait until the `Rate Limiter` accepts a new request to this route again. If this header response exists, this means your current request has been rate limited and has not been processed.\n\n#### How to integrate with Pricing v2 considering our Rate Limits\n\nIntegrate considering the limits of **requests/route/account** specified in the [*Limits per route*](#rate-limits) section, avoiding to surpass this frequency.\n\nIf you happen to be Rate Limited, wait the time in seconds specified in `Retry-After` before making another request to the service, and reduce the rate of requests per second that your integration is making.", "contact": {}, "version": "1.0" }, "servers": [ { "url": "https://api.vtex.com/{accountName}/pricing", "description": "VTEX server url", "variables": { "accountName": { "description": "Name of the VTEX account. Used as part of the URL", "default": "{accountName}" } } } ], "paths": { "/prices/{itemId}": { "get": { "tags": [ "Prices and Fixed Prices" ], "summary": "Get Price", "description": "Retrieves price data given a specific SKU ID. Within the `fixedPrices` object, there might be a list of prices for specific Trade Policies and Minimium Quantities of the SKU. Fixed Prices may also be scheduled.", "operationId": "GetPrice", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } }, { "name": "itemId", "in": "path", "description": "SKU ID.", "required": true, "style": "simple", "schema": { "type": "integer", "example": 1 } } ], "responses": { "200": { "description": "OK", "headers": { "Access-Control-Allow-Credentials": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "true" } } }, "Access-Control-Allow-Origin": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "*" } } }, "Connection": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "close" } } }, "Content-Encoding": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "gzip" } } }, "Date": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "Mon, 28 Aug 2017 20:00:21 GMT" } } }, "Server": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "nginx" } } }, "X-CDNIgnore": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "1" } } }, "X-Powered-by-VTEX-Janus-Edge": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "v1.41.0" } } }, "X-Track": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "stable" } } }, "X-VTEX-Janus-Router-Backend-App": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "pricing-v3.26.2" } } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PricewithFixedPrices_scheduledandindifferenttradepolicies_" }, "example": { "itemId": "1234512354", "listPrice": 300, "costPrice": 10, "markup": 2400, "basePrice": 250, "fixedPrices": [ { "tradePolicyId": "1", "value": 666.66, "listPrice": null, "minQuantity": 1 }, { "tradePolicyId": "9", "value": 4500, "listPrice": null, "minQuantity": 1 }, { "tradePolicyId": "9", "value": 600, "listPrice": null, "minQuantity": 1, "dateRange": { "from": "2017-12-07T14:30:00Z", "to": "2017-12-30T14:30:00Z" } }, { "tradePolicyId": "9", "value": 5555.55, "listPrice": null, "minQuantity": 1, "dateRange": { "from": "2017-12-20T14:30:00Z", "to": "2017-12-22T14:30:00Z" } }, { "tradePolicyId": "9", "value": 555.55, "listPrice": null, "minQuantity": 1, "dateRange": { "from": "2017-12-06T15:00:00Z", "to": "2017-12-14T15:00:00Z" } }, { "tradePolicyId": "10", "value": 5555.55, "listPrice": null, "minQuantity": 1 }, { "tradePolicyId": "18", "value": 555.55, "listPrice": null, "minQuantity": 1 } ] } } } } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] }, "delete": { "tags": [ "Prices and Fixed Prices" ], "summary": "Delete Price", "description": "Removes an SKU price. This action removes both Base Price and all available Fixed Prices for and SKU in all trade policies", "operationId": "DeletePrice", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand ", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "itemId", "in": "path", "description": "SKU Id", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "headers": { "Access-Control-Allow-Credentials": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "true" } } }, "Access-Control-Allow-Origin": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "*" } } }, "Connection": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "keep-alive" } } }, "Content-Length": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "0" } } }, "Date": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "Mon, 28 Aug 2017 20:17:58 GMT" } } }, "Server": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "nginx" } } }, "X-CDNIgnore": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "1" } } }, "X-Powered-by-VTEX-Janus-Edge": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "v1.41.0" } } }, "X-Track": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "stable" } } }, "X-VTEX-Janus-Router-Backend-App": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "pricing-v3.26.2" } } } }, "content": { "text/plain; charset=utf-8": { "schema": { "type": "object" } } } } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] }, "put": { "tags": [ "Prices and Fixed Prices" ], "summary": " Create or update base or fixed prices", "description": "Creates or updates an SKU base or fixed prices. The **base price** is the basic selling price of a product, it comprises the cost price and the markup wanted in the sale of the product. The **fixed price** is an optional price of the SKU for a specific trade policy with a specific minimum quantity to be activated", "operationId": "CreateUpdatePriceOrFixedPrice", "parameters": [ { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } }, { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "itemId", "in": "path", "description": "SKU unique identifier number", "required": true, "style": "simple", "schema": { "type": "integer", "default": 1 } } ], "responses": { "200": { "description": "OK" } }, "requestBody": { "description": "", "content": { "application/json": { "schema": { "type": "object", "title": "", "required": [ "markup", "basePrice", "listPrice" ], "properties": { "markup": { "type": "integer", "title": "markup", "description": "The profit percentage that is to be obtained from the sale of that SKU. If you decide to fill the `markup` item, you must also fill the `costPrice` and `basePrice` will be automatically generated based on both values.", "default": 30 }, "listPrice": { "type": "number", "title": "listPrice", "description": "SKU's suggested selling price", "default": 50.00 }, "basePrice": { "type": "number", "title": "basePrice", "description": "SKU selling base price. If you decide to fill only the `basePrice` item, the `markup` and `costPrice` will be automatically generated to adapt to the number inserted in `basePrice`.", "default": 100.00 }, "costPrice": { "type": "number", "title": "costPrice", "description": "SKU selling cost price.If you decide to fill the `costPrice` item, you must also fill the `markup` and `basePrice` will be automatically generated based on both values.", "default": 35.00 }, "fixedPrices": { "type": "array", "items": { "title": "fixedPrices", "description": "Array with general information about the SKU's fixed prices", "default": [], "required": [ "minQuantity", "value", "tradePolicyId" ], "properties": { "tradePolicyId": { "type": "string", "title": "tradePolicyId", "description": "Trade policy name or ID that will have the fixed price configured", "default": "1" }, "value": { "type": "number", "title": "value", "description": "Fixed price value", "default": 50.50 }, "listPrice": { "type": "number", "title": "listPrice", "description": "SKU List Fixed Price", "default": 50.50 }, "minQuantity": { "type": "integer", "title": "minQuantity", "description": "Minimum quantity of the SKU to the fixed price be applied", "default": 2 }, "dateRange": { "type": "object", "title": "dateRange", "description": "Period of time that the fixed price will be applied to the SKU", "required": [ "from", "to" ], "properties": { "from": { "type": "string", "title": "from", "description": "Start date of the price", "default": "2021-12-30T22:00:00-03:00" }, "to": { "type": "string", "title": "to", "description": "End date of the price", "default": "2021-12-30T22:00:00-03:00" } } } } } } } } } } } } }, "/prices/{itemId}/fixed": { "get": { "tags": [ "Prices and Fixed Prices" ], "summary": "Get Fixed Prices", "description": "Fixed Prices are a sub resource of Prices. This method get an array of Fixed Prices for an SKU in a Trade Policy with Minimum Quantities", "operationId": "GetFixedPrices", "parameters": [ { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } }, { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "itemId", "in": "path", "description": "SKU Id", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "headers": { "Access-Control-Allow-Credentials": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "true" } } }, "Access-Control-Allow-Origin": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "*" } } }, "Connection": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "keep-alive" } } }, "Content-Encoding": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "gzip" } } }, "Content-Length": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "101" } } }, "Date": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "Mon, 28 Aug 2017 20:03:42 GMT" } } }, "Server": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "nginx" } } }, "X-CDNIgnore": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "1" } } }, "X-Powered-by-VTEX-Janus-Edge": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "v1.41.0" } } }, "X-Track": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "stable" } } }, "X-VTEX-Janus-Router-Backend-App": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "pricing-v3.26.2" } } } }, "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Examplewith2FixedPricesindifferentSalesChannel" } }, "example": [ { "tradePolicyId": "6", "value": 20.9, "listPrice": 22.9, "minQuantity": 1 }, { "tradePolicyId": "1", "value": 18.9, "listPrice": null, "minQuantity": 1 } ] } } } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] } }, "/prices/{itemId}/fixed/{priceTableId}": { "post": { "tags": [ "Prices and Fixed Prices" ], "summary": "Create or update fixed prices on a price table or trade policy", "description": "Creates or updates the fixed prices of an SKU for a specific price table or trade policy. You can add one or multiple fixed prices per SKU.", "operationId": "CreateEditFixedPricesonapricetableOrtradepolicy", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "itemId", "in": "path", "description": "SKU unique identifier number", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "priceTableId", "in": "path", "description": "SKU **price table** name or **trade policy** ID", "required": true, "style": "simple", "schema": { "type": "string", "default": "priceTableA" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "type": "array", "title": "", "items": { "type": "object", "required": [ "value", "minQuantity" ], "properties": { "value": { "type": "number", "title": "value", "description": "Fixed price value", "default": 50.50 }, "listPrice": { "type": "number", "title": "listPrice", "description": "SKU List Fixed Price", "default": 50.50 }, "minQuantity": { "type": "integer", "title": "minQuantity", "description": "Minimum quantity of the SKU to the fixed price be applied", "default": 2 }, "dateRange": { "type": "object", "title": "dateRange", "description": "Period of time that the fixed price will be applied to the SKU", "required": [ "from", "to" ], "properties": { "from": { "type": "string", "title": "from", "description": "Start date of the price", "default": "2021-12-30T22:00:00-03:00" }, "to": { "type": "string", "title": "to", "description": "End date of the price", "default": "2021-12-30T22:00:00-04:00" } } } } } } } } }, "responses": { "200": { "description": "", "headers": {}, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Addingafixedpriceforonespecificpricetable" } }, "example": [ { "tradePolicyId": "10", "value": 60.5, "listPrice": null, "minQuantity": 1 } ] } } } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] }, "get": { "tags": [ "Prices and Fixed Prices" ], "summary": "Get Fixed Prices on a price table", "description": "Gets all Fixed Prices on a price table (or trade policy)", "operationId": "GetFixedPricesonapricetable", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } }, { "name": "itemId", "in": "path", "description": "SKU ID", "required": true, "style": "simple", "schema": { "type": "integer" } }, { "name": "priceTableId", "in": "path", "description": "Price Table Name", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "headers": { "Access-Control-Allow-Credentials": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "true" } } }, "Access-Control-Allow-Origin": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "*" } } }, "Connection": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "keep-alive" } } }, "Content-Encoding": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "gzip" } } }, "Content-Length": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "101" } } }, "Date": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "Mon, 28 Aug 2017 20:03:42 GMT" } } }, "Server": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "nginx" } } }, "X-CDNIgnore": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "1" } } }, "X-Powered-by-VTEX-Janus-Edge": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "v1.41.0" } } }, "X-Track": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "stable" } } }, "X-VTEX-Janus-Router-Backend-App": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "pricing-v3.26.2" } } } }, "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Default" } }, "example": [ { "tradePolicyId": "6", "value": 20.9, "listPrice": 22.9, "minQuantity": 1 }, { "tradePolicyId": "1", "value": 18.9, "listPrice": null, "minQuantity": 1 } ] } } } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] }, "delete": { "tags": [ "Prices and Fixed Prices" ], "summary": "Delete fixed prices on a price table (or trade policy)", "description": "Deletes all Fixed Prices of an SKU in a specific Price Table (or Trade Policy)", "operationId": "Deletefixedpricesonapricetable(ortradepolicy)", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } }, { "name": "itemId", "in": "path", "description": "SKU ID", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "priceTableId", "in": "path", "description": "Price Table or Sales Channel Name", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Deletefixedpricesonapricetable_ortradepolicy_Request" }, "description": "" }, "example": [ { "tradePolicyId": "1", "value": 100, "listPrice": 99.9, "minQuantity": 1 } ] } }, "required": true }, "responses": { "200": { "description": "", "headers": {} } }, "deprecated": false, "servers": [ { "url": "http://example.com/{account}/pricing/prices/{itemId}/fixed", "variables": { "account": { "default": "DefaultParameterValue" }, "itemId": { "default": "DefaultParameterValue" } } } ] } }, "/prices/{itemId}/computed/{priceTableId}": { "get": { "tags": [ "Prices and Fixed Prices" ], "summary": "Get Computed Price by price table", "description": "Gets a computed Price (Price after all steps in pricing pipeline) for an SKU in a specific Trade Policy (or Price Table)", "operationId": "GetComputedPricebypricetable", "parameters": [ { "name": "categoryIds", "in": "query", "description": "Category Id", "required": true, "style": "form", "explode": true, "schema": { "type": "integer", "example": 1 } }, { "name": "brandId", "in": "query", "description": "Brand Id", "required": true, "style": "form", "explode": true, "schema": { "type": "integer", "example": 3 } }, { "name": "quantity", "in": "query", "description": "SKU quantity", "required": true, "style": "form", "explode": true, "schema": { "type": "integer", "example": 2 } }, { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } }, { "name": "itemId", "in": "path", "description": "SKU Id", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "priceTableId", "in": "path", "description": "SKU Price Table Name", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "headers": { "Access-Control-Allow-Credentials": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "true" } } }, "Access-Control-Allow-Origin": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "*" } } }, "Connection": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "keep-alive" } } }, "Content-Encoding": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "gzip" } } }, "Content-Length": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "71" } } }, "Date": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "Mon, 28 Aug 2017 20:15:19 GMT" } } }, "Server": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "nginx" } } }, "X-CDNIgnore": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "1" } } }, "X-Powered-by-VTEX-Janus-Edge": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "v1.41.0" } } }, "X-Track": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "stable" } } }, "X-VTEX-Janus-Router-Backend-App": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "pricing-v3.26.2" } } } }, "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/Default1" }, "example": { "tradePolicyId": "1", "listPrice": 30, "sellingPrice": 18.9, "priceValidUntil": "2018-12-20T18:12:14Z" } } } } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] } }, "/config": { "get": { "tags": [ "Pricing Configuration" ], "summary": "Get Pricing Configuration", "description": "Retrieves Pricing Configuration.\r\n## Response body example\r\n\r\n```json\r\n{\r\n \"hasMigrated\": true,\r\n \"migrationStatus\": \"Completed\",\r\n \"defaultMarkup\": 100,\r\n \"priceVariation\": {\r\n \"upperLimit\": null,\r\n \"lowerLimit\": null\r\n },\r\n \"minimumMarkups\": {\r\n \"1\": 100,\r\n \"2\": 90\r\n },\r\n \"tradePolicyConfigs\": [],\r\n \"sellersToOverride\": [],\r\n \"hasPriceInheritance\": false,\r\n \"priceInheritance\": \"never\",\r\n \"hasOptionalBasePrice\": false,\r\n \"blockAccount\": false,\r\n \"blockedRoutes\": null,\r\n \"priceTableSelectionStrategy\": \"first\",\r\n \"priceTableLimit\": null\r\n}\r\n```", "operationId": "GetPricingConfig", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } } ], "responses": { "200": { "description": "OK", "headers": { "Access-Control-Allow-Credentials": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "true" } } }, "Access-Control-Allow-Origin": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "*" } } }, "Connection": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "keep-alive" } } }, "Content-Encoding": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "gzip" } } }, "Content-Length": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "118" } } }, "Date": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "Tue, 21 Feb 2017 16:11:39 GMT" } } }, "Server": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "nginx" } } }, "X-CDNIgnore": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "1" } } }, "X-Powered-by-VTEX-Janus-Edge": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "v1.35.3" } } }, "X-Track": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "stable" } } }, "X-VTEX-Janus-Router-Backend-App": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "pricing-v3.21.12" } } } }, "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/PricingConfiguration" }, "example": { "hasMigrated": true, "migrationStatus": "Completed", "defaultMarkup": 100, "priceVariation": { "upperLimit": null, "lowerLimit": null }, "minimumMarkups": { "1": 100, "2": 90 }, "tradePolicyConfigs": [], "sellersToOverride": [], "hasPriceInheritance": false, "priceInheritance": "never", "hasOptionalBasePrice": false, "blockAccount": false, "blockedRoutes": null, "priceTableSelectionStrategy": "first", "priceTableLimit": null } } } } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] } }, "/migration": { "get": { "tags": [ "Pricing Configuration" ], "summary": "Get Pricing v2 Status", "description": "Retrieves Pricing v2 Status. \r\n## Response body example\r\n\r\n```json\r\n{\r\n \"isActive\": true,\r\n \"hasMigrated\": true\r\n}\r\n```", "operationId": "GetPricingv2Status", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } } ], "responses": { "200": { "description": "OK", "headers": { "Access-Control-Allow-Credentials": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "true" } } }, "Access-Control-Allow-Origin": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "*" } } }, "Connection": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "keep-alive" } } }, "Content-Encoding": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "gzip" } } }, "Content-Length": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "52" } } }, "Date": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "Tue, 21 Feb 2017 16:13:39 GMT" } } }, "Server": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "nginx" } } }, "X-CDNIgnore": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "1" } } }, "X-Powered-by-VTEX-Janus-Edge": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "v1.35.3" } } }, "X-Track": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "stable" } } }, "X-VTEX-Janus-Router-Backend-App": { "content": { "text/plain": { "schema": { "type": "string" }, "example": "pricing-v3.21.12" } } } }, "content": { "application/json; charset=utf-8": { "schema": { "type": "object", "properties": { "isActive": { "type": "boolean", "description": "Defines if the account is active.", "example": true }, "hasMigrated": { "type": "boolean", "description": "Defines if the account has migrated to Pricing V2.", "example": true } } }, "example": { "isActive": true, "hasMigrated": true } } } } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] } }, "/pipeline/catalog/{priceTableId}": { "get": { "tags": [ "Price Tables" ], "summary": "Get rules for a price table", "description": "This method will retrieve the rules from a specific Price Table.\r\n\r\n## Response body example\r\n\r\n```json\r\n{\r\n \"tradePolicyId\": \"b2c\",\r\n \"rules\": [{\r\n \"id\": 0,\r\n \"context\": {\r\n \"categories\": {},\r\n \"brands\": {\r\n \"2000009\": \"Whiskas\"\r\n },\r\n \"stockStatuses\": null,\r\n \"internalCategories\": null,\r\n \"markupRange\": null,\r\n \"dateRange\": null\r\n },\r\n \"percentualModifier\": 15\r\n }]\r\n}\r\n```", "operationId": "Getrulesforapricetable", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } }, { "name": "priceTableId", "in": "path", "description": "Price Table Name.", "required": true, "style": "simple", "schema": { "type": "string", "example": "b2c" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "tradePolicyId": "b2c", "rules": [ { "id": 0, "context": { "categories": {}, "brands": { "2000009": "Whiskas" }, "stockStatuses": null, "internalCategories": null, "markupRange": null, "dateRange": null }, "percentualModifier": 15 } ] }, "schema": { "title": "", "type": "object", "properties": { "tradePolicyId": { "type": "string", "description": "Trade Policy ID (Price Table ID)." }, "rules": { "type": "array", "description": "Array of rules for the price table.", "items": { "type": "object", "description": "Object containing a price table rule.", "properties": { "id": { "type": "number", "description": "Rule ID." }, "context": { "type": "object", "description": "Rule Context is a group of filters to be checked at an item level when applying the rule. If all those filters check out, the rule will be applied for that item, unless there is a fixed price for that item.", "properties": { "categories": { "type": "object", "description": "Categories that an item should have to be eligible for the rule. Format: key: `categoryId`, value: `categoryName`.", "additionalProperties": { "type": "string", "description": "Category ID.", "additionalProperties": { "type": "string", "description": "Category Name." } } }, "brands": { "type": "object", "description": "Brands that an item should have to be eligible for the rule. Format: key: `brandId`, value: `brandName`.", "additionalProperties": { "type": "string", "description": "Brand ID.", "additionalProperties": { "type": "string", "description": "Brand Name." } } }, "stockStatuses": { "type": "object", "description": "Stock statuses.", "nullable": true }, "internalCategories": { "type": "object", "description": "Internal Categories.", "nullable": true }, "markupRange": { "type": "object", "description": "For an item to be eligible to the rule, it's markup should be in this Markup Range.", "nullable": true, "properties": { "from": { "type": "integer", "description": "Item markup should be greater than or equal to this value." }, "to": { "type": "integer", "description": "Item markup should be less than or equal to this value." } } }, "dateRange": { "type": "object", "description": "The rule will be active during this time range.", "nullable": true, "properties": { "from": { "type": "string", "description": "Date when rule will be activated. Date format: `RFC3339`." }, "to": { "type": "string", "description": "Date when the rule will be deactivated. Date format: `RFC3339`." } } } } } } } }, "percentualModifier": { "type": "integer", "description": "Percentual modifier." } } } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "429": { "description": "Too many requests" } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] }, "put": { "tags": [ "Price Tables" ], "summary": "Update rules for a price table", "description": "This method will update the rules from a specific Price Table. It will delete all the rules from the requested Price Table and create new rules based on the content of the request.\r\n\r\n## Request body example\r\n\r\n```json\r\n{\r\n \"rules\": [\r\n {\r\n \"id\": 1,\r\n \"context\": {\r\n \"categories\": {\r\n \"Category ID\": \"1\",\r\n \"Category Name\": \"Alimenta\u00E7\u00E3o\"\r\n },\r\n \"brands\": {\r\n \"Brand ID\": \"2000002\",\r\n \"Brand Name\": \"Whiskas\"\r\n },\r\n \"markupRange\": {\r\n \"from\": 0,\r\n \"to\": 200\r\n },\r\n \"dateRange\": {\r\n \"from\": \"2022-01-23T19:00:00.000Z\",\r\n \"to\": \"2023-10-26T00:00:00.000Z\"\r\n }\r\n },\r\n \"percentualModifier\": 0\r\n }\r\n ]\r\n}\r\n```", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } }, { "name": "priceTableId", "in": "path", "description": "Price Table Name.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "201": { "description": "Created" } }, "requestBody": { "description": "", "content": { "application/json": { "schema": { "type": "object", "required": [ "rules" ], "example": { "rules": [ { "id": 1, "context": { "categories": { "Category ID": "1", "Category Name": "Alimentação" }, "brands": { "Brand ID": "2000002", "Brand Name": "Whiskas" }, "markupRange": { "from": 0, "to": 200 }, "dateRange": { "from": "2022-01-23T19:00:00.000Z", "to": "2023-10-26T00:00:00.000Z" } }, "percentualModifier": 0 } ] }, "properties": { "rules": { "type": "array", "title": "rules", "description": "Array of rules for the price table.", "items": { "type": "object", "description": "Object containing a price table rule.", "required": [ "id", "context", "percentualModifier" ], "properties": { "id": { "type": "integer", "title": "id", "description": "Rule ID.", "example": 0 }, "context": { "type": "object", "title": "context", "description": "Rule Context is a group of filters to be checked at an item level when applying the rule. If all those filters check out, the rule will be applied for that item, unless there is a fixed price for that item.", "required": [ "categories", "brands", "markupRange", "dateRange" ], "properties": { "categories": { "type": "object", "title": "categories", "description": "Categories that an item should have to be eligible for the rule. Format: key: `categoryId`, value: `categoryName`.", "additionalProperties": { "type": "string", "description": "Category ID.", "example": "209", "additionalProperties": { "type": "string", "description": "Category Name.", "example": "Books" } } }, "brands": { "type": "object", "title": "brands", "description": "Brands that an item should have to be eligible for the rule. Format: key: `brandId`, value: `brandName`.", "additionalProperties": { "type": "string", "description": "Brand ID.", "example": "421", "additionalProperties": { "type": "string", "description": "Brand Name.", "example": "Goldman" } } }, "stockStatuses": { "type": "object", "title": "stockStatuses", "description": "Stock statuses.", "nullable": true, "example": null }, "internalCategories": { "type": "object", "title": "internalCategories", "description": "Internal Categories.", "nullable": true, "example": null }, "markupRange": { "type": "object", "title": "markupRange", "description": "For an item to be eligible to the rule, it's markup should be in this Markup Range.", "nullable": true, "example": null, "required": [ "from", "to" ], "properties": { "from": { "type": "integer", "title": "from", "description": "Item markup should be greater than or equal to this value.", "example": 0 }, "to": { "type": "integer", "title": "to", "description": "Item markup should be less than or equal to this value.", "example": 200 } } }, "dateRange": { "type": "object", "title": "dateRange", "description": "The rule will be active during this time range.", "required": [ "from", "to" ], "properties": { "from": { "type": "string", "title": "from", "description": "Date when rule will be activated. Date format: `RFC3339`.", "example": "2019-10-23T19:00:00.000Z" }, "to": { "type": "string", "title": "to", "description": "Date when the rule will be deactivated. Date format: `RFC3339`.", "example": "2019-10-26T00:00:00.000Z" } } } } }, "percentualModifier": { "type": "number", "title": "percentualModifier", "description": "Percentual modifier.", "example": 0 } } } } } } } } } } }, "/pipeline/catalog": { "get": { "tags": [ "Price Tables" ], "summary": "Get all price tables and their rules", "description": "This method will retrieve all price tables and their rules.\r\n\r\n## Response body example\r\n\r\n```json\r\n[\r\n {\r\n \"tradePolicyId\": \"2\",\r\n \"rules\": [\r\n {\r\n \"id\": 0,\r\n \"context\": {\r\n \"categories\": {},\r\n \"brands\": {},\r\n \"stockStatuses\": null,\r\n \"internalCategories\": null,\r\n \"markupRange\": null,\r\n \"dateRange\": null\r\n },\r\n \"percentualModifier\": 20\r\n }\r\n ]\r\n },\r\n {\r\n \"tradePolicyId\": \"b2c\",\r\n \"rules\": [\r\n {\r\n \"id\": 0,\r\n \"context\": {\r\n \"categories\": {},\r\n \"brands\": {\r\n \"2000009\": \"Whiskas\"\r\n },\r\n \"stockStatuses\": null,\r\n \"internalCategories\": null,\r\n \"markupRange\": null,\r\n \"dateRange\": null\r\n },\r\n \"percentualModifier\": 15\r\n }\r\n ]\r\n }\r\n]\r\n```", "operationId": "getallpricetablesandrules", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "example": [ { "tradePolicyId": "2", "rules": [ { "id": 0, "context": { "categories": {}, "brands": {}, "stockStatuses": null, "internalCategories": null, "markupRange": null, "dateRange": null }, "percentualModifier": 20 } ] }, { "tradePolicyId": "b2c", "rules": [ { "id": 0, "context": { "categories": {}, "brands": { "2000009": "Whiskas" }, "stockStatuses": null, "internalCategories": null, "markupRange": null, "dateRange": null }, "percentualModifier": 15 } ] } ], "schema": { "title": "", "type": "array", "items": { "type": "object", "properties": { "tradePolicyId": { "type": "string", "description": "Trade Policy ID (Price Table ID)." }, "rules": { "type": "array", "description": "Array of rules for the price table.", "items": { "type": "object", "description": "Object containing a price table rule.", "properties": { "id": { "type": "number", "description": "Rule ID." }, "context": { "type": "object", "description": "Rule Context is a group of filters to be checked at an item level when applying the rule. If all those filters check out, the rule will be applied for that item, unless there is a fixed price for that item.", "properties": { "categories": { "type": "object", "description": "Categories that an item should have to be eligible for the rule. Format: key: `categoryId`, value: `categoryName`.", "additionalProperties": { "type": "string", "description": "Category ID.", "additionalProperties": { "type": "string", "description": "Category Name." } } }, "brands": { "type": "object", "description": "Brands that an item should have to be eligible for the rule. Format: key: `brandId`, value: `brandName`.", "additionalProperties": { "type": "string", "description": "Brand ID.", "additionalProperties": { "type": "string", "description": "Brand Name." } } }, "stockStatuses": { "type": "object", "description": "Stock statuses.", "nullable": true }, "internalCategories": { "type": "object", "description": "Internal Categories.", "nullable": true }, "markupRange": { "type": "object", "description": "For an item to be eligible to the rule, it's markup should be in this Markup Range.", "nullable": true, "properties": { "from": { "type": "integer", "description": "Item markup should be greater than or equal to this value." }, "to": { "type": "integer", "description": "Item markup should be less than or equal to this value." } } }, "dateRange": { "type": "object", "description": "The rule will be active during this time range.", "nullable": true, "properties": { "from": { "type": "string", "description": "Date when rule will be activated. Date format: `RFC3339`." }, "to": { "type": "string", "description": "Date when the rule will be deactivated. Date format: `RFC3339`." } } } } } } } }, "percentualModifier": { "type": "integer", "description": "Percentual modifier." } } } } } } } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] } }, "/tables": { "get": { "tags": [ "Price Tables" ], "summary": "List price tables", "description": "This method will list all price tables.\r\n\r\n## Response body example\r\n\r\n```json\r\n[\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"b2c\",\r\n \"b2b\",\r\n \"gold\"\r\n]\r\n```", "operationId": "Listpricetables", "parameters": [ { "name": "Content-Type", "in": "header", "description": "Describes the type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "example": "application/json" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "example": [ "1", "2", "3", "b2c", "b2b", "gold" ], "schema": { "type": "array", "description": "Array of price tables.", "items": { "type": "string", "description": "Price table name." } } } } } }, "deprecated": false, "servers": [ { "url": "https://api.vtex.com/{account}/pricing", "variables": { "account": { "default": "DefaultParameterValue" } } } ] } } }, "components": { "schemas": { "Examplewith2FixedPricesindifferentSalesChannel": { "title": "Examplewith2FixedPricesindifferentSalesChannel", "required": [ "tradePolicyId", "value", "listPrice", "minQuantity" ], "type": "object", "properties": { "tradePolicyId": { "type": "string" }, "value": { "type": "number" }, "listPrice": { "type": "number", "nullable": true }, "minQuantity": { "type": "integer", "format": "int32" } }, "example": { "tradePolicyId": "6", "value": 20.9, "listPrice": 22.9, "minQuantity": 1 } }, "FixedPrice": { "title": "FixedPrice", "required": [ "tradePolicyId", "value", "listPrice", "minQuantity" ], "type": "object", "properties": { "tradePolicyId": { "type": "string", "description": "Sales Channel Id" }, "value": { "type": "integer", "format": "int32", "description": "SKU Fixed Price Value" }, "listPrice": { "type": "integer", "nullable": true, "description": "SKU List Price" }, "minQuantity": { "type": "integer", "format": "int32", "description": "Minimum Quantity to active Fixed Price" }, "dateRange": { "$ref": "#/components/schemas/DateRange" } }, "example": { "tradePolicyId": "9", "value": 300, "listPrice": null, "minQuantity": 1 } }, "DateRange": { "title": "DateRange", "description": "Trade Policy Fixed Price Validity Period Object.", "required": [ "from", "to" ], "type": "object", "properties": { "from": { "type": "string", "description": "Indicates the date and time when the fixed price will start to be valid." }, "to": { "type": "string", "description": "Indicates the date and time from which the fixed price will no longer be valid." } }, "example": { "from": "2017-12-07T14:30:00Z", "to": "2017-12-30T14:30:00Z" } }, "Addingafixedpriceforonespecificpricetable": { "title": "Addingafixedpriceforonespecificpricetable", "required": [ "tradePolicyId", "value", "listPrice", "minQuantity" ], "type": "object", "properties": { "tradePolicyId": { "type": "string" }, "value": { "type": "number" }, "listPrice": { "type": "string", "nullable": true }, "minQuantity": { "type": "integer", "format": "int32" } }, "example": { "tradePolicyId": "10", "value": 60.5, "listPrice": null, "minQuantity": 1 } }, "Deletefixedpricesonapricetable_ortradepolicy_Request": { "title": "Deletefixedpricesonapricetable(ortradepolicy)Request", "required": [ "tradePolicyId", "value", "listPrice", "minQuantity" ], "type": "object", "properties": { "tradePolicyId": { "type": "string" }, "value": { "type": "integer", "format": "int32" }, "listPrice": { "type": "number" }, "minQuantity": { "type": "integer", "format": "int32" } }, "example": { "tradePolicyId": "1", "value": 100, "listPrice": 99.9, "minQuantity": 1 } }, "PricewithFixedPrices_scheduledandindifferenttradepolicies_": { "title": "PricewithFixedPrices(scheduledandindifferenttradepolicies)", "required": [ "itemId", "listPrice", "costPrice", "markup", "basePrice", "fixedPrices" ], "type": "object", "properties": { "itemId": { "type": "string", "description": "SKU ID." }, "listPrice": { "type": "integer", "format": "int32", "description": "Suggested retail price for the SKU." }, "costPrice": { "type": "integer", "format": "int32", "description": "SKU's cost price." }, "markup": { "type": "integer", "format": "int32", "description": "Desired profit margin with the SKU's sale." }, "basePrice": { "type": "integer", "format": "int32", "description": "SKU's reference price." }, "fixedPrices": { "type": "array", "items": { "$ref": "#/components/schemas/FixedPrice2" }, "description": "The fixed price is a price that overlaps all other existing price configurations of a price table." } }, "example": { "itemId": "1234512354", "listPrice": 300, "costPrice": 10, "markup": 2400, "basePrice": 250, "fixedPrices": [ { "tradePolicyId": "1", "value": 666.66, "listPrice": null, "minQuantity": 1 }, { "tradePolicyId": "9", "value": 4500, "listPrice": null, "minQuantity": 1 }, { "tradePolicyId": "9", "value": 600, "listPrice": null, "minQuantity": 1, "dateRange": { "from": "2017-12-07T14:30:00Z", "to": "2017-12-30T14:30:00Z" } }, { "tradePolicyId": "9", "value": 5555.55, "listPrice": null, "minQuantity": 1, "dateRange": { "from": "2017-12-20T14:30:00Z", "to": "2017-12-22T14:30:00Z" } }, { "tradePolicyId": "9", "value": 555.55, "listPrice": null, "minQuantity": 1, "dateRange": { "from": "2017-12-06T15:00:00Z", "to": "2017-12-14T15:00:00Z" } }, { "tradePolicyId": "10", "value": 5555.55, "listPrice": null, "minQuantity": 1 }, { "tradePolicyId": "18", "value": 555.55, "listPrice": null, "minQuantity": 1 } ] } }, "FixedPrice2": { "title": "FixedPrice2", "required": [ "tradePolicyId", "value", "listPrice", "minQuantity" ], "type": "object", "properties": { "tradePolicyId": { "type": "string", "description": "Fixed price's trade policy name or ID." }, "value": { "type": "number", "description": "Fixed price amount." }, "listPrice": { "type": "string", "nullable": true, "description": "Fixed price's suggested retail price for the SKU." }, "minQuantity": { "type": "integer", "format": "int32", "description": "The minimum SKU quantity for the fixed price to be applied." }, "dateRange": { "$ref": "#/components/schemas/DateRange" } }, "example": { "tradePolicyId": "1", "value": 666.66, "listPrice": null, "minQuantity": 1 } }, "Default": { "title": "Default", "required": [ "tradePolicyId", "value", "listPrice", "minQuantity" ], "type": "object", "properties": { "tradePolicyId": { "type": "string" }, "value": { "type": "number" }, "listPrice": { "type": "number", "nullable": true }, "minQuantity": { "type": "integer", "format": "int32" } }, "example": { "tradePolicyId": "6", "value": 20.9, "listPrice": 22.9, "minQuantity": 1 } }, "Default1": { "title": "Default1", "required": [ "tradePolicyId", "listPrice", "sellingPrice", "priceValidUntil" ], "type": "object", "properties": { "tradePolicyId": { "type": "string" }, "listPrice": { "type": "integer", "format": "int32" }, "sellingPrice": { "type": "number" }, "priceValidUntil": { "type": "string" } }, "example": { "tradePolicyId": "1", "listPrice": 30, "sellingPrice": 18.9, "priceValidUntil": "2018-12-20T18:12:14Z" } }, "PricingConfiguration": { "title": "Pricing Configuration response", "required": [ "hasMigrated", "defaultMarkup", "minimumMarkups" ], "type": "object", "properties": { "hasMigrated": { "type": "boolean", "description": "Defines if the account has migrated to Pricing V2.", "example": true }, "migrationStatus": { "type": "string", "description": "Pricing V2 migration status.", "example": "Completed" }, "defaultMarkup": { "type": "integer", "format": "int32", "description": "Account default markup.", "example": 2 }, "priceVariation": { "type": "object", "description": "Price Variation object.", "properties": { "upperLimit": { "type": "integer", "description": "Upper variation limit.", "nullable": true, "example": 10 }, "lowerLimit": { "type": "integer", "description": "Lower variation limit.", "nullable": true, "example": 1 } } }, "minimumMarkups": { "type": "object", "description": "Account minimum markup.", "additionalProperties": { "type": "integer", "format": "int32" } }, "tradePolicyConfigs": { "type": "array", "description": "Trade Policy Configurations array.", "items": { "type": "object", "properties": { "tradePolicyId": { "type": "string", "description": "Trade Policy ID.", "example": "b2c" }, "minimumMarkup": { "type": "integer", "description": "Trade Policy Minimum Markup.", "example": 80 }, "rulesShouldAffectListPrice": { "type": "boolean", "description": "Defines if the Price Rule should affect the list price too.", "example": false } } } }, "sellersToOverride": { "type": "array", "description": "Overrides prices from sellers." }, "hasPriceInheritance": { "type": "boolean", "description": "Deprecated. Use the `priceInheritance` field instead.", "deprecated": true }, "priceInheritance": { "type": "string", "description": "Condition of price inheritance from its parent account. This field can have three possible values: `never` if the store should never inherit prices, `nonexistent` if the store should only inherit prices in case of nonexistent prices for a given product, or `always` if the store should always inherit prices, regardless of its own prices.", "example": "nonexistent" }, "hasOptionalBasePrice": { "type": "boolean", "description": "Defines if optional base price is allowed.", "example": false }, "blockAccount": { "type": "boolean", "description": "Defines if access to the Pricing APIs is blocked for external requests.", "example": false }, "blockedRoutes": { "type": "array", "description": "Array with all blocked routes.", "nullable": true, "items": { "type": "string", "description": "Blocked route." } }, "priceTableSelectionStrategy": { "type": "string", "description": "The strategy used to get prices when there is more than one option. Possible values: `first`, `highest`, `lowest`. Default: `first`.", "default": "first", "example": "highest" }, "priceTableLimit": { "type": "integer", "description": "Price Table Limit.", "nullable": true, "example": 100 } }, "example": { "hasMigrated": true, "migrationStatus": "Completed", "defaultMarkup": 100, "priceVariation": { "upperLimit": null, "lowerLimit": null }, "minimumMarkups": { "1": 100, "2": 90 }, "tradePolicyConfigs": [], "sellersToOverride": [], "hasPriceInheritance": false, "priceInheritance": "never", "hasOptionalBasePrice": false, "blockAccount": false, "blockedRoutes": null, "priceTableSelectionStrategy": "first", "priceTableLimit": null } } }, "securitySchemes": { "appKey": { "type": "apiKey", "in": "header", "name": "X-VTEX-API-AppKey" }, "appToken": { "type": "apiKey", "in": "header", "name": "X-VTEX-API-AppToken" } } }, "tags": [ { "name": "Price Tables" }, { "name": "Prices and Fixed Prices" }, { "name": "Pricing Configuration" } ], "security": [ { "appKey": [], "appToken": [] } ] }