diff --git a/.github/workflows/generate-client-specs.yml b/.github/workflows/generate-client-specs.yml new file mode 100644 index 0000000000..954b8aa9b9 --- /dev/null +++ b/.github/workflows/generate-client-specs.yml @@ -0,0 +1,58 @@ +name: Generate Client OpenAPI Specs + +on: + pull_request: + paths: + - "VTEX - *.json" + - "clients/*/config.yaml" + - "tools/apim-gen/src/**" + +permissions: + contents: write + pull-requests: write + +jobs: + generate: + name: Generate APIM-compatible specs + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref }} + token: ${{ secrets.GITHUB_TOKEN }} + + - uses: actions/setup-node@v4 + with: + node-version: "20" + + - name: Install dependencies + run: npm ci + working-directory: tools/apim-gen + + - name: Generate specs for all clients + run: | + for config in clients/*/config.yaml; do + client_dir=$(dirname "$config") + echo "::group::Generating specs for $client_dir" + npx tsx tools/apim-gen/src/cli.ts generate "$config" + echo "::endgroup::" + done + + - name: Check for changes in output + id: check-changes + run: | + git add clients/*/output/ 2>/dev/null || true + if git diff --cached --quiet; then + echo "changed=false" >> "$GITHUB_OUTPUT" + else + echo "changed=true" >> "$GITHUB_OUTPUT" + fi + + - name: Commit generated specs + if: steps.check-changes.outputs.changed == 'true' + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add clients/*/output/ + git commit -m "chore: regenerate client OpenAPI specs" + git push diff --git a/clients/manitou/config.yaml b/clients/manitou/config.yaml new file mode 100644 index 0000000000..b6da284110 --- /dev/null +++ b/clients/manitou/config.yaml @@ -0,0 +1,134 @@ +client: manitou +specsDir: ../.. +outputDir: output + +defaults: + openapiVersion: "3.0.3" + removeFalsePathParams: true + ensureOperationId: true + removeParams: + - name: Accept + in: header + - name: Content-Type + in: header + - name: accountName + in: path + - name: environment + in: path + descriptionNote: "Requests with a body must be sent with `Content-Type: application/json`." + +specs: + # ── Catalog API (split into 3 sub-specs by prefix) ── + - source: "VTEX - Catalog API.json" + split: + - prefix: /api/catalog/ + outputName: catalog.catalog + title: "Catalog API (Catalog)" + - prefix: /api/catalog_system/ + outputName: catalog.catalog_system + title: "Catalog API (Catalog System)" + - prefix: /api/addon/ + outputName: catalog.addon + title: "Catalog API (Addon)" + + # ── Catalog Seller Portal ── + - source: "VTEX - Catalog API Seller Portal.json" + outputName: catalog-seller-portal + removePaths: + - /api/catalog-seller-portal/products/{param} + + # ── Checkout API ── + - source: "VTEX - Checkout API.json" + outputName: checkout + + # ── Customer Credit API ── + - source: "VTEX - Customer Credit API.json" + outputName: customer-credit + + # ── Logistics API ── + - source: "VTEX - Logistics API.json" + outputName: logistics + + # ── Marketplace APIs ── + - source: "VTEX - Marketplace APIs.json" + outputName: marketplace + + # ── Marketplace APIs - Sent Offers ── + - source: "VTEX - Marketplace APIs - Sent Offers.json" + outputName: marketplace-sent-offers + + # ── Marketplace APIs - Suggestions ── + - source: "VTEX - Marketplace APIs - Suggestions.json" + outputName: marketplace-suggestions + + # ── Marketplace Protocol - External Seller Fulfillment ── + - source: "VTEX - Marketplace Protocol - External Seller Fulfillment.json" + outputName: marketplace-protocol-seller-fulfillment + + # ── Marketplace Protocol - External Seller Marketplace ── + - source: "VTEX - Marketplace Protocol - External Seller Marketplace.json" + outputName: marketplace-protocol-seller-marketplace + + # ── Marketplace Protocol - External Marketplace Orders ── + - source: "VTEX - Marketplace Protocol - External Marketplace Orders.json" + outputName: marketplace-protocol-marketplace-orders + + # ── MasterData v1 (remove duplicate CL/AD paths) ── + - source: "VTEX - MasterData API - v10.2.json" + outputName: masterdata-v1 + removePaths: + - /api/dataentities/CL/documents + - /api/dataentities/CL/documents/{id} + - /api/dataentities/AD/documents + - /api/dataentities/AD/documents/{id} + + # ── Master Data v2 ── + - source: "VTEX - Master Data API - v2.json" + outputName: masterdata-v2 + + # ── Orders API (split into 4 sub-specs by prefix) ── + - source: "VTEX - Orders API.json" + split: + - prefix: /api/oms/ + outputName: orders.oms + title: "Orders API (OMS)" + - prefix: /api/orders/ + outputName: orders.orders + title: "Orders API (Orders)" + - prefix: /api/order-system/ + outputName: orders.order-system + title: "Orders API (Order System)" + - prefix: /api/checkout/ + outputName: orders.checkout + title: "Orders API (Checkout)" + + # ── Pricing API ── + - source: "VTEX - Pricing API.json" + outputName: pricing + + # ── Search API ── + - source: "VTEX - Search API.json" + outputName: search + + # ── SKU Bindings API ── + - source: "VTEX - SKU Bindings API.json" + outputName: sku-bindings + + # ── Tracking ── + - source: "VTEX - Tracking.json" + outputName: tracking + + # ── VTEX Shipping Network API ── + - source: "VTEX - VTEX Shipping Network API.json" + outputName: shipping-network + + # ── Buyer Organizations ── + - source: "VTEX - Buyer Organizations.json" + outputName: buyer-organizations + + # ── Pick and Pack ── + - source: "VTEX - Pick and Pack Last Mile Protocol API.json" + outputName: pick-and-pack-last-mile + + - source: "VTEX - Pick and Pack Order Changes API.json" + outputName: pick-and-pack-order-changes diff --git a/clients/manitou/output/buyer-organizations.json b/clients/manitou/output/buyer-organizations.json new file mode 100644 index 0000000000..97a254141c --- /dev/null +++ b/clients/manitou/output/buyer-organizations.json @@ -0,0 +1,481 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Buyer Organizations", + "description": "The Buyer Organizations API facilitates the bulk import of [Buyer Organizations](https://developers.vtex.com/docs/apps/vtex.b2b-organizations), [Cost Centers](https://developers.vtex.com/docs/guides/vtex-b2b-organizations#cost-centers), and [Members](https://developers.vtex.com/docs/guides/vtex-b2b-organizations#users). By allowing spreadsheet import, this API simplifies the management of buyer organizations and allows easy updating and maintenance of information in B2B stores.\r\n\r\n>ℹ ️Only `.xlsx` files under 50MB in size can be imported. You can [download the template file](https://io.vtex.com.br/b2b-bulk-import/b2b-bulk-import-template.xlsx) as an example. For more information on the file structure and how to fill it out, access the [Bulk Import Buyer Organizations Spreadsheet](https://developers.vtex.com/docs/guides/bulk-import-buyer-organizations-spreadsheet) guide.\r\n\r\n\r\n## Index\r\n\r\n### Bulk import\r\n- `POST` [Upload file](https://developers.vtex.com/docs/api-reference/buyer-organizations#post-/api/b2b/import/buyer-orgs)\r\n- `GET` [Check progress](https://developers.vtex.com/docs/api-reference/buyer-organizations#get-/api/b2b/import/buyer-orgs/-importId-)\r\n- `POST` [Start import](https://developers.vtex.com/docs/api-reference/buyer-organizations#post-/api/b2b/import/buyer-orgs/-importId-)\r\n- `POST` [Validate file](https://developers.vtex.com/docs/api-reference/buyer-organizations#post-/api/b2b/import/buyer-orgs/validate/-importId-)\r\n\r\n>⚠️ Bulk Import does not allow editing or updating existing information for organizations and cost centers. It is intended solely for creating new records and managing members.\r\n\r\n## Common parameters in the documentation\r\n\r\n| Parameter name | Description |\r\n| - | - |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. |\r\n| `{{X-VTEX-API-AppKey}}` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). |\r\n| `{{X-VTEX-API-AppToken}}` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). |", + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/b2b/import/buyer-orgs": { + "post": { + "tags": [ + "Bulk Import" + ], + "summary": "Upload file", + "description": "Uploads a file for bulk import of Buyer Organizations, Cost Centers and Members. The uploaded file should be in `XLSX` format and have less than 50MB. For more information on the file structure and how to fill it out, access the [Bulk Import Spreadsheet](https://developers.vtex.com/docs/guides/bulk-import-buyer-organizations-spreadsheet) guide.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| B2B | B2B General | **B2BBulkImport** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UploadFile", + "parameters": [ + { + "$ref": "#/components/parameters/an" + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "encoding": {}, + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary", + "description": "File to be uploaded.", + "example": "file.xlsx" + } + } + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/file-data" + }, + "example": { + "accountName": "accountName", + "importId": "3c3cba0a-8355-4812-ad4d-f4c0b32e2613", + "importState": "Uploaded", + "percentage": "0", + "lastUpdateDate": "2023-10-05T16:40:11+00:00", + "fileName": "file.xlsx" + } + } + } + } + } + } + }, + "/api/b2b/import/buyer-orgs/{importId}": { + "get": { + "tags": [ + "Bulk Import" + ], + "summary": "Check progress", + "description": "Checks the progress of a started file validation or import process. After initiating validation using [Validate file](https://developers.vtex.com/docs/api-reference/buyer-organizations#post-/api/b2b/import/buyer-orgs/validate/-importId-) or import using [Start import](https://developers.vtex.com/docs/api-reference/buyer-organizations#post-/api/b2b/import/buyer-orgs/-importId-), you can track progress by sending a request to this endpoint. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| B2B | B2B General | **B2BBulkImport** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "CheckProgress", + "parameters": [ + { + "$ref": "#/components/parameters/an" + }, + { + "$ref": "#/components/parameters/importId" + } + ], + "responses": { + "200": { + "description": "Response containing the details of the file validation or import.", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/file-data" + }, + { + "$ref": "#/components/schemas/importResult" + }, + { + "$ref": "#/components/schemas/validationResult" + } + ] + }, + "examples": { + "ValidationDetails": { + "value": { + "accountName": "accountName", + "importId": "3c3cba0a-8355-4812-ad4d-f4c0b32e2613", + "importState": "InValidation", + "percentage": "0", + "lastUpdateDate": "2023-10-05T16:40:11+00:00", + "fileName": "file.xlsx" + } + }, + "ImportDetails": { + "value": { + "accountName": "accountName", + "importId": "3c3cba0a-8355-4812-ad4d-f4c0b32e2613", + "importState": "Completed", + "percentage": "100", + "lastUpdateDate": "2023-10-05T16:41:11+00:00", + "fileName": "file.xlsx" + } + }, + "ValidationErrorsDetails": { + "value": { + "accountName": "accountName", + "importId": "71411025-c7d9-4c9d-92b5-9bc70a1acdb7", + "importState": "ValidationFailed", + "percentage": "0", + "lastUpdateDate": "2024-02-21T17:56:57+00:00", + "fileName": "file.xlsx", + "validationResult": { + "isValid": false, + "validationResult": [ + { + "name": "Organizations", + "validRows": 0, + "invalidRows": 1 + }, + { + "name": "Cost Centers", + "validRows": 0, + "invalidRows": 0 + }, + { + "name": "Members", + "validRows": 0, + "invalidRows": 0 + } + ] + } + } + }, + "ImportErrorsDetails": { + "value": { + "accountName": "accountName", + "importId": "d51b1b09-b4f3-44a3-ad70-53b9c8fe35f4", + "importState": "CompletedWithError", + "percentage": "100", + "lastUpdateDate": "2024-02-26T14:47:10+00:00", + "fileName": "test-26-fev-bulk-import-error.xlsx", + "importResult": { + "imports": [ + { + "name": "Organizations", + "importedRows": 2, + "rowsWithError": 1 + } + ], + "reportDownloadLink": "https://host.com/files/accountName/d51b1b09-b4f3-44a3-ad70-53b9c8fe35f4/file-error_Report.xlsx" + }, + "importedAt": "2024-02-26T14:47:05+00:00", + "importedUserEmail": "user@host.com", + "importedUserName": "user" + } + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Bulk Import" + ], + "summary": "Start import", + "description": "Once the file is successfully uploaded and validated, you can call this endpoint to start the import. Provide the `importId` returned by the [Validate file](https://developers.vtex.com/docs/api-reference/buyer-organizations#post-/api/b2b/import/buyer-orgs/validate/-importId-) or [Upload file](https://developers.vtex.com/docs/api-reference/buyer-organizations#post-/api/b2b/import/buyer-orgs) endpoints. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| B2B | B2B General | **B2BBulkImport** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "$ref": "#/components/parameters/an" + }, + { + "$ref": "#/components/parameters/importId" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "operationId": "post_api_b2b_import_buyerOrgs_ByImportId" + } + }, + "/api/b2b/import/buyer-orgs/validate/{importId}": { + "post": { + "tags": [ + "Bulk Import" + ], + "summary": "Validate file", + "description": "Starts the bulk import file content validation. Once the the file is successfully uploaded, you can start the validation using the `importId` returned by the [Upload file](https://developers.vtex.com/docs/api-reference/buyer-organizations#post-/api/b2b/import/buyer-orgs) endpoint. \n\n## Permissions\n\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\n\n| **Product** | **Category** | **Resource** |\n| --------------- | ----------------- | ----------------- |\n| B2B | B2B General | **B2BBulkImport** |\n\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "ValidateFile", + "parameters": [ + { + "$ref": "#/components/parameters/an" + }, + { + "$ref": "#/components/parameters/importId" + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + } + }, + "components": { + "parameters": { + "an": { + "name": "an", + "in": "query", + "description": "Name of your VTEX account.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "exampleAccount" + } + }, + "importId": { + "name": "importId", + "in": "path", + "required": true, + "description": "Unique identifier of the import.", + "schema": { + "type": "string", + "example": "3c3cba0a-8355-4812-ad4d-f4c0b32e2613" + } + } + }, + "schemas": { + "file-data": { + "type": "object", + "description": "Object containing information about bulk import state.", + "required": [ + "accountName", + "importId", + "importState", + "percentage", + "lastUpdateDate", + "fileName" + ], + "properties": { + "accountName": { + "type": "string", + "description": "Name of your VTEX account." + }, + "importId": { + "type": "string", + "description": "Unique identifier of the import." + }, + "importState": { + "type": "string", + "description": "Current state of the import. The possible values are:\n- `Uploaded`: The file was successfully uploaded.\n- `InValidation`: File validation is in progress.\n- `ReadyToImport`: File validation completed, ready for import.\n- `Completed`: File successfully imported.\n- `ValidationFailed`: File validation failed.\n- `CompletedWithError`: File import failed." + }, + "percentage": { + "type": "string", + "description": "Completion percentage of the import." + }, + "lastUpdateDate": { + "type": "string", + "description": "Date and time of the last update of the import, in `yyyy-mm-ddTHH:MM:SS+00:00` format." + }, + "fileName": { + "type": "string", + "description": "Name of the file being imported." + } + } + }, + "importResult": { + "type": "object", + "description": "Object containing information about bulk import state.", + "required": [ + "accountName", + "importId", + "importState", + "percentage", + "lastUpdateDate", + "fileName", + "importResult", + "importedAt", + "importedUserEmail", + "importedUserName" + ], + "properties": { + "accountName": { + "type": "string", + "description": "Name of your VTEX account." + }, + "importId": { + "type": "string", + "description": "Unique identifier of the import." + }, + "importState": { + "type": "string", + "description": "Current state of the import. The possible values are:\n- `Uploaded`: The file was successfully uploaded.\n- `InValidation`: File validation is in progress.\n- `ReadyToImport`: File validation completed, ready for import.\n- `Completed`: File successfully imported.\n- `ValidationFailed`: File validation failed.\n- `CompletedWithError`: File import failed." + }, + "percentage": { + "type": "string", + "description": "Completion percentage of the import." + }, + "lastUpdateDate": { + "type": "string", + "description": "Date and time of the last update of the import, in `yyyy-mm-ddTHH:MM:SS+00:00` format." + }, + "fileName": { + "type": "string", + "description": "Name of the file being imported." + }, + "importedAt": { + "type": "string", + "description": "Date and time when the import was completed, in `yyyy-mm-ddTHH:MM:SS+00:00` format." + }, + "importedUserEmail": { + "type": "string", + "description": "Email address of the user who performed the import." + }, + "importedUserName": { + "type": "string", + "description": "Name of the user who performed the import." + }, + "importResult": { + "type": "object", + "description": "Information about the outcome of the bulk import operation.", + "properties": { + "reportDownloadLink": { + "type": "string", + "description": "A link to download a detailed report on the outcome of the bulk import." + }, + "imports": { + "type": "array", + "description": "Detailed information about the imported items.", + "items": { + "type": "object", + "description": "Object with detailed information.", + "properties": { + "name": { + "type": "string", + "description": "Unique identifier associated with the imported item." + }, + "importedRows": { + "type": "integer", + "description": "Total number of lines successfully imported." + }, + "rowsWithError": { + "type": "integer", + "description": "Total number of lines that encountered errors during import." + } + } + } + } + } + } + } + }, + "validationResult": { + "type": "object", + "description": "Object containing information about bulk import state.", + "required": [ + "accountName", + "importId", + "importState", + "percentage", + "lastUpdateDate", + "fileName", + "validationResult" + ], + "properties": { + "accountName": { + "type": "string", + "description": "Name of your VTEX account." + }, + "importId": { + "type": "string", + "description": "Unique identifier of the import." + }, + "importState": { + "type": "string", + "description": "Current state of the import. The possible values are:\n- `Uploaded`: The file was successfully uploaded.\n- `InValidation`: File validation is in progress.\n- `ReadyToImport`: File validation completed, ready for import.\n- `Completed`: File successfully imported.\n- `ValidationFailed`: File validation failed.\n- `CompletedWithError`: File import failed." + }, + "percentage": { + "type": "string", + "description": "Completion percentage of the import." + }, + "lastUpdateDate": { + "type": "string", + "description": "Date and time of the last update of the import, in `yyyy-mm-ddTHH:MM:SS+00:00` format." + }, + "fileName": { + "type": "string", + "description": "Name of the file being imported." + }, + "validationResult": { + "type": "object", + "description": "Information about the result of bulk imported data validation.", + "properties": { + "isValid": { + "type": "boolean", + "description": "Indicates whether the bulk import operation was successful." + }, + "validationResult": { + "type": "array", + "description": "Detailed information about the validation results.", + "items": { + "type": "object", + "description": "Object with detailed information.", + "properties": { + "name": { + "type": "string", + "description": "Unique identifier associated with the imported item." + }, + "validRows": { + "type": "integer", + "description": "Total number of lines successfully validated." + }, + "invalidRows": { + "type": "integer", + "description": "Number of imported lines that failed validation." + } + } + } + } + } + } + } + } + } + }, + "tags": [ + { + "name": "Bulk Import" + } + ], + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ] +} diff --git a/clients/manitou/output/catalog-seller-portal.json b/clients/manitou/output/catalog-seller-portal.json new file mode 100644 index 0000000000..4484ce0df1 --- /dev/null +++ b/clients/manitou/output/catalog-seller-portal.json @@ -0,0 +1,3062 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Catalog API - Seller Portal", + "description": "With the Catalog API for Seller Portal, you will be able to create, edit and consult products and their variations, brands, and categories.\r\n\r\n>ℹ️ This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests).\r\n\r\n## Index\r\n\r\n### Product\r\n\r\n- `GET` [Get Product by ID](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#get-/api/catalog-seller-portal/products/-productId-)\r\n- `PUT` [Update Product](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#put-/api/catalog-seller-portal/products/-productId-)\r\n- `GET` [Get Product Description by Product ID](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#get-/api/catalog-seller-portal/products/-productId-/description)\r\n- `PUT` [Update Product Description by Product ID](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#put-/api/catalog-seller-portal/products/-productId-/description)\r\n- `GET` [Get Product by external ID, SKU ID, SKU external ID or slug](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#get-/api/catalog-seller-portal/products/-param-)\r\n- `POST` [Create Product](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#post-/api/catalog-seller-portal/products)\r\n\r\n### SKU\r\n\r\n- `GET` [Search for SKU](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#get-/api/catalog-seller-portal/skus/_search)\r\n- `GET` [Get List of SKUs](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#get-/api/catalog-seller-portal/skus/ids)\r\n\r\n### Brand\r\n\r\n- `GET` [Get List of Brands](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#get-/api/catalog-seller-portal/brands)\r\n- `POST` [Create a Brand](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#post-/api/catalog-seller-portal/brands)\r\n- `GET` [Get Brand by ID](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#get-/api/catalog-seller-portal/brands/-brandId-)\r\n- `PUT` [Update Brand](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#put-/api/catalog-seller-portal/brands/-brandId-)\r\n\r\n### Category\r\n\r\n- `GET` [Get Category Tree](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#get-/api/catalog-seller-portal/category-tree)\r\n- `PUT` [Update Category Tree](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#put-/api/catalog-seller-portal/category-tree)\r\n- `GET` [Get Category by ID](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#get-/api/catalog-seller-portal/category-tree/categories/-categoryId-)\r\n- `POST` [Create a Category](https://developers.vtex.com/docs/api-reference/catalog-api-seller-portal#post-/api/catalog-seller-portal/category-tree/categories)", + "contact": {}, + "version": "" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/catalog-seller-portal/products/{productId}": { + "get": { + "tags": [ + "Product" + ], + "summary": "Get product by ID", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Retrieves general information about a product by its ID. The response also has information about the product's SKUs.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Product Read** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetProduct", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product unique identifier number.", + "required": true, + "schema": { + "type": "string", + "example": "189371" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "id": "189371", + "status": "active", + "name": "VTEX 10 Shirt", + "brandId": "1", + "description": "Description data for product.", + "brandName": "AOC", + "categoryIds": [ + "732" + ], + "categoryNames": [ + "/sandboxintegracao/Acessórios/" + ], + "specs": [ + { + "name": "Color", + "values": [ + "Black", + "White" + ] + }, + { + "name": "Size", + "values": [ + "S", + "M", + "L" + ] + } + ], + "attributes": [ + { + "name": "Fabric", + "value": "Cotton" + }, + { + "name": "Gender", + "value": "Feminine" + } + ], + "slug": "/vtex-shirt", + "images": [ + { + "id": "vtex_logo.jpg", + "url": "https://vtxleo7778.vtexassets.com/assets/vtex.catalog-images/products/vtex_logo.jpg", + "alt": "VTEX" + } + ], + "skus": [ + { + "id": "182907", + "externalId": "1909621862", + "manufacturerCode": "1234567", + "isActive": true, + "weight": 12, + "dimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "RealWeight": 300, + "RealDimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "specs": [ + { + "name": "Color", + "value": "Black" + }, + { + "name": "Size", + "value": "S" + } + ], + "images": [ + "vtex_logo.jpg" + ] + }, + { + "id": "182908", + "externalId": "1909621862", + "manufacturerCode": "1234568", + "isActive": true, + "weight": 300, + "dimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "specs": [ + { + "name": "Color", + "value": "White" + }, + { + "name": "Size", + "value": "L" + } + ], + "images": [ + "vtex_logo.jpg" + ] + } + ], + "transportModal": "123", + "taxCode": "100", + "origin": "vtxleo7778", + "createdAt": "2022-10-31T16:28:25.578067Z", + "updatedAt": "2022-10-31T17:09:12.639088Z" + }, + "schema": { + "type": "object", + "required": [ + "status", + "name", + "brandId", + "brandName", + "categoryIds", + "categoryNames", + "specs", + "attributes", + "slug", + "images", + "skus", + "origin", + "createdAt", + "updatedAt" + ], + "properties": { + "id": { + "type": "string", + "description": "Product's unique identifier number." + }, + "externalId": { + "type": "string", + "description": "Product reference unique identifier number in the store." + }, + "status": { + "type": "string", + "description": "Status of the product. Its values can be `active` or `inactive`." + }, + "name": { + "type": "string", + "description": "Product name. Use simple words and avoid other languages or complex writing. This field is essential for SEO and must respect the 150 character limit." + }, + "brandId": { + "type": "string", + "description": "Product's brand unique identifier number." + }, + "description": { + "type": "string", + "description": "Description data for product." + }, + "brandName": { + "type": "string", + "description": "Name of the brand associated with the product." + }, + "categoryIds": { + "type": "array", + "description": "Product's categories unique identifier numbers. It can have multiples IDs for each category and subcategories.", + "items": { + "type": "string", + "description": "Product's category unique identifier number." + } + }, + "categoryNames": { + "type": "array", + "description": "Names of the product's categories, displayed in a path format.", + "items": { + "type": "string", + "description": "Name of the product's category." + } + }, + "specs": { + "type": "array", + "description": "Specifications that will differentiate the possible product SKUs.", + "items": { + "type": "object", + "description": "SKU specifications.", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "Specification name." + }, + "values": { + "type": "array", + "description": "Specification values.", + "items": { + "type": "string", + "description": "Specification value." + } + } + } + } + }, + "attributes": { + "type": "array", + "description": "Attributes of the product. Attributes are additional properties used to create site browsing filters.", + "items": { + "type": "object", + "description": "Product attribute.", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "description": "Attribute name." + }, + "value": { + "type": "string", + "description": "Attribute value." + } + } + } + }, + "slug": { + "type": "string", + "description": "Reference of the product in the URL of the store." + }, + "images": { + "type": "array", + "description": "Information of the images of the product.", + "items": { + "type": "object", + "description": "Information of the images of the product.", + "required": [ + "id", + "url" + ], + "properties": { + "id": { + "type": "string", + "description": "Image ID." + }, + "url": { + "type": "string", + "description": "Image URL, which must be in the following format: `https://{accountName}.vtexassets.com/assets/{path}`, saved using the [Catalog Images app](https://developers.vtex.com/vtex-developer-docs/docs/vtex-catalog-images)." + }, + "alt": { + "type": "string", + "description": "Image alternative description." + } + } + } + }, + "skus": { + "type": "array", + "description": "SKUs of the product.", + "items": { + "type": "object", + "description": "Informations about an SKU.", + "required": [ + "id", + "isActive", + "weight", + "dimensions", + "specs", + "images" + ], + "properties": { + "id": { + "type": "string", + "description": "SKU unique identifier number." + }, + "externalId": { + "type": "string", + "description": "Unique reference code created to improve the store's organization." + }, + "ean": { + "type": "string", + "description": "Unique SKU identification code (barcode), composed of up to 13 numeric characters." + }, + "manufacturerCode": { + "type": "string", + "description": "SKU reference code in the store." + }, + "isActive": { + "type": "boolean", + "description": "If the SKU is active (`true`) or inactive (`false`)." + }, + "weight": { + "type": "integer", + "description": "SKU weight. It can be lighter than 1000 g." + }, + "dimensions": { + "type": "object", + "description": "SKU dimensions.", + "required": [ + "width", + "height", + "length" + ], + "properties": { + "width": { + "type": "number", + "description": "SKU width." + }, + "height": { + "type": "number", + "description": "SKU height." + }, + "length": { + "type": "number", + "description": "SKU length." + } + } + }, + "RealWeight": { + "type": "number", + "description": "The product's real weight." + }, + "RealDimensions": { + "type": "object", + "description": "The product's real dimensions.", + "required": [ + "width", + "height", + "length" + ], + "properties": { + "width": { + "type": "number", + "description": "The product's real width." + }, + "height": { + "type": "number", + "description": "The product's real height." + }, + "length": { + "type": "number", + "description": "The product's real length." + } + } + }, + "specs": { + "type": "array", + "description": "SKU specifications. This field is mandatory, but nullable if there is only one SKU.", + "nullable": true, + "items": { + "type": "object", + "description": "SKU specification.", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "description": "SKU's specification name." + }, + "value": { + "type": "string", + "description": "SKU's specification values." + } + } + } + }, + "images": { + "type": "array", + "description": "SKU's images IDs.", + "items": { + "description": "SKU image ID.", + "type": "string" + } + } + } + } + }, + "transportModal": { + "type": "string", + "description": "Transport modal of the product.", + "nullable": true + }, + "taxCode": { + "type": "string", + "description": "Product tax code.", + "nullable": true + }, + "origin": { + "type": "string", + "description": "Origin account of the product. It is not possible to alter products where the origin is `marketplace`." + }, + "createdAt": { + "type": "string", + "description": "Date when the product was created." + }, + "updatedAt": { + "type": "string", + "description": "Last date when the product was updated." + } + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Product" + ], + "summary": "Update product", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Updates an existing product and its SKUs.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Product Write** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PutProduct", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product unique identifier number.", + "required": true, + "schema": { + "type": "string", + "example": "189371" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "status", + "name", + "brandId", + "categoryIds", + "specs", + "attributes", + "slug", + "images", + "skus", + "origin" + ], + "properties": { + "id": { + "type": "string", + "description": "Product's unique identifier number.", + "example": "189371" + }, + "externalId": { + "type": "string", + "description": "Product reference unique identifier number in the store.", + "example": "sandboxintegracao-310117347" + }, + "status": { + "type": "string", + "description": "Status of the product. Its values can be `active` or `inactive`.", + "example": "active" + }, + "name": { + "type": "string", + "description": "Product name. Use simple words and avoid other languages or complex writing. This field is essential for SEO and must respect the 150 character limit.", + "example": "Camiseta VTEX 10" + }, + "brandId": { + "type": "string", + "description": "Product's brand unique identifier number.", + "example": "1" + }, + "description": { + "type": "string", + "description": "New description data for SKU/product.", + "example": "VTEX Shirt Black Size S Long Sleeze." + }, + "categoryIds": { + "type": "array", + "description": "Product's categories unique identifier numbers. It can have multiples IDs for each category and subcategories.", + "example": [ + "732", + "412" + ], + "items": { + "type": "string", + "description": "Product's category unique identifier number.", + "example": "732" + } + }, + "specs": { + "type": "array", + "description": "Specifications that will differentiate the possible product SKUs.", + "example": [ + { + "name": "Color", + "values": [ + "Black", + "White" + ] + }, + { + "name": "Size", + "values": [ + "S", + "M", + "L" + ] + } + ], + "items": { + "type": "object", + "description": "SKU specification.", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "Specification name.", + "example": "Color" + }, + "values": { + "type": "array", + "description": "Specification values.", + "items": { + "type": "string", + "description": "Specification value.", + "example": "black" + } + } + } + } + }, + "attributes": { + "type": "array", + "description": "Attributes of the product. Attributes are additional properties used to create site browsing filters.", + "example": [ + { + "name": "Fabric", + "value": "Cotton" + }, + { + "name": "Gender", + "value": "Feminine" + } + ], + "items": { + "type": "object", + "description": "Product attribute.", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "description": "Attribute name.", + "example": "Fabric" + }, + "value": { + "type": "string", + "description": "Attribute value.", + "example": "Cotton" + } + } + } + }, + "slug": { + "type": "string", + "description": "Reference of the product in the URL of the store.", + "example": "/vtex-shirt" + }, + "transportModal": { + "type": "string", + "description": "Transport modal of the product.", + "example": "1", + "nullable": true + }, + "taxCode": { + "type": "string", + "description": "Product tax code.", + "example": "123", + "nullable": true + }, + "images": { + "type": "array", + "description": "Information of the images of the product.", + "example": [ + { + "id": "vtex_logo.jpg", + "url": "https://vtxleo7778.vtexassets.com/assets/vtex.catalog-images/products/vtex_logo.jpg", + "alt": "imagem" + } + ], + "items": { + "type": "object", + "description": "Image information.", + "required": [ + "id", + "url" + ], + "properties": { + "id": { + "type": "string", + "description": "Image ID.", + "example": "vtex_logo.jpg" + }, + "url": { + "type": "string", + "description": "Image URL, which must be in the following format: `https://{accountName}.vtexassets.com/assets/{path}`, saved using the [Catalog Images app](https://developers.vtex.com/vtex-developer-docs/docs/vtex-catalog-images).", + "example": "https://mystore.vtexassets.com/assets/vtex.catalog-images/products/vtex_logo.jpg" + }, + "alt": { + "type": "string", + "description": "Image alternative description.", + "example": "imagem" + } + } + } + }, + "skus": { + "type": "array", + "description": "SKUs of the product.", + "example": [ + { + "id": "182907", + "name": "VTEX Shirt Black Size S", + "externalId": "1909621862", + "ean": "978-1909621862", + "manufacturerCode": "1234567", + "isActive": true, + "weight": 12, + "dimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "RealWeight": 1.6, + "RealDimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "specs": [ + { + "name": "Color", + "value": "Black" + }, + { + "name": "Size", + "value": "S" + } + ], + "images": [ + "vtex_logo.jpg" + ] + }, + { + "id": "182908", + "name": "VTEX Shirt White Size L", + "externalId": "1909621862", + "ean": "978-1909621862", + "manufacturerCode": "1234568", + "isActive": true, + "weight": 300, + "dimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "specs": [ + { + "name": "Color", + "value": "White" + }, + { + "name": "Size", + "value": "L" + } + ], + "images": [ + "vtex_logo.jpg" + ] + } + ], + "items": { + "type": "object", + "description": "SKU information.", + "required": [ + "isActive", + "weight", + "dimensions", + "specs", + "images" + ], + "properties": { + "id": { + "type": "string", + "description": "SKU unique identifier number. Do not include this field when adding a new SKU, only when editing existing SKUs.", + "example": "182907" + }, + "name": { + "type": "string", + "description": "SKU name. Use simple words and avoid other languages or complex writing. This field is essential for SEO and must respect the 150 character limit.", + "example": "VTEX Shirt Black Size S" + }, + "externalId": { + "type": "string", + "description": "Unique reference code created to improve the store's organization.", + "example": "1909621862" + }, + "description": { + "type": "string", + "description": "New description data for SKU or product.", + "example": "Beautiful black shirt. Size: small." + }, + "ean": { + "type": "string", + "description": "Unique SKU identification code (barcode), composed of up to 13 numeric characters.", + "example": "978-1909621862" + }, + "manufacturerCode": { + "type": "string", + "description": "SKU reference code in the store.", + "example": "1234567" + }, + "isActive": { + "type": "boolean", + "description": "Defines if the SKU is active (`true`) or inactive (`false`).", + "example": false + }, + "weight": { + "type": "integer", + "description": "SKU weight. It can be lighter than 1000 g.", + "example": 300 + }, + "dimensions": { + "type": "object", + "description": "SKU dimensions.", + "example": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "required": [ + "width", + "height", + "length" + ], + "properties": { + "width": { + "type": "number", + "description": "SKU width.", + "example": 1.5 + }, + "height": { + "type": "number", + "description": "SKU height.", + "example": 2.1 + }, + "length": { + "type": "number", + "description": "SKU length.", + "example": 1.6 + } + } + }, + "RealWeight": { + "type": "number", + "description": "The product's real weight.", + "example": 1.6 + }, + "RealDimensions": { + "type": "object", + "description": "The product's real dimensions.", + "required": [ + "width", + "height", + "length" + ], + "properties": { + "width": { + "type": "number", + "description": "The product's real width.", + "example": 1.5 + }, + "height": { + "type": "number", + "description": "The product's real height.", + "example": 2.1 + }, + "length": { + "type": "number", + "description": "The product's real length.", + "example": 1.6 + } + } + }, + "specs": { + "type": "array", + "description": "SKU specifications. This field is mandatory, but nullable if there is only one SKU.", + "nullable": true, + "example": [ + { + "name": "Color", + "value": "Black" + }, + { + "name": "Size", + "value": "S" + } + ], + "items": { + "type": "object", + "description": "SKU specification information.", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "description": "SKU's specification name.", + "example": "Color" + }, + "value": { + "type": "string", + "description": "SKU's specification values.", + "example": "Black" + } + } + } + }, + "images": { + "type": "array", + "description": "Array of SKU images IDs.", + "items": { + "type": "string", + "description": "SKU image ID.", + "example": "vtex_logo.jpg" + } + } + } + } + }, + "origin": { + "type": "string", + "description": "Origin account of the product. It is not possible to alter products where the origin is `marketplace`.", + "example": "vtxleo7778" + } + } + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/catalog-seller-portal/products/{productId}/description": { + "get": { + "tags": [ + "Product" + ], + "summary": "Get product description by product ID", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center.](https://support.vtex.com/hc/en-us/requests) \r\n\r\n Retrieves the description of a product given a product ID.\r\n\r\n ## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Product Read** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetProductDescription", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product unique identifier number.", + "required": true, + "schema": { + "type": "string", + "example": "189371" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "productId": "61", + "description": "Beautifully handmade laptop case/sleeve made in the Nepal Himalaya. It can be slipped inside your backpack or carried alone with space for all your work bits and pieces!", + "createdAt": "2022-10-10T19:18:45.612317Z", + "updatedAt": "2022-10-11T18:12:58.825544Z" + }, + "schema": { + "type": "object", + "required": [ + "productId", + "createdAt", + "updatedAt" + ], + "properties": { + "productId": { + "type": "string", + "description": "Product's unique identifier number." + }, + "createdAt": { + "type": "string", + "description": "Date when the brand was created." + }, + "updatedAt": { + "type": "string", + "description": "Last date when the brand was updated." + } + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Product" + ], + "summary": "Update product description by product ID", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Updates the description of a product given a product ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Product Write** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PutProductDescription", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product unique identifier number.", + "required": true, + "schema": { + "type": "string", + "example": "71" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "productId", + "description" + ], + "properties": { + "productId": { + "type": "string", + "description": "Product's unique identifier number.", + "example": "71" + }, + "description": { + "type": "string", + "description": "Product description.", + "example": "White shirt." + } + } + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/catalog-seller-portal/products": { + "post": { + "tags": [ + "Product" + ], + "summary": "Create product", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Creates a new product and its SKUs.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Product Write** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PostProduct", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "status", + "name", + "brandId", + "categoryIds", + "specs", + "attributes", + "slug", + "images", + "skus", + "origin" + ], + "properties": { + "externalId": { + "type": "string", + "description": "Product reference unique identifier number in the store.", + "example": "sandboxintegracao-310117347" + }, + "status": { + "type": "string", + "description": "Status of the product. Its values can be `active` or `inactive`.", + "example": "active" + }, + "name": { + "type": "string", + "description": "Product name. Use simple words and avoid other languages or complex writing. This field is essential for SEO and must respect the 150 character limit.", + "example": "VTEX Shirt" + }, + "brandId": { + "type": "string", + "description": "Product's brand unique identifier number.", + "example": "1" + }, + "description": { + "type": "string", + "description": "Product's data description.", + "example": "VTEX Shirt Black Size S." + }, + "categoryIds": { + "type": "array", + "description": "Product's categories unique identifier numbers. It can have multiples IDs for each category and subcategories.", + "example": [ + "732", + "421" + ], + "items": { + "type": "string", + "description": "Product's Category unique idenfier number.", + "example": "732" + } + }, + "specs": { + "type": "array", + "description": "Specifications that will differentiate the possible product SKUs.", + "example": [ + { + "name": "Color", + "values": [ + "Black", + "White" + ] + }, + { + "name": "Size", + "values": [ + "S", + "M", + "L" + ] + } + ], + "items": { + "type": "object", + "description": "Product specification.", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "Specification name.", + "example": "Color" + }, + "values": { + "type": "array", + "description": "Specification values.", + "example": [ + "Black", + "White" + ], + "items": { + "type": "string", + "description": "Specification value.", + "example": "Black" + } + } + } + } + }, + "attributes": { + "type": "array", + "description": "Attributes of the product. Attributes are additional properties used to create site browsing filters.", + "example": [ + { + "name": "Fabric", + "value": "Cotton" + }, + { + "name": "Gender", + "value": "Feminine" + } + ], + "items": { + "type": "object", + "description": "Product attribute.", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "description": "Attribute name.", + "example": "Fabric" + }, + "value": { + "type": "string", + "description": "Attribute value.", + "example": "Cotton" + } + } + } + }, + "slug": { + "type": "string", + "description": "Reference of the product in the URL of the store.", + "example": "/vtex-shirt" + }, + "images": { + "type": "array", + "description": "Information of the images of the product.", + "example": [ + { + "id": "vtex_logo.jpg", + "url": "https://vtxleo7778.vtexassets.com/assets/vtex.catalog-images/products/vtex_logo.jpg", + "alt": "imagem" + } + ], + "items": { + "type": "object", + "description": "Image information.", + "required": [ + "id", + "url" + ], + "properties": { + "id": { + "type": "string", + "description": "Image ID.", + "example": "vtex_logo.jpg" + }, + "url": { + "type": "string", + "description": "Image URL, which must be in the following format: `https://{accountName}.vtexassets.com/assets/{path}`, saved using the [Catalog Images app](https://developers.vtex.com/vtex-developer-docs/docs/vtex-catalog-images).", + "example": "https://mystore.vtexassets.com/assets/vtex.catalog-images/products/vtex_logo.jpg" + }, + "alt": { + "type": "string", + "description": "Image alternative description.", + "example": "imagem" + } + } + } + }, + "skus": { + "type": "array", + "description": "SKUs of the product.", + "example": [ + { + "name": "VTEX Shirt Black Size S", + "externalId": "1909621862", + "ean": "978-1909621862", + "manufacturerCode": "1234567", + "isActive": true, + "weight": 12, + "dimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "RealWeight": 1.6, + "RealDimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "specs": [ + { + "name": "Color", + "value": "Black" + }, + { + "name": "Size", + "value": "S" + } + ], + "images": [ + "https://mystore.vtexassets.com/assets/vtex.catalog-images/products/vtex_logo.jpg" + ] + }, + { + "name": "VTEX Shirt White Size L", + "externalId": "1909621862", + "ean": "978-1909621862", + "manufacturerCode": "1234568", + "isActive": true, + "weight": 300, + "dimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "specs": [ + { + "name": "Color", + "value": "White" + }, + { + "name": "Size", + "value": "L" + } + ], + "images": [ + "vtex_logo.jpg" + ] + } + ], + "items": { + "type": "object", + "description": "SKU information.", + "required": [ + "name", + "isActive", + "weight", + "dimensions", + "specs", + "images" + ], + "properties": { + "name": { + "type": "string", + "description": "SKU name. Use simple words and avoid other languages or complex writing. This field is essential for SEO and must respect the 150 character limit.", + "example": "VTEX Shirt Black Size S." + }, + "externalId": { + "type": "string", + "description": "Unique reference code created to improve the store's organization.", + "example": "1909621862" + }, + "description": { + "type": "string", + "description": "SKU description.", + "example": "VTEX Shirt Black Size S Long Sleeze." + }, + "ean": { + "type": "string", + "description": "Unique SKU identification code (barcode), composed of up to 13 numeric characters.", + "example": "978-1909621862" + }, + "manufacturerCode": { + "type": "string", + "description": "SKU reference code in the store.", + "example": "1234567" + }, + "isActive": { + "type": "boolean", + "description": "If the SKU is active (`true`) or inactive (`false`).", + "example": false + }, + "weight": { + "type": "integer", + "description": "SKU weight. It can be lighter than 1000 g.", + "example": 300 + }, + "dimensions": { + "type": "object", + "description": "SKU dimensions.", + "example": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "required": [ + "width", + "height", + "length" + ], + "properties": { + "width": { + "type": "number", + "description": "SKU width.", + "example": 1.5 + }, + "height": { + "type": "number", + "description": "SKU height.", + "example": 2.1 + }, + "length": { + "type": "number", + "description": "SKU length.", + "example": 1.6 + } + } + }, + "RealWeight": { + "type": "number", + "description": "The product's real weight.", + "example": 1.6 + }, + "RealDimensions": { + "type": "object", + "description": "The product's real dimensions.", + "required": [ + "width", + "height", + "length" + ], + "properties": { + "width": { + "type": "number", + "description": "The product's real width.", + "example": 1.5 + }, + "height": { + "type": "number", + "description": "The product's real height.", + "example": 2.1 + }, + "length": { + "type": "number", + "description": "The product's real length.", + "example": 1.6 + } + } + }, + "specs": { + "type": "array", + "description": "SKU specifications. This field is mandatory, but nullable if there is only one SKU.", + "nullable": true, + "example": [ + { + "name": "Color", + "value": "Black" + }, + { + "name": "Size", + "value": "S" + } + ], + "items": { + "type": "object", + "description": "SKU specification.", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "description": "SKU's specification name.", + "example": "Color" + }, + "value": { + "type": "string", + "description": "SKU's specification values.", + "example": "Black" + } + } + } + }, + "images": { + "type": "array", + "description": "List of SKU images IDs.", + "items": { + "type": "string", + "description": "SKU image ID.", + "example": "vtex_logo.jpg" + } + } + } + } + }, + "origin": { + "type": "string", + "description": "Origin account of the product. It is not possible to alter products where the origin is `marketplace`.", + "example": "vtxleo7778" + }, + "transportModal": { + "type": "string", + "description": "Transport modal of the product.", + "example": "1", + "nullable": true + }, + "taxCode": { + "type": "string", + "description": "Product tax code.", + "example": "123", + "nullable": true + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "id": "189371", + "status": "active", + "name": "VTEX 10 Shirt", + "brandId": "1", + "brandName": "AOC", + "categoryIds": [ + "732" + ], + "categoryNames": [ + "/sandboxintegracao/Acessórios/" + ], + "specs": [ + { + "name": "Color", + "values": [ + "Black", + "White" + ] + }, + { + "name": "Size", + "values": [ + "S", + "M", + "L" + ] + } + ], + "attributes": [ + { + "name": "Fabric", + "value": "Cotton" + }, + { + "name": "Gender", + "value": "Feminine" + } + ], + "slug": "/vtex-shirt", + "transportModal": null, + "taxCode": null, + "images": [ + { + "id": "vtex_logo.jpg", + "url": "https://vtxleo7778.vtexassets.com/assets/vtex.catalog-images/products/vtex_logo.jpg", + "alt": "VTEX" + } + ], + "skus": [ + { + "id": "182907", + "externalId": "1909621862", + "manufacturerCode": "1234567", + "isActive": true, + "weight": 12, + "dimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "RealWeight": 1.6, + "RealDimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "specs": [ + { + "name": "Color", + "value": "Black" + }, + { + "name": "Size", + "value": "S" + } + ], + "images": [ + "vtex_logo.jpg" + ] + }, + { + "id": "182908", + "externalId": "1909621862", + "manufacturerCode": "1234568", + "isActive": true, + "weight": 300, + "dimensions": { + "width": 1.5, + "height": 2.1, + "length": 1.6 + }, + "specs": [ + { + "name": "Color", + "value": "White" + }, + { + "name": "Size", + "value": "L" + } + ], + "images": [ + "vtex_logo.jpg" + ] + } + ], + "origin": "vtxleo7778", + "createdAt": "2021-01-18T14:41:45.696488+00:00", + "updatedAt": "2021-01-18T14:41:45.696488+00:00" + }, + "schema": { + "type": "object", + "required": [ + "status", + "name", + "brandId", + "brandName", + "categoryIds", + "categoryNames", + "specs", + "attributes", + "slug", + "images", + "skus", + "origin", + "createdAt", + "updatedAt" + ], + "properties": { + "id": { + "type": "string", + "description": "Product's unique identifier number." + }, + "externalId": { + "type": "string", + "description": "Product reference unique identifier number in the store." + }, + "status": { + "type": "string", + "description": "Status of the product. Its values can be `active` or `inactive`." + }, + "name": { + "type": "string", + "description": "Product name. Use simple words and avoid other languages or complex writing. This field is essential for SEO and must respect the 150 character limit." + }, + "brandId": { + "type": "string", + "description": "Product's brand unique identifier number." + }, + "brandName": { + "type": "string", + "description": "Name of the brand associated with the product." + }, + "description": { + "type": "string", + "description": "Description data for product." + }, + "categoryIds": { + "type": "array", + "description": "Product's categories unique identifier numbers. It can have multiples IDs for each category and subcategories.", + "items": { + "type": "string", + "description": "Product's category unique identifier number." + } + }, + "categoryNames": { + "type": "array", + "description": "Names of the product's categories, displayed in a path format.", + "items": { + "type": "string", + "description": "Name of the product's category." + } + }, + "specs": { + "type": "array", + "description": "Specifications that will differentiate the possible product SKUs.", + "items": { + "type": "object", + "description": "Product specification.", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "Specification name." + }, + "values": { + "type": "array", + "description": "Specification values.", + "items": { + "type": "string", + "description": "Specification value." + } + } + } + } + }, + "attributes": { + "type": "array", + "description": "Array of product attributes. Attributes are additional properties used to create site browsing filters.", + "items": { + "type": "object", + "description": "Product attribute information.", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "description": "Attribute name." + }, + "value": { + "type": "string", + "description": "Attribute value." + } + } + } + }, + "slug": { + "type": "string", + "description": "Reference of the product in the URL of the store." + }, + "images": { + "type": "array", + "description": "Information of the images of the product.", + "items": { + "type": "object", + "description": "Image information.", + "required": [ + "id", + "url" + ], + "properties": { + "id": { + "type": "string", + "description": "Image ID." + }, + "url": { + "type": "string", + "description": "Image URL, which must be in the following format: `https://{accountName}.vtexassets.com/assets/{path}`, saved using the [Catalog Images app](https://developers.vtex.com/vtex-developer-docs/docs/vtex-catalog-images)." + }, + "alt": { + "type": "string", + "description": "Image alternative description." + } + } + } + }, + "skus": { + "type": "array", + "description": "SKUs of the product.", + "items": { + "type": "object", + "description": "SKU information.", + "required": [ + "id", + "isActive", + "weight", + "dimensions", + "specs", + "images" + ], + "properties": { + "id": { + "type": "string", + "description": "SKU unique identifier number." + }, + "name": { + "type": "string", + "description": "SKU name. Use simple words and avoid other languages or complex writing. This field is essential for SEO and must respect the 150 character limit." + }, + "externalId": { + "type": "string", + "description": "Unique reference code created to improve the store's organization." + }, + "ean": { + "type": "string", + "description": "Unique SKU identification code (barcode), composed of up to 13 numeric characters." + }, + "manufacturerCode": { + "type": "string", + "description": "SKU reference code in the store." + }, + "isActive": { + "type": "boolean", + "description": "If the SKU is active (`true`) or inactive (`false`)." + }, + "weight": { + "type": "integer", + "description": "SKU weight. It can be lighter than 1000 g." + }, + "dimensions": { + "type": "object", + "description": "SKU dimensions.", + "required": [ + "width", + "height", + "length" + ], + "properties": { + "width": { + "type": "number", + "description": "SKU width." + }, + "height": { + "type": "number", + "description": "SKU height." + }, + "length": { + "type": "number", + "description": "SKU length." + } + } + }, + "RealWeight": { + "type": "number", + "description": "The product's real weight.", + "example": 1.6 + }, + "RealDimensions": { + "type": "object", + "description": "The product's real dimensions.", + "required": [ + "width", + "height", + "length" + ], + "properties": { + "width": { + "type": "number", + "description": "The product's real width." + }, + "height": { + "type": "number", + "description": "The product's real height." + }, + "length": { + "type": "number", + "description": "The product's real length." + } + } + }, + "specs": { + "type": "array", + "description": "SKU specifications. This field is mandatory, but nullable if there is only one SKU.", + "nullable": true, + "items": { + "type": "object", + "description": "SKU specification.", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "description": "SKU's specification name." + }, + "value": { + "type": "string", + "description": "SKU's specification values." + } + } + } + }, + "images": { + "type": "array", + "description": "SKU's images IDs.", + "items": { + "description": "SKU image ID.", + "type": "string" + } + } + } + } + }, + "origin": { + "type": "string", + "description": "Origin account of the product. It is not possible to alter products where the origin is `marketplace`." + }, + "transportModal": { + "type": "string", + "description": "Transport modal of the product.", + "nullable": true + }, + "taxCode": { + "type": "string", + "description": "Product tax code.", + "nullable": true + }, + "createdAt": { + "type": "string", + "description": "Date when the product was created." + }, + "updatedAt": { + "type": "string", + "description": "Last date when the product was updated." + } + } + } + } + } + }, + "204": { + "description": "No Content" + } + } + } + }, + "/api/catalog-seller-portal/skus/_search": { + "get": { + "tags": [ + "SKU" + ], + "summary": "Search for SKU", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Retrieves general information about an SKU taking into consideration the defined search criteria. It is mandatory to use at least one query parameter.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Product Read** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SearchSKU", + "parameters": [ + { + "name": "from", + "in": "query", + "description": "The first page of the interval of the product list.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "to", + "in": "query", + "description": "The last page of the interval of the product list.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "50" + } + }, + { + "name": "id", + "in": "query", + "description": "SKU unique idenfier number.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "externalid", + "in": "query", + "description": "SKU reference unique identifier number in the store.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 123456789 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "data": [ + { + "id": "2", + "productId": "2", + "externalId": "1909621862" + } + ], + "_metadata": { + "total": 1, + "from": 1, + "to": 15 + } + }, + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "List with information about the SKUs.", + "items": { + "type": "object", + "description": "SKU information", + "properties": { + "id": { + "type": "string", + "description": "SKU unique identifier number." + }, + "productId": { + "type": "string", + "description": "Product unique identifier number." + }, + "externalId": { + "type": "string", + "description": "Unique identifier number of the association of the SKU with a Franchise Account." + } + } + } + }, + "_metadata": { + "type": "object", + "description": "Information about the organization and exhibition of the SKU list.", + "properties": { + "total": { + "type": "integer", + "description": "Total of SKUs on the list." + }, + "from": { + "type": "integer", + "description": "The first page of the interval of the SKU list." + }, + "to": { + "type": "integer", + "description": "The last page of the interval of the SKU list." + } + } + } + } + } + } + } + } + } + } + }, + "/api/catalog-seller-portal/skus/ids": { + "get": { + "tags": [ + "SKU" + ], + "summary": "Get list of SKUs", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Retrieves general information about all SKUs.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Product Write** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "ListSKU", + "parameters": [ + { + "name": "from", + "in": "query", + "description": "The first page of the interval of the product list.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "to", + "in": "query", + "description": "The last page of the interval of the product list.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "50" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "data": [ + "1", + "2" + ], + "_metadata": { + "total": 2, + "from": 1, + "to": 5 + } + }, + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "List with information about the SKU.", + "items": { + "type": "string", + "description": "SKU unique identifier number." + } + }, + "_metadata": { + "type": "object", + "description": "Information about the organization and exhibition of the SKU list.", + "properties": { + "total": { + "type": "integer", + "description": "Total of SKUs on the list." + }, + "from": { + "type": "integer", + "description": "The first page of the interval of the SKU list." + }, + "to": { + "type": "integer", + "description": "The last page of the interval of the SKU list." + } + } + } + } + } + } + } + } + } + } + }, + "/api/catalog-seller-portal/brands": { + "get": { + "tags": [ + "Brand" + ], + "summary": "Get list of brands", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Retrieves general information about all brands of the store. It is mandatory to use at least one query parameter.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Brand Read** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "ListBrand", + "parameters": [ + { + "name": "q", + "in": "query", + "description": "Search word.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "tshirt" + } + }, + { + "name": "from", + "in": "query", + "description": "The first page of the interval of the brand list.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "to", + "in": "query", + "description": "The last page of the interval of the brand list.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "50" + } + }, + { + "name": "orderBy", + "in": "query", + "description": "The order that the list is displayed. You can select `name`, or `updated_at` to select the order criteria. Then you can add `,` , `asc` or `desc` to define the brands order.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "status,asc;name,asc" + } + }, + { + "name": "name", + "in": "query", + "description": "Brand name.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "Zwilling" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "data": [ + { + "id": "863", + "name": "Zwilling", + "isActive": false, + "createdAt": "2021-01-18T14:41:45.696488+00:00", + "updatedAt": "2021-01-18T14:41:45.696488+00:00" + }, + { + "id": "1298", + "name": "Zooz Pets", + "isActive": false, + "createdAt": "2021-01-18T14:45:32.900176+00:00", + "updatedAt": "2021-01-18T14:45:32.900176+00:00" + } + ], + "_metadata": { + "total": 1399, + "from": 1, + "to": 10, + "orderBy": "name,desc" + } + }, + "schema": { + "type": "object", + "required": [ + "data", + "_metadata" + ], + "properties": { + "data": { + "type": "array", + "description": "List with information about the store's brands.", + "items": { + "type": "object", + "description": "Brand information.", + "required": [ + "id", + "name", + "isActive", + "createdAt", + "updatedAt" + ], + "properties": { + "id": { + "type": "string", + "description": "Brand unique identifier number." + }, + "name": { + "type": "string", + "description": "Brand name." + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the brand is active (`true`) or inactive (`false`)." + }, + "createdAt": { + "type": "string", + "description": "Date when the brand was created." + }, + "updatedAt": { + "type": "string", + "description": "Last date when the brand was updated." + } + } + } + }, + "_metadata": { + "type": "object", + "description": "Information about the organization and exhibition of the brand list.", + "required": [ + "total", + "from", + "to", + "orderBy" + ], + "properties": { + "total": { + "type": "integer", + "description": "Total of brands on the list." + }, + "from": { + "type": "integer", + "description": "The first page of the interval of the brand list." + }, + "to": { + "type": "integer", + "description": "The last page of the interval of the brand list." + }, + "orderBy": { + "type": "string", + "description": "The order that the list is displayed. You can select `name`, or `updated_at` to select the order criteria. Then you can add `,` , `asc` or `desc` to define the brands order." + } + } + } + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Brand" + ], + "summary": "Create brand", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Creates a new brand.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Brand Write** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PostBrand", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "name", + "isActive" + ], + "properties": { + "name": { + "type": "string", + "description": "Brand name.", + "example": "Zwilling" + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the brand is active (`true`) or inactive (`false`).", + "example": true + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "id": "863", + "name": "Zwilling", + "isActive": true, + "createdAt": "2021-05-17T15:20:36.077253+00:00", + "updatedAt": "2021-01-18T14:41:45.696488+00:00" + }, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Brand unique identifier number." + }, + "name": { + "type": "string", + "description": "Brand name." + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the brand is active (`true`) or inactive (`false`)." + }, + "createdAt": { + "type": "string", + "description": "Date when the brand was created." + }, + "updatedAt": { + "type": "string", + "description": "Last date when the brand was updated." + } + } + } + } + } + } + } + } + }, + "/api/catalog-seller-portal/brands/{brandId}": { + "get": { + "tags": [ + "Brand" + ], + "summary": "Get brand by ID", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Retrieves general information about a brand by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Brand Read** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetBrand", + "parameters": [ + { + "name": "brandId", + "in": "path", + "description": "Brand unique identifier number.", + "required": true, + "schema": { + "type": "string", + "example": "863" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "id": "863", + "name": "Zwilling", + "isActive": false, + "createdAt": "2021-01-18T14:41:45.696488+00:00", + "updatedAt": "2021-01-18T14:41:45.696488+00:00" + }, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Brand unique identifier number." + }, + "name": { + "type": "string", + "description": "Brand name." + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the brand is active (`true`) or inactive (`false`)." + }, + "createdAt": { + "type": "string", + "description": "Date when the brand was created." + }, + "updatedAt": { + "type": "string", + "description": "Last date when the brand was updated." + } + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Brand" + ], + "summary": "Update brand", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Updates an existing brand.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Brand Write** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PutBrand", + "parameters": [ + { + "name": "brandId", + "in": "path", + "description": "Brand unique identifier number.", + "required": true, + "schema": { + "type": "string", + "example": "20" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "example": { + "id": "20", + "name": "Zwilling", + "isActive": true + }, + "schema": { + "type": "object", + "required": [ + "id", + "name", + "isActive" + ], + "properties": { + "id": { + "type": "string", + "description": "Brand unique identifier number.", + "example": "20" + }, + "name": { + "type": "string", + "description": "Brand name.", + "example": "Zwilling" + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the brand is active (`true`) or inactive (`false`).", + "example": true + } + } + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/catalog-seller-portal/category-tree": { + "get": { + "tags": [ + "Category" + ], + "summary": "Get category tree", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Retrieves general information about the category tree from the store.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Category Read** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetCategoryTree", + "parameters": [ + { + "name": "depth", + "in": "query", + "description": "Category tree level.", + "required": false, + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "roots": [ + { + "value": { + "id": "2", + "name": "Departamento Artesanato", + "isActive": true + }, + "children": [ + { + "value": { + "id": "3", + "name": "Artesanato de Barro", + "isActive": false + }, + "children": [ + { + "value": { + "id": "4", + "name": "Artesanato de Barro Vermelho", + "isActive": false + }, + "children": [] + } + ] + } + ] + }, + { + "value": { + "id": "5", + "name": "Perfumes", + "isActive": false + }, + "children": [ + { + "value": { + "id": "6", + "name": "Perfume Feminino", + "isActive": false + }, + "children": [] + }, + { + "value": { + "id": "7", + "name": "Perfume Masculino", + "isActive": false, + "displayOnMenu": false, + "score": 0, + "filterByBrand": false, + "isClickable": false + }, + "children": [] + } + ] + } + ], + "createdAt": "2021-08-16T20:57:13.070813Z", + "updatedAt": "2022-07-07T14:24:56.416337Z" + }, + "schema": { + "type": "object", + "required": [ + "roots" + ], + "properties": { + "roots": { + "type": "array", + "description": "List of all categories of the store.", + "items": { + "type": "object", + "description": "Category information.", + "required": [ + "value", + "children" + ], + "properties": { + "value": { + "type": "object", + "description": "Object with values of a category.", + "required": [ + "id", + "name", + "isActive" + ], + "properties": { + "id": { + "type": "string", + "description": "Category unique identifier number." + }, + "name": { + "type": "string", + "description": "Category name." + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the category is active (`true`) or inactive (`false`)." + } + } + }, + "children": { + "type": "array", + "description": "List of all children categories of the parent category.", + "items": { + "type": "object", + "description": "Child category information.", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "object", + "description": "Object with values of a child category.", + "required": [ + "id", + "name", + "isActive" + ], + "properties": { + "id": { + "type": "string", + "description": "Child category unique identifier number." + }, + "name": { + "type": "string", + "description": "Child category name." + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the child category is active (`true`) or inactive (`false`)." + } + } + } + } + } + } + } + } + }, + "createdAt": { + "type": "string", + "description": "Date when the category tree was created." + }, + "updatedAt": { + "type": "string", + "description": "Last date when the category tree was updated." + } + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Category" + ], + "summary": "Update category tree", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Updates the existing categories in the category tree.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Category Write** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateCategoryTree", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "roots" + ], + "properties": { + "roots": { + "type": "array", + "description": "List of all categories of the store.", + "example": [ + { + "value": { + "id": "1", + "name": "sandboxintegracao", + "isActive": false + }, + "children": [ + { + "value": { + "id": "2", + "name": "Perfumes", + "isActive": false + } + } + ] + } + ], + "items": { + "type": "object", + "description": "Category information.", + "required": [ + "value", + "children" + ], + "properties": { + "value": { + "type": "object", + "description": "Object with values of a category.", + "example": { + "id": "1", + "name": "sandboxintegracao", + "isActive": false + }, + "required": [ + "id", + "name", + "isActive" + ], + "properties": { + "id": { + "type": "string", + "description": "Category unique identifier number.", + "example": "1" + }, + "name": { + "type": "string", + "description": "Category name.", + "example": "sandboxintegracao" + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the category is active (`true`) or inactive (`false`).", + "example": false + } + } + }, + "children": { + "type": "array", + "description": "List of all children categories of the parent category.", + "example": [ + { + "value": { + "id": "2", + "name": "Perfumes", + "isActive": false + } + } + ], + "items": { + "type": "object", + "description": "Child category information.", + "example": { + "value": { + "id": "2", + "name": "Perfumes", + "isActive": false + } + }, + "required": [ + "value" + ], + "properties": { + "value": { + "type": "object", + "description": "Object with values of a child category.", + "required": [ + "id", + "name", + "isActive" + ], + "properties": { + "id": { + "type": "string", + "description": "Child category unique identifier number.", + "example": "2" + }, + "name": { + "type": "string", + "description": "Child category name.", + "example": "Perfumes" + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the child category is active (`true`) or inactive (`false`).", + "example": false + } + } + } + } + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "deprecated": false + } + }, + "/api/catalog-seller-portal/category-tree/categories/{categoryId}": { + "get": { + "tags": [ + "Category" + ], + "summary": "Get category by ID", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Retrieves general information about a category by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Category Read** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getbyid", + "parameters": [ + { + "name": "categoryId", + "in": "path", + "required": true, + "description": "Category unique identifier number.", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "value": { + "id": "1", + "name": "sandboxintegracao", + "isActive": false + }, + "children": [ + { + "value": { + "id": "2", + "name": "Perfumes", + "isActive": false + } + } + ] + }, + "schema": { + "type": "object", + "required": [ + "value", + "children" + ], + "properties": { + "value": { + "type": "object", + "description": "Object with values of a category.", + "required": [ + "id", + "name", + "isActive" + ], + "properties": { + "id": { + "type": "string", + "description": "Category unique identifier number." + }, + "name": { + "type": "string", + "description": "Category name." + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the category is active (`true`) or inactive (`false`)." + } + } + }, + "children": { + "type": "array", + "description": "List of all children categories of the parent category.", + "items": { + "type": "object", + "description": "Children category information.", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "object", + "description": "Object with values of a child category.", + "required": [ + "id", + "name", + "isActive" + ], + "properties": { + "id": { + "type": "string", + "description": "Child category unique identifier number." + }, + "name": { + "type": "string", + "description": "Child category name." + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the child category is active (`true`) or inactive (`false`)." + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "/api/catalog-seller-portal/category-tree/categories": { + "post": { + "tags": [ + "Category" + ], + "summary": "Create category", + "description": " >📘 This API is part of the [Seller Portal Catalog](https://help.vtex.com/en/tutorial/how-the-seller-portal-catalog-works--7pMB6YOt6YQDQQbzFB4Pxp). This functionality is in the Beta stage and can be discontinued at any moment at VTEX's discretion. VTEX will not be responsible for any instabilities caused by its use or discontinuity. If you have any questions, please contact [our Support Center](https://support.vtex.com/hc/en-us/requests). \r\n\r\n Creates a new category.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| CatalogV2 | Management | **Category Write** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateCategory", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "parentId", + "Name" + ], + "properties": { + "parentId": { + "type": "string", + "description": "Parent category unique identifier number.", + "example": "567" + }, + "Name": { + "type": "string", + "description": "Category name.", + "example": "Beauty" + } + } + }, + "example": { + "parentId": "567", + "Name": "Beauty" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "value": { + "id": "1", + "name": "Beauty", + "isActive": false + }, + "children": [ + { + "value": { + "id": "2", + "name": "Perfumes", + "isActive": false + } + } + ] + }, + "schema": { + "type": "object", + "required": [ + "value", + "children" + ], + "properties": { + "value": { + "type": "object", + "description": "Object with values of a category.", + "required": [ + "id", + "name", + "isActive" + ], + "properties": { + "id": { + "type": "string", + "description": "Category unique identifier number." + }, + "name": { + "type": "string", + "description": "Category name." + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the category is active (`true`) or inactive (`false`)." + } + } + }, + "children": { + "type": "array", + "description": "List of all children categories of the parent category.", + "items": { + "type": "object", + "description": "Category information.", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "object", + "description": "Object with values of a child category.", + "required": [ + "id", + "name", + "isActive" + ], + "properties": { + "id": { + "type": "string", + "description": "Child category unique identifier number." + }, + "name": { + "type": "string", + "description": "Child category name." + }, + "isActive": { + "type": "boolean", + "description": "The condition defines if the child category is active (`true`) or inactive (`false`)." + } + } + } + } + } + } + } + } + } + } + } + }, + "deprecated": false + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "tags": [ + { + "name": "Product" + }, + { + "name": "SKU" + }, + { + "name": "Brand" + }, + { + "name": "Category" + } + ] +} diff --git a/clients/manitou/output/catalog.addon.json b/clients/manitou/output/catalog.addon.json new file mode 100644 index 0000000000..af47373080 --- /dev/null +++ b/clients/manitou/output/catalog.addon.json @@ -0,0 +1,465 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Catalog API (Addon)", + "description": "The Catalog API empowers merchants to seamlessly manage their product information. It enables the creation, modification, and deletion of product details, including attributes like images and specifications. SKU management covers product variations. This API also supports organizing products into categories, collections, and manage brands.\r\n\r\n> ⚠️ The default rate limit for the Catalog API is 45,000 requests per minute per account, and 15,000 requests per minute per endpoint.\r\n\r\n> Check the [Catalog onboarding guide](https://developers.vtex.com/docs/guides/catalog-overview), created to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Catalog and is organized by focusing on the developer's journey.\r\n\r\n## Index\r\n\r\n### Category\r\n\r\n* `GET` [Get category tree](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/category/tree/-categoryLevels-)\r\n* `GET` [Get category by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/category/-categoryId-)\r\n* `PUT` [Update category](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/category/-categoryId-)\r\n* `POST` [Create category](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/category)\r\n\r\n### Category specification\r\n\r\n* `GET` [Get specifications by category ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/field/listByCategoryId/-categoryId-)\r\n* `GET` [Get specifications tree by category ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/field/listTreeByCategoryId/-categoryId-)\r\n\r\n### Brand\r\n\r\n* `GET` [Get brand list](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/brand/list)\r\n* `GET` [Get brand list per page](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/brand/pagedlist)\r\n* `GET` [Get brand](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/brand/-brandId-)\r\n* `POST` [Create brand](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/brand)\r\n* `GET` [Get brand and context](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/brand/-brandId-)\r\n* `PUT` [Update brand](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/brand/-brandId-)\r\n* `DELETE` [Delete brand](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/brand/-brandId-)\r\n\r\n### Specification group\r\n\r\n* `GET` [List specification group by category](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/specification/groupbycategory/-categoryId-)\r\n* `GET` [Get specification group](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/groupGet/-groupId-)\r\n* `POST` [Create specification group](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specificationgroup)\r\n* `PUT` [Update specification group](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationgroup/-groupId-)\r\n\r\n### Specification\r\n\r\n* `GET` [Get specification](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/-specificationId-)\r\n* `PUT` [Update specification](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specification/-specificationId-)\r\n* `POST` [Create specification](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specification)\r\n\r\n### Specification field\r\n\r\n* `GET` [Get specification field](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/fieldGet/-fieldId-)\r\n* `POST` [Create specification field](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/specification/field)\r\n* `PUT` [Update specification field](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog_system/pvt/specification/field)\r\n\r\n### Non-structured specification\r\n\r\n* `GET` [Get non-structured specification by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/nonstructured/-Id-)\r\n* `DELETE` [Delete non-structured specification](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/specification/nonstructured/-Id-)\r\n* `GET` [Get non-structured specification by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/nonstructured)\r\n* `DELETE` [Delete non-structured specification by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/specification/nonstructured)\r\n\r\n### Specification value\r\n\r\n* `GET` [Get specification value](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specificationvalue/-specificationValueId-)\r\n* `PUT` [Update specification value](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationvalue/-specificationValueId-)\r\n* `POST` [Create specification value](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specificationvalue)\r\n\r\n### Specification field value\r\n\r\n* `GET` [Get specification field value](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/specification/fieldValue/-fieldValueId-)\r\n* `GET` [Get specification values by field ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/fieldvalue/-fieldId-)\r\n* `POST` [Create specification field value](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/specification/fieldValue)\r\n* `PUT` [Update specification field value](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog_system/pvt/specification/fieldValue)\r\n\r\n### Product\r\n\r\n* `GET` [Get product and SKU IDs](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/GetProductAndSkuIds)\r\n* `GET` [Get product by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-)\r\n* `PUT` [Update product](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/product/-productId-)\r\n* `GET` [Get product and its general context](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/productget/-productId-)\r\n* `GET` [Get product by reference ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/productgetbyrefid/-refId-)\r\n* `GET` [Get product's SKUs by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/products/variations/-productId-)\r\n* `GET` [Get product review rate by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/addon/pvt/review/GetProductRate/-productId-)\r\n* `POST` [Create product with category and brand](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product)\r\n\r\n### Product specification\r\n\r\n* `GET` [Get product specifications by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/-productId-/specification)\r\n* `POST` [Update product specification by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/products/-productId-/specification)\r\n* `GET` [Get product specification and its information by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/specification)\r\n* `POST` [Associate product specification](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product/-productId-/specification)\r\n* `DELETE` [Delete all product specifications by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/specification)\r\n* `DELETE` [Delete a product specification](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/specification/-specificationId-)\r\n* `PUT` [Associate product specification using specification name and group name](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/product/-productId-/specificationvalue)\r\n\r\n### SKU\r\n\r\n* `GET` [List all SKU IDs](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitids)\r\n* `GET` [SKU and context](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitbyid/-skuId-)\r\n* `GET` [Get SKU by reference ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit)\r\n* `POST` [Create SKU](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit)\r\n* `GET` [Get SKU ID by reference ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitidbyrefid/-refId-)\r\n* `GET` [Get SKU by alternate ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitbyalternateId/-alternateId-)\r\n* `GET` [Get SKU list by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitByProductId/-productId-)\r\n* `POST` [Retrieve SKU ID list by reference ID list](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pub/sku/stockkeepingunitidsbyrefids)\r\n* `GET` [Get SKU](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-)\r\n* `PUT` [Update SKU](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-)\r\n\r\n### SKU specification\r\n\r\n* `GET` [Get SKU specifications](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `POST` [Associate SKU specification](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `PUT` [Update SKU specification](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `DELETE` [Delete all SKU specifications](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `DELETE` [Delete SKU specification](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/specification/-specificationId-)\r\n* `PUT` [Associate SKU specification using specification name and group name](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/specificationvalue)\r\n\r\n### SKU file\r\n\r\n* `GET` [Get SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/file)\r\n* `POST` [Create SKU file](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit/-skuId-/file)\r\n* `DELETE` [Delete All SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/file)\r\n* `PUT` [Update SKU file](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-)\r\n* `PUT` [Reorder SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/reorder)\r\n* `DELETE` [Delete SKU image file](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-)\r\n* `PUT` [Copy files from a SKU to another SKU](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/copy/-skuIdfrom-/-skuIdto-/file)\r\n* `DELETE` [Disassociate SKU file](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/disassociate/-skuId-/file/-skuFileId-)\r\n\r\n### SKU complement\r\n\r\n* `GET` [Get SKU complement by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/complement)\r\n* `GET` [Get SKU complements by complement type ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/complement/-complementTypeId-)\r\n* `GET` [Get SKU complements by type](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/complements/-parentSkuId-/-type-)\r\n* `POST` [Create SKU complement](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skucomplement)\r\n* `GET` [Get SKU complement by SKU complement ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skucomplement/-skuComplementId-)\r\n* `DELETE` [Delete SKU complement by SKU complement ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skucomplement/-skuComplementId-)\r\n\r\n### SKU EAN\r\n\r\n* `GET` [Get SKU by EAN](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitbyean/-ean-)\r\n* `GET` [Get EAN by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/ean)\r\n* `DELETE` [Delete all SKU EAN values](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/ean)\r\n* `POST` [Create SKU EAN](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit/-skuId-/ean/-ean-)\r\n* `DELETE` [Delete SKU EAN](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/ean/-ean-)\r\n\r\n### Attachment\r\n\r\n* `GET` [Get attachment](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/attachment/-attachmentid-)\r\n* `PUT` [Update attachment](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/attachment/-attachmentid-)\r\n* `DELETE` [Delete attachment](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/attachment/-attachmentid-)\r\n* `POST` [Create attachment](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/attachment)\r\n* `GET` [Get all attachments](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/attachments)\r\n\r\n### SKU attachment\r\n\r\n* `POST` [Associate SKU attachment](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuattachment)\r\n* `DELETE` [Dissociate attachments and SKUs](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuattachment)\r\n* `GET` [Get SKU attachments by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/attachment)\r\n* `DELETE` [Delete SKU attachment by attachment association ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuattachment/-skuAttachmentAssociationId-)\r\n* `POST` [Associate attachments to an SKU](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/sku/associateattachments)\r\n\r\n### SKU service\r\n\r\n* `GET` [Get SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservice/-skuServiceId-)\r\n* `PUT` [Update SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservice/-skuServiceId-)\r\n* `DELETE` [Dissociate SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservice/-skuServiceId-)\r\n* `POST` [Associate SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservice)\r\n\r\n### SKU service attachment\r\n\r\n* `POST` [Associate SKU service attachment](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservicetypeattachment)\r\n* `DELETE` [Dissociate attachment by attachment ID or SKU service type ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicetypeattachment)\r\n* `DELETE` [Dissociate attachment from SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicetypeattachment/-skuServiceTypeAttachmentId-)\r\n\r\n### SKU service type\r\n\r\n* `POST` [Create SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservicetype)\r\n* `GET` [Get SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-)\r\n* `PUT` [Update SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-)\r\n* `DELETE` [Delete SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-)\r\n\r\n### SKU service value\r\n\r\n* `POST` [Create SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservicevalue)\r\n* `GET` [Get SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-)\r\n* `PUT` [Update SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-)\r\n* `DELETE` [Delete SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-)\r\n\r\n### SKU kit\r\n\r\n* `GET` [Get SKU kit by SKU ID or parent SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunitkit)\r\n* `POST` [Create SKU kit](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunitkit)\r\n* `DELETE` [Delete SKU kit by SKU ID or parent SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunitkit)\r\n* `GET` [Get SKU kit](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunitkit/-kitId-)\r\n* `DELETE` [Delete SKU kit by kit ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunitkit/-kitId-)\r\n\r\n### SKU seller\r\n\r\n* `GET` [Get details of a seller's SKU](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/skuseller/-sellerId-/-sellerSkuId-)\r\n* `POST` [Remove a seller's SKU binding](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/skuseller/remove/-sellerId-/-sellerSkuId-)\r\n* `POST` [Change notification with seller ID and seller SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/skuseller/changenotification/-sellerId-/-sellerSkuId-)\r\n* `POST` [Change notification with SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/skuseller/changenotification/-skuId-)\r\n\r\n### Multi-language beta\r\n\r\n* `GET` [Get product translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/language)\r\n* `PUT` [Create or update product translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/product/-productId-/language)\r\n* `GET` [Get product specification translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/products/-productId-/specification/-specificationId-/language)\r\n* `PUT` [Create or update product specification translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/products/-productId-/specification/-specificationId-/language)\r\n\r\n#### Multi-language SKU beta\r\n* `GET` [Get SKU translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/language)\r\n* `PUT` [Create or update SKU translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/language)\r\n* `GET` [Get SKU attribute translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/attribute/-skuAttributeId-/language)\r\n* `PUT` [Create or update SKU attribute translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/attribute/-skuAttributeId-/language)\r\n* `GET` [Get SKU file translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-/language)\r\n* `PUT` [Create or update SKU file translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-/language)\r\n\r\n#### Multi-language specification beta\r\n* `GET` [Get specification group translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specificationgroup/-specificationGroupId-/language)\r\n* `PUT` [Create or update specification group translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationgroup/-specificationGroupId-/language)\r\n* `GET` [Get specification translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/-specificationId-/language)\r\n* `PUT` [Create or update specification translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specification/-specificationId-/language)\r\n* `GET` [Get specification value translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specificationvalue/-valueId-/language)\r\n* `PUT` [Create or update specification value translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationvalue/-valueId-/language)\r\n\r\n#### Multi-language category beta\r\n* `GET` [Get category translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/category/-categoryId-/language)\r\n* `PUT` [Create or update category translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/category/-categoryId-/language)\r\n\r\n#### Multi-language brand beta\r\n* `GET` [Get brand translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/brand/-brandId-/language)\r\n* `PUT` [Create or update brand translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/brand/-brandId-/language)\r\n\r\n#### Multi-language attachment and service beta\r\n* `GET` [Get attachment translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/attachment/-attachmentId-/language)\r\n* `PUT` [Create or update attachment translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/attachment/-attachmentId-/language)\r\n* `GET` [Get SKU service type translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-/language)\r\n* `PUT` [Create or update SKU service type translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-/language)\r\n* `GET` [Get SKU service translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservice/-skuserviceId-/language)\r\n* `PUT` [Create or update SKU service translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservice/-skuserviceId-/language)\r\n* `GET` [Get SKU service value translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-/language)\r\n* `PUT` [Create or update SKU service value translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-/language)\r\n\r\n#### Multi-language collection beta\r\n* `GET` [Get collection translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-/language)\r\n* `PUT` [Create or update collection translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/collection/-collectionId-/language)\r\n\r\n### Similar category\r\n\r\n* `GET` [Get similar categories](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/similarcategory/)\r\n* `POST` [Add similar category](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product/-productId-/similarcategory/-categoryId-)\r\n* `DELETE` [Delete similar category](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/similarcategory/-categoryId-)\r\n\r\n### Collection\r\n\r\n* `GET` [Get all inactive collections](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/inactive)\r\n* `POST` [Create collection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection)\r\n* `GET` [Import collection file example](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/stockkeepingunit/importfileexample)\r\n* `POST` [Add products to collection by imported file](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection/-collectionId-/stockkeepingunit/importinsert)\r\n* `POST` [Remove products from collection by imported file](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection/-collectionId-/stockkeepingunit/importexclude)\r\n* `GET` [Get products from a collection](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-/products)\r\n* `GET` [Get collection by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-)\r\n* `PUT` [Update collection](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/collection/-collectionId-)\r\n* `DELETE` [Delete collection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/collection/-collectionId-)\r\n\r\n### Subcollection\r\n\r\n* `POST` [Add SKU to subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/stockkeepingunit)\r\n* `DELETE` [Delete SKU from subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/stockkeepingunit/-skuId-)\r\n* `POST` [Associate category to subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/category)\r\n* `DELETE` [Delete category from subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/brand/-categoryId-)\r\n* `POST` [Associate brand to subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/brand)\r\n* `DELETE` [Delete brand from subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/brand/-brandId-)\r\n* `GET` [Get subcollection by collection ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-/subcollection)\r\n* `GET` [Get subcollection by subcollection ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/subcollection/-subCollectionId-)\r\n* `PUT` [Update subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/subcollection/-subCollectionId-)\r\n* `DELETE` [Delete subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-)\r\n* `POST` [Create subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection)\r\n* `POST` [Reposition SKU on the subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection/-collectionId-/position)\r\n* `GET` [Get specification values by subcollection ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/subcollection/-subCollectionId-/specificationvalue)\r\n* `POST` [Use specification value in subcollection by ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/specificationvalue)\r\n* `DELETE` [Delete specification value from subcollection by ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/specificationvalue)\r\n\r\n### Seller\r\n\r\n* `GET` [Get seller list](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/seller/list)\r\n* `GET` [Get seller by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/seller/-sellerId-)\r\n* `PUT` [Update seller](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog_system/pvt/seller)\r\n* `POST` [Create seller](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/seller)\r\n* `GET` [Get seller by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sellers/-sellerId-)\r\n\r\n### Supplier\r\n\r\n* `POST` [Create supplier](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/supplier)\r\n* `PUT` [Update supplier](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/supplier/-supplierId-)\r\n* `DELETE` [Delete supplier](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/supplier/-supplierId-)\r\n\r\n### Trade policy\r\n\r\n* `GET` [Get trade policies by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/salespolicy)\r\n* `POST` [Associate product with trade policy](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product/-productId-/salespolicy/-tradepolicyId-)\r\n* `DELETE` [Remove product from trade policy](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/salespolicy/-tradepolicyId-)\r\n* `GET` [List all SKUs of a trade policy](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitidsbysaleschannel)\r\n\r\n### Sales channel\r\n\r\n* `GET` [Get sales channel List](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/saleschannel/list)\r\n* `GET` [Get sales channel by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/saleschannel/-salesChannelId-)\r\n\r\n### Product indexing\r\n\r\n* `GET` [Get product indexed information](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/GetIndexedInfo/-productId-)\r\n\r\n### Commercial conditions\r\n\r\n* `GET` [Get all commercial conditions](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/commercialcondition/list)\r\n* `GET` [Get commercial condition](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/commercialcondition/-commercialConditionId-)\r\n\r\n### Gift list\r\n\r\n* `GET` [Get gift list](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/addon/pvt/giftlist/get/-listId-)\r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| :---: | :--- | :--- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/addon/pvt/review/GetProductRate/{productId}": { + "get": { + "tags": [ + "Product" + ], + "summary": "Get product review rate by product ID", + "description": "Retrieves the review rate of a product given the product's ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Reviews list** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique numerical identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "number", + "description": "Review rate number." + }, + "example": 3 + } + } + } + }, + "deprecated": false, + "operationId": "get_api_addon_pvt_review_getproductrate_ByProductId" + } + }, + "/api/addon/pvt/giftlist/get/{listId}": { + "get": { + "tags": [ + "Gift list" + ], + "summary": "Get gift list", + "description": "Retrieves information about a gift list by its ID.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "GetGiftList", + "parameters": [ + { + "name": "listId", + "in": "path", + "required": true, + "description": "Gift list unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object with information about the gift list.", + "properties": { + "giftListId": { + "type": "integer", + "description": "Gift list ID." + }, + "name": { + "type": "string", + "description": "Gift list name." + }, + "userId": { + "type": "string", + "description": "User ID." + }, + "fileId": { + "type": "integer", + "description": "File ID.", + "nullable": true + }, + "giftListTypeId": { + "type": "integer", + "description": "Gift list Type ID." + }, + "giftListTypeName": { + "type": "string", + "description": "Gift list Type name." + }, + "giftCardId": { + "type": "integer", + "description": "Gift card ID." + }, + "message": { + "type": "string", + "description": "Gift list message." + }, + "urlFolder": { + "type": "string", + "description": "Slug of the gift list that will be part of its URL." + }, + "dateCreated": { + "type": "string", + "description": "Date when the gift list was created." + }, + "profileSystemUserAddressName": { + "type": "string", + "description": "Name of the user's address." + }, + "profileSystemUserId": { + "type": "string", + "description": "User ID on Profile System." + }, + "eventDate": { + "type": "string", + "description": "Date of the event associated with the Gift list." + }, + "eventLocation": { + "type": "string", + "description": "Location of the event associated with the Gift list." + }, + "eventCity": { + "type": "string", + "description": "City of the event associated with the Gift list." + }, + "eventState": { + "type": "string", + "description": "State of the event associated with the Gift list." + }, + "telemarketingId": { + "type": "integer", + "description": "Telemarketing ID.", + "nullable": true + }, + "telemarketingObservation": { + "type": "string", + "description": "Telemarketing observation.", + "nullable": true + }, + "IsPublic": { + "type": "boolean", + "description": "Defines if the gift list is public." + }, + "isActive": { + "type": "boolean", + "description": "Defines if the gift list is active." + }, + "shipsToOwner": { + "type": "boolean", + "description": "Defines if items purchased from the gift list will be shipped to the owner of the gift list." + }, + "isAddressOk": { + "type": "boolean", + "description": "Validates the address of the gift list." + }, + "version": { + "type": "integer", + "description": "Version of the gift list." + }, + "giftCardRechargeSkuId": { + "type": "integer", + "description": "ID of the SKU that recharges the gift card.", + "nullable": true + }, + "memberNames": { + "type": "string", + "description": "Name of the members of the gift list." + }, + "giftListMembers": { + "type": "array", + "description": "Array of members of the gift list.", + "items": { + "type": "object", + "description": "Object with information about each gift list member.", + "properties": { + "giftListMemberId": { + "type": "integer", + "description": "Gift list member ID." + }, + "giftListId": { + "type": "integer", + "description": "Gift list ID." + }, + "userId": { + "type": "string", + "description": "User ID." + }, + "clientId": { + "type": "string", + "description": "Client ID.", + "nullable": true + }, + "title": { + "type": "string", + "description": "Title of the Gift list member.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the Gift list member." + }, + "surname": { + "type": "string", + "description": "Surname of the Gift list member." + }, + "isAdmin": { + "type": "boolean", + "description": "Defines if the Gift list member is an administrator of the Gift list or not." + }, + "isActive": { + "type": "boolean", + "description": "Defines if the Gift list user is active or not." + }, + "text1": { + "type": "string", + "description": "Complementary text.", + "nullable": true + }, + "text2": { + "type": "string", + "description": "Complementary text.", + "nullable": true + } + } + } + }, + "giftListSkuIds": { + "type": "array", + "description": "Array with the IDs of SKUs that are part of the gift list.", + "nullable": true, + "items": { + "type": "string", + "description": "SKU ID." + } + }, + "address": { + "type": "string", + "description": "Address of the gift list.", + "nullable": true + }, + "fileUrl": { + "type": "string", + "description": "File URL.", + "nullable": true + } + } + }, + "example": { + "giftListId": 1, + "name": "My list", + "userId": "010956A4-A74A-4375-8B7B-3B3B7B89B483", + "clientId": 3, + "fileId": 155233, + "giftListTypeId": 1, + "giftListTypeName": "Weddingg list", + "giftCardId": 2, + "message": "This is a gift list for my wedding.", + "urlFolder": "myweddinglist", + "dateCreated": "2025-05-04T13:23:00", + "profileSystemUserAddressName": "HOME", + "profileSystemUserId": "010956A4-A74A-4375-8B7B-3B3B7B89B483", + "eventDate": "2025-06-21T00:00:00", + "eventLocation": "Barra da Tijuca", + "eventCity": "Rio de Janeiro", + "eventState": "RJ", + "telemarketingId": 1, + "telemarketingObservation": null, + "IsPublic": false, + "isActive": true, + "shipsToOwner": false, + "isAddressOk": true, + "version": 1, + "giftCardRechargeSkuId": 1, + "memberNames": "Rafael Villa-Verde", + "giftListMembers": [ + { + "giftListMemberId": 1, + "giftListId": 2, + "userId": "010956A4-A74A-4375-8B7B-3B3B7B89B483", + "clientId": null, + "title": null, + "name": "Rafael", + "surname": "Villa-Verde", + "isAdmin": true, + "isActive": true, + "text1": null, + "text2": null + } + ], + "giftListSkuIds": null, + "address": "Botafogo", + "fileUrl": "/file/ids/155233-800-800/gl-0_635266293044683588.jpg" + } + } + } + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "tags": [ + { + "name": "SKU service" + }, + { + "name": "SKU service attachment" + }, + { + "name": "SKU service value" + }, + { + "name": "SKU service type" + }, + { + "name": "Category" + }, + { + "name": "Brand" + }, + { + "name": "Attachment" + }, + { + "name": "Product" + }, + { + "name": "Product specification" + }, + { + "name": "Trade policy" + }, + { + "name": "Similar category" + }, + { + "name": "SKU" + }, + { + "name": "SKU EAN" + }, + { + "name": "SKU file" + }, + { + "name": "SKU kit" + }, + { + "name": "SKU specification" + }, + { + "name": "SKU attachment" + }, + { + "name": "SKU complement" + }, + { + "name": "Non-structured specification" + }, + { + "name": "Specification field" + }, + { + "name": "Specification group" + }, + { + "name": "Specification value" + }, + { + "name": "Specification field value" + }, + { + "name": "Category specification" + }, + { + "name": "Specification" + }, + { + "name": "Subcollection" + }, + { + "name": "Collection" + }, + { + "name": "Supplier" + }, + { + "name": "Sales channel" + }, + { + "name": "Seller" + }, + { + "name": "SKU seller" + }, + { + "name": "Multi-language beta" + }, + { + "name": "Multi-language SKU beta" + }, + { + "name": "Multi-language specification beta" + }, + { + "name": "Multi-language category beta" + }, + { + "name": "Multi-language brand beta" + }, + { + "name": "Multi-language attachment and service beta" + }, + { + "name": "Multi-language collection beta" + }, + { + "name": "Product indexing" + }, + { + "name": "Commercial conditions" + }, + { + "name": "Gift list" + } + ] +} diff --git a/clients/manitou/output/catalog.catalog.json b/clients/manitou/output/catalog.catalog.json new file mode 100644 index 0000000000..61034474e1 --- /dev/null +++ b/clients/manitou/output/catalog.catalog.json @@ -0,0 +1,13177 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Catalog API (Catalog)", + "description": "The Catalog API empowers merchants to seamlessly manage their product information. It enables the creation, modification, and deletion of product details, including attributes like images and specifications. SKU management covers product variations. This API also supports organizing products into categories, collections, and manage brands.\r\n\r\n> ⚠️ The default rate limit for the Catalog API is 45,000 requests per minute per account, and 15,000 requests per minute per endpoint.\r\n\r\n> Check the [Catalog onboarding guide](https://developers.vtex.com/docs/guides/catalog-overview), created to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Catalog and is organized by focusing on the developer's journey.\r\n\r\n## Index\r\n\r\n### Category\r\n\r\n* `GET` [Get category tree](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/category/tree/-categoryLevels-)\r\n* `GET` [Get category by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/category/-categoryId-)\r\n* `PUT` [Update category](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/category/-categoryId-)\r\n* `POST` [Create category](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/category)\r\n\r\n### Category specification\r\n\r\n* `GET` [Get specifications by category ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/field/listByCategoryId/-categoryId-)\r\n* `GET` [Get specifications tree by category ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/field/listTreeByCategoryId/-categoryId-)\r\n\r\n### Brand\r\n\r\n* `GET` [Get brand list](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/brand/list)\r\n* `GET` [Get brand list per page](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/brand/pagedlist)\r\n* `GET` [Get brand](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/brand/-brandId-)\r\n* `POST` [Create brand](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/brand)\r\n* `GET` [Get brand and context](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/brand/-brandId-)\r\n* `PUT` [Update brand](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/brand/-brandId-)\r\n* `DELETE` [Delete brand](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/brand/-brandId-)\r\n\r\n### Specification group\r\n\r\n* `GET` [List specification group by category](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/specification/groupbycategory/-categoryId-)\r\n* `GET` [Get specification group](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/groupGet/-groupId-)\r\n* `POST` [Create specification group](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specificationgroup)\r\n* `PUT` [Update specification group](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationgroup/-groupId-)\r\n\r\n### Specification\r\n\r\n* `GET` [Get specification](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/-specificationId-)\r\n* `PUT` [Update specification](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specification/-specificationId-)\r\n* `POST` [Create specification](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specification)\r\n\r\n### Specification field\r\n\r\n* `GET` [Get specification field](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/fieldGet/-fieldId-)\r\n* `POST` [Create specification field](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/specification/field)\r\n* `PUT` [Update specification field](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog_system/pvt/specification/field)\r\n\r\n### Non-structured specification\r\n\r\n* `GET` [Get non-structured specification by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/nonstructured/-Id-)\r\n* `DELETE` [Delete non-structured specification](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/specification/nonstructured/-Id-)\r\n* `GET` [Get non-structured specification by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/nonstructured)\r\n* `DELETE` [Delete non-structured specification by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/specification/nonstructured)\r\n\r\n### Specification value\r\n\r\n* `GET` [Get specification value](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specificationvalue/-specificationValueId-)\r\n* `PUT` [Update specification value](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationvalue/-specificationValueId-)\r\n* `POST` [Create specification value](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specificationvalue)\r\n\r\n### Specification field value\r\n\r\n* `GET` [Get specification field value](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/specification/fieldValue/-fieldValueId-)\r\n* `GET` [Get specification values by field ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/fieldvalue/-fieldId-)\r\n* `POST` [Create specification field value](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/specification/fieldValue)\r\n* `PUT` [Update specification field value](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog_system/pvt/specification/fieldValue)\r\n\r\n### Product\r\n\r\n* `GET` [Get product and SKU IDs](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/GetProductAndSkuIds)\r\n* `GET` [Get product by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-)\r\n* `PUT` [Update product](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/product/-productId-)\r\n* `GET` [Get product and its general context](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/productget/-productId-)\r\n* `GET` [Get product by reference ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/productgetbyrefid/-refId-)\r\n* `GET` [Get product's SKUs by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/products/variations/-productId-)\r\n* `GET` [Get product review rate by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/addon/pvt/review/GetProductRate/-productId-)\r\n* `POST` [Create product with category and brand](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product)\r\n\r\n### Product specification\r\n\r\n* `GET` [Get product specifications by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/-productId-/specification)\r\n* `POST` [Update product specification by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/products/-productId-/specification)\r\n* `GET` [Get product specification and its information by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/specification)\r\n* `POST` [Associate product specification](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product/-productId-/specification)\r\n* `DELETE` [Delete all product specifications by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/specification)\r\n* `DELETE` [Delete a product specification](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/specification/-specificationId-)\r\n* `PUT` [Associate product specification using specification name and group name](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/product/-productId-/specificationvalue)\r\n\r\n### SKU\r\n\r\n* `GET` [List all SKU IDs](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitids)\r\n* `GET` [SKU and context](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitbyid/-skuId-)\r\n* `GET` [Get SKU by reference ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit)\r\n* `POST` [Create SKU](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit)\r\n* `GET` [Get SKU ID by reference ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitidbyrefid/-refId-)\r\n* `GET` [Get SKU by alternate ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitbyalternateId/-alternateId-)\r\n* `GET` [Get SKU list by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitByProductId/-productId-)\r\n* `POST` [Retrieve SKU ID list by reference ID list](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pub/sku/stockkeepingunitidsbyrefids)\r\n* `GET` [Get SKU](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-)\r\n* `PUT` [Update SKU](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-)\r\n\r\n### SKU specification\r\n\r\n* `GET` [Get SKU specifications](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `POST` [Associate SKU specification](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `PUT` [Update SKU specification](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `DELETE` [Delete all SKU specifications](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `DELETE` [Delete SKU specification](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/specification/-specificationId-)\r\n* `PUT` [Associate SKU specification using specification name and group name](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/specificationvalue)\r\n\r\n### SKU file\r\n\r\n* `GET` [Get SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/file)\r\n* `POST` [Create SKU file](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit/-skuId-/file)\r\n* `DELETE` [Delete All SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/file)\r\n* `PUT` [Update SKU file](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-)\r\n* `PUT` [Reorder SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/reorder)\r\n* `DELETE` [Delete SKU image file](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-)\r\n* `PUT` [Copy files from a SKU to another SKU](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/copy/-skuIdfrom-/-skuIdto-/file)\r\n* `DELETE` [Disassociate SKU file](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/disassociate/-skuId-/file/-skuFileId-)\r\n\r\n### SKU complement\r\n\r\n* `GET` [Get SKU complement by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/complement)\r\n* `GET` [Get SKU complements by complement type ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/complement/-complementTypeId-)\r\n* `GET` [Get SKU complements by type](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/complements/-parentSkuId-/-type-)\r\n* `POST` [Create SKU complement](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skucomplement)\r\n* `GET` [Get SKU complement by SKU complement ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skucomplement/-skuComplementId-)\r\n* `DELETE` [Delete SKU complement by SKU complement ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skucomplement/-skuComplementId-)\r\n\r\n### SKU EAN\r\n\r\n* `GET` [Get SKU by EAN](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitbyean/-ean-)\r\n* `GET` [Get EAN by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/ean)\r\n* `DELETE` [Delete all SKU EAN values](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/ean)\r\n* `POST` [Create SKU EAN](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit/-skuId-/ean/-ean-)\r\n* `DELETE` [Delete SKU EAN](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/ean/-ean-)\r\n\r\n### Attachment\r\n\r\n* `GET` [Get attachment](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/attachment/-attachmentid-)\r\n* `PUT` [Update attachment](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/attachment/-attachmentid-)\r\n* `DELETE` [Delete attachment](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/attachment/-attachmentid-)\r\n* `POST` [Create attachment](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/attachment)\r\n* `GET` [Get all attachments](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/attachments)\r\n\r\n### SKU attachment\r\n\r\n* `POST` [Associate SKU attachment](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuattachment)\r\n* `DELETE` [Dissociate attachments and SKUs](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuattachment)\r\n* `GET` [Get SKU attachments by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/attachment)\r\n* `DELETE` [Delete SKU attachment by attachment association ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuattachment/-skuAttachmentAssociationId-)\r\n* `POST` [Associate attachments to an SKU](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/sku/associateattachments)\r\n\r\n### SKU service\r\n\r\n* `GET` [Get SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservice/-skuServiceId-)\r\n* `PUT` [Update SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservice/-skuServiceId-)\r\n* `DELETE` [Dissociate SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservice/-skuServiceId-)\r\n* `POST` [Associate SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservice)\r\n\r\n### SKU service attachment\r\n\r\n* `POST` [Associate SKU service attachment](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservicetypeattachment)\r\n* `DELETE` [Dissociate attachment by attachment ID or SKU service type ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicetypeattachment)\r\n* `DELETE` [Dissociate attachment from SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicetypeattachment/-skuServiceTypeAttachmentId-)\r\n\r\n### SKU service type\r\n\r\n* `POST` [Create SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservicetype)\r\n* `GET` [Get SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-)\r\n* `PUT` [Update SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-)\r\n* `DELETE` [Delete SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-)\r\n\r\n### SKU service value\r\n\r\n* `POST` [Create SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservicevalue)\r\n* `GET` [Get SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-)\r\n* `PUT` [Update SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-)\r\n* `DELETE` [Delete SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-)\r\n\r\n### SKU kit\r\n\r\n* `GET` [Get SKU kit by SKU ID or parent SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunitkit)\r\n* `POST` [Create SKU kit](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunitkit)\r\n* `DELETE` [Delete SKU kit by SKU ID or parent SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunitkit)\r\n* `GET` [Get SKU kit](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunitkit/-kitId-)\r\n* `DELETE` [Delete SKU kit by kit ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunitkit/-kitId-)\r\n\r\n### SKU seller\r\n\r\n* `GET` [Get details of a seller's SKU](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/skuseller/-sellerId-/-sellerSkuId-)\r\n* `POST` [Remove a seller's SKU binding](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/skuseller/remove/-sellerId-/-sellerSkuId-)\r\n* `POST` [Change notification with seller ID and seller SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/skuseller/changenotification/-sellerId-/-sellerSkuId-)\r\n* `POST` [Change notification with SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/skuseller/changenotification/-skuId-)\r\n\r\n### Multi-language beta\r\n\r\n* `GET` [Get product translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/language)\r\n* `PUT` [Create or update product translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/product/-productId-/language)\r\n* `GET` [Get product specification translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/products/-productId-/specification/-specificationId-/language)\r\n* `PUT` [Create or update product specification translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/products/-productId-/specification/-specificationId-/language)\r\n\r\n#### Multi-language SKU beta\r\n* `GET` [Get SKU translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/language)\r\n* `PUT` [Create or update SKU translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/language)\r\n* `GET` [Get SKU attribute translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/attribute/-skuAttributeId-/language)\r\n* `PUT` [Create or update SKU attribute translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/attribute/-skuAttributeId-/language)\r\n* `GET` [Get SKU file translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-/language)\r\n* `PUT` [Create or update SKU file translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-/language)\r\n\r\n#### Multi-language specification beta\r\n* `GET` [Get specification group translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specificationgroup/-specificationGroupId-/language)\r\n* `PUT` [Create or update specification group translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationgroup/-specificationGroupId-/language)\r\n* `GET` [Get specification translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/-specificationId-/language)\r\n* `PUT` [Create or update specification translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specification/-specificationId-/language)\r\n* `GET` [Get specification value translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specificationvalue/-valueId-/language)\r\n* `PUT` [Create or update specification value translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationvalue/-valueId-/language)\r\n\r\n#### Multi-language category beta\r\n* `GET` [Get category translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/category/-categoryId-/language)\r\n* `PUT` [Create or update category translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/category/-categoryId-/language)\r\n\r\n#### Multi-language brand beta\r\n* `GET` [Get brand translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/brand/-brandId-/language)\r\n* `PUT` [Create or update brand translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/brand/-brandId-/language)\r\n\r\n#### Multi-language attachment and service beta\r\n* `GET` [Get attachment translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/attachment/-attachmentId-/language)\r\n* `PUT` [Create or update attachment translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/attachment/-attachmentId-/language)\r\n* `GET` [Get SKU service type translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-/language)\r\n* `PUT` [Create or update SKU service type translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-/language)\r\n* `GET` [Get SKU service translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservice/-skuserviceId-/language)\r\n* `PUT` [Create or update SKU service translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservice/-skuserviceId-/language)\r\n* `GET` [Get SKU service value translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-/language)\r\n* `PUT` [Create or update SKU service value translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-/language)\r\n\r\n#### Multi-language collection beta\r\n* `GET` [Get collection translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-/language)\r\n* `PUT` [Create or update collection translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/collection/-collectionId-/language)\r\n\r\n### Similar category\r\n\r\n* `GET` [Get similar categories](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/similarcategory/)\r\n* `POST` [Add similar category](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product/-productId-/similarcategory/-categoryId-)\r\n* `DELETE` [Delete similar category](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/similarcategory/-categoryId-)\r\n\r\n### Collection\r\n\r\n* `GET` [Get all inactive collections](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/inactive)\r\n* `POST` [Create collection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection)\r\n* `GET` [Import collection file example](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/stockkeepingunit/importfileexample)\r\n* `POST` [Add products to collection by imported file](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection/-collectionId-/stockkeepingunit/importinsert)\r\n* `POST` [Remove products from collection by imported file](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection/-collectionId-/stockkeepingunit/importexclude)\r\n* `GET` [Get products from a collection](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-/products)\r\n* `GET` [Get collection by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-)\r\n* `PUT` [Update collection](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/collection/-collectionId-)\r\n* `DELETE` [Delete collection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/collection/-collectionId-)\r\n\r\n### Subcollection\r\n\r\n* `POST` [Add SKU to subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/stockkeepingunit)\r\n* `DELETE` [Delete SKU from subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/stockkeepingunit/-skuId-)\r\n* `POST` [Associate category to subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/category)\r\n* `DELETE` [Delete category from subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/brand/-categoryId-)\r\n* `POST` [Associate brand to subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/brand)\r\n* `DELETE` [Delete brand from subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/brand/-brandId-)\r\n* `GET` [Get subcollection by collection ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-/subcollection)\r\n* `GET` [Get subcollection by subcollection ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/subcollection/-subCollectionId-)\r\n* `PUT` [Update subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/subcollection/-subCollectionId-)\r\n* `DELETE` [Delete subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-)\r\n* `POST` [Create subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection)\r\n* `POST` [Reposition SKU on the subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection/-collectionId-/position)\r\n* `GET` [Get specification values by subcollection ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/subcollection/-subCollectionId-/specificationvalue)\r\n* `POST` [Use specification value in subcollection by ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/specificationvalue)\r\n* `DELETE` [Delete specification value from subcollection by ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/specificationvalue)\r\n\r\n### Seller\r\n\r\n* `GET` [Get seller list](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/seller/list)\r\n* `GET` [Get seller by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/seller/-sellerId-)\r\n* `PUT` [Update seller](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog_system/pvt/seller)\r\n* `POST` [Create seller](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/seller)\r\n* `GET` [Get seller by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sellers/-sellerId-)\r\n\r\n### Supplier\r\n\r\n* `POST` [Create supplier](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/supplier)\r\n* `PUT` [Update supplier](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/supplier/-supplierId-)\r\n* `DELETE` [Delete supplier](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/supplier/-supplierId-)\r\n\r\n### Trade policy\r\n\r\n* `GET` [Get trade policies by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/salespolicy)\r\n* `POST` [Associate product with trade policy](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product/-productId-/salespolicy/-tradepolicyId-)\r\n* `DELETE` [Remove product from trade policy](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/salespolicy/-tradepolicyId-)\r\n* `GET` [List all SKUs of a trade policy](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitidsbysaleschannel)\r\n\r\n### Sales channel\r\n\r\n* `GET` [Get sales channel List](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/saleschannel/list)\r\n* `GET` [Get sales channel by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/saleschannel/-salesChannelId-)\r\n\r\n### Product indexing\r\n\r\n* `GET` [Get product indexed information](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/GetIndexedInfo/-productId-)\r\n\r\n### Commercial conditions\r\n\r\n* `GET` [Get all commercial conditions](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/commercialcondition/list)\r\n* `GET` [Get commercial condition](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/commercialcondition/-commercialConditionId-)\r\n\r\n### Gift list\r\n\r\n* `GET` [Get gift list](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/addon/pvt/giftlist/get/-listId-)\r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| :---: | :--- | :--- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/catalog/pvt/product/{productId}": { + "get": { + "tags": [ + "Product" + ], + "summary": "Get product by ID", + "description": "Retrieves a specific product by its ID. The response body fields are exactly the information needed to create a new product. \r\n> 📘 Onboarding guide \r\n>\r\n> Check the [Catalog onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/catalog-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Catalog and is organized by focusing on the developer's journey.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product and SKU Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetProductbyid", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique numerical identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 42, + "Name": "Zoom Stefan Janoski Canvas RM SB Varsity Red", + "DepartmentId": 2000089, + "CategoryId": 2000090, + "BrandId": 12121219, + "LinkId": "stefan-janoski-canvas-varsity-red", + "RefId": "sr_1_90", + "IsVisible": true, + "Description": "The Nike Zoom Stefan Janoski Men's Shoe is made with a premium leather upper for superior durability and a flexible midsole for all-day comfort. A tacky gum rubber outsole delivers outstanding traction.", + "DescriptionShort": "The Nike Zoom Stefan Janoski is made with a premium leather.", + "ReleaseDate": "2020-01-01T00:00:00", + "KeyWords": "Zoom,Stefan,Janoski", + "Title": "Zoom Stefan Janoski Canvas RM SB Varsity Re", + "IsActive": true, + "TaxCode": "", + "MetaTagDescription": "The Nike Zoom Stefan Janoski Men's Shoe is made with a premium leather upper for superior durability and a flexible midsole for all-day comfort. A tacky gum rubber outsole delivers outstanding traction.", + "SupplierId": 1, + "ShowWithoutStock": true, + "AdWordsRemarketingCode": "", + "LomadeeCampaignCode": "", + "Score": 1 + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Product's unique numerical identifier." + }, + "Name": { + "type": "string", + "description": "Product's name. Limited to 150 characters." + }, + "DepartmentId": { + "type": "integer", + "description": "Department ID according to the product's category." + }, + "CategoryId": { + "type": "integer", + "description": "Category ID associated with this product." + }, + "BrandId": { + "type": "integer", + "description": "Brand ID associated with this product." + }, + "LinkId": { + "type": "string", + "description": "Slug that will be used to build the product page URL. If it not informed, it will be generated according to the product's name replacing spaces and special characters by hyphens (`-`)." + }, + "RefId": { + "type": "string", + "description": "Product Reference Code. The limit for the product `RefId` is 100 characters." + }, + "IsVisible": { + "type": "boolean", + "description": "Shows (`true`) or hides (`false`) the product in search result and product pages, but the product can still be added to the shopping cart. Usually applicable for gifts." + }, + "Description": { + "type": "string", + "description": "Product description." + }, + "DescriptionShort": { + "type": "string", + "description": "Short product description. This information can be displayed on both the product page and the shelf, using the following controls:\r\n Store Framework: `$product.DescriptionShort`.\r\n Legacy CMS Portal: ``." + }, + "ReleaseDate": { + "type": "string", + "description": "Used to assist in the ordering of the search result of the site. Using the `O=OrderByReleaseDateDESC` query string, you can pull this value and show the display order by release date. This attribute is also used as a condition for dynamic collections." + }, + "KeyWords": { + "type": "string", + "description": "Store Framework: Deprecated. \r\nLegacy CMS Portal: Keywords or synonyms related to the product, separated by comma (`,`). \"Television\", for example, can have a substitute word like \"TV\". This field is important to make your searches more comprehensive." + }, + "Title": { + "type": "string", + "description": "Product's Title tag. Limited to 150 characters. It is presented in the browser tab and corresponds to the title of the product page. This field is important for SEO." + }, + "IsActive": { + "type": "boolean", + "description": "Activate (`true`) or inactivate (`false`) product." + }, + "TaxCode": { + "type": "string", + "description": "Product tax code, used for tax calculation." + }, + "MetaTagDescription": { + "type": "string", + "description": "Brief description of the product for SEO. It is recommended not to exceed 150 characters." + }, + "SupplierId": { + "type": "integer", + "description": "Deprecated field.", + "deprecated": true, + "nullable": true + }, + "ShowWithoutStock": { + "type": "boolean", + "description": "If `true`, activates the [Notify Me](https://help.vtex.com/en/tutorial/setting-up-the-notify-me-option--2VqVifQuf6Co2KG048Yu6e) option when the product is out of stock." + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + }, + "Score": { + "type": "integer", + "description": "Value used to set the priority on the search result page." + } + } + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Product" + ], + "summary": "Update product", + "description": "Updates an existing product.\r\n\r\n>❗ Although some fields are not required to get a response `200 OK`, if you don't send a field or send its value as empty or `null`, all previously configured information will be deleted, and boolean fields will turn to `false`. So, to update a product, you should get its data using the [Get product by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-) endpoint and use it as a template for the current request body.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product and SKU Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Name", + "CategoryId", + "BrandId" + ], + "properties": { + "Name": { + "type": "string", + "description": "Product's name. Limited to 150 characters.", + "example": "Zoom Stefan Janoski Canvas RM SB Varsity Red" + }, + "DepartmentId": { + "type": "integer", + "description": "Department ID according to the product's category.", + "example": 2000089 + }, + "CategoryId": { + "type": "integer", + "description": "Category ID associated with this product.", + "example": 2000090 + }, + "BrandId": { + "type": "integer", + "description": "Brand ID associated with this product.", + "example": 12121219 + }, + "LinkId": { + "type": "string", + "description": "Slug that will be used to build the product page URL. If it not informed, it will be generated according to the product's name replacing spaces and special characters by hyphens (`-`).", + "example": "stefan-janoski-canvas-varsity-red" + }, + "RefId": { + "type": "string", + "description": "Product Reference Code. The limit for the product `RefId` is 100 characters.", + "example": "sr_1_90" + }, + "IsVisible": { + "type": "boolean", + "description": "Shows (`true`) or hides (`false`) the product in search result and product pages, but the product can still be added to the shopping cart. Usually applicable for gifts.", + "example": true + }, + "Description": { + "type": "string", + "description": "Product description.", + "example": "The Nike Zoom Stefan Janoski Men's Shoe is made with a premium leather upper for superior durability and a flexible midsole for all-day comfort. A tacky gum rubber outsole delivers outstanding traction." + }, + "DescriptionShort": { + "type": "string", + "description": "Short product description. This information can be displayed on both the product page and the shelf, using the following controls:\r\n Store Framework: `$product.DescriptionShort`.\r\n Legacy CMS Portal: ``.", + "example": "The Nike Zoom Stefan Janoski is made with a premium leather." + }, + "ReleaseDate": { + "type": "string", + "description": "Used to assist in the ordering of the search result of the site. Using the `O=OrderByReleaseDateDESC` query string, you can pull this value and show the display order by release date. This attribute is also used as a condition for dynamic collections.", + "example": "2019-01-01T00:00:00" + }, + "KeyWords": { + "type": "string", + "description": "Store Framework: Deprecated. \r\nLegacy CMS Portal: Keywords or synonyms related to the product, separated by comma (`,`). \"Television\", for example, can have a substitute word like \"TV\". This field is important to make your searches more comprehensive.", + "example": "Zoom,Stefan,Janoski" + }, + "Title": { + "type": "string", + "description": "Product's Title tag. Limited to 150 characters. It is presented in the browser tab and corresponds to the title of the product page. This field is important for SEO.", + "example": "Zoom Stefan Janoski Canvas RM SB Varsity Red" + }, + "IsActive": { + "type": "boolean", + "description": "Activate (`true`) or inactivate (`false`) product.", + "example": true + }, + "TaxCode": { + "type": "string", + "description": "Product tax code, used for tax calculation.", + "example": "12345" + }, + "MetaTagDescription": { + "type": "string", + "description": "Brief description of the product for SEO. It is recommended not to exceed 150 characters.", + "example": "The Nike Zoom Stefan Janoski Men's Shoe is made with a premium leather upper for superior durability and a flexible midsole for all-day comfort. A tacky gum rubber outsole delivers outstanding traction." + }, + "SupplierId": { + "type": "integer", + "description": "Deprecated field.", + "deprecated": true, + "nullable": true, + "example": null + }, + "ShowWithoutStock": { + "type": "boolean", + "description": "If `true`, activates the [Notify Me](https://help.vtex.com/en/tutorial/setting-up-the-notify-me-option--2VqVifQuf6Co2KG048Yu6e) option when the product is out of stock.", + "example": true + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true, + "nullable": true, + "example": null + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true, + "nullable": true, + "example": null + }, + "Score": { + "type": "integer", + "description": "Value used to set the priority on the search result page.", + "example": 1 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 42, + "Name": "Zoom Stefan Janoski Canvas RM SB Varsity Red", + "DepartmentId": 2000089, + "CategoryId": 2000090, + "BrandId": 12121219, + "LinkId": "stefan-janoski-canvas-varsity-red", + "RefId": "sr_1_90", + "IsVisible": true, + "Description": "The Nike Zoom Stefan Janoski Men's Shoe is made with a premium leather upper for superior durability and a flexible midsole for all-day comfort. A tacky gum rubber outsole delivers outstanding traction.", + "DescriptionShort": "The Nike Zoom Stefan Janoski is made with a premium leather.", + "ReleaseDate": "2020-01-01T00:00:00", + "KeyWords": "Zoom,Stefan,Janoski", + "Title": "Zoom Stefan Janoski Canvas RM SB Varsity Re", + "IsActive": true, + "TaxCode": "", + "MetaTagDescription": "The Nike Zoom Stefan Janoski Men's Shoe is made with a premium leather upper for superior durability and a flexible midsole for all-day comfort. A tacky gum rubber outsole delivers outstanding traction.", + "SupplierId": 1, + "ShowWithoutStock": true, + "AdWordsRemarketingCode": "", + "LomadeeCampaignCode": "", + "Score": 1 + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Product's unique numerical identifier." + }, + "Name": { + "type": "string", + "description": "Product's name. Limited to 150 characters." + }, + "DepartmentId": { + "type": "integer", + "description": "Department ID according to the product's category." + }, + "CategoryId": { + "type": "integer", + "description": "Category ID associated with this product." + }, + "BrandId": { + "type": "integer", + "description": "Brand ID associated with this product." + }, + "LinkId": { + "type": "string", + "description": "Slug that will be used to build the product page URL. If not informed, it will be generated according to the product's name replacing spaces and special characters by hyphens (`-`)." + }, + "RefId": { + "type": "string", + "description": "Product reference code." + }, + "IsVisible": { + "type": "boolean", + "description": "Shows (`true`) or hides (`false`) the product in search result and product pages, but the product can still be added to the shopping cart. Usually applicable for gifts." + }, + "Description": { + "type": "string", + "description": "Product description." + }, + "DescriptionShort": { + "type": "string", + "description": "Short product description. This information can be displayed on both the product page and the shelf, using the following controls:\r\n Store Framework: `$product.DescriptionShort`.\r\n Legacy CMS Portal: ``." + }, + "ReleaseDate": { + "type": "string", + "description": "Used to assist in the ordering of the search result of the site. Using the `O=OrderByReleaseDateDESC` query string, you can pull this value and show the display order by release date. This attribute is also used as a condition for dynamic collections." + }, + "KeyWords": { + "type": "string", + "description": "Store Framework: Deprecated. \r\nLegacy CMS Portal: Keywords or synonyms related to the product, separated by comma (`,`). \"Television\", for example, can have a substitute word like \"TV\". This field is important to make your searches more comprehensive." + }, + "Title": { + "type": "string", + "description": "Product's Title tag. Limited to 150 characters. It is presented in the browser tab and corresponds to the title of the product page. This field is important for SEO." + }, + "IsActive": { + "type": "boolean", + "description": "Activate (`true`) or inactivate (`false`) product." + }, + "TaxCode": { + "type": "string", + "description": "Product tax code, used for tax calculation." + }, + "MetaTagDescription": { + "type": "string", + "description": "Brief description of the product for SEO. It's recommended that you don't exceed 150 characters." + }, + "SupplierId": { + "type": "integer", + "description": "Deprecated field.", + "deprecated": true, + "nullable": true + }, + "ShowWithoutStock": { + "type": "boolean", + "description": "If `true`, activates the [Notify Me](https://help.vtex.com/en/tutorial/setting-up-the-notify-me-option--2VqVifQuf6Co2KG048Yu6e) option when the product is out of stock." + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + }, + "Score": { + "type": "integer", + "description": "Value used to set the priority on the search result page." + } + } + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_product_ByProductId" + } + }, + "/api/catalog/pvt/product": { + "post": { + "tags": [ + "Product" + ], + "summary": "Create product with category and brand", + "description": "This endpoint allows two types of request:\r\n\r\n**Type 1:** Creating a new product as well as a new category path (including subcategories) and a new brand by using `CategoryPath` and `BrandName` parameters.\r\n\r\n**Type 2:** Creating a new product given an existing `BrandId` and an existing `CategoryId`.\r\n\r\nWhen creating a product, regardless of the type of request, if there is a need to create a new product with a specific custom product ID, specify the `Id` (integer) in the request body. Otherwise, VTEX will generate the ID automatically.\r\n> 📘 Onboarding guide \r\n>\r\n> Check the new [Catalog onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/catalog-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Catalog and is organized by focusing on the developer's journey.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product and SKU Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "title": "New category and brand", + "type": "object", + "description": "Request type that creates a new product as well as a new category path (including subcategories) and a new brand by using `CategoryPath` and `BrandName` parameters.", + "required": [ + "Name" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Product's unique numerical identifier. If not informed, it will be automatically generated by VTEX.", + "example": 42 + }, + "Name": { + "type": "string", + "description": "Product's name. Limited to 150 characters.", + "example": "Black T-Shirt" + }, + "CategoryPath": { + "type": "string", + "description": "Path of categories associated with this product, from the highest level of category to the lowest level, separated by `/`. It is mandatory to use either this field or the `CategoryId` field.", + "example": "Mens/Clothing/T-Shirts" + }, + "DepartmentId": { + "type": "integer", + "description": "Department ID according to the product's category.", + "example": 1 + }, + "BrandName": { + "type": "string", + "description": "Name of the brand that will be associated with this product. It is mandatory to use either this field or the `BrandId` field. If you wish to create a new brand, that is, in case the brand does not exist yet, use this field instead of `BrandId`.", + "example": "Acme" + }, + "RefId": { + "type": "string", + "description": "Product Reference Code. The limit for the product `RefId` is 100 characters.", + "example": "31011706925" + }, + "Title": { + "type": "string", + "description": "Product's Title tag. Limited to 150 characters. It is presented in the browser tab and corresponds to the title of the product page. This field is important for SEO.", + "example": "Black T-Shirt" + }, + "LinkId": { + "type": "string", + "description": "Slug that will be used to build the product page URL. If it not informed, it will be generated according to the product's name replacing spaces and special characters by hyphens (`-`).", + "example": "tshirt-black" + }, + "Description": { + "type": "string", + "description": "Product description.", + "example": "A classic black t-shirt made from soft, breathable cotton" + }, + "ReleaseDate": { + "type": "string", + "description": "Used to assist in the ordering of the search result of the site. Using the `O=OrderByReleaseDateDESC` query string, you can pull this value and show the display order by release date. This attribute is also used as a condition for dynamic collections.", + "example": "2025-07-01T00:00:00" + }, + "IsVisible": { + "type": "boolean", + "description": "Shows (`true`) or hides (`false`) the product in search result and product pages, but the product can still be added to the shopping cart. Usually applicable for gifts.", + "example": true + }, + "IsActive": { + "type": "boolean", + "description": "Activate (`true`) or inactivate (`false`) product.", + "example": true + }, + "TaxCode": { + "type": "string", + "description": "Product tax code, used for tax calculation. This field is important for SEO. Limited to 150 characters.", + "example": "12345" + }, + "MetaTagDescription": { + "type": "string", + "description": "Brief description of the product for SEO. It is recommended not to exceed 150 characters.", + "example": "Very cool t-shirt for sports" + }, + "ShowWithoutStock": { + "type": "boolean", + "description": "If `true`, activates the [Notify Me](https://help.vtex.com/en/tutorial/setting-up-the-notify-me-option--2VqVifQuf6Co2KG048Yu6e) option when the product is out of stock.", + "example": true + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true, + "example": null, + "nullable": true + }, + "Score": { + "type": "integer", + "description": "Value used to set the priority on the search result page.", + "example": 1 + } + } + }, + { + "title": "Associating it to an existing category and brand", + "type": "object", + "description": "Request type that creates a new product given an existing `BrandId` and an existing `CategoryId`.", + "required": [ + "Name" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Product's unique numerical identifier. If not informed, it will be automatically generated by VTEX.", + "example": 42 + }, + "Name": { + "type": "string", + "description": "Product's name. Limited to 150 characters.", + "example": "Black T-Shirt" + }, + "DepartmentId": { + "type": "integer", + "description": "Department ID according to the product's category.", + "example": 1 + }, + "CategoryId": { + "type": "integer", + "description": "ID of an existing category that will be associated with this product. It is mandatory to use either this field or the `CategoryPath` field.", + "example": 2 + }, + "BrandId": { + "type": "integer", + "description": "ID of an existing brand that will be associated with this product. It is mandatory to use either this field or the `BrandName` field.", + "example": 2000000 + }, + "LinkId": { + "type": "string", + "description": "Slug that will be used to build the product page URL. If it not informed, it will be generated according to the product's name replacing spaces and special characters by hyphens (`-`).", + "example": "premium-tshirt-cotton" + }, + "RefId": { + "type": "string", + "description": "Product Reference Code. The limit for the product `RefId` is 100 characters.", + "example": "310117869" + }, + "IsVisible": { + "type": "boolean", + "description": "Shows (`true`) or hides (`false`) the product in search result and product pages, but the product can still be added to the shopping cart. Usually applicable for gifts.", + "example": true + }, + "Description": { + "type": "string", + "description": "Product description.", + "example": "A classic black t-shirt made from soft, breathable cotton" + }, + "DescriptionShort": { + "type": "string", + "description": "Short product description. This information can be displayed on both the product page and the shelf, using the following controls:\r\n Store Framework: `$product.DescriptionShort`.\r\n Legacy CMS Portal: ``.", + "example": "Great premium cotton t-shirt" + }, + "ReleaseDate": { + "type": "string", + "description": "Used to assist in the ordering of the search result of the site. Using the `O=OrderByReleaseDateDESC` query string, you can pull this value and show the display order by release date. This attribute is also used as a condition for dynamic collections.", + "example": "2025-07-01T00:00:00" + }, + "KeyWords": { + "type": "string", + "description": "Store Framework: Deprecated. \r\nLegacy CMS Portal: Keywords or synonyms related to the product, separated by comma (`,`). \"Television\", for example, can have a substitute word like \"TV\". This field is important to make your searches more comprehensive.", + "example": "Blouse" + }, + "Title": { + "type": "string", + "description": "Product's Title tag. Limited to 150 characters. It is presented in the browser tab and corresponds to the title of the product page. This field is important for SEO.", + "example": "Premium black t-shirt" + }, + "IsActive": { + "type": "boolean", + "description": "Activate (`true`) or inactivate (`false`) product.", + "example": true + }, + "TaxCode": { + "type": "string", + "description": "Product tax code, used for tax calculation. This field is important for SEO. Limited to 150 characters.", + "example": "12345" + }, + "MetaTagDescription": { + "type": "string", + "description": "Brief description of the product for SEO. It is recommended not to exceed 150 characters.", + "example": "Very cool t-shirt for sports" + }, + "SupplierId": { + "type": "integer", + "description": "Deprecated field.", + "example": null, + "deprecated": true, + "nullable": true + }, + "ShowWithoutStock": { + "type": "boolean", + "description": "If `true`, activates the [Notify Me](https://help.vtex.com/en/tutorial/setting-up-the-notify-me-option--2VqVifQuf6Co2KG048Yu6e) option when the product is out of stock.", + "example": true + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true, + "nullable": true, + "example": null + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true, + "nullable": true, + "example": null + }, + "Score": { + "type": "integer", + "description": "Value used to set the priority on the search result page.", + "example": 1 + } + } + } + ] + }, + "examples": { + "New category and brand": { + "value": { + "Id": 42, + "Name": "Black T-Shirt", + "CategoryPath": "Mens/Clothing/T-Shirts", + "DepartmentId": 1, + "BrandName": "Acme", + "RefId": "31011706925", + "Title": "Black T-Shirt", + "LinkId": "tshirt-black", + "Description": "A classic black t-shirt made from soft, breathable cotton", + "ReleaseDate": "2025-07-01T00:00:00", + "IsVisible": true, + "IsActive": true, + "TaxCode": "12345", + "MetaTagDescription": "tshirt black", + "ShowWithoutStock": true, + "LomadeeCampaignCode": null, + "Score": 1 + } + }, + "Associating it to an existing category and brand": { + "value": { + "Id": 42, + "Name": "Black T-Shirt", + "DepartmentId": 1, + "CategoryId": 2, + "BrandId": 2000000, + "LinkId": "premium-tshirt-cotton", + "RefId": "310117869", + "IsVisible": true, + "Description": "A classic black t-shirt made from soft, breathable cotton", + "DescriptionShort": "Great premium cotton t-shirt", + "ReleaseDate": "2025-07-01T00:00:00", + "KeyWords": "Blouse", + "Title": "Premium black t-shirt", + "IsActive": true, + "TaxCode": "12345", + "MetaTagDescription": "Very cool t-shirt for sports", + "SupplierId": null, + "ShowWithoutStock": true, + "AdWordsRemarketingCode": null, + "LomadeeCampaignCode": null, + "Score": 1 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 42, + "Name": "Black T-Shirt", + "DepartmentId": 1, + "CategoryId": 2, + "BrandId": 2000000, + "LinkId": "premium-tshirt-cotton", + "RefId": "310117869", + "IsVisible": true, + "Description": "A classic black t-shirt made from soft, breathable cotton", + "DescriptionShort": "Great premium cotton t-shirt", + "ReleaseDate": "2025-07-01T00:00:00", + "KeyWords": "Blouse", + "Title": "Premium black t-shirt", + "IsActive": true, + "TaxCode": "12345", + "MetaTagDescription": "Very cool t-shirt for sports", + "SupplierId": 1, + "ShowWithoutStock": true, + "AdWordsRemarketingCode": null, + "LomadeeCampaignCode": null, + "Score": 1 + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Product's unique numerical identifier." + }, + "Name": { + "type": "string", + "description": "Product's name. Limited to 150 characters." + }, + "DepartmentId": { + "type": "integer", + "description": "Department ID according to the product's category." + }, + "CategoryId": { + "type": "integer", + "description": "Category ID associated with this product." + }, + "BrandId": { + "type": "integer", + "description": "Brand ID associated with this product." + }, + "LinkId": { + "type": "string", + "description": "Slug that will be used to build the product page URL. If it not informed, it will be generated according to the product's name replacing spaces and special characters by hyphens (`-`)." + }, + "RefId": { + "type": "string", + "description": "Product Reference Code." + }, + "IsVisible": { + "type": "boolean", + "description": "Shows (`true`) or hides (`false`) the product in search result and product pages, but the product can still be added to the shopping cart. Usually applicable for gifts." + }, + "Description": { + "type": "string", + "description": "Product description." + }, + "DescriptionShort": { + "type": "string", + "description": "Short product description. This information can be displayed on both the product page and the shelf, using the following controls:\r\n Store Framework: `$product.DescriptionShort`.\r\n Legacy CMS Portal: ``." + }, + "ReleaseDate": { + "type": "string", + "description": "Used to assist in the ordering of the search result of the site. Using the `O=OrderByReleaseDateDESC` query string, you can pull this value and show the display order by release date. This attribute is also used as a condition for dynamic collections." + }, + "KeyWords": { + "type": "string", + "description": "Store Framework: Deprecated. \r\nLegacy CMS Portal: Keywords or synonyms related to the product, separated by comma (`,`). \"Television\", for example, can have a substitute word like \"TV\". This field is important to make your searches more comprehensive." + }, + "Title": { + "type": "string", + "description": "Product's title tag, which corresponds to the title of the product page, presented in the browser tab. This field is important for SEO. Limited to 150 characters." + }, + "IsActive": { + "type": "boolean", + "description": "Activate (`true`) or inactivate (`false`) product." + }, + "TaxCode": { + "type": "string", + "description": "Product tax code, used for tax calculation." + }, + "MetaTagDescription": { + "type": "string", + "description": "Brief description of the product for SEO. It's recommended that you don't exceed 150 characters." + }, + "SupplierId": { + "type": "integer", + "description": "Supplier unique identifier.", + "deprecated": true, + "nullable": true + }, + "ShowWithoutStock": { + "type": "boolean", + "description": "If `true`, activates the [Notify Me](https://help.vtex.com/en/tutorial/setting-up-the-notify-me-option--2VqVifQuf6Co2KG048Yu6e) option when the product is out of stock." + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true, + "nullable": true + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true, + "nullable": true + }, + "Score": { + "type": "integer", + "description": "Value used to set the priority on the search result page." + } + } + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_product" + } + }, + "/api/catalog/pvt/product/{productId}/specification": { + "get": { + "tags": [ + "Product specification" + ], + "summary": "Get product specifications and their information by product ID", + "description": "Retrieves information of all specifications of a product by the product's ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product and SKU Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetProductSpecificationbyProductID", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique numerical identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "Id": 227, + "ProductId": 1, + "FieldId": 33, + "FieldValueId": 135, + "Text": "ValueA" + }, + { + "Id": 228, + "ProductId": 1, + "FieldId": 34, + "FieldValueId": 1, + "Text": "Giant" + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object with the product specification information.", + "properties": { + "Id": { + "type": "integer", + "description": "ID of the association of the specification and the product. This ID is used to update or delete the specification." + }, + "ProductId": { + "type": "integer", + "description": "Product ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID." + }, + "FieldValueId": { + "type": "integer", + "description": "Current specification value ID." + }, + "Text": { + "type": "string", + "description": "Current specification value text." + } + } + } + } + } + } + } + }, + "deprecated": false + }, + "post": { + "tags": [ + "Product specification" + ], + "summary": "Associate product specification", + "description": "Associates a previously defined specification to a product.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product and SKU Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "FieldId" + ], + "properties": { + "FieldId": { + "type": "integer", + "description": "Specification field ID.", + "example": 19 + }, + "FieldValueId": { + "type": "integer", + "description": "Specification value ID. Mandatory for `FieldTypeId` `5`, `6` and `7`. Must not be used for any other Field types.", + "example": 12 + }, + "Text": { + "type": "string", + "description": "Value of specification. Only for `FieldTypeId` different from `5`, `6` and `7`.", + "example": "Metal" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 41, + "FieldId": 19, + "FieldValueId": 1, + "Text": "test" + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "ID of the association of the specification and the product. This ID is used to update or delete the specification." + }, + "ProductId": { + "type": "integer", + "description": "Product ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID." + }, + "FieldValueId": { + "type": "integer", + "description": "Specification value ID. Mandatory for `FieldTypeId` `5`, `6` and `7`. Must not be used for any other field types." + }, + "Text": { + "type": "string", + "description": "Value of specification. Only for `FieldTypeId` different from `5`, `6` and `7`." + } + } + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_product_ByProductId_specification" + }, + "delete": { + "tags": [ + "Product specification" + ], + "summary": "Delete all product specifications by product ID", + "description": "Deletes all product specifications given a specific product ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product and SKU Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "DeleteAllProductSpecifications", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique numerical identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/catalog/pvt/product/{productId}/specification/{specificationId}": { + "delete": { + "tags": [ + "Product specification" + ], + "summary": "Delete a product specification", + "description": "Deletes a product specification given a product ID (`productId`) and a specification ID (`specificationId`). For specifications with predefined values (such as radio, checkbox, or combo), you must use the specification field ID (`specificationFieldId`) instead. Otherwise, the request will return a `404 Not Found` status code.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product and SKU Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "DeleteaProductSpecification", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique numerical identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "specificationId", + "in": "path", + "description": "Product specification's unique numerical identifier. For radio, checkbox, or combo specifications, use the specification field ID (`specificationFieldId`) instead. You can retrieve these values using the endpoint [Get product specifications and their information by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/specification). They correspond to the `Id` and `FieldId` values, respectively.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 7 + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "404": { + "description": "Not Found", + "content": { + "text/plain": { + "schema": { + "type": "string", + "description": "The server could not find the requested resource. Verify if the endpoint URL is correct and that all required parameters are provided. A common reason for this response is using a `specificationId` for specifications that have predefined values (such as radio, checkbox, or combo). In these cases, use the `specificationFieldId` instead." + }, + "example": "{No message}" + } + } + } + } + } + }, + "/api/catalog/pvt/product/{productId}/specificationvalue": { + "put": { + "tags": [ + "Product specification" + ], + "summary": "Associate product specification using specification name and group name", + "description": "Associates a specification to a product using specification name and group name. Automatically creates the informed group, specification and values if they had not been created before.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product and SKU Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "example": { + "FieldName": "Material", + "GroupName": "Composition", + "RootLevelSpecification": true, + "FieldValues": [ + "Cotton", + "Polyester" + ] + }, + "schema": { + "type": "object", + "description": "Object with product specification information.", + "required": [ + "FieldName", + "GroupName", + "RootLevelSpecification", + "FieldValues" + ], + "properties": { + "FieldName": { + "type": "string", + "description": "Specification name. Limited to 100 characters.", + "example": "Material" + }, + "GroupName": { + "type": "string", + "description": "Group name.", + "example": "Composition" + }, + "RootLevelSpecification": { + "type": "boolean", + "description": "Root level specification.", + "example": true + }, + "FieldValues": { + "type": "array", + "description": "Array of specification values.", + "example": [ + "Cotton", + "Polyester" + ], + "items": { + "type": "string", + "description": "Specification value.", + "example": "Cotton" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "Id": 239, + "ProductId": 1, + "FieldId": 85, + "FieldValueId": 193, + "Text": "Value123" + } + ], + "schema": { + "type": "array", + "description": "Array with information of all product specifications.", + "items": { + "type": "object", + "description": "Object with information of the specification.", + "properties": { + "Id": { + "type": "integer", + "description": "ID of the association of the product and the specification." + }, + "ProductId": { + "type": "integer", + "description": "Product ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID." + }, + "FieldValueId": { + "type": "integer", + "description": "Current specification value ID." + }, + "Text": { + "type": "string", + "description": "Current specification value text." + } + } + } + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_product_ByProductId_specificationvalue" + } + }, + "/api/catalog/pvt/stockkeepingunit": { + "get": { + "tags": [ + "SKU" + ], + "summary": "Get SKU by reference ID", + "description": "Retrieves information about a specific SKU by its `RefId`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "RefId", + "in": "query", + "required": true, + "description": "SKU reference ID.", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 1, + "ProductId": 1, + "IsActive": true, + "Name": "Royal Canin Feline Urinary 500g", + "RefId": "0001", + "PackagedHeight": 6, + "PackagedLength": 24, + "PackagedWidth": 14, + "PackagedWeightKg": 550, + "Height": 0, + "Length": 0, + "Width": 0, + "WeightKg": 0, + "CubicWeight": 1, + "IsKit": false, + "CreationDate": "2020-03-12T15:42:00", + "RewardValue": 0, + "EstimatedDateArrival": null, + "ManufacturerCode": "", + "CommercialConditionId": 1, + "MeasurementUnit": "un", + "UnitMultiplier": 1, + "ModalType": null, + "KitItensSellApart": false, + "Videos": [] + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "SKU unique identifier." + }, + "ProductId": { + "type": "integer", + "description": "ID of the product associated with this SKU." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU is active (`true`) or not (`false`)." + }, + "ActivateIfPossible": { + "type": "boolean", + "description": "When set to `true`, this attribute will automatically update the SKU as active once associated with an image or an active component." + }, + "Name": { + "type": "string", + "description": "SKU name, meaning the variation of the previously added product. For example: **Product** - _Fridge_, **SKU** - _110V_." + }, + "RefId": { + "type": "string", + "description": "Reference code used internally for organizational purposes. Must be unique. Required only if `Ean` is not informed, but can be used alongside `Ean` as well." + }, + "Ean": { + "type": "string", + "description": "EAN code. Required only if `RefId` is not informed, but can be used alongside `RefId` as well." + }, + "PackagedHeight": { + "type": "number", + "description": "Height used for shipping calculation." + }, + "PackagedLength": { + "type": "number", + "description": "Length used for shipping calculation." + }, + "PackagedWidth": { + "type": "number", + "description": "Width used for shipping calculation." + }, + "PackagedWeightKg": { + "type": "integer", + "description": "Weight used for shipping calculation, in the measurement unit [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams." + }, + "Height": { + "type": "number", + "description": "SKU real height." + }, + "Length": { + "type": "number", + "description": "SKU real length." + }, + "Width": { + "type": "number", + "description": "SKU real width." + }, + "WeightKg": { + "type": "number", + "description": "Weight of the SKU in the measurement [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams." + }, + "CubicWeight": { + "type": "number", + "description": "[Cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128)." + }, + "IsKit": { + "type": "boolean", + "description": "Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted." + }, + "CreationDate": { + "type": "string", + "description": "Date and time of the SKU's creation." + }, + "RewardValue": { + "type": "number", + "description": "Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1." + }, + "EstimatedDateArrival": { + "type": "string", + "description": "SKU estimated arrival date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format, when the product is on pre-sale. You must take into consideration both the launch date and the freight calculation for the arrival date.", + "nullable": true + }, + "ManufacturerCode": { + "type": "string", + "description": "Identifier provided by the manufacturers to identify their product. This field should be filled in if the product has a specific manufacturer's code." + }, + "CommercialConditionId": { + "type": "integer", + "description": "Commercial condition ID, used to define SKU specific promotions or installment rules. In case of no specific condition, use `1` (default value). This field does not accept `0`. Learn more at [Registering a commercial condition](https://help.vtex.com/tutorial/registering-a-commercial-condition--tutorials_445).", + "default": 1 + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. For example, if a product is sold in boxes, but customers want to buy per square meter (m²). In common cases, use `\"un\"`." + }, + "UnitMultiplier": { + "type": "number", + "description": "Multiple number of SKU. If the multiplier is 5.0000, the product can be added in multiple quantities of 5, 10, 15, 20, onward." + }, + "ModalType": { + "type": "string", + "nullable": true, + "description": "Links an unusual type of SKU that needs special transportation, such as meat, glass, or a mattress, to a carrier specialized in delivering it. This field should be filled in with the name of the modal (e.g. \"Chemicals\" or \"Refrigerated products\"). To learn more about this feature, read our articles [How the modal works](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) and [Setting up modal for carriers](https://help.vtex.com/en/tutorial/configure-modal--3jhLqxuPhuiq24UoykCcqy)." + }, + "KitItensSellApart": { + "type": "boolean", + "description": "Defines if kit components can be sold apart." + }, + "Videos": { + "type": "array", + "description": "Videos URLs.", + "items": { + "type": "string", + "description": "Video URL." + } + } + } + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_stockkeepingunit" + }, + "post": { + "tags": [ + "SKU" + ], + "summary": "Create SKU", + "description": "Creates a new SKU.\r\n\r\nIf there is a need to create a new SKU with a specific custom ID, specify the `Id` (integer) in the request. Otherwise, VTEX will generate the ID automatically.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ProductId", + "Name", + "PackagedHeight", + "PackagedLength", + "PackagedWidth", + "PackagedWeightKg" + ], + "properties": { + "Id": { + "type": "integer", + "description": "SKU unique identifier. If not informed, it will be automatically generated by VTEX.", + "example": 1 + }, + "ProductId": { + "type": "integer", + "description": "ID of the product associated with this SKU.", + "example": 42 + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU is active (`true`) or not (`false`). During SKU creation, do not set this field as `true` or you will receive a `400 Bad Request` error. You should activate the SKU afterwards, as explained in [Activating an SKU](https://developers.vtex.com/docs/guides/skus#activating-an-sku).", + "example": false + }, + "ActivateIfPossible": { + "type": "boolean", + "description": "When set to `true`, this attribute will automatically update the SKU as active once associated with an image or an active component. We recommend setting it to `true`, unless you plan to have an internal workflow to manually activate SKUs.", + "example": true + }, + "Name": { + "type": "string", + "description": "SKU name, meaning the variation of the previously added product. For example: **Product** - _Fridge_, **SKU** - _110V_. Limited to 200 characters.", + "example": "Size 10" + }, + "RefId": { + "type": "string", + "description": "Reference code used internally for organizational purposes. Must be unique. Required only if `Ean` is not informed, but can be used alongside `Ean` as well. The limit for the SKU `RefId` is 50 characters.", + "example": "B096QW8Y8Z" + }, + "PackagedHeight": { + "type": "number", + "description": "Height used for shipping calculation.", + "example": 10 + }, + "PackagedLength": { + "type": "number", + "description": "Length used for shipping calculation.", + "example": 10 + }, + "PackagedWidth": { + "type": "number", + "description": "Width used for shipping calculation.", + "example": 10 + }, + "PackagedWeightKg": { + "type": "integer", + "description": "Weight used for shipping calculation, in the measurement [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams. Do not fill in this field with `0` or `null`, because this might result in shipping issues.", + "example": 10 + }, + "Height": { + "type": "number", + "description": "SKU real height.", + "example": 1 + }, + "Length": { + "type": "number", + "description": "SKU real length.", + "example": 1 + }, + "Width": { + "type": "number", + "description": "SKU real width.", + "example": 1 + }, + "WeightKg": { + "type": "number", + "description": "Weight of the SKU in the measurement [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams.", + "example": 1 + }, + "CubicWeight": { + "type": "number", + "description": "[Cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128).", + "example": 0.1667 + }, + "IsKit": { + "type": "boolean", + "description": "Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted.", + "example": false + }, + "CreationDate": { + "type": "string", + "description": "Date and time of the SKU's creation.", + "example": "2020-01-25T15:51:29.2614605" + }, + "RewardValue": { + "type": "number", + "description": "Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1.", + "example": 1 + }, + "EstimatedDateArrival": { + "type": "string", + "nullable": true, + "description": "To add the product as pre-sale, enter the product estimated arrival date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format. You must take into consideration both the launch date and the freight calculation for the arrival date.", + "example": null + }, + "ManufacturerCode": { + "type": "string", + "description": "Identifier provided by the manufacturers to identify their product. This field should be filled in if the product has a specific manufacturer's code.", + "example": "123" + }, + "CommercialConditionId": { + "type": "integer", + "description": "Commercial condition ID, used to define SKU specific promotions or installment rules. In case of no specific condition, use `1` (default value). This field does not accept `0`. Learn more at [Registering a commercial condition](https://help.vtex.com/tutorial/registering-a-commercial-condition--tutorials_445).", + "example": 1 + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. In common cases, use `un` (unit).\n\rThe acceptables values are:\n\r- `un`: Unit\n\r- `kg`: Kilogram\n\r- `g`: Gram\n\r- `mg`: Milligram\n\r- `m`: Meter\n\r- `m²`: Square meter\n\r- `m³`: Cubic meter\n\r- `cm`: Centimeter\n\r- `cm²`: Square centimeter\n\r- `cm³`: Cubic centimeter\n\r- `mm`: Millimeter\n\r- `mm²`: Square millimeter\n\r- `mm³`: Cubic millimeter\n\r- `oz`: Ounce\n\r- `lb`: Pound\n\r- `ft`: Foot\n\r- `ft²`: Square foot\n\r- `ft³`: Cubic foot\n\r- `in`: Inch\n\r- `in²`: Square inch\n\r- `in³`: Cubic inch", + "example": "un", + "enum": [ + "un", + "kg", + "g", + "mg", + "m", + "m²", + "m³", + "cm", + "cm²", + "cm³", + "mm", + "mm²", + "mm³", + "oz", + "lb", + "ft", + "ft²", + "ft³", + "in", + "in²", + "in³" + ] + }, + "UnitMultiplier": { + "type": "number", + "description": "Multiple number of SKU. If the multiplier is 5.0000, the product can be added in multiple quantities of 5, 10, 15, 20, onward.", + "example": 2 + }, + "ModalType": { + "type": "string", + "nullable": true, + "description": "Links an unusual type of SKU that needs special transportation, such as meat, glass, or a mattress, to a carrier specialized in delivering it. This field should be filled in with the name of the modal (e.g. \"Chemicals\" or \"Refrigerated products\"). To learn more about this feature, read our articles [How the modal works](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) and [Setting up modal for carriers](https://help.vtex.com/en/tutorial/configure-modal--3jhLqxuPhuiq24UoykCcqy).", + "example": null + }, + "KitItensSellApart": { + "type": "boolean", + "description": "Defines if kit components can be sold apart.", + "example": false + }, + "Videos": { + "type": "array", + "description": "Videos URLs.", + "items": { + "type": "string", + "description": "URL", + "example": "https://www.youtube.com/" + }, + "example": [ + "https://www.youtube.com/" + ] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 70, + "ProductId": 42, + "IsActive": false, + "ActivateIfPossible": false, + "Name": "Size 10", + "RefId": "B096QW8Y8Z", + "PackagedHeight": 10, + "PackagedLength": 10, + "PackagedWidth": 10, + "PackagedWeightKg": 10, + "Height": 1, + "Length": 1, + "Width": 1, + "WeightKg": 1, + "CubicWeight": 0.1667, + "IsKit": false, + "CreationDate": "2020-01-25T15:51:29.2614605", + "RewardValue": 0, + "EstimatedDateArrival": null, + "ManufacturerCode": "", + "CommercialConditionId": 1, + "MeasurementUnit": "un", + "UnitMultiplier": 2, + "ModalType": null, + "KitItensSellApart": false, + "Videos": [ + "https://www.youtube.com/" + ] + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "SKU unique identifier." + }, + "ProductId": { + "type": "integer", + "description": "ID of the product associated with this SKU." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU is active (`true`) or not (`false`)." + }, + "ActivateIfPossible": { + "type": "boolean", + "description": "When set to `true`, this attribute will automatically update the SKU as active once associated with an image or an active component." + }, + "Name": { + "type": "string", + "description": "SKU name, meaning the variation of the previously added product. For example: **Product** - _Fridge_, **SKU** - _110V_." + }, + "RefId": { + "type": "string", + "description": "Reference code used internally for organizational purposes. Must be unique. Required only if `Ean` is not informed, but can be used alongside `Ean` as well." + }, + "PackagedHeight": { + "type": "number", + "description": "Height used for shipping calculation." + }, + "PackagedLength": { + "type": "number", + "description": "Length used for shipping calculation." + }, + "PackagedWidth": { + "type": "number", + "description": "Width used for shipping calculation." + }, + "PackagedWeightKg": { + "type": "integer", + "description": "Weight used for shipping calculation, in the measurement unit [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams." + }, + "Height": { + "type": "number", + "description": "SKU real height." + }, + "Length": { + "type": "number", + "description": "SKU real length." + }, + "Width": { + "type": "number", + "description": "SKU real width." + }, + "WeightKg": { + "type": "number", + "description": "Weight of the SKU in the measurement unit [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams." + }, + "CubicWeight": { + "type": "number", + "description": "[Cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128)." + }, + "IsKit": { + "type": "boolean", + "description": "Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted." + }, + "CreationDate": { + "type": "string", + "description": "Date and time of the SKU's creation." + }, + "RewardValue": { + "type": "number", + "description": "Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1." + }, + "EstimatedDateArrival": { + "type": "string", + "description": "SKU estimated arrival date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format, when the product is on pre-sale. You must take into consideration both the launch date and the freight calculation for the arrival date.", + "nullable": true + }, + "ManufacturerCode": { + "type": "string", + "description": "Identifier provided by the manufacturers to identify their product. This field should be filled in if the product has a specific manufacturer's code." + }, + "CommercialConditionId": { + "type": "integer", + "description": "Commercial condition ID, used to define SKU specific promotions or installment rules. In case of no specific condition, use `1` (default value). This field does not accept `0`. Learn more at [Registering a commercial condition](https://help.vtex.com/tutorial/registering-a-commercial-condition--tutorials_445).", + "default": 1 + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. For example, if a product is sold in boxes, but customers want to buy per square meter (m²). In common cases, use `'un'`." + }, + "UnitMultiplier": { + "type": "number", + "description": "Multiple number of SKU. If the multiplier is 5.0000, the product can be added in multiple quantities of 5, 10, 15, 20, onward." + }, + "ModalType": { + "type": "string", + "nullable": true, + "description": "Links an unusual type of SKU that needs special transportation, such as meat, glass, or a mattress, to a carrier specialized in delivering it. This field should be filled in with the name of the modal (e.g. \"Chemicals\" or \"Refrigerated products\"). To learn more about this feature, read our articles [How the modal works](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) and [Setting up modal for carriers](https://help.vtex.com/en/tutorial/configure-modal--3jhLqxuPhuiq24UoykCcqy)." + }, + "KitItensSellApart": { + "type": "boolean", + "description": "Defines if kit components can be sold apart." + }, + "Videos": { + "type": "array", + "description": "Videos URLs.", + "items": { + "type": "string", + "description": "Video URL." + } + } + } + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_stockkeepingunit" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}": { + "get": { + "tags": [ + "SKU" + ], + "summary": "Get SKU", + "description": "Retrieves a specific SKU by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Sku", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "SKU unique identifier number.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 70, + "ProductId": 42, + "IsActive": false, + "ActivateIfPossible": false, + "Name": "Size 10", + "RefId": "B096QW8Y8Z", + "PackagedHeight": 10, + "PackagedLength": 10, + "PackagedWidth": 10, + "PackagedWeightKg": 10, + "Height": 1, + "Length": 1, + "Width": 1, + "WeightKg": 1, + "CubicWeight": 0.1667, + "IsKit": false, + "CreationDate": "2020-01-25T15:51:29.2614605", + "RewardValue": 0, + "EstimatedDateArrival": null, + "ManufacturerCode": "", + "CommercialConditionId": 1, + "MeasurementUnit": "un", + "UnitMultiplier": 2, + "ModalType": null, + "KitItensSellApart": false, + "Videos": [ + "https://www.youtube.com/" + ] + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "SKU unique identifier." + }, + "ProductId": { + "type": "integer", + "description": "ID of the product associated with this SKU." + }, + "IsActive": { + "type": "boolean", + "description": "Shows if the SKU is active (`true`) or not (`false`)." + }, + "ActivateIfPossible": { + "type": "boolean", + "description": "When set to `true`, this attribute will automatically update the SKU as active once associated with an image or an active component." + }, + "Name": { + "type": "string", + "description": "SKU name, meaning the variation of the previously added product. For example: **Product** - _Fridge_, **SKU** - _110V_." + }, + "RefId": { + "type": "string", + "description": "Reference code used internally for organizational purposes. Must be unique. It is not required only if EAN code already exists. If not, this field must be provided." + }, + "PackagedHeight": { + "type": "number", + "description": "Height used for shipping calculation." + }, + "PackagedLength": { + "type": "number", + "description": "Length used for shipping calculation." + }, + "PackagedWidth": { + "type": "number", + "description": "Width used for shipping calculation." + }, + "PackagedWeightKg": { + "type": "integer", + "description": "Weight used for shipping calculation, in the measurement unit [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams." + }, + "Height": { + "type": "number", + "description": "SKU real height." + }, + "Length": { + "type": "number", + "description": "SKU real length." + }, + "Width": { + "type": "number", + "description": "SKU real width." + }, + "WeightKg": { + "type": "number", + "description": "Weight of the SKU in the measurement [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams." + }, + "CubicWeight": { + "type": "number", + "description": "[Cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128)." + }, + "IsKit": { + "type": "boolean", + "description": "Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted." + }, + "CreationDate": { + "type": "string", + "description": "Date and time of the SKU's creation." + }, + "RewardValue": { + "type": "number", + "description": "Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1." + }, + "EstimatedDateArrival": { + "type": "string", + "nullable": true, + "description": "SKU estimated arrival date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format, when the product is on pre-sale. You must take into consideration both the launch date and the freight calculation for the arrival date." + }, + "ManufacturerCode": { + "type": "string", + "description": "Identifier provided by the manufacturers to identify their product. This field should be filled in if the product has a specific manufacturer's code." + }, + "CommercialConditionId": { + "type": "integer", + "description": "Commercial condition ID, used to define SKU specific promotions or installment rules. In case of no specific condition, use `1` (default value). This field does not accept `0`. Learn more at [Registering a commercial condition](https://help.vtex.com/tutorial/registering-a-commercial-condition--tutorials_445)." + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. For example, if a product is sold in boxes, but customers want to buy per square meter (m²). In common cases, use `\"un\"`." + }, + "UnitMultiplier": { + "type": "number", + "description": "Multiple number of SKU. If the multiplier is 5.0000, the product can be added in multiple quantities of 5, 10, 15, 20, onward." + }, + "ModalType": { + "type": "string", + "nullable": true, + "description": "Links an unusual type of SKU that needs special transportation, such as meat, glass, or a mattress, to a carrier specialized in delivering it. This field should be filled in with the name of the modal (e.g. \"Chemicals\" or \"Refrigerated products\"). To learn more about this feature, read our articles [How the modal works](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) and [Setting up modal for carriers](https://help.vtex.com/en/tutorial/configure-modal--3jhLqxuPhuiq24UoykCcqy)." + }, + "KitItensSellApart": { + "type": "boolean", + "description": "Defines if kit components can be sold apart." + }, + "Videos": { + "type": "array", + "description": "Videos URLs.", + "items": { + "type": "string", + "description": "Video URL." + } + } + } + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "SKU" + ], + "summary": "Update SKU", + "description": "Updates an existing SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ProductId", + "Name", + "PackagedHeight", + "PackagedLength", + "PackagedWidth", + "PackagedWeightKg", + "IsActive" + ], + "properties": { + "ProductId": { + "type": "integer", + "description": "ID of the product associated with this SKU.", + "example": 42 + }, + "IsActive": { + "type": "boolean", + "description": "Although the inclusion of the IsActive field is optional, not including it will result in the field's value being interpreted as null, leading to the deactivation of the SKU. When updating the integration with the Catalog, send (`true`) If you wish to make sure the SKU is active. Otherwise send (`false`).", + "example": false + }, + "ActivateIfPossible": { + "type": "boolean", + "description": "When set to `true`, this attribute will automatically update the SKU as active once associated with an image or an active component.", + "example": false + }, + "Name": { + "type": "string", + "description": "SKU name, meaning the variation of the previously added product. For example: **Product** - _Fridge_, **SKU** - _110V_.", + "example": "Size 10" + }, + "RefId": { + "type": "string", + "description": "Reference code used internally for organizational purposes. Must be unique. It is not required only if EAN code already exists. If not, this field must be provided. The limit for the SKU `RefId` is 50 characters.", + "example": "B096QW8Y8Z" + }, + "PackagedHeight": { + "type": "number", + "description": "Height used for shipping calculation.", + "example": 10 + }, + "PackagedLength": { + "type": "number", + "description": "Length used for shipping calculation.", + "example": 10 + }, + "PackagedWidth": { + "type": "number", + "description": "Width used for shipping calculation.", + "example": 10 + }, + "PackagedWeightKg": { + "type": "integer", + "description": "Weight used for shipping calculation, in the measurement [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams. Do not fill in this field with `0` or `null`, because this might result in shipping issues.", + "example": 10 + }, + "Height": { + "type": "number", + "description": "SKU real height.", + "example": 1 + }, + "Length": { + "type": "number", + "description": "SKU real length.", + "example": 1 + }, + "Width": { + "type": "number", + "description": "SKU real width.", + "example": 1 + }, + "WeightKg": { + "type": "number", + "description": "Weight of the SKU in the measurement [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams.", + "example": 1 + }, + "CubicWeight": { + "type": "number", + "description": "[Cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128).", + "example": 0.1667 + }, + "IsKit": { + "type": "boolean", + "description": "Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted.", + "example": false + }, + "CreationDate": { + "type": "string", + "description": "Date and time of the SKU's creation.", + "example": "2020-01-25T15:51:00" + }, + "RewardValue": { + "type": "number", + "description": "Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1.", + "example": 1 + }, + "EstimatedDateArrival": { + "type": "string", + "nullable": true, + "description": "To add the product as pre-sale, enter the product estimated arrival date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format. You must take into consideration both the launch date and the freight calculation for the arrival date.", + "example": null + }, + "ManufacturerCode": { + "type": "string", + "description": "Identifier provided by the manufacturers to identify their product. This field should be filled in if the product has a specific manufacturer's code.", + "example": "123" + }, + "CommercialConditionId": { + "type": "integer", + "description": "Commercial condition ID, used to define SKU specific promotions or installment rules. In case of no specific condition, use `1` (default value). This field does not accept `0`. Learn more at [Registering a commercial condition](https://help.vtex.com/tutorial/registering-a-commercial-condition--tutorials_445).", + "example": 1 + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. In common cases, use `un` (unit).\n\rThe acceptables values are:\n\r- `un`: Unit\n\r- `kg`: Kilogram\n\r- `g`: Gram\n\r- `mg`: Milligram\n\r- `m`: Meter\n\r- `m²`: Square meter\n\r- `m³`: Cubic meter\n\r- `cm`: Centimeter\n\r- `cm²`: Square centimeter\n\r- `cm³`: Cubic centimeter\n\r- `mm`: Millimeter\n\r- `mm²`: Square millimeter\n\r- `mm³`: Cubic millimeter\n\r- `oz`: Ounce\n\r- `lb`: Pound\n\r- `ft`: Foot\n\r- `ft²`: Square foot\n\r- `ft³`: Cubic foot\n\r- `in`: Inch\n\r- `in²`: Square inch\n\r- `in³`: Cubic inch", + "example": "un", + "enum": [ + "un", + "kg", + "g", + "mg", + "m", + "m²", + "m³", + "cm", + "cm²", + "cm³", + "mm", + "mm²", + "mm³", + "oz", + "lb", + "ft", + "ft²", + "ft³", + "in", + "in²", + "in³" + ] + }, + "UnitMultiplier": { + "type": "number", + "description": "Multiple number of SKU. If the multiplier is 5.0000, the product can be added in multiple quantities of 5, 10, 15, 20, onward.", + "example": 2 + }, + "ModalType": { + "type": "string", + "nullable": true, + "description": "Links an unusual type of SKU that needs special transportation, such as meat, glass, or a mattress, to a carrier specialized in delivering it. This field should be filled in with the name of the modal (e.g. \"Chemicals\" or \"Refrigerated products\"). To learn more about this feature, read our articles [How the modal works](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) and [Setting up modal for carriers](https://help.vtex.com/en/tutorial/configure-modal--3jhLqxuPhuiq24UoykCcqy).", + "example": null + }, + "KitItensSellApart": { + "type": "boolean", + "description": "Defines if kit components can be sold apart.", + "example": false + }, + "Videos": { + "type": "array", + "description": "Videos URLs.", + "items": { + "type": "string", + "description": "Video URL.", + "example": "https://www.youtube.com/" + }, + "example": [ + "https://www.youtube.com/" + ] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 70, + "ProductId": 42, + "IsActive": false, + "ActivateIfPossible": false, + "Name": "Size 10", + "RefId": "B096QW8Y8Z", + "PackagedHeight": 10, + "PackagedLength": 10, + "PackagedWidth": 10, + "PackagedWeightKg": 10, + "Height": 1, + "Length": 1, + "Width": 1, + "WeightKg": 1, + "CubicWeight": 0.1667, + "IsKit": false, + "CreationDate": "2020-01-25T15:51:29.2614605", + "RewardValue": 0, + "EstimatedDateArrival": null, + "ManufacturerCode": "", + "CommercialConditionId": 1, + "MeasurementUnit": "un", + "UnitMultiplier": 2, + "ModalType": null, + "KitItensSellApart": false, + "Videos": [ + "https://www.youtube.com/" + ] + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "SKU unique identifier." + }, + "ProductId": { + "type": "integer", + "description": "ID of the product associated with this SKU." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU is active (`true`) or not (`false`)." + }, + "ActivateIfPossible": { + "type": "boolean", + "description": "When set to `true`, this attribute will automatically update the SKU as active once associated with an image or an active component." + }, + "Name": { + "type": "string", + "description": "SKU name, meaning the variation of the previously added product. For example: **Product** - _Fridge_, **SKU** - _110V_." + }, + "RefId": { + "type": "string", + "description": "Reference code used internally for organizational purposes. Must be unique. It is not required only if EAN code already exists. If not, this field must be provided." + }, + "PackagedHeight": { + "type": "number", + "description": "Height used for shipping calculation." + }, + "PackagedLength": { + "type": "number", + "description": "Length used for shipping calculation." + }, + "PackagedWidth": { + "type": "number", + "description": "Width used for shipping calculation." + }, + "PackagedWeightKg": { + "type": "integer", + "description": "Weight used for shipping calculation, in the measurement unit [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams." + }, + "Height": { + "type": "number", + "description": "SKU real height." + }, + "Length": { + "type": "number", + "description": "SKU real length." + }, + "Width": { + "type": "number", + "description": "SKU real width." + }, + "WeightKg": { + "type": "number", + "description": "Weight of the SKU in the measurement unit [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams." + }, + "CubicWeight": { + "type": "number", + "description": "[Cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128)." + }, + "IsKit": { + "type": "boolean", + "description": "Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted." + }, + "CreationDate": { + "type": "string", + "description": "Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted." + }, + "RewardValue": { + "type": "number", + "description": "Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1." + }, + "EstimatedDateArrival": { + "type": "string", + "description": "SKU estimated arrival date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format, when the product is on pre-sale. You must take into consideration both the launch date and the freight calculation for the arrival date.", + "nullable": true + }, + "ManufacturerCode": { + "type": "string", + "description": "Identifier provided by the manufacturers to identify their product. This field should be filled in if the product has a specific manufacturer's code." + }, + "CommercialConditionId": { + "type": "integer", + "description": "Commercial condition ID, used to define SKU specific promotions or installment rules. In case of no specific condition, use `1` (default value). This field does not accept `0`. Learn more at [Registering a commercial condition](https://help.vtex.com/tutorial/registering-a-commercial-condition--tutorials_445).", + "default": 1 + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. For example, if a product is sold in boxes, but customers want to buy per square meter (m²). In common cases, use `\"un\"`." + }, + "UnitMultiplier": { + "type": "number", + "description": "Multiple number of SKU. If the multiplier is 5.0000, the product can be added in multiple quantities of 5, 10, 15, 20, onward." + }, + "ModalType": { + "type": "string", + "nullable": true, + "description": "Links an unusual type of SKU that need special transportation, suach as meat, glass, or a mattress, to a carrier specialized in delivering it. This field should be filled in with the name of the modal (e.g. \"Chemicals\" or \"Refrigerated products\"). To learn more about this feature, read our articles [How the modal works](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) and [Setting up modal for carriers](https://help.vtex.com/en/tutorial/configure-modal--3jhLqxuPhuiq24UoykCcqy)." + }, + "KitItensSellApart": { + "type": "boolean", + "description": "Defines if kit components can be sold apart." + }, + "Videos": { + "type": "array", + "description": "Videos URLs.", + "items": { + "type": "string", + "description": "Video URL." + } + } + } + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_stockkeepingunit_BySkuId" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/complement": { + "get": { + "tags": [ + "SKU complement" + ], + "summary": "Get SKU complement by SKU ID", + "description": "Retrieves an existing SKU complement by its SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetSKUComplementbySKUID", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SkuComplement" + }, + "example": [ + { + "Id": 61, + "SkuId": 7, + "ParentSkuId": 1, + "ComplementTypeId": 1 + } + ] + } + } + } + } + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/complement/{complementTypeId}": { + "get": { + "tags": [ + "SKU complement" + ], + "summary": "Get SKU complements by complement type ID", + "description": "Retrieves all the existing SKU complements with the same complement type ID of a specific SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetSKUComplementsbyComplementTypeID", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "ID of the SKU which will be inserted as a complement in the parent SKU.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "complementTypeId", + "in": "path", + "required": true, + "description": "Complement type ID. This represents the type of the complement. The possible values are: `1` for **Accessory**; `2` for **Suggestion**; `3` for **Similar product**; `5` for **Show together**.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SkuComplement" + }, + "example": [ + { + "Id": 61, + "SkuId": 7, + "ParentSkuId": 1, + "ComplementTypeId": 1 + } + ] + } + } + } + } + } + }, + "/api/catalog/pvt/skucomplement": { + "post": { + "tags": [ + "SKU complement" + ], + "summary": "Create SKU complement", + "description": "Creates a new SKU complement on a parent SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateSKUComplement", + "requestBody": { + "content": { + "application/json": { + "example": { + "ParentSkuId": 1, + "SkuId": 2, + "ComplementTypeId": 2 + }, + "schema": { + "type": "object", + "required": [ + "ParentSkuId", + "SkuId", + "ComplementTypeId" + ], + "properties": { + "ParentSkuId": { + "type": "integer", + "description": "ID of the parent SKU, where the complement is inserted.", + "example": 1 + }, + "SkuId": { + "type": "integer", + "description": "ID of the SKU which will be inserted as a complement in the parent SKU.", + "example": 1 + }, + "ComplementTypeId": { + "type": "integer", + "description": "Complement type ID. This represents the type of the complement. The possible values are: `1` for **Accessory**; `2` for **Suggestion**; `3` for **Similar product**; `5` for **Show together**.", + "example": 1, + "enum": [ + 1, + 2, + 3, + 4, + 5 + ] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SkuComplement" + }, + "example": [ + { + "Id": 61, + "SkuId": 7, + "ParentSkuId": 1, + "ComplementTypeId": 1 + } + ] + } + } + } + } + } + }, + "/api/catalog/pvt/skucomplement/{skuComplementId}": { + "get": { + "tags": [ + "SKU complement" + ], + "summary": "Get SKU complement by SKU complement ID", + "description": "Retrieves an existing SKU complement by its SKU complement ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetSKUComplementbySKUComplementID", + "parameters": [ + { + "name": "skuComplementId", + "in": "path", + "required": true, + "description": "SKU complement's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SkuComplement" + }, + "example": [ + { + "Id": 61, + "SkuId": 7, + "ParentSkuId": 1, + "ComplementTypeId": 1 + } + ] + } + } + } + } + }, + "delete": { + "tags": [ + "SKU complement" + ], + "summary": "Delete SKU complement by SKU complement ID", + "description": "Deletes a previously existing SKU complement by SKU complement ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "DeleteSKUComplementbySKUComplementID", + "parameters": [ + { + "name": "skuComplementId", + "in": "path", + "required": true, + "description": "SKU complement's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/ean": { + "get": { + "tags": [ + "SKU EAN" + ], + "summary": "Get EAN by SKU ID", + "description": "Retrieves the EAN of the SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array with EANs associated with the SKU.", + "items": { + "type": "string", + "description": "EAN." + } + }, + "example": [ + "1234567890123" + ] + } + } + } + }, + "operationId": "get_api_catalog_pvt_stockkeepingunit_BySkuId_ean" + }, + "delete": { + "tags": [ + "SKU EAN" + ], + "summary": "Delete all SKU EAN values", + "description": "Deletes all EAN values of an SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_stockkeepingunit_BySkuId_ean" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/ean/{ean}": { + "post": { + "tags": [ + "SKU EAN" + ], + "summary": "Create SKU EAN", + "description": "Creates the EAN value of an SKU. It is not possible to update the EAN.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "ean", + "in": "path", + "required": true, + "description": "EAN.", + "schema": { + "type": "string", + "example": "1234567" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "post_api_catalog_pvt_stockkeepingunit_BySkuId_ean_ByEan" + }, + "delete": { + "tags": [ + "SKU EAN" + ], + "summary": "Delete SKU EAN", + "description": "Deletes the EAN value of an SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "ean", + "in": "path", + "required": true, + "description": "EAN number.", + "schema": { + "type": "string", + "example": "ABC123" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_stockkeepingunit_BySkuId_ean_ByEan" + } + }, + "/api/catalog/pvt/skuattachment": { + "post": { + "tags": [ + "SKU attachment" + ], + "summary": "Associate SKU attachment", + "description": "Associates an existing SKU to an existing attachment.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "AttachmentId", + "SkuId" + ], + "properties": { + "AttachmentId": { + "type": "integer", + "description": "Attachment ID.", + "example": 1 + }, + "SkuId": { + "type": "integer", + "description": "Unique identifier of an SKU.", + "example": 1 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object containing information about the association between the SKU and the attachment.", + "properties": { + "Id": { + "type": "integer", + "description": "Identifier of the SKU's association to the attachment." + }, + "AttachmentId": { + "type": "integer", + "description": "Attachment ID." + }, + "SkuId": { + "type": "integer", + "description": "Unique identifier of the SKU." + } + } + }, + "example": { + "Id": 31, + "AttachmentId": 1, + "SkuId": 7 + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_skuattachment" + }, + "delete": { + "tags": [ + "SKU attachment" + ], + "summary": "Dissociate attachments and SKUs", + "description": "Dissociates attachments and SKUs based on an SKU ID or an attachment ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "query", + "description": "SKU ID. By using this query param, you can dissociate all the attachments from an SKU based on its SKU ID.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 1 + } + }, + { + "name": "attachmentId", + "in": "query", + "description": "Attachment ID. By using this query param, you can dissociate the given attachment from all previously associated SKUs.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_skuattachment" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/attachment": { + "get": { + "tags": [ + "SKU attachment" + ], + "summary": "Get SKU attachments by SKU ID", + "description": "Retrieves existing SKU attachments by SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array of objects with information about the association between the attachments and the SKU.", + "items": { + "type": "object", + "description": "Object containing information about the association between the SKU and the attachment.", + "properties": { + "Id": { + "type": "integer", + "description": "Identifier of the SKU's association to the attachment." + }, + "AttachmentId": { + "type": "integer", + "description": "Attachment ID." + }, + "SkuId": { + "type": "integer", + "description": "Unique identifier of the SKU." + } + } + } + }, + "example": [ + { + "Id": 97, + "AttachmentId": 1, + "SkuId": 1 + } + ] + } + } + } + }, + "operationId": "get_api_catalog_pvt_stockkeepingunit_BySkuId_attachment" + } + }, + "/api/catalog/pvt/skuattachment/{skuAttachmentAssociationId}": { + "delete": { + "tags": [ + "SKU attachment" + ], + "summary": "Delete SKU attachment by attachment association ID", + "description": "Deletes the association of an SKU to an attachment.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuAttachmentAssociationId", + "in": "path", + "required": true, + "description": "ID of the association between the attachment and the SKU, which corresponds to the `Id` in the response body of the [Associate SKU attachment](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-post-sku-attachment) and the [Get SKU attachment by SKU ID](https://developers.vtex.com/vtex-rest-api/reference/get_api-catalog-pvt-stockkeepingunit-skuid-attachment) endpoints.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_skuattachment_BySkuAttachmentAssociationId" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/file": { + "get": { + "tags": [ + "SKU file" + ], + "summary": "Get SKU files", + "description": "Retrieves general information about all files in the SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 310118490 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SkuFileResponse" + }, + "example": [ + { + "Id": 549, + "ArchiveId": 155485, + "SkuId": 310118490, + "Name": "White tshirt front", + "IsMain": true, + "Label": "fashion", + "Text": "image-b6175322abda4b73bbb57c46ae2f3900", + "Url": "https://sandboxintegracao.vteximg.com.br/files/ids/155485/B5C34F72E355BB325D07E56A2CBBD6FF", + "FileLocation": "vteximg.com.br/files/ids/168266/B5C34F72E355BB325D07E56A2CBBD6FF", + "Position": 0 + }, + { + "Id": 550, + "ArchiveId": 155486, + "SkuId": 310118490, + "Name": "White tshirt left", + "IsMain": false, + "Label": "fashion", + "Text": "image-b6175322abda4b73bbb57c46ae2f7063", + "Url": "https://sandboxintegracao.vteximg.com.br/files/ids/155486/b6175322abda4b73bbb57c46ae2f7063", + "FileLocation": "vteximg.com.br/files/ids/168266/B5C34F72E355BB325D07E56A2CBBD6FF", + "Position": 1 + }, + { + "Id": 551, + "ArchiveId": 155487, + "SkuId": 310118490, + "Name": "White tshirt right", + "IsMain": false, + "Label": null, + "Text": "image-b6175322abda4b73bbb57c46ae2f9368", + "Url": "https://sandboxintegracao.vteximg.com.br/files/ids/155487/b6175322abda4b73bbb57c46ae2f9368", + "FileLocation": "vteximg.com.br/files/ids/168266/B5C34F72E355BB325D07E56A2CBBD6FF", + "Position": 2 + } + ] + } + } + } + }, + "operationId": "get_api_catalog_pvt_stockkeepingunit_BySkuId_file" + }, + "post": { + "tags": [ + "SKU file" + ], + "summary": "Create SKU file", + "description": "Creates a new image for an SKU based on its URL or on a form-data request body.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 123456 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUFileURL" + } + }, + "form-data": { + "schema": { + "$ref": "#/components/schemas/SKUFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SkuFileResponse" + }, + "example": [ + { + "Id": 549, + "ArchiveId": 155485, + "SkuId": 310118490, + "Name": "White tshirt front", + "IsMain": true, + "Label": "fashion", + "Text": "image-b6175322abda4b73bbb57c46ae2f3900", + "Url": "https://sandboxintegracao.vteximg.com.br/files/ids/155485/B5C34F72E355BB325D07E56A2CBBD6FF", + "FileLocation": "vteximg.com.br/files/ids/168266/B5C34F72E355BB325D07E56A2CBBD6FF", + "Position": 0 + } + ] + } + } + } + }, + "operationId": "post_api_catalog_pvt_stockkeepingunit_BySkuId_file" + }, + "delete": { + "tags": [ + "SKU file" + ], + "summary": "Delete all SKU files", + "description": "Deletes all SKU image files.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_stockkeepingunit_BySkuId_file" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/file/{skuFileId}": { + "put": { + "tags": [ + "SKU file" + ], + "summary": "Update SKU file", + "description": "Updates a new image on an SKU based on its URL or on a form-data request body.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 123456 + } + }, + { + "name": "skuFileId", + "in": "path", + "required": true, + "description": "ID of the association of the SKU and the image, which can be obtained by placing a request to the [Get SKU file](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-sku-file) endpoint and copying the `Id` field.", + "schema": { + "type": "integer", + "example": 517 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUFileURL" + } + }, + "form-data": { + "schema": { + "$ref": "#/components/schemas/SKUFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SkuFileResponse" + }, + "example": [ + { + "Id": 549, + "ArchiveId": 155485, + "SkuId": 310118490, + "Name": "White tshirt front", + "IsMain": true, + "Label": "fashion", + "Text": "image-b6175322abda4b73bbb57c46ae2f3900", + "Url": "https://sandboxintegracao.vteximg.com.br/files/ids/155485/B5C34F72E355BB325D07E56A2CBBD6FF", + "FileLocation": "vteximg.com.br/files/ids/168266/B5C34F72E355BB325D07E56A2CBBD6FF", + "Position": 0 + }, + { + "Id": 550, + "ArchiveId": 155486, + "SkuId": 310118490, + "Name": "White tshirt left", + "IsMain": false, + "Label": "fashion", + "Text": "image-b6175322abda4b73bbb57c46ae2f7063", + "Url": "https://sandboxintegracao.vteximg.com.br/files/ids/155486/b6175322abda4b73bbb57c46ae2f7063", + "FileLocation": "vteximg.com.br/files/ids/168266/B5C34F72E355BB325D07E56A2CBBD6FF", + "Position": 1 + }, + { + "Id": 551, + "ArchiveId": 155487, + "SkuId": 310118490, + "Name": "White tshirt right", + "IsMain": false, + "Label": null, + "Text": "image-b6175322abda4b73bbb57c46ae2f9368", + "Url": "https://sandboxintegracao.vteximg.com.br/files/ids/155487/b6175322abda4b73bbb57c46ae2f9368", + "FileLocation": "vteximg.com.br/files/ids/168266/B5C34F72E355BB325D07E56A2CBBD6FF", + "Position": 2 + } + ] + } + } + } + }, + "operationId": "put_api_catalog_pvt_stockkeepingunit_BySkuId_file_BySkuFileId" + }, + "delete": { + "tags": [ + "SKU file" + ], + "summary": "Delete SKU image file", + "description": "Deletes a specific SKU image file.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "skuFileId", + "in": "path", + "required": true, + "description": "ID of the association of the SKU and the image, which can be obtained by placing a request to the [Get SKU file](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-sku-file) endpoint and copying the `Id` field.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_stockkeepingunit_BySkuId_file_BySkuFileId" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/file/reorder": { + "put": { + "tags": [ + "SKU file" + ], + "summary": "Reorder SKU files", + "description": "Defines SKU images positions. For the request to work properly, you must send all SKU images positions. For example, if the SKU has 10 images, you have to send in the request all file IDs and positions. There is no need to send them in order, but all positions must be defined.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | Edit Product |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU unique numerical identifier.", + "schema": { + "type": "integer", + "example": 3101188 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "Id", + "Position" + ], + "description": "Object containing SKU file ID and position.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU image file unique identifier.", + "example": 6541 + }, + "Position": { + "type": "integer", + "description": "The number of the position you wish to display the image in the storefront, where `0` corresponds to the first position, `1` to the second position, and so on.", + "example": 0 + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK." + }, + "400": { + "description": "Bad request. All files are required." + } + }, + "operationId": "put_api_catalog_pvt_stockkeepingunit_BySkuId_file_reorder" + } + }, + "/api/catalog/pvt/stockkeepingunit/copy/{skuIdfrom}/{skuIdto}/file": { + "put": { + "tags": [ + "SKU file" + ], + "summary": "Copy files from an SKU to another SKU", + "description": "Copy all existing files from an SKU to another SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuIdfrom", + "in": "path", + "required": true, + "description": "__Origin__ SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "skuIdto", + "in": "path", + "required": true, + "description": "__Target__ SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 2 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array with objects containing information about each of the target SKU's files.", + "items": { + "type": "object", + "description": "Object containing each SKU file's information.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the association of the image to the SKU." + }, + "ArchiveId": { + "type": "integer", + "description": "Unique identifier of the image file." + }, + "SkuId": { + "type": "integer", + "description": "Unique identifier of the SKU." + }, + "IsMain": { + "type": "boolean", + "description": "Defines if the image is the main image of the SKU." + }, + "Label": { + "type": "string", + "description": "Image label.", + "nullable": true + } + } + } + }, + "example": [ + { + "Id": 1964, + "ArchiveId": 155404, + "SkuId": 1, + "IsMain": true, + "Label": "" + }, + { + "Id": 1965, + "ArchiveId": 155429, + "SkuId": 1, + "IsMain": false, + "Label": "" + } + ] + } + } + } + }, + "operationId": "put_api_catalog_pvt_stockkeepingunit_copy_BySkuIdfrom_BySkuIdto_file" + } + }, + "/api/catalog/pvt/stockkeepingunit/disassociate/{skuId}/file/{skuFileId}": { + "delete": { + "tags": [ + "SKU file" + ], + "summary": "Disassociate SKU file", + "description": "Disassociates an SKU file from an SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "skuFileId", + "in": "path", + "required": true, + "description": "ID of the association of the SKU and the image, which can be obtained by placing a request to the [Get SKU file](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-sku-file) endpoint and copying the `Id` field.", + "schema": { + "type": "integer", + "example": 32 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_stockkeepingunit_disassociate_BySkuId_file_BySkuFileId" + } + }, + "/api/catalog/pvt/stockkeepingunitkit": { + "get": { + "tags": [ + "SKU kit" + ], + "summary": "Get SKU kit by SKU ID or parent SKU ID", + "description": "Retrieves general information about the components of an SKU kit by SKU ID or parent SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Miscellaneous | **SKU Bundles** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "query", + "description": "SKU's unique numerical identifier.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 1 + } + }, + { + "name": "parentSkuId", + "in": "query", + "description": "Parent SKU's unique numerical identifier.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SkuKit" + }, + "example": { + "Id": 7, + "StockKeepingUnitParent": 7, + "StockKeepingUnitId": 1, + "Quantity": 1, + "UnitPrice": 50 + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_stockkeepingunitkit" + }, + "post": { + "tags": [ + "SKU kit" + ], + "summary": "Create SKU kit", + "description": "Adds a component to a specific kit.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Miscellaneous | **SKU Bundles** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "StockKeepingUnitParent", + "StockKeepingUnitId", + "Quantity", + "UnitPrice" + ], + "properties": { + "StockKeepingUnitParent": { + "type": "integer", + "description": "SKU ID of the SKU kit.", + "example": 31018373 + }, + "StockKeepingUnitId": { + "type": "integer", + "description": "Component SKU ID.", + "example": 31018374 + }, + "Quantity": { + "type": "integer", + "description": "Component quantity.", + "example": 3 + }, + "UnitPrice": { + "type": "number", + "description": "Component price per unit.", + "example": 15.5 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SkuKit" + }, + "example": { + "Id": 7, + "StockKeepingUnitParent": 7, + "StockKeepingUnitId": 1, + "Quantity": 1, + "UnitPrice": 50 + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_stockkeepingunitkit" + }, + "delete": { + "tags": [ + "SKU kit" + ], + "summary": "Delete SKU kit by SKU ID or parent SKU ID", + "description": "Deletes all kit's components based on the parent SKU ID or deletes a specific kit's component based on the SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Miscellaneous | **SKU Bundles** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "query", + "description": "SKU's unique numerical identifier.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 1 + } + }, + { + "name": "parentSkuId", + "in": "query", + "description": "Parent SKU's unique numerical identifier.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_stockkeepingunitkit" + } + }, + "/api/catalog/pvt/stockkeepingunitkit/{kitId}": { + "get": { + "tags": [ + "SKU kit" + ], + "summary": "Get SKU kit", + "description": "Retrieves general information about a component of a kit.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Miscellaneous | **SKU Bundles** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "kitId", + "in": "path", + "required": true, + "description": "Kit's unique numerical identifier", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SkuKit" + }, + "example": { + "Id": 7, + "StockKeepingUnitParent": 7, + "StockKeepingUnitId": 1, + "Quantity": 1, + "UnitPrice": 50 + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_stockkeepingunitkit_ByKitId" + }, + "delete": { + "tags": [ + "SKU kit" + ], + "summary": "Delete SKU kit by kit ID", + "description": "Deletes a specific kit's component based on its kit ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Miscellaneous | **SKU Bundles** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "kitId", + "in": "path", + "required": true, + "description": "Kit's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_stockkeepingunitkit_ByKitId" + } + }, + "/api/catalog/pvt/skuservice/{skuServiceId}": { + "get": { + "tags": [ + "SKU service" + ], + "summary": "Get SKU service", + "description": "Retrieves an SKU service.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU Services** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuServiceId", + "in": "path", + "required": true, + "description": "SKU service unique identifier.", + "schema": { + "type": "integer", + "example": 5 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUService" + }, + "example": { + "Id": 1, + "SkuServiceTypeId": 1, + "SkuServiceValueId": 1, + "SkuId": 1, + "Name": "name", + "Text": "text", + "IsActive": false + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_skuservice_BySkuServiceId" + }, + "put": { + "tags": [ + "SKU service" + ], + "summary": "Update SKU service", + "description": "Updates an SKU service.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU Services** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuServiceId", + "in": "path", + "required": true, + "description": "SKU service unique identifier.", + "schema": { + "type": "integer", + "example": 5 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "SkuServiceTypeId", + "SkuServiceValueId", + "SkuId", + "Name", + "Text", + "IsActive" + ], + "properties": { + "SkuServiceTypeId": { + "type": "integer", + "description": "SKU service type ID.", + "example": 2 + }, + "SkuServiceValueId": { + "type": "integer", + "description": "SKU service value ID.", + "example": 1 + }, + "SkuId": { + "type": "integer", + "description": "SKU ID.", + "example": 1 + }, + "Name": { + "type": "string", + "description": "SKU service name. Maximum of 50 characters.", + "example": "Test name" + }, + "Text": { + "type": "string", + "description": "Internal description for the SKU service. Maximum of 100 characters.", + "example": "Text" + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU service is active or not.", + "example": true + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUService" + }, + "example": { + "Id": 1, + "SkuServiceTypeId": 1, + "SkuServiceValueId": 1, + "SkuId": 1, + "Name": "name", + "Text": "text", + "IsActive": false + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_skuservice_BySkuServiceId" + }, + "delete": { + "tags": [ + "SKU service" + ], + "summary": "Dissociate SKU service", + "description": "Dissociates an SKU service from an SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU Services** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuServiceId", + "in": "path", + "required": true, + "description": "SKU service unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_skuservice_BySkuServiceId" + } + }, + "/api/catalog/pvt/skuservice": { + "post": { + "tags": [ + "SKU service" + ], + "summary": "Associate SKU service", + "description": "Associates an SKU service to an SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU Services** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "SkuServiceTypeId", + "SkuServiceValueId", + "SkuId", + "Name", + "Text", + "IsActive" + ], + "properties": { + "SkuServiceTypeId": { + "type": "integer", + "description": "SKU service type ID.", + "example": 1 + }, + "SkuServiceValueId": { + "type": "integer", + "description": "SKU service value ID.", + "example": 1 + }, + "SkuId": { + "type": "integer", + "description": "SKU ID.", + "example": 1 + }, + "Name": { + "type": "string", + "description": "SKU service name. Maximum of 50 characters.", + "example": "Engraving" + }, + "Text": { + "type": "string", + "description": "Internal description of the SKU service. Maximum of 100 characters.", + "example": "Name engraving additional service." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU service is active or not.", + "example": true + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUService" + }, + "example": { + "Id": 1, + "SkuServiceTypeId": 1, + "SkuServiceValueId": 1, + "SkuId": 1, + "Name": "name", + "Text": "text", + "IsActive": false + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_skuservice" + } + }, + "/api/catalog/pvt/skuservicetypeattachment": { + "post": { + "tags": [ + "SKU service attachment" + ], + "summary": "Associate SKU service attachment", + "description": "Associates an Attachment for an existing SKU service type.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "AttachmentId", + "SkuServiceTypeId" + ], + "properties": { + "AttachmentId": { + "type": "integer", + "description": "Attachment ID.", + "example": 1 + }, + "SkuServiceTypeId": { + "type": "integer", + "description": "SKU service type ID.", + "example": 1 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "SKU service type attachment association ID." + }, + "AttachmentId": { + "type": "integer", + "description": "Attachment ID." + }, + "SkuServiceTypeId": { + "type": "integer", + "description": "SKU service type ID." + } + } + }, + "example": { + "Id": 1, + "AttachmentId": 1, + "SkuServiceTypeId": 1 + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_skuservicetypeattachment" + }, + "delete": { + "tags": [ + "SKU service attachment" + ], + "summary": "Dissociate attachment by attachment ID or SKU service type ID", + "description": "Dissociates an attachment by its attachment ID or SKU service type ID from an SKU service type.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "attachmentId", + "in": "query", + "required": false, + "description": "SKU service attachment unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "skuServiceTypeId", + "in": "query", + "required": false, + "description": "SKU service type unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_skuservicetypeattachment" + } + }, + "/api/catalog/pvt/skuservicetypeattachment/{skuServiceTypeAttachmentId}": { + "delete": { + "tags": [ + "SKU service attachment" + ], + "summary": "Dissociate attachment from SKU service type", + "description": "Dissociates an attachment from an SKU service type.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuServiceTypeAttachmentId", + "in": "path", + "required": true, + "description": "SKU service attachment unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_skuservicetypeattachment_BySkuServiceTypeAttachmentId" + } + }, + "/api/catalog/pvt/skuservicetype": { + "post": { + "tags": [ + "SKU service type" + ], + "summary": "Create SKU service type", + "description": "Creates a new SKU service type.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU type management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUServiceTypeRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUServiceTypeResponse" + }, + "example": { + "Id": 2, + "Name": "Engraving", + "IsActive": true, + "ShowOnProductFront": true, + "ShowOnCartFront": true, + "ShowOnAttachmentFront": true, + "ShowOnFileUpload": true, + "IsGiftCard": true, + "IsRequired": true + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_skuservicetype" + } + }, + "/api/catalog/pvt/skuservicetype/{skuServiceTypeId}": { + "get": { + "tags": [ + "SKU service type" + ], + "summary": "Get SKU service type", + "description": "Retrieves information about an existing SKU service type.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU type management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuServiceTypeId", + "in": "path", + "required": true, + "description": "SKU service type unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUServiceTypeResponse" + }, + "example": { + "Id": 2, + "Name": "Test API SKU services", + "IsActive": true, + "ShowOnProductFront": true, + "ShowOnCartFront": true, + "ShowOnAttachmentFront": true, + "ShowOnFileUpload": true, + "IsGiftCard": true, + "IsRequired": true + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_skuservicetype_BySkuServiceTypeId" + }, + "put": { + "tags": [ + "SKU service type" + ], + "summary": "Update SKU service type", + "description": "Updates an existing SKU service type.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU type management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuServiceTypeId", + "in": "path", + "required": true, + "description": "SKU service type unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUServiceTypeRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUServiceTypeResponse" + }, + "example": { + "Id": 2, + "Name": "Engraving", + "IsActive": true, + "ShowOnProductFront": true, + "ShowOnCartFront": true, + "ShowOnAttachmentFront": true, + "ShowOnFileUpload": true, + "IsGiftCard": true, + "IsRequired": true + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_skuservicetype_BySkuServiceTypeId" + }, + "delete": { + "tags": [ + "SKU service type" + ], + "summary": "Delete SKU service type", + "description": "Deletes an existing SKU service type.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU type management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuServiceTypeId", + "in": "path", + "required": true, + "description": "SKU service type unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_skuservicetype_BySkuServiceTypeId" + } + }, + "/api/catalog/pvt/skuservicevalue": { + "post": { + "tags": [ + "SKU service value" + ], + "summary": "Create SKU service value", + "description": "Creates an SKU service value for an existing SKU service type.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU Services** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUServiceValueRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUServiceValueResponse" + }, + "example": { + "Id": 2, + "SkuServiceTypeId": 2, + "Name": "Test ServiceValue API", + "Value": 10.5, + "Cost": 10.5 + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_skuservicevalue" + } + }, + "/api/catalog/pvt/skuservicevalue/{skuServiceValueId}": { + "get": { + "tags": [ + "SKU service value" + ], + "summary": "Get SKU service value", + "description": "Retrieves an existing SKU service value.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU Services** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuServiceValueId", + "in": "path", + "required": true, + "description": "SKU service value unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUServiceValueResponse" + }, + "example": { + "Id": 2, + "SkuServiceTypeId": 2, + "Name": "Test ServiceValue API", + "Value": 10.5, + "Cost": 10.5 + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_skuservicevalue_BySkuServiceValueId" + }, + "put": { + "tags": [ + "SKU service value" + ], + "summary": "Update SKU service value", + "description": "Updates an existing SKU service value.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU Services** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuServiceValueId", + "in": "path", + "required": true, + "description": "SKU service value unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUServiceValueRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUServiceValueResponse" + }, + "example": { + "Id": 2, + "SkuServiceTypeId": 2, + "Name": "Test ServiceValue API", + "Value": 10.5, + "Cost": 10.5 + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_skuservicevalue_BySkuServiceValueId" + }, + "delete": { + "tags": [ + "SKU service value" + ], + "summary": "Delete SKU service value", + "description": "Deletes an existing SKU service value.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU Services** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuServiceValueId", + "in": "path", + "required": true, + "description": "SKU service value unique identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_skuservicevalue_BySkuServiceValueId" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/specification": { + "get": { + "tags": [ + "SKU specification" + ], + "summary": "Get SKU specifications", + "description": "Retrieves information about an SKU's specifications.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SKUSpecificationResponse" + } + }, + "example": [ + { + "Id": 1505, + "SkuId": 1234568387, + "FieldId": 193, + "FieldValueId": 360, + "Text": "Size 10" + } + ] + } + } + } + }, + "operationId": "get_api_catalog_pvt_stockkeepingunit_BySkuId_specification" + }, + "post": { + "tags": [ + "SKU specification" + ], + "summary": "Associate SKU specification", + "description": "Associates a previously created specification to an SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1234568387 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "FieldId" + ], + "properties": { + "FieldId": { + "type": "integer", + "description": "Specification field ID.", + "example": 13 + }, + "FieldValueId": { + "type": "integer", + "description": "Specification value ID. Required only for `FieldTypeId` as `5`, `6` and `7`.", + "example": 101 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SKUSpecificationResponse" + }, + "example": { + "Id": 1505, + "SkuId": 1234568387, + "FieldId": 193, + "FieldValueId": 360, + "Text": "Size 10" + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_stockkeepingunit_BySkuId_specification" + }, + "put": { + "tags": [ + "SKU specification" + ], + "summary": "Update SKU specification", + "description": "Updates an existing specification on an existing SKU. This endpoint only updates the `FieldValueId`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 21 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Id", + "FieldId", + "FieldValueId" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Specification and SKU association unique identifier. This field cannot be updated.", + "example": 65 + }, + "SkuId": { + "type": "integer", + "description": "SKU unique identifier. This field cannot be updated.", + "example": 21 + }, + "FieldId": { + "type": "integer", + "description": "Specification field unique identifier. This field cannot be updated.", + "example": 32 + }, + "FieldValueId": { + "type": "integer", + "description": "Specification value unique identifier. This field can only be updated with other values of the same `FieldId`.", + "example": 131 + }, + "Text": { + "type": "string", + "description": "Specification value name. This field is automatically updated if the `FieldValue` is updated. Otherwise, the value cannot be modified.", + "example": "Red" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SKUSpecificationResponse" + } + }, + "example": [ + { + "Id": 1505, + "SkuId": 1234568387, + "FieldId": 193, + "FieldValueId": 360, + "Text": "Size 10" + } + ] + } + } + } + }, + "operationId": "put_api_catalog_pvt_stockkeepingunit_BySkuId_specification" + }, + "delete": { + "tags": [ + "SKU specification" + ], + "summary": "Delete all SKU specifications", + "description": "Deletes all SKU specifications.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_stockkeepingunit_BySkuId_specification" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/specification/{specificationId}": { + "delete": { + "tags": [ + "SKU specification" + ], + "summary": "Delete SKU specification", + "description": "Deletes a specific SKU specification.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "specificationId", + "in": "path", + "required": true, + "description": "Specification's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_stockkeepingunit_BySkuId_specification_BySpecificationId" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/specificationvalue": { + "put": { + "tags": [ + "SKU specification" + ], + "summary": "Associate SKU specification using specification name and group name", + "description": "Associates a specification to an SKU using specification name and group name. Automatically creates the informed group, specification and values if they had not been created before.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "FieldName": "Size", + "GroupName": "Sizes", + "RootLevelSpecification": true, + "FieldValues": [ + "M" + ] + }, + "required": [ + "FieldName", + "GroupName", + "RootLevelSpecification", + "FieldValues" + ], + "properties": { + "FieldName": { + "type": "string", + "description": "Specification name. Limited to 100 characters.", + "example": "Material" + }, + "GroupName": { + "type": "string", + "description": "Group name.", + "example": "Composition" + }, + "RootLevelSpecification": { + "type": "boolean", + "description": "Root level specification.", + "example": true + }, + "FieldValues": { + "type": "array", + "description": "Array of specification values. SKU specifications must contain only one value.", + "example": [ + "M" + ], + "items": { + "type": "string", + "description": "Specification value.", + "example": "M" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array with information of all SKU specifications.", + "items": { + "type": "object", + "description": "Object with information of the specification.", + "properties": { + "Id": { + "type": "integer", + "description": "ID of the association of the SKU and the specification." + }, + "SkuId": { + "type": "integer", + "description": "SKU ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID." + }, + "FieldValueId": { + "type": "integer", + "description": "Current specification value ID." + }, + "Text": { + "type": "string", + "description": "Current specification value text." + } + } + } + }, + "example": [ + { + "Id": 418, + "SkuId": 5, + "FieldId": 29, + "FieldValueId": 76, + "Text": "M" + } + ] + } + } + } + }, + "operationId": "put_api_catalog_pvt_stockkeepingunit_BySkuId_specificationvalue" + } + }, + "/api/catalog/pvt/subcollection/{subCollectionId}/stockkeepingunit": { + "post": { + "tags": [ + "Subcollection" + ], + "summary": "Add SKU to subcollection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nAssociates a single SKU to a Subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a Collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "subCollectionId", + "in": "path", + "required": true, + "description": "Subcollection'''s unique numerical identifier, which can be obtained by placing a request to [Get subcollection by collection ID](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-subcollection-collectionid).", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "SkuId" + ], + "properties": { + "SkuId": { + "type": "integer", + "description": "Unique identifier of an SKU.", + "example": 1 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "SubCollectionId": { + "type": "integer", + "description": "Subcollection's unique numerical identifier." + }, + "SkuId": { + "type": "integer", + "description": "Unique identifier of the SKU." + } + } + }, + "example": { + "SubCollectionId": 17, + "SkuId": 1 + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_subcollection_BySubCollectionId_stockkeepingunit" + } + }, + "/api/catalog/pvt/subcollection/{subCollectionId}/stockkeepingunit/{skuId}": { + "delete": { + "tags": [ + "Subcollection" + ], + "summary": "Delete SKU from subcollection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nDeletes an SKU from a Subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a Collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "subCollectionId", + "in": "path", + "required": true, + "description": "Subcollection unique numerical identifier, which can be obtained by placing a request to [Get subcollection by collection ID](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-subcollection-collectionid).", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "skuId", + "in": "path", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_subcollection_BySubCollectionId_stockkeepingunit_BySkuId" + } + }, + "/api/catalog/pvt/category/{categoryId}": { + "get": { + "tags": [ + "Category" + ], + "summary": "Get category by ID", + "description": "Retrieves general information about a category.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Categories Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "categoryId", + "in": "path", + "required": true, + "description": "Category's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 9289 + } + }, + { + "name": "includeTreePath", + "in": "query", + "required": false, + "description": "When you use the `includeTreePath` query param set as `true`, the response body returns the existing values for the following fields:\r\n- `TreePath`\r\n- `TreePathIds`\r\n- `TreePathLinkIds`\r\n\r\nUsing this param is optional.", + "schema": { + "type": "boolean", + "example": true + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 100055, + "Name": "Accessories", + "FatherCategoryId": 100003, + "Title": "Fashion", + "Description": "Discover our range of amazing clothes and accessories.", + "Keywords": "Fashion, Women, Accessories", + "IsActive": true, + "LomadeeCampaignCode": "", + "AdWordsRemarketingCode": "", + "ShowInStoreFront": true, + "ShowBrandFilter": true, + "ActiveStoreFrontLink": true, + "GlobalCategoryId": 166, + "StockKeepingUnitSelectionMode": "LIST", + "Score": null, + "LinkId": "Accessories", + "HasChildren": true, + "TreePath": [ + "Women Fashion", + "Accessories" + ], + "TreePathIds": [ + 100003, + 100055 + ], + "TreePathLinkIds": [ + "Women-Fashion", + "Accessories" + ] + }, + "schema": { + "$ref": "#/components/schemas/Category" + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_category_ByCategoryId" + }, + "put": { + "tags": [ + "Category" + ], + "summary": "Update category", + "description": "Updates a previously existing category.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Categories Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "categoryId", + "in": "path", + "required": true, + "description": "Category's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 9289 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Name", + "Keywords", + "Title", + "Description", + "AdWordsRemarketingCode", + "LomadeeCampaignCode", + "FatherCategoryId", + "GlobalCategoryId", + "ShowInStoreFront", + "IsActive", + "ActiveStoreFrontLink", + "ShowBrandFilter", + "Score", + "StockKeepingUnitSelectionMode" + ], + "properties": { + "Name": { + "type": "string", + "description": "Category name.", + "example": "Home Appliances" + }, + "Keywords": { + "type": "string", + "description": "Substitute words for the category.", + "example": "Kitchen, Laundry, Appliances" + }, + "Title": { + "type": "string", + "description": "Text used in title tag for category page.", + "example": "Home Appliances" + }, + "Description": { + "type": "string", + "description": "Text used in meta description tag for category page.", + "example": "Discover our range of home appliances. Find smart vacuums, kitchen and laundry appliances to suit your needs. Order online now." + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "example": "Sale", + "nullable": true, + "deprecated": true + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "example": "Sale", + "nullable": true, + "deprecated": true + }, + "FatherCategoryId": { + "type": "integer", + "description": "ID of the parent category, apply in case of category and subcategory.", + "example": 2, + "nullable": true + }, + "GlobalCategoryId": { + "type": "integer", + "description": "Google global category ID.", + "example": 222 + }, + "ShowInStoreFront": { + "type": "boolean", + "description": "If true, the category is shown in the top and side menu.", + "example": true + }, + "IsActive": { + "type": "boolean", + "description": "If true, the category page becomes available in store.", + "example": true + }, + "ActiveStoreFrontLink": { + "type": "boolean", + "description": "If true, the category link becomes active in store.", + "example": true + }, + "ShowBrandFilter": { + "type": "boolean", + "description": "If true, the category page displays a brand filter.", + "example": true + }, + "Score": { + "type": "integer", + "description": "Score for search sorting order.", + "example": 3 + }, + "StockKeepingUnitSelectionMode": { + "type": "string", + "description": "Defines how the SKU will be exhibited.", + "example": "SPECIFICATION" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 100055, + "Name": "Accessories", + "FatherCategoryId": 100003, + "Title": "Fashion", + "Description": "Discover our range of amazing clothes and accessories.", + "Keywords": "Fashion, Women, Accessories", + "IsActive": true, + "LomadeeCampaignCode": "", + "AdWordsRemarketingCode": "", + "ShowInStoreFront": true, + "ShowBrandFilter": true, + "ActiveStoreFrontLink": true, + "GlobalCategoryId": 166, + "StockKeepingUnitSelectionMode": "LIST", + "Score": null, + "LinkId": "Accessories", + "HasChildren": true, + "TreePath": [ + "Women Fashion", + "Accessories" + ], + "TreePathIds": [ + 100003, + 100055 + ], + "TreePathLinkIds": [ + "Women-Fashion", + "Accessories" + ] + }, + "schema": { + "$ref": "#/components/schemas/Category" + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_category_ByCategoryId" + } + }, + "/api/catalog/pvt/category": { + "post": { + "tags": [ + "Category" + ], + "summary": "Create category", + "description": "Creates a new category.\r\n\r\nIf there is a need to create a new category with a specific custom ID, specify the `Id` (integer) in the request. Otherwise, VTEX will generate the ID automatically.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Categories Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateCategoryRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 100055, + "Name": "Accessories", + "FatherCategoryId": 100003, + "Title": "Fashion", + "Description": "Discover our range of amazing clothes and accessories.", + "Keywords": "Fashion, Women, Accessories", + "IsActive": true, + "LomadeeCampaignCode": "", + "AdWordsRemarketingCode": "", + "ShowInStoreFront": true, + "ShowBrandFilter": true, + "ActiveStoreFrontLink": true, + "GlobalCategoryId": 166, + "StockKeepingUnitSelectionMode": "LIST", + "Score": null, + "LinkId": "Accessories", + "HasChildren": true, + "TreePath": [ + "Women Fashion", + "Accessories" + ], + "TreePathIds": [ + 100003, + 100055 + ], + "TreePathLinkIds": [ + "Women-Fashion", + "Accessories" + ] + }, + "schema": { + "$ref": "#/components/schemas/Category" + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_category" + } + }, + "/api/catalog/pvt/product/{productId}/similarcategory": { + "get": { + "tags": [ + "Similar category" + ], + "summary": "Get similar categories", + "description": "Retrieves similar categories from a product.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Similar Category** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "ProductId": 1, + "CategoryId": 1 + }, + { + "ProductId": 1, + "CategoryId": 20 + } + ], + "schema": { + "type": "array", + "description": "Array of objects with similar category information.", + "items": { + "type": "object", + "description": "Object containing product ID and similar category ID.", + "properties": { + "ProductId": { + "type": "integer", + "description": "Product ID." + }, + "CategoryId": { + "type": "integer", + "description": "Similar category ID." + } + } + } + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_product_ByProductId_similarcategory" + } + }, + "/api/catalog/pvt/product/{productId}/similarcategory/{categoryId}": { + "post": { + "tags": [ + "Similar category" + ], + "summary": "Add similar category", + "description": "Adds a similar category to a product.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Similar Categories Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "categoryId", + "in": "path", + "required": true, + "description": "Similar category's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "ProductId": 1, + "StoreId": 1 + }, + "schema": { + "type": "object", + "description": "Object containing information related to the similar category.", + "properties": { + "ProductId": { + "type": "integer", + "description": "Product ID." + }, + "StoreId": { + "type": "integer", + "description": "Trade policy ID." + } + } + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_product_ByProductId_similarcategory_ByCategoryId" + }, + "delete": { + "tags": [ + "Similar category" + ], + "summary": "Delete similar category", + "description": "Deletes a similar category from a product.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Similar Categories Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "categoryId", + "in": "path", + "required": true, + "description": "Similar category's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_product_ByProductId_similarcategory_ByCategoryId" + } + }, + "/api/catalog/pvt/subcollection/{subCollectionId}/category": { + "post": { + "tags": [ + "Subcollection" + ], + "summary": "Associate category to subcollection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nAssociates a single category to a Subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a Collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "subCollectionId", + "in": "path", + "required": true, + "description": "Subcollection's unique numerical identifier, which can be obtained by placing a request to [Get subcollection by collection ID](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-subcollection-collectionid).", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "CategoryId" + ], + "properties": { + "CategoryId": { + "type": "integer", + "description": "Unique identifier of a category.", + "example": 0 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "SubCollectionId": { + "type": "integer", + "description": "Subcollection's unique numerical identifier." + }, + "CategoryId": { + "type": "integer", + "description": "Unique identifier of the category." + } + } + }, + "example": { + "SubCollectionId": 17, + "CategoryId": 1 + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_subcollection_BySubCollectionId_category" + } + }, + "/api/catalog/pvt/subcollection/{subCollectionId}/category/{categoryId}": { + "delete": { + "tags": [ + "Subcollection" + ], + "summary": "Delete category from subcollection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nDeletes a category from a subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a Collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "subCollectionId", + "in": "path", + "required": true, + "description": "Subcollection's unique numerical identifier, which can be obtained by placing a request to [Get subcollection by dollection ID](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-subcollection-collectionid).", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "categoryId", + "in": "path", + "required": true, + "description": "Category's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_subcollection_BySubCollectionId_category_ByCategoryId" + } + }, + "/api/catalog/pvt/brand": { + "post": { + "tags": [ + "Brand" + ], + "summary": "Create brand", + "description": "Creates a new brand.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Brands Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BrandCreateUpdateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 2000013, + "Name": "Orma Carbon", + "Text": "Orma Carbon", + "Keywords": "orma", + "SiteTitle": "Orma Carbon", + "Active": true, + "MenuHome": true, + "AdWordsRemarketingCode": "", + "LomadeeCampaignCode": "", + "Score": null, + "LinkId": "orma-carbon" + }, + "schema": { + "$ref": "#/components/schemas/BrandCreateUpdate" + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_brand" + } + }, + "/api/catalog/pvt/brand/{brandId}": { + "get": { + "tags": [ + "Brand" + ], + "summary": "Get brand and context", + "description": "Retrieves information about a specific brand and its context.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Brand Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "brandId", + "in": "path", + "description": "Brand ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "123" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 2000013, + "Name": "Orma Carbon", + "Text": "Orma Carbon", + "Keywords": "orma", + "SiteTitle": "Orma Carbon", + "Active": true, + "MenuHome": true, + "AdWordsRemarketingCode": "", + "LomadeeCampaignCode": "", + "Score": null, + "LinkId": "orma-carbon" + }, + "schema": { + "$ref": "#/components/schemas/BrandCreateUpdate" + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_brand_ByBrandId" + }, + "put": { + "tags": [ + "Brand" + ], + "summary": "Update brand", + "description": "Updates a previously existing brand.\r\n\r\n>❗ Although some fields are not required to get a response `200 OK`, if you don't send a field or send its value as empty or `null`, all previously configured information will be deleted, and boolean fields will turn to `false`. So, to update a product, you should get its data using the [Get brand by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/brand/-brandId-) endpoint and use it as a template for the current request body.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Brand Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "brandId", + "in": "path", + "required": true, + "description": "Brand's unique numerical identifier.", + "schema": { + "type": "string", + "example": "123" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BrandCreateUpdateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 2000013, + "Name": "Orma Carbon", + "Text": "Orma Carbon", + "Keywords": "orma", + "SiteTitle": "Orma Carbon", + "Active": true, + "MenuHome": true, + "AdWordsRemarketingCode": "", + "LomadeeCampaignCode": "", + "Score": null, + "LinkId": "orma-carbon" + }, + "schema": { + "$ref": "#/components/schemas/BrandCreateUpdate" + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_brand_ByBrandId" + }, + "delete": { + "tags": [ + "Brand" + ], + "summary": "Delete brand", + "description": "Deletes an existing brand.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Brand Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "brandId", + "in": "path", + "required": true, + "description": "Brand's unique numerical identifier.", + "schema": { + "type": "string", + "example": "123" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_brand_ByBrandId" + } + }, + "/api/catalog/pvt/subcollection/{subCollectionId}/brand": { + "post": { + "tags": [ + "Subcollection" + ], + "summary": "Associate brand to subcollection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nAssociates a single brand to a Subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a Collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "subCollectionId", + "in": "path", + "required": true, + "description": "Subcollection's unique numerical identifier, which can be obtained by placing a request to [Get subcollection by collection ID](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-subcollection-collectionid).", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "BrandId" + ], + "properties": { + "BrandId": { + "type": "integer", + "description": "Unique identifier of a brand.", + "example": 2000000 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "SubCollectionId": { + "type": "integer", + "description": "Subcollection's unique numerical identifier." + }, + "BrandId": { + "type": "integer", + "description": "Unique identifier of the brand." + } + } + }, + "example": { + "SubCollectionId": 17, + "BrandId": 2000000 + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_subcollection_BySubCollectionId_brand" + } + }, + "/api/catalog/pvt/subcollection/{subCollectionId}/brand/{brandId}": { + "delete": { + "tags": [ + "Subcollection" + ], + "summary": "Delete brand from subcollection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nDeletes a brand from a Subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a Collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "subCollectionId", + "in": "path", + "required": true, + "description": "Subcollection's unique numerical identifier, which can be obtained by placing a request to [Get subcollection by collection ID](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-subcollection-collectionid).", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "brandId", + "in": "path", + "required": true, + "description": "Brand's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_subcollection_BySubCollectionId_brand_ByBrandId" + } + }, + "/api/catalog/pvt/attachment/{attachmentid}": { + "get": { + "tags": [ + "Attachment" + ], + "summary": "Get attachment by ID", + "description": "Gets information about a registered attachment. \r\n >⚠️ To understand the specific syntax for Assembly Options attachments, read the [Assembly Options](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH#assembly-options-syntax) documentation.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "attachmentid", + "in": "path", + "required": true, + "description": "Attachment ID.", + "schema": { + "type": "string", + "example": "8" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentResponse" + }, + "example": { + "Id": 8, + "Name": "Ingredients", + "IsRequired": true, + "IsActive": true, + "Domains": [ + { + "FieldName": "Sauce", + "MaxCaracters": "15", + "DomainValues": "[1-2]#9[1-1][1]basic;#11[0-1][1]basic" + }, + { + "FieldName": "Toppings", + "MaxCaracters": "11", + "DomainValues": "0,1,2,3,4,5,6,7,8,9" + } + ] + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_attachment_ByAttachmentid" + }, + "put": { + "tags": [ + "Attachment" + ], + "summary": "Update attachment", + "description": "Updates a previously existing SKU attachment with new information. \r\n >⚠️ To understand the specific syntax for Assembly Options attachments, read the [Assembly Options](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH#assembly-options-syntax) documentation.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "attachmentid", + "in": "path", + "required": true, + "description": "Attachment ID.", + "schema": { + "type": "string", + "example": "vtexcommercestable" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentResponse" + }, + "example": { + "Id": 8, + "Name": "Ingredients", + "IsRequired": true, + "IsActive": true, + "Domains": [ + { + "FieldName": "Sauce", + "MaxCaracters": "15", + "DomainValues": "[1-2]#9[1-1][1]basic;#11[0-1][1]basic" + }, + { + "FieldName": "Toppings", + "MaxCaracters": "11", + "DomainValues": "0,1,2,3,4,5,6,7,8,9" + } + ] + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_attachment_ByAttachmentid" + }, + "delete": { + "tags": [ + "Attachment" + ], + "summary": "Delete attachment", + "description": "Deletes a previously existing SKU attachment.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "attachmentid", + "in": "path", + "required": true, + "description": "Attachment ID.", + "schema": { + "type": "string", + "example": "vtexcommercestable" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_attachment_ByAttachmentid" + } + }, + "/api/catalog/pvt/attachment": { + "post": { + "tags": [ + "Attachment" + ], + "summary": "Create attachment", + "description": "Creates a new SKU attachment.\r\n >⚠️ To understand the specific syntax for Assembly Options attachments, read the [Assembly Options](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH#assembly-options-syntax) documentation.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachmentResponse" + }, + "example": { + "Id": 8, + "Name": "Ingredients", + "IsRequired": true, + "IsActive": true, + "Domains": [ + { + "FieldName": "Sauce", + "MaxCaracters": "15", + "DomainValues": "[1-2]#9[1-1][1]basic;#11[0-1][1]basic" + }, + { + "FieldName": "Toppings", + "MaxCaracters": "11", + "DomainValues": "0,1,2,3,4,5,6,7,8,9" + } + ] + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_attachment" + } + }, + "/api/catalog/pvt/attachments": { + "get": { + "tags": [ + "Attachment" + ], + "summary": "Get all attachments", + "description": "Retrieves information about all registered attachments. \r\n >⚠️ To understand the specific syntax for Assembly Options attachments, read the [Assembly Options](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH#assembly-options-syntax) documentation.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Configuration | **CMS Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Page": { + "type": "integer", + "description": "Current page of results." + }, + "Size": { + "type": "integer", + "description": "Total number of results in the current page." + }, + "TotalRows": { + "type": "integer", + "description": "Total number of rows with results." + }, + "TotalPage": { + "type": "integer", + "description": "Total number of pages with results." + }, + "Data": { + "type": "array", + "description": "Array containing attachments data.", + "items": { + "type": "object", + "description": "Attachment object.", + "required": [ + "Id", + "Name", + "IsRequired", + "IsActive", + "Domains" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Attachment ID." + }, + "Name": { + "type": "string", + "description": "Attachment name." + }, + "IsRequired": { + "type": "boolean", + "description": "Defines if the attachment is required or not." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the attachment is active or not." + }, + "Domains": { + "type": "array", + "description": "List of characteristics related to the attachment.", + "items": { + "type": "object", + "description": "Attachment details.", + "properties": { + "FieldName": { + "type": "string", + "description": "Attachment key name." + }, + "MaxCaracters": { + "type": "string", + "description": "Maximum number of characters in the attachment key." + }, + "DomainValues": { + "type": "string", + "description": "Allowed key values." + } + } + } + } + } + } + } + } + }, + "example": { + "Page": 1, + "Size": 2, + "TotalRows": 2, + "TotalPage": 1, + "Data": [ + { + "Id": 4, + "Name": "Customization", + "IsRequired": true, + "IsActive": true, + "Domains": [ + { + "FieldName": "Basic Toppings", + "MaxCaracters": "25", + "DomainValues": "[1-2]#9[1-1][1]basic;#11[0-1][1]basic" + }, + { + "FieldName": "TSpecial Toppings", + "MaxCaracters": "22", + "DomainValues": "[1-2]#9[1-1][1]basic;#11[0-1][1]basic" + } + ] + }, + { + "Id": 7, + "Name": "vtex.subscription.testeappsubscription", + "IsRequired": false, + "IsActive": true, + "Domains": [ + { + "FieldName": "vtex.subscription.key.frequency", + "MaxCaracters": "10", + "DomainValues": "1 month" + } + ] + } + ] + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_attachments" + } + }, + "/api/catalog/pvt/collection/inactive": { + "get": { + "tags": [ + "Collection" + ], + "summary": "Get all inactive collections", + "description": "Retrieves a list of Collection IDs of the inactive collections.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Read Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GET-AllInactiveCollections", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + 153, + 155, + 157 + ], + "schema": { + "type": "array", + "description": "Array with inactive collections ID.", + "items": { + "type": "integer", + "description": "Inactive collection ID." + } + } + } + } + } + } + } + }, + "/api/catalog/pvt/collection": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Create collection", + "description": "Creates a new collection.\r\n\r\n>⚠️ This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Write Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "POST-CreateCollection", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Name", + "Description", + "Searchable", + "Highlight", + "DateFrom", + "DateTo", + "TotalProducts", + "Type" + ], + "properties": { + "Name": { + "type": "string", + "description": "Collection's name.", + "example": "Halloween costumes" + }, + "Description": { + "type": "string", + "description": "Collection's description for internal use, with the collection's details. It will not be used for search engines.", + "example": "HomeHalloween" + }, + "Searchable": { + "type": "boolean", + "description": "Option making the collection searchable in the store.", + "example": false + }, + "Highlight": { + "type": "boolean", + "description": "Option if you want the collection to highlight specific products using a tag.", + "example": false + }, + "DateFrom": { + "type": "string", + "description": "Collection start date and time. If a future date and time are set, the collection will have a scheduled status.", + "example": "2025-11-26T15:23:00" + }, + "DateTo": { + "type": "string", + "description": "Collection end date and time.", + "example": "2069-11-26T15:23:00" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 160, + "Name": "Halloween costumes", + "Description": "HomeHalloween", + "Searchable": true, + "Highlight": false, + "DateFrom": "2025-11-26T15:23:00", + "DateTo": "2069-11-26T15:23:00", + "TotalProducts": 0, + "Type": "Manual" + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Collection's ID." + }, + "Name": { + "type": "string", + "description": "Collection's name." + }, + "Description": { + "type": "string", + "description": "Collection's description for internal use, with the collection's details. It will not be used for search engines." + }, + "Searchable": { + "type": "boolean", + "description": "Option making the collection searchable in the store." + }, + "Highlight": { + "type": "boolean", + "description": "Option if you want the collection to highlight specific products using a tag." + }, + "DateFrom": { + "type": "string", + "description": "Collection start date and time. If a future date and time are set, the collection will have a scheduled status." + }, + "DateTo": { + "type": "string", + "description": "Collection end date and time." + }, + "TotalProducts": { + "type": "integer", + "description": "Number of products contained in the collection." + }, + "Type": { + "type": "string", + "description": "[Type of the collection](https://help.vtex.com/en/tutorial/collection-types--5tKnhh8tMGIrVL7Fqirq7n)." + } + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog/pvt/collection/stockkeepingunit/importfileexample": { + "get": { + "tags": [ + "Collection" + ], + "summary": "Import collection file example", + "description": "Imports a sample of the imported XLS file. You need to save the response file to your device.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Read Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GET-Importfileexample", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string" + }, + "example": "{File in XLS format that should be saved by the client}" + } + } + } + } + } + }, + "/api/catalog/pvt/collection/{collectionId}/stockkeepingunit/importinsert": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Add products to collection by imported file", + "description": "Adds products to a collection from the request body file. The file must be an imported template.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Marketing | **Product Collections XML** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "POST-Addproductsbyimportfile", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "Collection's unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "format": "binary", + "description": "XML file with information about products to be added to a collection. The file must be an imported template from [Import collection file example](https://developers.vtex.com/vtex-developer-docs/reference/get-importfileexample) endpoint." + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/catalog/pvt/collection/{collectionId}/stockkeepingunit/importexclude": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Remove products from collection by imported file", + "description": "Removes products from a collection from the request body file. The file must be an imported template.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Write Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "POST-Removeproductsbyimportfile", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "Collection's unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "format": "binary", + "description": "XML file with information about products to be added to a collection. The file must be an imported template from [Import collection file example](https://developers.vtex.com/vtex-developer-docs/reference/get-importfileexample) endpoint." + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/catalog/pvt/collection/{collectionId}/products": { + "get": { + "tags": [ + "Collection" + ], + "summary": "Get products from a collection", + "description": "Retrieves information about the products from a collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Read Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GET-Productsfromacollection", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "Collection's unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "page", + "in": "query", + "description": "Page number.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 2 + } + }, + { + "name": "pageSize", + "in": "query", + "description": "Number of the items of the page.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 15 + } + }, + { + "name": "Filter", + "in": "query", + "description": "Filter used to refine the collection's products.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "Pre launch" + } + }, + { + "name": "Active", + "in": "query", + "description": "Defines if the status of the product is active or not.", + "required": false, + "style": "form", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "name": "Visible", + "in": "query", + "description": "Defines if the product is visible on the store or not.", + "required": false, + "style": "form", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "name": "CategoryId", + "in": "query", + "description": "Product's category unique identifier.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 12 + } + }, + { + "name": "BrandId", + "in": "query", + "description": "Product's brand unique identifier.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 3 + } + }, + { + "name": "SupplierId", + "in": "query", + "description": "Product's supplier unique identifier.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "SalesChannelId", + "in": "query", + "description": "Product's trade policy unique identifier.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "ReleaseFrom", + "in": "query", + "description": "Product past release date.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "2069-11-26T15:23:00" + } + }, + { + "name": "ReleaseTo", + "in": "query", + "description": "Product future release date.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "2069-11-26T15:23:00" + } + }, + { + "name": "SpecificationProduct", + "in": "query", + "description": "Product specification field Value. You must also fill in `SpecificationFieldId` to use this parameter.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "M" + } + }, + { + "name": "SpecificationFieldId", + "in": "query", + "description": "Product specification field unique identifier.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 40 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Page": { + "description": "Page number.", + "type": "integer" + }, + "Size": { + "description": "Page list size.", + "type": "integer" + }, + "TotalRows": { + "description": "Total rows.", + "type": "integer" + }, + "TotalPage": { + "description": "Total pages.", + "type": "integer" + }, + "Data": { + "description": "Array of object with information about the products of the collection.", + "type": "array", + "items": { + "description": "Product information.", + "type": "object", + "properties": { + "ProductId": { + "description": "Product ID.", + "type": "integer" + }, + "SkuId": { + "description": "SKU ID.", + "type": "integer" + }, + "SubCollectionId": { + "description": "Subcollection ID.", + "type": "integer" + }, + "Position": { + "description": "Position of the product in the collection.", + "type": "integer" + }, + "ProductName": { + "description": "Product name.", + "type": "string" + }, + "SkuImageUrl": { + "description": "SKU image URL.", + "type": "string" + } + } + } + } + } + }, + "example": { + "Page": 1, + "Size": 2, + "TotalRows": 2, + "TotalPage": 1, + "Data": [ + { + "ProductId": 1, + "SkuId": 1, + "SubCollectionId": 24, + "Position": 1, + "ProductName": "Ração Royal Canin Feline Urinary", + "SkuImageUrl": "https://lojadobreno.vteximg.com.br/arquivos/ids/155450" + }, + { + "ProductId": 2, + "SkuId": 3, + "SubCollectionId": 24, + "Position": 2, + "ProductName": "Caixa de Areia Azul Petmate", + "SkuImageUrl": "https://lojadobreno.vteximg.com.br/arquivos/ids/155451" + } + ] + } + } + } + } + } + } + }, + "/api/catalog/pvt/collection/{collectionId}": { + "get": { + "tags": [ + "Collection" + ], + "summary": "Get collection by ID", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nRetrieves general information of a Collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Read Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "required": true, + "description": "Collection's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 151 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Collection ID." + }, + "Name": { + "type": "string", + "description": "Collection name." + }, + "Description": { + "type": "string", + "description": "Collection description.", + "nullable": true + }, + "Searchable": { + "type": "boolean", + "description": "Defines if the collection is searchable or not." + }, + "Highlight": { + "type": "boolean", + "description": "Defines if the collection is highlighted or not." + }, + "DateFrom": { + "type": "string", + "description": "Initial value date for the collection." + }, + "DateTo": { + "type": "string", + "description": "Final value date for the collection." + }, + "TotalProducts": { + "type": "integer", + "description": "Total quantity of products in the collection." + }, + "Type": { + "type": "string", + "description": "[Type of the collection](https://help.vtex.com/en/tutorial/collection-types--5tKnhh8tMGIrVL7Fqirq7n)." + } + } + }, + "example": { + "Id": 150, + "Name": "Test", + "Description": "Winter outfits.", + "Searchable": true, + "Highlight": false, + "DateFrom": "2017-09-27T10:47:00", + "DateTo": "2017-09-27T10:47:00", + "TotalProducts": 150, + "Type": "Manual" + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_collection_ByCollectionId" + }, + "put": { + "tags": [ + "Collection" + ], + "summary": "Update collection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nUpdates a previously created Collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Write Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "required": true, + "description": "Collection's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 151 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Name", + "Searchable", + "Highlight", + "DateFrom", + "DateTo" + ], + "properties": { + "Name": { + "type": "string", + "description": "Collection name.", + "example": "Test" + }, + "Searchable": { + "type": "boolean", + "description": "Defines if the collection is searchable or not.", + "example": true + }, + "Highlight": { + "type": "boolean", + "description": "Defines if the collection is highlighted or not.", + "example": false + }, + "DateFrom": { + "type": "string", + "description": "Initial value date for the collection.", + "example": "2017-09-27T10:47:00" + }, + "DateTo": { + "type": "string", + "description": "Final value date for the collection.", + "example": "2017-09-27T10:47:00" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Collection ID." + }, + "Name": { + "type": "string", + "description": "Collection name." + }, + "Description": { + "type": "string", + "description": "Collection description.", + "nullable": true + }, + "Searchable": { + "type": "boolean", + "description": "Defines if the collection is searchable or not." + }, + "Highlight": { + "type": "boolean", + "description": "Defines if the collection is highlighted or not." + }, + "DateFrom": { + "type": "string", + "description": "Initial value date for the collection." + }, + "DateTo": { + "type": "string", + "description": "Final value date for the collection." + }, + "TotalProducts": { + "type": "integer", + "description": "Total quantity of products in the collection." + }, + "Type": { + "type": "string", + "description": "[Type of the collection](https://help.vtex.com/en/tutorial/collection-types--5tKnhh8tMGIrVL7Fqirq7n)." + } + } + }, + "example": { + "Id": 150, + "Name": "Test", + "Description": "Winter outfits.", + "Searchable": true, + "Highlight": false, + "DateFrom": "2017-09-27T10:47:00", + "DateTo": "2017-09-27T10:47:00", + "TotalProducts": 150, + "Type": "Manual" + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_collection_ByCollectionId" + }, + "delete": { + "tags": [ + "Collection" + ], + "summary": "Delete collection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nDeletes a previously existing Collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Write Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "required": true, + "description": "Collection's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 151 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_collection_ByCollectionId" + } + }, + "/api/catalog/pvt/collection/{collectionId}/subcollection": { + "get": { + "tags": [ + "Subcollection" + ], + "summary": "Get subcollection by collection ID", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nRetrieves all subcollections given a collection ID. A subcollection is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Read Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "required": true, + "description": "Collection's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 151 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "Id": 17, + "CollectionId": 151, + "Name": "group 1", + "Type": "Inclusive", + "PreSale": false, + "Release": false + }, + { + "Id": 18, + "CollectionId": 151, + "Name": "group 2", + "Type": "Inclusive", + "PreSale": false, + "Release": false + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Subcollection object.", + "properties": { + "Id": { + "type": "integer", + "description": "Subcollection ID." + }, + "CollectionId": { + "type": "integer", + "description": "Collection ID." + }, + "Name": { + "type": "string", + "description": "Subcollection name." + }, + "Type": { + "type": "string", + "description": "Either `“Exclusive”` (all the products contained in it will not be used) or `“Inclusive”` (all the products contained in it will be used)." + }, + "PreSale": { + "type": "boolean", + "description": "Defines if the collection is on PreSale." + }, + "Release": { + "type": "boolean", + "description": "Defines if the collection is a new released one." + } + } + } + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_collection_ByCollectionId_subcollection" + } + }, + "/api/catalog/pvt/subcollection/{subCollectionId}": { + "get": { + "tags": [ + "Subcollection" + ], + "summary": "Get subcollection by subcollection ID", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nRetrieves information about a subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Read Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "subCollectionId", + "in": "path", + "required": true, + "description": "Subcollection's unique numerical identifier, which can be obtained by placing a request to [Get subcollection by collection ID](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-subcollection-collectionid).", + "schema": { + "type": "integer", + "example": 17 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 17, + "CollectionId": 151, + "Name": "group 1", + "Type": "Inclusive", + "PreSale": false, + "Release": false + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Subcollection ID." + }, + "CollectionId": { + "type": "integer", + "description": "Collection ID." + }, + "Name": { + "type": "string", + "description": "Subcollection name." + }, + "Type": { + "type": "string", + "description": "Either `“Exclusive”` (all the products contained in it will not be used) or `“Inclusive”` (all the products contained in it will be used)." + }, + "PreSale": { + "type": "boolean", + "description": "Defines if the collection is on PreSale." + }, + "Release": { + "type": "boolean", + "description": "Defines if the collection is a new released one." + } + } + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_subcollection_BySubCollectionId" + }, + "put": { + "tags": [ + "Subcollection" + ], + "summary": "Update subcollection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nUpdates a previously created subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Write Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "subCollectionId", + "in": "path", + "required": true, + "description": "Subcollection's unique numerical identifier, which can be obtained by placing a request to [Get subcollection by collection ID](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-subcollection-collectionid).", + "schema": { + "type": "integer", + "example": 17 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "CollectionId", + "Name", + "Type", + "PreSale", + "Release" + ], + "properties": { + "CollectionId": { + "type": "integer", + "description": "Collection ID.", + "example": 17 + }, + "Name": { + "type": "string", + "description": "SubCollection name.", + "example": "group 1" + }, + "Type": { + "type": "string", + "description": "Either `“Exclusive”` (all the products contained in it will not be used) or `“Inclusive”` (all the products contained in it will be used).", + "example": "Inclusive" + }, + "PreSale": { + "type": "boolean", + "description": "Defines PreSale date.", + "example": false + }, + "Release": { + "type": "boolean", + "description": "Defines Release date.", + "example": false + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 17, + "CollectionId": 151, + "Name": "group 1", + "Type": "Inclusive", + "PreSale": false, + "Release": false + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Subcollection ID." + }, + "CollectionId": { + "type": "integer", + "description": "Collection ID." + }, + "Name": { + "type": "string", + "description": "Subcollection name." + }, + "Type": { + "type": "string", + "description": "Either `“Exclusive”` (all the products contained in it will not be used) or `“Inclusive”` (all the products contained in it will be used)." + }, + "PreSale": { + "type": "boolean", + "description": "Defines if the collection is on PreSale." + }, + "Release": { + "type": "boolean", + "description": "Defines if the collection is a new released one." + } + } + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_subcollection_BySubCollectionId" + }, + "delete": { + "tags": [ + "Subcollection" + ], + "summary": "Delete subcollection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nDeletes a previously created subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Write Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "subCollectionId", + "in": "path", + "required": true, + "description": "Subcollection's unique numerical identifier, which can be obtained by placing a request to [Get subcollection by collection ID](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-subcollection-collectionid).", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_subcollection_BySubCollectionId" + } + }, + "/api/catalog/pvt/subcollection": { + "post": { + "tags": [ + "Subcollection" + ], + "summary": "Create subcollection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nCreates a new subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a collection. A subcollection can be either “Exclusive” (all the products contained in it will not be used) or “Inclusive” (all the products contained in it will be used).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Write Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "CollectionId", + "Name", + "Type", + "PreSale", + "Release" + ], + "properties": { + "CollectionId": { + "type": "integer", + "description": "Subcollection ID.", + "example": 17 + }, + "Name": { + "type": "string", + "description": "Subcollection name.", + "example": "group 1" + }, + "Type": { + "type": "string", + "description": "Either `“Exclusive”` (all the products contained in it will not be used) or `“Inclusive”` (all the products contained in it will be used).", + "example": "Inclusive" + }, + "PreSale": { + "type": "boolean", + "description": "Defines PreSale date.", + "example": false + }, + "Release": { + "type": "boolean", + "description": "Defines Release date.", + "example": false + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 17, + "CollectionId": 151, + "Name": "group 1", + "Type": "Inclusive", + "PreSale": false, + "Release": false + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Subcollection ID." + }, + "CollectionId": { + "type": "integer", + "description": "Collection ID." + }, + "Name": { + "type": "string", + "description": "Subcollection name." + }, + "Type": { + "type": "string", + "description": "Either `Exclusive` (all the products contained in it will not be used) or `Inclusive` (all the products contained in it will be used)." + }, + "PreSale": { + "type": "boolean", + "description": "Defines if the collection is on PreSale." + }, + "Release": { + "type": "boolean", + "description": "Defines if the collection is a new released one." + } + } + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_subcollection" + } + }, + "/api/catalog/pvt/collection/{collectionId}/position": { + "post": { + "tags": [ + "Subcollection" + ], + "summary": "Reposition SKU on the subcollection", + "description": " >⚠️ There are two ways to configure collections, through Legacy CMS Portal or using the Beta Collection module. This endpoint is compatible with [collections configured through the Legacy CMS Portal](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L).\n\nEdits the position of an SKU that already exists in the subcollection, which is a [Group](https://help.vtex.com/en/tutorial/adding-collections-cms--2YBy6P6X0NFRpkD2ZBxF6L#group-types) within a collection.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Collection | **Write Collections** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "required": true, + "description": "Collection's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 151 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "skuId", + "position", + "subCollectionId" + ], + "properties": { + "skuId": { + "type": "integer", + "description": "SKU ID.", + "example": 1 + }, + "position": { + "type": "integer", + "description": "SKU position.", + "example": 1 + }, + "subCollectionId": { + "type": "integer", + "description": "Subcollection ID.", + "example": 17 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "post_api_catalog_pvt_collection_ByCollectionId_position" + } + }, + "/api/catalog/pvt/subcollection/{subCollectionId}/specificationvalue": { + "get": { + "tags": [ + "Subcollection" + ], + "summary": "Get specification values by subcollection ID", + "description": "Retrieves specification values searching by subcollection ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | View Category |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "$ref": "#/components/parameters/SubCollectionId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SpecificationValuesSubcollectionIdResponse" + }, + "example": { + "Page": 1, + "Size": 3, + "TotalRows": 3, + "TotalPage": 1, + "Data": [ + { + "SubCollectionId": 80, + "SpecificationValueId": 2461 + }, + { + "SubCollectionId": 80, + "SpecificationValueId": 2463 + }, + { + "SubCollectionId": 80, + "SpecificationValueId": 2464 + } + ] + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_subcollection_BySubCollectionId_specificationvalue" + }, + "post": { + "tags": [ + "Subcollection" + ], + "summary": "Use specification value in subcollection by ID", + "description": "Uses a specification value in a subcollection searching by subcollection ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | Edit Category |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/SubCollectionId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "SubCollectionId", + "SpecificationValueId" + ], + "properties": { + "SubCollectionId": { + "type": "integer", + "description": "Subcollection unique identifier.", + "example": 80 + }, + "SpecificationValueId": { + "type": "integer", + "description": "Subcollection specification value ID.", + "example": 2461 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "SubCollectionId": { + "type": "integer", + "description": "Subcollection unique identifier." + }, + "SpecificationValueId": { + "type": "integer", + "description": "Subcollection specification value ID." + } + } + }, + "example": { + "SubCollectionId": 80, + "SpecificationValueId": 86 + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_subcollection_BySubCollectionId_specificationvalue" + }, + "delete": { + "tags": [ + "Subcollection" + ], + "summary": "Delete specification value from subcollection by ID", + "description": "Deletes a specification value from a subcollection searching by subcollection ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | Edit Category |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "$ref": "#/components/parameters/SubCollectionId" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_subcollection_BySubCollectionId_specificationvalue" + } + }, + "/api/catalog/pvt/specification/{specificationId}": { + "get": { + "tags": [ + "Specification" + ], + "summary": "Get specification by specification ID", + "description": "Retrieves information of a product or SKU specification.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "specificationId", + "in": "path", + "required": true, + "description": "Specification's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 32, + "FieldTypeId": 6, + "CategoryId": 10, + "FieldGroupId": 11, + "Name": "Peso", + "Description": "Peso", + "Position": 1, + "IsFilter": false, + "IsRequired": true, + "IsOnProductDetails": false, + "IsStockKeepingUnit": true, + "IsWizard": false, + "IsActive": true, + "IsTopMenuLinkActive": false, + "IsSideMenuLinkActive": false, + "DefaultValue": null + }, + "schema": { + "type": "object", + "required": [ + "Id", + "FieldTypeId", + "CategoryId", + "FieldGroupId", + "Name", + "Description", + "Position", + "IsFilter", + "IsRequired", + "IsOnProductDetails", + "IsStockKeepingUnit", + "IsWizard", + "IsActive", + "IsTopMenuLinkActive", + "IsSideMenuLinkActive", + "DefaultValue" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Created specification's ID." + }, + "FieldTypeId": { + "type": "integer", + "description": "Field type can be `1 - Text`, `2 - Multi-Line Text`, `4 - Number`, `5 - Combo`, `6 - Radio`, `7 - Checkbox`, `8 - Indexed Text`, `9 - Indexed Multi-Line Text`.", + "enum": [ + 1, + 2, + 4, + 5, + 6, + 7, + 8, + 9 + ] + }, + "CategoryId": { + "type": "integer", + "description": "Specification category ID." + }, + "FieldGroupId": { + "type": "integer", + "description": "Numerical ID of the specification group that contains the new specification." + }, + "Name": { + "type": "string", + "description": "Specification name. Limited to 100 characters." + }, + "Description": { + "type": "string", + "description": "Specification description." + }, + "Position": { + "type": "integer", + "description": "The current specification's position in comparison to the other specifications." + }, + "IsFilter": { + "type": "boolean", + "description": "Defines if the specification can be used as a filter." + }, + "IsRequired": { + "type": "boolean", + "description": "Defines if the specification is required or not." + }, + "IsOnProductDetails": { + "type": "boolean", + "description": "Defines if the specification will be shown on the product screen in the specification area." + }, + "IsStockKeepingUnit": { + "type": "boolean", + "description": "Defines if the specification is applied to a specific SKU." + }, + "IsWizard": { + "type": "boolean", + "description": "Deprecated field.", + "deprecated": true + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the specification is active or not." + }, + "IsTopMenuLinkActive": { + "type": "boolean", + "description": "Defines if the specification is shown in the main menu of the site." + }, + "IsSideMenuLinkActive": { + "type": "boolean", + "description": "Defines if the specification is shown in the side menu." + }, + "DefaultValue": { + "type": "string", + "description": "Specification default value.", + "nullable": true + } + } + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_specification_BySpecificationId" + }, + "put": { + "tags": [ + "Specification" + ], + "summary": "Update specification", + "description": "Updates a product specification or SKU specification.\r\n\r\n>⚠️ It is not possible to edit `FieldTypeId`, `CategoryId`, `FieldGroupId` or `IsStockKeepingUnit` in this API call.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "specificationId", + "in": "path", + "required": true, + "description": "Specification's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 88 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "FieldTypeId", + "CategoryId", + "FieldGroupId", + "Name", + "Description", + "Position", + "IsFilter", + "IsRequired", + "IsOnProductDetails", + "IsStockKeepingUnit", + "IsWizard", + "IsActive", + "IsTopMenuLinkActive", + "IsSideMenuLinkActive", + "DefaultValue" + ], + "properties": { + "FieldTypeId": { + "type": "integer", + "description": "Field type can be `1 - Text`, `2 - Multi-Line Text`, `4 - Number`, `5 - Combo`, `6 - Radio`, `7 - Checkbox`, `8 - Indexed Text`, `9 - Indexed Multi-Line Text`. This information is not editable.", + "example": 1, + "enum": [ + 1, + 2, + 4, + 5, + 6, + 7, + 8, + 9 + ] + }, + "CategoryId": { + "type": "integer", + "description": "Specification category ID. This information is not editable.", + "example": 0 + }, + "FieldGroupId": { + "type": "integer", + "description": "Numerical ID of the specification group that contains the new specification. This information is not editable.", + "example": 0 + }, + "Name": { + "type": "string", + "description": "Specification name. Limited to 100 characters.", + "example": "Material" + }, + "Description": { + "type": "string", + "description": "Specification description.", + "example": "Composition of the product." + }, + "Position": { + "type": "integer", + "description": "The current specification's position in comparison to the other specifications.", + "example": 1 + }, + "IsFilter": { + "type": "boolean", + "description": "Defines if the specification can be used as a filter.", + "example": false + }, + "IsRequired": { + "type": "boolean", + "description": "Defines if the specification is required or not.", + "example": false + }, + "IsOnProductDetails": { + "type": "boolean", + "description": "Defines if the specification will be shown on the product screen in the specification area.", + "example": false + }, + "IsStockKeepingUnit": { + "type": "boolean", + "description": "Defines if the specification is applied to a specific SKU. This information is not editable.", + "example": false + }, + "IsWizard": { + "type": "boolean", + "description": "Deprecated field.", + "example": false, + "deprecated": true + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the specification is active or not.", + "example": false + }, + "IsTopMenuLinkActive": { + "type": "boolean", + "description": "Defines if the specification is shown in the main menu of the site.", + "example": false + }, + "IsSideMenuLinkActive": { + "type": "boolean", + "description": "Defines if the specification is shown in the side menu.", + "example": false + }, + "DefaultValue": { + "type": "string", + "description": "Specification default value.", + "example": "Leather" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 88, + "FieldTypeId": 1, + "CategoryId": 4, + "FieldGroupId": 20, + "Name": "Material", + "Description": "Composition of the product.", + "Position": 1, + "IsFilter": true, + "IsRequired": true, + "IsOnProductDetails": false, + "IsStockKeepingUnit": false, + "IsWizard": false, + "IsActive": true, + "IsTopMenuLinkActive": false, + "IsSideMenuLinkActive": true, + "DefaultValue": "Leather" + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Specification ID." + }, + "FieldTypeId": { + "type": "integer", + "description": "Field type ID can be `1 - Text`, `2 - Multi-Line Text`, `4 - Number`, `5 - Combo`, `6 - Radio`, `7 - Checkbox`, `8 - Indexed Text`, `9 - Indexed Multi-Line Text`." + }, + "CategoryId": { + "type": "integer", + "description": "Category ID associated with this specification." + }, + "FieldGroupId": { + "type": "integer", + "description": "ID of the group of specifications that contains the new specification." + }, + "Name": { + "type": "string", + "description": "Specification name. Limited to 100 characters." + }, + "Description": { + "type": "string", + "description": "Deprecated field.", + "deprecated": true, + "nullable": true + }, + "Position": { + "type": "integer", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - This position number is used in ordering the specifications both in the navigation menu and in the specification listing on the product page." + }, + "IsFilter": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To allow the specification to be used as a facet (filter) on the search navigation bar." + }, + "IsRequired": { + "type": "boolean", + "description": "Makes the specification mandatory (`true`) or optional (`false`)." + }, + "IsOnProductDetails": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal -If specification is visible on the product page." + }, + "IsStockKeepingUnit": { + "type": "boolean", + "description": "If `true`, it will be added as a SKU specification. If `false`, it will be added as a product specification field." + }, + "IsWizard": { + "type": "boolean", + "deprecated": true, + "description": "Deprecated field.", + "nullable": true + }, + "IsActive": { + "type": "boolean", + "description": "Enable (`true`) or disable (`false`) specification." + }, + "IsTopMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification visible in the store's upper menu." + }, + "IsSideMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification field clickable in the search navigation bar." + }, + "DefaultValue": { + "type": "string", + "description": "Specification default value." + } + } + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_specification_BySpecificationId" + } + }, + "/api/catalog/pvt/specification": { + "post": { + "tags": [ + "Specification" + ], + "summary": "Create specification", + "description": "Creates a new product or SKU specification.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "FieldTypeId", + "FieldGroupId", + "Name" + ], + "properties": { + "FieldTypeId": { + "type": "integer", + "description": "Field type ID can be `1 - Text`, `2 - Multi-Line Text`, `4 - Number`, `5 - Combo`, `6 - Radio`, `7 - Checkbox`, `8 - Indexed Text`, `9 - Indexed Multi-Line Text`.", + "example": 1, + "enum": [ + 1, + 2, + 4, + 5, + 6, + 7, + 8, + 9 + ] + }, + "CategoryId": { + "type": "integer", + "description": "Category ID associated with this specification.", + "example": 1 + }, + "FieldGroupId": { + "type": "integer", + "description": "ID of the group of specifications that contains the new specification.", + "example": 22 + }, + "Name": { + "type": "string", + "description": "Specification name. Limited to 100 characters.", + "example": "Material" + }, + "Description": { + "type": "string", + "description": "Deprecated field.", + "deprecated": true, + "nullable": true, + "example": "Composition of the product." + }, + "Position": { + "type": "integer", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - This position number is used in ordering the specifications both in the navigation menu and in the specification listing on the product page.", + "example": 1 + }, + "IsFilter": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To allow the specification to be used as a facet (filter) on the search navigation bar.", + "example": false + }, + "IsRequired": { + "type": "boolean", + "description": "Makes the specification mandatory (`true`) or optional (`false`).", + "example": false + }, + "IsOnProductDetails": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal -If specification is visible on the product page.", + "example": true + }, + "IsStockKeepingUnit": { + "type": "boolean", + "description": "If `true`, it will be added as a SKU specification. If `false`, it will be added as a product specification field.", + "example": false + }, + "IsWizard": { + "type": "boolean", + "deprecated": true, + "description": "Deprecated field.", + "example": null, + "nullable": true + }, + "IsActive": { + "type": "boolean", + "description": "Enable (`true`) or disable (`false`) specification.", + "example": true + }, + "IsTopMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification visible in the store's upper menu.", + "example": false + }, + "IsSideMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification field clickable in the search navigation bar.", + "example": false + }, + "DefaultValue": { + "type": "string", + "description": "Specification default value.", + "example": "Cotton" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 88, + "FieldTypeId": 1, + "CategoryId": 4, + "FieldGroupId": 20, + "Name": "Material", + "Description": "Composition of the product.", + "Position": 1, + "IsFilter": true, + "IsRequired": true, + "IsOnProductDetails": false, + "IsStockKeepingUnit": false, + "IsWizard": false, + "IsActive": true, + "IsTopMenuLinkActive": false, + "IsSideMenuLinkActive": true, + "DefaultValue": "Cotton" + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Specification ID." + }, + "FieldTypeId": { + "type": "integer", + "description": "Field type ID can be `1 - Text`, `2 - Multi-Line Text`, `4 - Number`, `5 - Combo`, `6 - Radio`, `7 - Checkbox`, `8 - Indexed Text`, `9 - Indexed Multi-Line Text`." + }, + "CategoryId": { + "type": "integer", + "description": "Category ID associated with this specification." + }, + "FieldGroupId": { + "type": "integer", + "description": "ID of the group of specifications that contains the new specification." + }, + "Name": { + "type": "string", + "description": "Specification name. Limited to 100 characters." + }, + "Description": { + "type": "string", + "description": "Specification description.", + "deprecated": true, + "nullable": true + }, + "Position": { + "type": "integer", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - This position number is used in ordering the specifications both in the navigation menu and in the specification listing on the product page." + }, + "IsFilter": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To allow the specification to be used as a facet (filter) on the search navigation bar." + }, + "IsRequired": { + "type": "boolean", + "description": "Makes the specification mandatory (`true`) or optional (`false`)." + }, + "IsOnProductDetails": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal -If specification is visible on the product page." + }, + "IsStockKeepingUnit": { + "type": "boolean", + "description": "If `true`, it will be added as a SKU specification. If `false`, it will be added as a product specification field." + }, + "IsWizard": { + "type": "boolean", + "description": "Deprecated field.", + "deprecated": true, + "nullable": true + }, + "IsActive": { + "type": "boolean", + "description": "Enable (`true`) or disable (`false`) specification." + }, + "IsTopMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification visible in the store's upper menu." + }, + "IsSideMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification field clickable in the search navigation bar." + }, + "DefaultValue": { + "type": "string", + "description": "Specification default value." + } + } + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_specification" + } + }, + "/api/catalog/pvt/specificationvalue/{specificationValueId}": { + "get": { + "tags": [ + "Specification value" + ], + "summary": "Get specification value", + "description": "Retrieves general information about a specification value.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "specificationValueId", + "in": "path", + "required": true, + "description": "Specification value's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 143 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "FieldValueId": 143, + "FieldId": 34, + "Name": "Cotton", + "Text": "Cotton fibers", + "IsActive": true, + "Position": 100 + }, + "schema": { + "type": "object", + "properties": { + "FieldValueId": { + "type": "integer", + "format": "int32", + "description": "Specification field value ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID." + }, + "Name": { + "type": "string", + "description": "Specification field value name." + }, + "Text": { + "type": "string", + "description": "Specification field value description." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the specification field value is active (`true`) or inactive (`false`)." + }, + "Position": { + "type": "integer", + "format": "int32", + "description": "Specification field value position." + } + } + } + } + } + } + }, + "operationId": "get_api_catalog_pvt_specificationvalue_BySpecificationValueId" + }, + "put": { + "tags": [ + "Specification value" + ], + "summary": "Update specification value", + "description": "Updates a new specification value for a category.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "specificationValueId", + "in": "path", + "required": true, + "description": " specification value's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "FieldId", + "Name" + ], + "properties": { + "FieldId": { + "type": "integer", + "description": "Specification ID associated with this specification value.", + "example": 193 + }, + "Name": { + "type": "string", + "description": "Specification value name.", + "example": "Metal" + }, + "Text": { + "type": "string", + "deprecated": true, + "nullable": true, + "description": "Specification value text.", + "example": null + }, + "IsActive": { + "type": "boolean", + "description": "Enable (`true`) or disable (`false`) specification value.", + "example": true + }, + "Position": { + "type": "integer", + "description": "The position of the value to be shown on product registration page (`/admin/Site/Produto.aspx`).", + "example": 1 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "FieldValueId": 360, + "FieldId": 193, + "Name": "Metal", + "Text": null, + "IsActive": true, + "Position": 1 + }, + "schema": { + "type": "object", + "properties": { + "FieldValueId": { + "type": "integer", + "description": "Specification value ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID associated with this specification value." + }, + "Name": { + "type": "string", + "description": "Specification value name." + }, + "Text": { + "type": "string", + "deprecated": true, + "nullable": true, + "description": "Specification value text." + }, + "IsActive": { + "type": "boolean", + "description": "Enable (`true`) or disable (`false`) specification value." + }, + "Position": { + "type": "integer", + "description": "The position of the value to be shown on product registration page (`/admin/Site/Produto.aspx`)." + } + } + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_specificationvalue_BySpecificationValueId" + } + }, + "/api/catalog/pvt/specificationvalue": { + "post": { + "tags": [ + "Specification value" + ], + "summary": "Create specification value", + "description": "Creates a new specification value for a category.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "FieldId", + "Name" + ], + "properties": { + "FieldId": { + "type": "integer", + "description": "Specification field ID associated with this specification value.", + "example": 193 + }, + "Name": { + "type": "string", + "description": "Specification value name.", + "example": "Metal" + }, + "Text": { + "type": "string", + "deprecated": true, + "nullable": true, + "description": "Specification value text.", + "example": null + }, + "IsActive": { + "type": "boolean", + "description": "Enable (`true`) or disable (`false`) specification value.", + "example": true + }, + "Position": { + "type": "integer", + "description": "The position of the value to be shown on product registration page (`/admin/Site/Produto.aspx`).", + "example": 1 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "FieldValueId": 360, + "FieldId": 193, + "Name": "Metal", + "Text": null, + "IsActive": true, + "Position": 1 + }, + "schema": { + "type": "object", + "properties": { + "FieldValueId": { + "type": "integer", + "description": "Specification value ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID associated with this specification value." + }, + "Name": { + "type": "string", + "description": "Specification value name." + }, + "Text": { + "type": "string", + "deprecated": true, + "nullable": true, + "description": "Specification value text." + }, + "IsActive": { + "type": "boolean", + "description": "Enable (`true`) or disable (`false`) specification value." + }, + "Position": { + "type": "integer", + "description": "The position of the value to be shown on product registration page (`/admin/Site/Produto.aspx`)." + } + } + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_specificationvalue" + } + }, + "/api/catalog/pvt/specificationgroup": { + "post": { + "tags": [ + "Specification group" + ], + "summary": "Create specification group", + "description": "Create a specification group. \r\n>⚠️ It is also possible to create a specification Group by using an alternative legacy route: `/api/catalog_system/pvt/specification/group`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Groups** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SpecificationGroupInsert2", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "CategoryId", + "Name" + ], + "type": "object", + "properties": { + "CategoryId": { + "type": "integer", + "format": "int32", + "description": "Category ID.", + "example": 1 + }, + "Name": { + "type": "string", + "description": "Specification group name.", + "example": "Sizes" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int32", + "description": "Specification group ID." + }, + "CategoryId": { + "type": "integer", + "format": "int32", + "description": "Category ID." + }, + "Name": { + "type": "string", + "description": "Specification group name." + }, + "Position": { + "type": "integer", + "format": "int32", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - specification Group Position." + } + } + }, + "example": { + "Id": 10, + "CategoryId": 1, + "Name": "Sizes", + "Position": 3 + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog/pvt/specificationgroup/{groupId}": { + "put": { + "tags": [ + "Specification group" + ], + "summary": "Update specification group", + "description": "Update a specification group. \r\n>⚠️ It is also possible to update a specification Group by using an alternative legacy route: `/api/catalog_system/pvt/specification/group`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Groups** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "description": "Group's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "CategoryId", + "Name", + "Id", + "Position" + ], + "properties": { + "CategoryId": { + "type": "integer", + "description": "Category ID where the specification group is contained.", + "example": 1 + }, + "Id": { + "type": "integer", + "format": "int32", + "description": "Specification group ID.", + "example": 24 + }, + "Name": { + "type": "string", + "description": "Specification group name.", + "example": "Sizes" + }, + "Position": { + "type": "integer", + "description": "Specification group position.", + "example": 1 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "CategoryId": { + "type": "integer", + "description": "Category ID where the specification Group is contained." + }, + "Id": { + "type": "integer", + "format": "int32", + "description": "Specification group ID." + }, + "Name": { + "type": "string", + "description": "Specification group name." + }, + "Position": { + "type": "integer", + "description": "Specification group position." + } + } + }, + "example": { + "CategoryId": 1, + "Id": 24, + "Name": "Sizes", + "Position": 1 + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_specificationgroup_ByGroupId" + } + }, + "/api/catalog/pvt/specification/nonstructured/{Id}": { + "get": { + "tags": [ + "Non-structured specification" + ], + "summary": "Get non-structured specification by ID", + "description": "Retrieves general information about unmapped specifications of a seller's SKU in a Marketplace.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "description": "Non-structured specification's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1010 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object with non-structured specification details.", + "properties": { + "Id": { + "type": "integer", + "description": "Non-structured specification's unique numerical identifier." + }, + "SkuId": { + "type": "integer", + "description": "SKU's unique numerical identifier." + }, + "SpecificationName": { + "type": "string", + "description": "Name of the non-structured specification." + }, + "SpecificationValue": { + "type": "string", + "description": "Value of the non-structured specification." + } + } + } + }, + "example": [ + { + "Id": 1010, + "SkuId": 310119072, + "SpecificationName": "size", + "SpecificationValue": "Small" + } + ] + } + } + } + }, + "operationId": "get_api_catalog_pvt_specification_nonstructured_ById" + }, + "delete": { + "tags": [ + "Non-structured specification" + ], + "summary": "Delete non-structured specification", + "description": "Deletes unmapped specifications of a seller'S SKU in a marketplace by its unique ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "Id", + "in": "path", + "required": true, + "description": "Non-structured specification's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_specification_nonstructured_ById" + } + }, + "/api/catalog/pvt/specification/nonstructured": { + "get": { + "tags": [ + "Non-structured specification" + ], + "summary": "Get non-structured specification by SKU ID", + "description": "Gets general information about unmapped specifications of a seller's SKU in a marketplace by SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "query", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Non-structured specification details.", + "properties": { + "Id": { + "type": "integer", + "description": "Non-structured specification's unique numerical identifier." + }, + "SkuId": { + "type": "integer", + "description": "SKU's unique numerical identifier." + }, + "SpecificationName": { + "type": "string", + "description": "Name of the non-structured specification." + }, + "SpecificationValue": { + "type": "string", + "description": "Value of the non-structured specification." + } + } + } + }, + "example": [ + { + "Id": 1010, + "SkuId": 310119072, + "SpecificationName": "size", + "SpecificationValue": "Small" + } + ] + } + } + } + }, + "operationId": "get_api_catalog_pvt_specification_nonstructured" + }, + "delete": { + "tags": [ + "Non-structured specification" + ], + "summary": "Delete non-structured specification by SKU ID", + "description": "Deletes unmapped specifications of a seller'S SKU in a marketplace by SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "query", + "required": true, + "description": "SKU's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_specification_nonstructured" + } + }, + "/api/catalog/pvt/supplier": { + "post": { + "tags": [ + "Supplier" + ], + "summary": "Create supplier", + "description": "Creates a new supplier.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | **Edit Product** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierResponse" + }, + "example": { + "Id": 123, + "Name": "Supplier", + "CorporateName": "TopStore", + "StateInscription": "123456", + "Cnpj": "33304981001272", + "Phone": "3333333333", + "CellPhone": "4444444444", + "CorportePhone": "5555555555", + "Email": "email@email.com", + "IsActive": false + } + } + } + } + }, + "operationId": "post_api_catalog_pvt_supplier" + } + }, + "/api/catalog/pvt/supplier/{supplierId}": { + "put": { + "tags": [ + "Supplier" + ], + "summary": "Update supplier", + "description": "Updates general information of an existing supplier.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | **Edit Product** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "supplierId", + "in": "path", + "required": true, + "description": "Supplier's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupplierResponse" + }, + "example": { + "Id": 123, + "Name": "Supplier", + "CorporateName": "TopStore", + "StateInscription": "123456", + "Cnpj": "33304981001272", + "Phone": "3333333333", + "CellPhone": "4444444444", + "CorportePhone": "5555555555", + "Email": "email@email.com", + "IsActive": false + } + } + } + } + }, + "operationId": "put_api_catalog_pvt_supplier_BySupplierId" + }, + "delete": { + "tags": [ + "Supplier" + ], + "summary": "Delete supplier", + "description": "Deletes an existing supplier.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | **Edit Product** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "supplierId", + "in": "path", + "required": true, + "description": "Supplier's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_supplier_BySupplierId" + } + }, + "/api/catalog/pvt/product/{productId}/salespolicy": { + "get": { + "tags": [ + "Trade policy" + ], + "summary": "Get trade policies by product ID", + "description": "Retrieves a list of trade policies associated to a product by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | View Product |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing the product ID and the trade policy ID.", + "properties": { + "ProductId": { + "type": "integer", + "description": "Product's unique numerical identifier." + }, + "StoreId": { + "type": "integer", + "description": "Trade policy's unique numerical identifier." + } + } + } + }, + "example": [ + { + "ProductId": 1, + "StoreId": 1 + }, + { + "ProductId": 1, + "StoreId": 2 + }, + { + "ProductId": 1, + "StoreId": 3 + }, + { + "ProductId": 1, + "StoreId": 4 + } + ] + } + } + } + }, + "operationId": "get_api_catalog_pvt_product_ByProductId_salespolicy" + } + }, + "/api/catalog/pvt/product/{productId}/salespolicy/{tradepolicyId}": { + "post": { + "tags": [ + "Trade policy" + ], + "summary": "Associate product with trade policy", + "description": "Associates an existing trade policy with a product.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | Edit Product |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "tradepolicyId", + "in": "path", + "required": true, + "description": "Trade policy's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "post_api_catalog_pvt_product_ByProductId_salespolicy_ByTradepolicyId" + }, + "delete": { + "tags": [ + "Trade policy" + ], + "summary": "Remove product from trade policy", + "description": "Disassociates a trade policy of a product.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | Edit Product |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "tradepolicyId", + "in": "path", + "required": true, + "description": "Trade policy's unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_catalog_pvt_product_ByProductId_salespolicy_ByTradepolicyId" + } + }, + "/api/catalog/pvt/product/{productId}/language": { + "get": { + "tags": [ + "Multi-language beta" + ], + "summary": "Get product translation by product ID", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a product and its associated entities, including categories, brand information, and specifications. Only fields and entities that have valid translations in the requested language are returned.\r\n\r\nTo get translations for a given language, you can filter results using the `locale` query parameter.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/ProductId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a product.", + "properties": { + "Id": { + "type": "integer", + "description": "Product unique identifier." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the product." + }, + "Description": { + "type": "string", + "description": "Translated description of the product.", + "nullable": true + }, + "Title": { + "type": "string", + "description": "Translated title of the product.", + "nullable": true + }, + "MetaTagDescription": { + "type": "string", + "description": "Translated meta tag description for SEO.", + "nullable": true + }, + "DescriptionShort": { + "type": "string", + "description": "Translated short description of the product.", + "nullable": true + }, + "Keywords": { + "type": "string", + "description": "Product translated keywords for SEO." + }, + "LinkId": { + "type": "string", + "description": "Translated URL-friendly identifier for the product.", + "nullable": true + }, + "Category": { + "type": "object", + "description": "Main category translation information.", + "properties": { + "Id": { + "type": "integer", + "description": "Category ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Category name." + }, + "Title": { + "type": "string", + "description": "Category title." + }, + "Description": { + "type": "string", + "description": "Category description." + }, + "Keywords": { + "type": "string", + "description": "Category keywords." + }, + "LinkId": { + "type": "string", + "description": "Category link ID." + } + } + }, + "Categories": { + "type": "array", + "description": "Array of subcategories translations, when applicable.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a subcategory.", + "properties": { + "Id": { + "type": "integer", + "description": "Subcategory ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Subcategory name." + }, + "Title": { + "type": "string", + "description": "Subcategory title." + }, + "Description": { + "type": "string", + "description": "Subcategory description." + }, + "Keywords": { + "type": "string", + "description": "Subcategory keywords." + }, + "LinkId": { + "type": "string", + "description": "Subcategory link ID.", + "nullable": true + } + } + } + }, + "SimilarCategories": { + "type": "array", + "description": "Array with similar categories translations.", + "nullable": true, + "items": { + "type": "object", + "description": "Object containing language-specific information for a similar category.", + "properties": { + "Id": { + "type": "integer", + "description": "Similar category ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Similar category name." + }, + "Title": { + "type": "string", + "description": "Similar category title." + }, + "Description": { + "type": "string", + "description": "Similar category description." + }, + "Keywords": { + "type": "string", + "description": "Similar category keywords." + }, + "LinkId": { + "type": "string", + "description": "Similar category link ID." + } + } + } + }, + "Brand": { + "type": "object", + "description": "Object containing language-specific information for a brand.", + "nullable": true, + "properties": { + "Id": { + "type": "integer", + "description": "Brand ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Brand name." + }, + "Text": { + "type": "string", + "description": "Brand text." + }, + "Keywords": { + "type": "string", + "description": "Brand keywords." + }, + "SiteTitle": { + "type": "string", + "description": "Brand site title." + }, + "LinkId": { + "type": "string", + "description": "Brand link ID." + } + } + }, + "Skus": { + "type": "array", + "description": "List of SKUs translations.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "SKU name." + }, + "MeasurementUnit": { + "type": "string", + "description": "SKU measurement unit." + }, + "Attributes": { + "type": "array", + "description": "Array of SKU attributes translations.", + "nullable": true, + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU attribute.", + "nullable": true, + "properties": { + "Id": { + "type": "integer", + "description": "SKU attribute ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "AttributeName": { + "type": "string", + "description": "SKU attribute name." + }, + "AttributeValue": { + "type": "string", + "description": "SKU attribute value." + } + } + } + }, + "Attachments": { + "type": "array", + "description": "Array of SKU attachments translations.", + "nullable": true, + "items": { + "type": "object", + "nullable": true, + "description": "Object containing language-specific information for a SKU attachment.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU attachment ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "SKU attachment name." + }, + "Domains": { + "type": "array", + "description": "Array with SKU attachment domains translations.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU attachment domain.", + "properties": { + "OriginalFieldName": { + "type": "string", + "description": "Domain original field name." + }, + "FieldName": { + "type": "string", + "description": "Domain field name." + }, + "DomainValues": { + "type": "string", + "description": "Domain values." + } + } + } + } + } + } + }, + "Services": { + "type": "array", + "description": "Array with SKU services translations.", + "nullable": true, + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU service.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU service ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "SKU service name." + }, + "Text": { + "type": "string", + "description": "SKU service text." + }, + "SkuServiceType": { + "type": "object", + "description": "Object with SKU service type translations.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU service type ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "SKU service type name." + }, + "Values": { + "type": "array", + "description": "Array with the SKU service type values translations.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU service type value.", + "properties": { + "Id": { + "type": "integer", + "description": "Service type value ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Service type value name." + } + } + } + }, + "Attachments": { + "type": "array", + "description": "Array with the translations of the SKU service type attachments.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU service type attachment.", + "properties": { + "Id": { + "type": "integer", + "description": "Attachment ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Attachment name." + }, + "Domains": { + "type": "array", + "description": "Array with the domains translations of the SKU service type attachment.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a domain of the SKU service type attachment.", + "properties": { + "OriginalFieldName": { + "type": "string", + "description": "Original field name." + }, + "FieldName": { + "type": "string", + "description": "Translated field name." + }, + "DomainValues": { + "type": "string", + "description": "Domain value." + } + } + } + } + } + } + } + } + } + } + } + }, + "SpecificationGroups": { + "type": "array", + "description": "Array of the SKU specification groups translations.", + "nullable": true, + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU specification group.", + "nullable": true, + "properties": { + "Id": { + "type": "integer", + "description": "SKU specification group ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "SKU specification group name." + }, + "Specifications": { + "type": "array", + "description": "Array of specifications translations of the SKU specification group.", + "items": { + "type": "object", + "description": "Object containing language-specific information for specifications of the SKU specification group.", + "properties": { + "Id": { + "type": "integer", + "description": "Specification ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Specification name." + }, + "Description": { + "type": "string", + "description": "Specification description." + }, + "Value": { + "type": "array", + "description": "Array of specification values translations of the SKU specification group.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU specification group value.", + "properties": { + "Id": { + "type": "integer", + "description": "Specification value ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Specification value name." + }, + "IsCustomValue": { + "type": "boolean", + "description": "Defines whether the specification value is custom (`true`) or not (`false`)." + } + } + } + } + } + } + } + } + } + }, + "Files": { + "type": "array", + "description": "Array with SKU files translations.", + "nullable": true, + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU file.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the association between the SKU and the file." + }, + "FileId": { + "type": "integer", + "description": "File ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Label": { + "type": "string", + "description": "File label." + }, + "Name": { + "type": "string", + "description": "File name." + }, + "Text": { + "type": "string", + "description": "File text.", + "nullable": true + } + } + } + } + } + } + }, + "SpecificationGroups": { + "type": "array", + "description": "Array with the product specification groups translations.", + "nullable": true, + "items": { + "type": "object", + "description": "Object containing language-specific information for a product specification group.", + "properties": { + "Id": { + "type": "integer", + "description": "Product specification group ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Product specification group name." + }, + "Specifications": { + "type": "array", + "description": "Array with the specifications translations of the product specification group.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a specification of the product specification group.", + "properties": { + "Id": { + "type": "integer", + "description": "Specification ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Specification name." + }, + "Description": { + "type": "string", + "description": "Specification description." + }, + "Values": { + "type": "array", + "description": "Array with the specification values of the product specification group.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a specification value of the product specification group.", + "properties": { + "Id": { + "type": "integer", + "description": "Specification value ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Specification value name." + }, + "IsCustomValue": { + "type": "boolean", + "description": "Defines whether the specification value is custom (`true`) or not (`false`)." + } + } + } + } + } + } + } + } + } + }, + "Collections": { + "type": "array", + "description": "Array with the product collections translations.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a collection.", + "properties": { + "Id": { + "type": "integer", + "description": "Collection ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Collection name." + }, + "Description": { + "type": "string", + "description": "Collection description." + }, + "LinkId": { + "type": "string", + "description": "Collection link ID.", + "nullable": true + } + } + } + } + } + } + }, + "example": [ + { + "Id": 2, + "Locale": "en-US", + "Name": "Men's Red T-Shirt", + "Description": "The Men's Basic Red T-Shirt is the perfect piece for those who value both style and comfort in their everyday look. Made from soft, breathable cotton fabric, it offers a lightweight fit and a smooth touch on the skin. Its minimalist design makes it easy to match with different styles — from casual to modern — perfect to wear with jeans, shorts, or layered under a jacket.
  • Color: Red
  • Fit: Regular
  • Neckline: Crew neck
  • Fabric: 100% cotton
  • Ideal for: Casual wear, work, or leisure
A versatile and essential piece in the modern man's wardrobe, combining practicality and good taste in one product.", + "Title": "Men's Red T-Shirt", + "MetaTagDescription": null, + "DescriptionShort": null, + "Keywords": "shirt, red, basic, cotton", + "LinkId": null, + "Category": { + "Id": 18, + "Locale": "en-US", + "Name": "New Clothes", + "Title": "New Clothes", + "Description": "New Clothes for men", + "Keywords": "New, Clothes", + "LinkId": "new-clothes" + }, + "Categories": [ + { + "Id": 18, + "Locale": "en-US", + "Name": "New Clothes", + "Title": "New Clothes", + "Description": "New Clothes for men casual", + "Keywords": "New, Clothes", + "LinkId": "new-clothes-for-men-casual" + }, + { + "Id": 15, + "Locale": "en-US", + "Name": "Accessories", + "Title": "Accessories", + "Description": "Accessories for men", + "Keywords": "fashion", + "LinkId": null + } + ], + "SimilarCategories": null, + "Brand": { + "Id": 1, + "Locale": "en-US", + "Name": "Casual clothes", + "Text": "The best casual clothes for your everyday life.", + "Keywords": "casual, clothes, everyday life", + "SiteTitle": "Casual clothes", + "LinkId": "casual-clothes" + }, + "Skus": [ + { + "Id": 33, + "Locale": "en-US", + "Name": "Men's Red T-Shirt", + "MeasurementUnit": "un", + "Attributes": [ + { + "Id": 17, + "Locale": "en-US", + "AttributeName": "Color", + "AttributeValue": "Red" + } + ], + "Attachments": [ + { + "Id": 4, + "Locale": "en-US", + "Name": "Customization", + "Domains": [ + { + "OriginalFieldName": "Customização", + "FieldName": "Customization", + "DomainValues": "Special" + } + ] + } + ], + "Services": [ + { + "Id": 8, + "Locale": "en-US", + "Name": "Packaging", + "Text": "Packaging for giving as a gift", + "SkuServiceType": { + "Id": 34, + "Locale": "en-US", + "Name": "Small box", + "Values": [ + { + "Id": 1, + "Locale": "en-US", + "Name": "Premium box" + } + ], + "Attachments": [ + { + "Id": 4, + "Locale": "en-US", + "Name": "Custom writing on gift card", + "Domains": [ + { + "OriginalFieldName": "Tipografia moderna", + "FieldName": "Modern font", + "DomainValues": "helvetica" + } + ] + } + ] + } + } + ], + "SpecificationGroups": [], + "Files": [ + { + "Id": 8, + "FileId": 197, + "Locale": "en-US", + "Label": "frontal-view", + "Name": "Frontal view of the product", + "Text": null + } + ] + } + ], + "SpecificationGroups": [ + { + "Id": 8, + "Locale": "en-US", + "Name": "Masculine clothes", + "Specifications": [ + { + "Id": 36, + "Locale": "en-US", + "Name": "Fabric type", + "Description": "Fabric types of which the product is made.", + "Values": [ + { + "Id": 146, + "Locale": "en-US", + "Name": "Woll, cotton and synthetic fabrics", + "IsCustomValue": false + } + ] + } + ] + } + ], + "Collections": [ + { + "Id": 1139, + "Locale": "en-US", + "Name": "Shirts Collection", + "Description": "Shirts Collection description in English", + "LinkId": "shirts-collection" + } + ] + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_product_ByProductId_language" + }, + "put": { + "tags": [ + "Multi-language beta" + ], + "summary": "Create or update product translation by product ID", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a product by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/ProductId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name", + "Title" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the product." + }, + "Title": { + "type": "string", + "description": "Translated title of the product for SEO purposes. When updating, if the field is not provided, the current title will turn to `null`.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Translated description of the product. When updating, if the field is not provided, the current description will turn to `null`.", + "nullable": true + }, + "MetaTagDescription": { + "type": "string", + "description": "Translated meta tag description for SEO. When updating, if the field is not provided, the current meta tag description will turn to `null`.", + "nullable": true + }, + "DescriptionShort": { + "type": "string", + "description": "Translated short description of the product. When updating, if the field is not provided, the current short description will turn to `null`.", + "nullable": true + }, + "Keywords": { + "type": "string", + "description": "Product translated keywords for SEO. When updating, if the field is not provided, the current keywords will turn to `null`.", + "nullable": true + }, + "LinkId": { + "type": "string", + "description": "Translated URL-friendly identifier for the product. When updating, if the field is not provided, the current link ID will turn to `null`.", + "nullable": true + } + } + }, + "example": { + "Locale": "en-US", + "Name": "Classic Blue T-Shirt", + "Title": "Classic Blue Tshirt", + "Description": "A comfortable cotton t-shirt in classic blue color", + "MetaTagDescription": "Buy the best classic blue t-shirt made with premium cotton", + "DescriptionShort": "Comfortable cotton t-shirt", + "Keywords": "t-shirt, blue, cotton, casual", + "LinkId": "classic-blue-tshirt" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_product_ByProductId_language" + } + }, + "/api/catalog/pvt/products/{productId}/specification/{specificationId}/language": { + "get": { + "tags": [ + "Multi-language beta" + ], + "summary": "Get product specification translation by product ID", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a product specification searching by product ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/ProductId" + }, + { + "$ref": "#/components/parameters/SpecificationId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a product specification.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the association between the specification and the product." + }, + "ProductId": { + "type": "integer", + "description": "Product unique identifier." + }, + "SpecificationId": { + "type": "integer", + "description": "Specification unique identifier." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the product specification." + }, + "Value": { + "type": "string", + "description": "Translated value of the product specification." + }, + "Values": { + "type": "array", + "description": "List of the translated product specification values. Valid for combo, radio and checkbox specification types; nullable for text, multi-line text, number, indexed text and indexed multi-line text specification types.", + "items": { + "type": "string", + "description": "Translated product specification value." + }, + "nullable": true + } + } + } + }, + "example": [ + { + "Id": 349, + "ProductId": 10, + "SpecificationId": 23, + "Locale": "en-US", + "Name": "Material", + "Value": "100% Cotton", + "Values": null + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_products_ByProductId_specification_BySpecificationId_language" + }, + "put": { + "tags": [ + "Multi-language beta" + ], + "summary": "Create or update product specification translation by product ID", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a given product specification searching by product ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/ProductId" + }, + { + "$ref": "#/components/parameters/SpecificationId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ProductId", + "SpecificationId", + "Locale", + "Name", + "Value" + ], + "properties": { + "ProductId": { + "type": "integer", + "description": "Product unique identifier." + }, + "SpecificationId": { + "type": "integer", + "description": "Specification unique identifier." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the product specification." + }, + "Value": { + "type": "string", + "description": "Translated value of the product specification.", + "nullable": true + }, + "Values": { + "type": "array", + "description": "List of the translated product specification value options. Valid for combo, radio and checkbox specification types; nullable for text, multi-line text, number, indexed text and indexed multi-line text specification types.", + "items": { + "type": "string", + "description": "Translated product specification value option." + }, + "nullable": true + } + } + }, + "example": { + "ProductId": 2, + "SpecificationId": 23, + "Locale": "pt-BR", + "Name": "Material", + "Value": "100% Algodão", + "Values": null + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_products_ByProductId_specification_BySpecificationId_language" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/language": { + "get": { + "tags": [ + "Multi-language SKU beta" + ], + "summary": "Get SKU translation by SKU ID", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a SKU by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/SkuId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the SKU." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the SKU." + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit for the SKU. The acceptables values are:\n\r- `un`: Unit\n\r- `kg`: Kilogram\n\r- `g`: Gram\n\r- `mg`: Milligram\n\r- `m`: Meter\n\r- `m²`: Square meter\n\r- `m³`: Cubic meter\n\r- `cm`: Centimeter\n\r- `cm²`: Square centimeter\n\r- `cm³`: Cubic centimeter\n\r- `mm`: Millimeter\n\r- `mm²`: Square millimeter\n\r- `mm³`: Cubic millimeter\n\r- `oz`: Ounce\n\r- `lb`: Pound\n\r- `ft`: Foot\n\r- `ft²`: Square foot\n\r- `ft³`: Cubic foot\n\r- `in`: Inch\n\r- `in²`: Square inch\n\r- `in³`: Cubic inch" + }, + "Attributes": { + "type": "array", + "description": "Array of SKU attributes translations.", + "nullable": true, + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU attribute.", + "nullable": true, + "properties": { + "Id": { + "type": "integer", + "description": "SKU attribute ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "AttributeName": { + "type": "string", + "description": "SKU attribute name." + }, + "AttributeValue": { + "type": "string", + "description": "SKU attribute value." + } + } + } + }, + "Attachments": { + "type": "array", + "description": "Array of SKU attachments translations.", + "nullable": true, + "items": { + "type": "object", + "nullable": true, + "description": "Object containing language-specific information for a SKU attachment.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU attachment ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "SKU attachment name." + }, + "Domains": { + "type": "array", + "description": "Array with SKU attachment domains translations.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU attachment domain.", + "properties": { + "OriginalFieldName": { + "type": "string", + "description": "Domain original field name." + }, + "FieldName": { + "type": "string", + "description": "Domain field name." + }, + "DomainValues": { + "type": "string", + "description": "Domain values." + } + } + } + } + } + } + }, + "Services": { + "type": "array", + "description": "Array with SKU services translations.", + "nullable": true, + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU service.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU service ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "SKU service name." + }, + "Text": { + "type": "string", + "description": "SKU service text." + }, + "SkuServiceType": { + "type": "object", + "description": "Object with SKU service type translations.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU service type ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "SKU service type name." + }, + "Values": { + "type": "array", + "description": "Array with the SKU service type values translations.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU service type value.", + "properties": { + "Id": { + "type": "integer", + "description": "Service type value ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Service type value name." + } + } + } + }, + "Attachments": { + "type": "array", + "description": "Array with the translations of the SKU service type attachments.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU service type attachment.", + "properties": { + "Id": { + "type": "integer", + "description": "Attachment ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Attachment name." + }, + "Domains": { + "type": "array", + "description": "Array with the domains translations of the SKU service type attachment.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a domain of the SKU service type attachment.", + "properties": { + "OriginalFieldName": { + "type": "string", + "description": "Original field name." + }, + "FieldName": { + "type": "string", + "description": "Translated field name." + }, + "DomainValues": { + "type": "string", + "description": "Domain value." + } + } + } + } + } + } + } + } + } + } + } + }, + "SpecificationGroups": { + "type": "array", + "description": "Array of the SKU specification groups translations.", + "nullable": true, + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU specification group.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU specification group ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "SKU specification group name." + }, + "Specifications": { + "type": "array", + "description": "Array of specifications translations of the SKU specification group.", + "items": { + "type": "object", + "description": "Object containing language-specific information for specifications of the SKU specification group.", + "properties": { + "Id": { + "type": "integer", + "description": "Specification ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Specification name." + }, + "Description": { + "type": "string", + "description": "Specification description." + }, + "Value": { + "type": "array", + "description": "Array of specification values translations of the SKU specification group.", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU specification group value.", + "properties": { + "Id": { + "type": "integer", + "description": "Specification value ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Name": { + "type": "string", + "description": "Specification value name." + }, + "IsCustomValue": { + "type": "boolean", + "description": "Defines whether the specification value is custom (`true`) or not (`false`)." + } + } + } + } + } + } + } + } + } + }, + "Files": { + "type": "array", + "description": "Array with SKU files translations.", + "nullable": true, + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU file.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the association between the SKU and the file." + }, + "FileId": { + "type": "integer", + "description": "File ID." + }, + "Locale": { + "type": "string", + "description": "Locale code." + }, + "Label": { + "type": "string", + "description": "File label." + }, + "Name": { + "type": "string", + "description": "File name." + }, + "Text": { + "type": "string", + "description": "File text.", + "nullable": true + } + } + } + } + } + } + }, + "example": [ + { + "Id": 21, + "Locale": "es-ES", + "Name": "Camiseta clásica azul", + "MeasurementUnit": "un", + "Attributes": [ + { + "Id": 17, + "Locale": "es-ES", + "AttributeName": "Color", + "AttributeValue": "Rojo" + } + ], + "Attachments": [ + { + "Id": 4, + "Locale": "es-ES", + "Name": "Customización", + "Domains": [ + { + "OriginalFieldName": "Customização", + "FieldName": "Customización", + "DomainValues": "Special" + } + ] + } + ], + "Services": [ + { + "Id": 8, + "Locale": "es-ES", + "Name": "Paquete de regalo", + "Text": "Paquete de regalo para dar como regalo", + "SkuServiceType": { + "Id": 34, + "Locale": "es-ES", + "Name": "Paquete pequeño", + "Values": [ + { + "Id": 1, + "Locale": "es-ES", + "Name": "Paquete premium" + } + ], + "Attachments": [ + { + "Id": 4, + "Locale": "es-ES", + "Name": "Escritura personalizada en la tarjeta de regalo", + "Domains": [ + { + "OriginalFieldName": "Tipografía moderna", + "FieldName": "Fuente moderna", + "DomainValues": "Arial" + } + ] + } + ] + } + } + ], + "SpecificationGroups": [ + { + "Id": 8, + "Locale": "es-ES", + "Name": "Ropa masculina", + "Specifications": [ + { + "Id": 36, + "Locale": "es-ES", + "Name": "Tipo de tejido", + "Description": "Tipos de tejido de los que está hecho el producto.", + "Values": [ + { + "Id": 146, + "Locale": "es-ES", + "Name": "Algodón, lana y tejidos sintéticos", + "IsCustomValue": false + } + ] + } + ] + } + ], + "Files": [ + { + "Id": 8, + "FileId": 197, + "Locale": "es-ES", + "Label": "vista-frontal", + "Name": "Vista frontal del producto", + "Text": null + } + ] + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_stockkeepingunit_BySkuId_language" + }, + "put": { + "tags": [ + "Multi-language SKU beta" + ], + "summary": "Create or update SKU translation by SKU ID", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a SKU by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/SkuId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name", + "MeasurementUnit" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the SKU." + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit for the SKU. The acceptables values are:\n\r- `un`: Unit\n\r- `kg`: Kilogram\n\r- `g`: Gram\n\r- `mg`: Milligram\n\r- `m`: Meter\n\r- `m²`: Square meter\n\r- `m³`: Cubic meter\n\r- `cm`: Centimeter\n\r- `cm²`: Square centimeter\n\r- `cm³`: Cubic centimeter\n\r- `mm`: Millimeter\n\r- `mm²`: Square millimeter\n\r- `mm³`: Cubic millimeter\n\r- `oz`: Ounce\n\r- `lb`: Pound\n\r- `ft`: Foot\n\r- `ft²`: Square foot\n\r- `ft³`: Cubic foot\n\r- `in`: Inch\n\r- `in²`: Square inch\n\r- `in³`: Cubic inch" + } + } + }, + "example": { + "Locale": "en-US", + "Name": "Classic Blue T-Shirt - Size M", + "MeasurementUnit": "un" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_stockkeepingunit_BySkuId_language" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/attribute/{skuAttributeId}/language": { + "get": { + "tags": [ + "Multi-language SKU beta" + ], + "summary": "Get SKU attribute translation by SKU ID", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a SKU attribute searching by SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/SkuId" + }, + { + "$ref": "#/components/parameters/SkuAttributeId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU attribute.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU specification attribute unique identifier." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "AttributeName": { + "type": "string", + "description": "Translated SKU attribute name." + }, + "AttributeValue": { + "type": "string", + "description": "Translated SKU attribute value." + } + } + } + }, + "example": [ + { + "Id": 1, + "Locale": "en-US", + "AttributeName": "Size", + "AttributeValue": "38" + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_stockkeepingunit_BySkuId_attribute_BySkuAttributeId_language" + }, + "put": { + "tags": [ + "Multi-language SKU beta" + ], + "summary": "Create or update SKU attribute translation by SKU ID", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a SKU attribute searching by SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/SkuId" + }, + { + "$ref": "#/components/parameters/SkuAttributeId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object containing language-specific information for a SKU attribute.", + "required": [ + "Id", + "Locale", + "AttributeName", + "AttributeValue" + ], + "properties": { + "Id": { + "type": "integer", + "description": "SKU specification attribute unique identifier." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "AttributeName": { + "type": "string", + "description": "Translated SKU attribute name." + }, + "AttributeValue": { + "type": "string", + "description": "Translated SKU attribute value." + } + } + }, + "example": { + "Id": 1, + "Locale": "en-US", + "AttributeName": "Size", + "AttributeValue": "38" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_stockkeepingunit_BySkuId_attribute_BySkuAttributeId_language" + } + }, + "/api/catalog/pvt/stockkeepingunit/{skuId}/file/{skuFileId}/language": { + "get": { + "tags": [ + "Multi-language SKU beta" + ], + "summary": "Get SKU file translation by SKU ID", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a SKU file searching by SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/SkuId" + }, + { + "$ref": "#/components/parameters/SkuFileId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU file.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the association between the SKU file and the SKU." + }, + "FileId": { + "type": "integer", + "description": "Unique identifier of the SKU file.", + "nullable": true + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Label": { + "type": "string", + "description": "Translated label for the SKU file.", + "nullable": true + }, + "Text": { + "type": "string", + "description": "Translated text description of the file.", + "nullable": true + } + } + } + }, + "example": [ + { + "Id": 459, + "FileId": null, + "Locale": "en-US", + "Label": "Front view", + "Name": "Product image - front", + "Text": "Front of the tshirt" + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_stockkeepingunit_BySkuId_file_BySkuFileId_language" + }, + "put": { + "tags": [ + "Multi-language SKU beta" + ], + "summary": "Create or update SKU file translation by SKU ID", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a SKU file searching by SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/SkuId" + }, + { + "$ref": "#/components/parameters/SkuFileId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Label", + "Name", + "Text" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Label": { + "type": "string", + "description": "Translated label for the SKU file. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Translated name of the SKU file." + }, + "Text": { + "type": "string", + "description": "Translated text description of the file. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + } + } + }, + "example": { + "Locale": "en-US", + "Label": "Front view", + "Name": "Product image - front", + "Text": "Front of the tshirt" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_stockkeepingunit_BySkuId_file_BySkuFileId_language" + } + }, + "/api/catalog/pvt/specificationgroup/{specificationGroupId}/language": { + "get": { + "tags": [ + "Multi-language specification beta" + ], + "summary": "Get specification group translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a specification group by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/SpecificationGroupId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a specification group.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the specification group." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated specification group name." + }, + "Specifications": { + "type": "array", + "description": "List of translated specifications group values.", + "nullable": true, + "items": { + "type": "string", + "description": "Specification group value." + } + } + } + } + }, + "example": [ + { + "Id": 1, + "Locale": "en-US", + "Name": "Fabric", + "Specifications": null + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_specificationgroup_BySpecificationGroupId_language" + }, + "put": { + "tags": [ + "Multi-language specification beta" + ], + "summary": "Create or update specification group translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a specification group by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/SpecificationGroupId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the specification group." + } + } + }, + "example": { + "Locale": "en-US", + "Name": "Product Specifications" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_specificationgroup_BySpecificationGroupId_language" + } + }, + "/api/catalog/pvt/specification/{specificationId}/language": { + "get": { + "tags": [ + "Multi-language specification beta" + ], + "summary": "Get specification translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a specification by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/SpecificationId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a specification.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the specification." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the specification." + }, + "Description": { + "type": "string", + "description": "Translated description of the specification.", + "nullable": true + }, + "Values": { + "type": "array", + "description": "List of the translated specification values.", + "nullable": true, + "items": { + "type": "string", + "description": "Translated specification value." + } + } + } + } + }, + "example": [ + { + "Id": 59, + "Locale": "en-US", + "Name": "Color", + "Description": "Navy blue", + "Values": null + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_specification_BySpecificationId_language" + }, + "put": { + "tags": [ + "Multi-language specification beta" + ], + "summary": "Create or update specification translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a specification by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/SpecificationId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the specification." + }, + "Description": { + "type": "string", + "description": "Translated description of the specification, limited to 15 characters. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + } + } + }, + "example": { + "Locale": "en-US", + "Name": "Color", + "Description": "Navy blue" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_specification_BySpecificationId_language" + } + }, + "/api/catalog/pvt/specificationvalue/{valueId}/language": { + "get": { + "tags": [ + "Multi-language specification beta" + ], + "summary": "Get specification value translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a specification value by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/ValueId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a specification value.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the specification value." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the specification value." + }, + "IsCustomValue": { + "type": "boolean", + "description": "Indicates wether the value is a customization (`true`) or not (`false`).", + "nullable": true + } + } + } + }, + "example": [ + { + "Id": 60, + "Locale": "es-ES", + "Name": "Talla grande", + "IsCustomValue": false + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_specificationvalue_ByValueId_language" + }, + "put": { + "tags": [ + "Multi-language specification beta" + ], + "summary": "Create or update specification value translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a specification value by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/ValueId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the specification value." + } + } + }, + "example": { + "Locale": "es-ES", + "Name": "Talla grande" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_specificationvalue_ByValueId_language" + } + }, + "/api/catalog/pvt/category/{categoryId}/language": { + "get": { + "tags": [ + "Multi-language category beta" + ], + "summary": "Get category translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a given category.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/CategoryId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a category.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the category." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the category." + }, + "Title": { + "type": "string", + "description": "Translated title of the category for SEO purposes.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Translated description of the category.", + "nullable": true + }, + "Keywords": { + "type": "string", + "description": "Category translated keywords for SEO.", + "nullable": true + }, + "LinkId": { + "type": "string", + "description": "Translated URL-friendly identifier for the category.", + "nullable": true + } + } + } + }, + "example": [ + { + "Id": 12, + "Locale": "en-US", + "Name": "Men's Clothing", + "Title": "Men's Clothing Fashion Store", + "Description": "Discover our collection of men's clothing", + "Keywords": "men, clothing, fashion, apparel", + "LinkId": "mens-clothing" + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_category_ByCategoryId_language" + }, + "put": { + "tags": [ + "Multi-language category beta" + ], + "summary": "Create or update category translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a category by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/CategoryId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the category." + }, + "Title": { + "type": "string", + "description": "Translated title of the category for SEO purposes. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Translated description of the category. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + }, + "Keywords": { + "type": "string", + "description": "Category translated keywords for SEO. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + }, + "LinkId": { + "type": "string", + "description": "Translated URL-friendly identifier for the category. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + } + } + }, + "example": { + "Locale": "en-US", + "Name": "Men's Clothing", + "Title": "Men's Clothing Fashion Store", + "Description": "Discover our collection of men's clothing", + "Keywords": "men, clothing, fashion, apparel", + "LinkId": "mens-clothing" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_category_ByCategoryId_language" + } + }, + "/api/catalog/pvt/brand/{brandId}/language": { + "get": { + "tags": [ + "Multi-language brand beta" + ], + "summary": "Get brand translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a brand by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/BrandId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a brand.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the brand." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the brand." + }, + "Text": { + "type": "string", + "description": "Translated text description of the brand.", + "nullable": true + }, + "Keywords": { + "type": "string", + "description": "Brand translated keywords for SEO.", + "nullable": true + }, + "SiteTitle": { + "type": "string", + "description": "Translated site title for the brand.", + "nullable": true + }, + "LinkId": { + "type": "string", + "description": "Translated URL-friendly identifier for the brand.", + "nullable": true + } + } + } + }, + "example": [ + { + "Id": 1, + "Locale": "en-US", + "Name": "Premium Apparel Co.", + "Text": "Leading manufacturer of premium clothing", + "Keywords": "premium, apparel, clothing, brand", + "SiteTitle": "Premium Apparel Co. | Quality Clothing", + "LinkId": "premium-apparel-co" + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_brand_ByBrandId_language" + }, + "put": { + "tags": [ + "Multi-language brand beta" + ], + "summary": "Create or update brand translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a brand by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/BrandId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the brand." + }, + "Text": { + "type": "string", + "description": "Translated text description of the brand. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + }, + "Keywords": { + "type": "string", + "description": "Brand translated keywords for SEO. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + }, + "SiteTitle": { + "type": "string", + "description": "Translated site title for the brand. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + }, + "LinkId": { + "type": "string", + "description": "Translated URL-friendly identifier for the brand. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + } + } + }, + "example": { + "Locale": "en-US", + "Name": "Premium Apparel Co.", + "Text": "Leading manufacturer of premium clothing", + "Keywords": "premium, apparel, clothing, brand", + "SiteTitle": "Premium Apparel Co. | Quality Clothing", + "LinkId": "premium-apparel-co" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_brand_ByBrandId_language" + } + }, + "/api/catalog/pvt/attachment/{attachmentId}/language": { + "get": { + "tags": [ + "Multi-language attachment and service beta" + ], + "summary": "Get attachment translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for an attachment by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/AttachmentId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for an attachment.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the attachment." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the attachment." + }, + "Domains": { + "type": "array", + "description": "List of domains related to the attachment.", + "nullable": true, + "items": { + "type": "string", + "description": "Attachment domain value." + } + } + } + } + }, + "example": [ + { + "Id": 2, + "Locale": "en-US", + "Name": "Customize your tshirt", + "Domains": null + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_attachment_ByAttachmentId_language" + }, + "put": { + "tags": [ + "Multi-language attachment and service beta" + ], + "summary": "Create or update attachment translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for an attachment by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/AttachmentId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the attachment." + } + } + }, + "example": { + "Locale": "en-US", + "Name": "Customize your tshirt" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_attachment_ByAttachmentId_language" + } + }, + "/api/catalog/pvt/skuservicetype/{skuServiceTypeId}/language": { + "get": { + "tags": [ + "Multi-language attachment and service beta" + ], + "summary": "Get SKU service type translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a SKU service type by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/SkuServiceTypeId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU service type.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the SKU service type." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the SKU service type." + }, + "Values": { + "type": "array", + "description": "List of values related to the SKU service type.", + "nullable": true, + "items": { + "type": "string", + "description": "SKU service type value." + } + }, + "Attachments": { + "type": "array", + "description": "List of attachments related to the SKU service type.", + "nullable": true, + "items": { + "type": "string", + "description": "SKU service type attachment name." + } + } + } + } + }, + "example": [ + { + "Id": 1, + "Locale": "pt-BR", + "Name": "Garantia estendida", + "Values": null, + "Attachments": null + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_skuservicetype_BySkuServiceTypeId_language" + }, + "put": { + "tags": [ + "Multi-language attachment and service beta" + ], + "summary": "Create or update SKU service type translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a SKU service type by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/SkuServiceTypeId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the SKU service type." + } + } + }, + "example": { + "Locale": "pt-BR", + "Name": "Garantia estendida" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_skuservicetype_BySkuServiceTypeId_language" + } + }, + "/api/catalog/pvt/skuservice/{skuserviceId}/language": { + "get": { + "tags": [ + "Multi-language attachment and service beta" + ], + "summary": "Get SKU service translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a given SKU service by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/SkuServiceId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU service.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the SKU service." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the SKU service." + }, + "Text": { + "type": "string", + "description": "Translated description of the SKU service.", + "nullable": true + } + } + } + }, + "example": [ + { + "Id": 3, + "Locale": "en-US", + "Name": "Extended warranty", + "Text": "1 year", + "SkuServiceType": null + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_skuservice_BySkuserviceId_language" + }, + "put": { + "tags": [ + "Multi-language attachment and service beta" + ], + "summary": "Create or update SKU service translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a SKU service by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/SkuServiceId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the SKU service." + }, + "Text": { + "type": "string", + "description": "Translated description of the SKU service. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + } + } + }, + "example": { + "Locale": "en-US", + "Name": "Extended warranty", + "Text": "1 year" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_skuservice_BySkuserviceId_language" + } + }, + "/api/catalog/pvt/skuservicevalue/{skuServiceValueId}/language": { + "get": { + "tags": [ + "Multi-language attachment and service beta" + ], + "summary": "Get SKU service value translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a SKU service value by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/SkuServiceValueId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a SKU service value.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the SKU service value." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the SKU service value." + } + } + } + }, + "example": [ + { + "Id": 1, + "Locale": "en-US", + "Name": "Extended warranty 1 year" + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_skuservicevalue_BySkuServiceValueId_language" + }, + "put": { + "tags": [ + "Multi-language attachment and service beta" + ], + "summary": "Create or update SKU service value translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a SKU service value by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/SkuServiceValueId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the SKU service value." + } + } + }, + "example": { + "Locale": "en-US", + "Name": "Extended warranty 1 year" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_skuservicevalue_BySkuServiceValueId_language" + } + }, + "/api/catalog/pvt/collection/{collectionId}/language": { + "get": { + "tags": [ + "Multi-language collection beta" + ], + "summary": "Get collection translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nRetrieves language-specific information for a collection by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |", + "parameters": [ + { + "$ref": "#/components/parameters/CollectionId" + }, + { + "$ref": "#/components/parameters/Locale" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object containing language-specific information for a collection.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the collection." + }, + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the collection." + }, + "Description": { + "type": "string", + "description": "Translated description of the collection.", + "nullable": true + }, + "LinkId": { + "type": "string", + "description": "Translated URL-friendly identifier for the collection.", + "nullable": true + } + } + } + }, + "example": [ + { + "Id": 1139, + "Locale": "en-US", + "Name": "Summer Collection", + "Description": "Discover our latest summer styles", + "LinkId": "summer-collection" + } + ] + } + } + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_api_catalog_pvt_collection_ByCollectionId_language" + }, + "put": { + "tags": [ + "Multi-language collection beta" + ], + "summary": "Create or update collection translation", + "description": "> ℹ️ This feature is in beta, which means that we are working to improve it. If you have any questions, please contact our [Support](https://supporticket.vtex.com/support).\r\n\r\nInserts or updates language-specific information for a collection by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| - | - | - |\r\n| Catalog | Content | Categories Management |\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/CollectionId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Locale", + "Name" + ], + "properties": { + "Locale": { + "type": "string", + "description": "The locale code for this translation. It follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil)." + }, + "Name": { + "type": "string", + "description": "Translated name of the collection." + }, + "Description": { + "type": "string", + "description": "Translated description of the collection. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + }, + "LinkId": { + "type": "string", + "description": "Translated URL-friendly identifier for the collection. When updating, if the field is not provided, it will turn to `null`.", + "nullable": true + } + } + }, + "example": { + "Locale": "en-US", + "Name": "Summer Collection", + "Description": "Discover our latest summer styles", + "LinkId": "summer-collection" + } + } + } + }, + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict" + } + }, + "operationId": "put_api_catalog_pvt_collection_ByCollectionId_language" + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "parameters": { + "SubCollectionId": { + "name": "subCollectionId", + "in": "path", + "description": "Subcollection unique numerical identifier, which can be obtained by placing a request to [Get subcollection by collection ID](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-subcollection-collectionid).", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 80 + } + }, + "ProductId": { + "name": "productId", + "in": "path", + "description": "Unique identifier of the product.", + "required": true, + "schema": { + "type": "integer", + "example": 18 + } + }, + "SkuId": { + "name": "skuId", + "in": "path", + "description": "Unique identifier of the SKU.", + "required": true, + "schema": { + "type": "integer", + "example": 35 + } + }, + "CategoryId": { + "name": "categoryId", + "in": "path", + "description": "Unique identifier of the category.", + "required": true, + "schema": { + "type": "integer", + "example": 10 + } + }, + "BrandId": { + "name": "brandId", + "in": "path", + "description": "Unique identifier of the brand.", + "required": true, + "schema": { + "type": "integer", + "example": 12 + } + }, + "CollectionId": { + "name": "collectionId", + "in": "path", + "description": "Unique identifier of the collection.", + "required": true, + "schema": { + "type": "integer", + "example": 7 + } + }, + "SpecificationGroupId": { + "name": "specificationGroupId", + "in": "path", + "description": "Unique identifier of the specification group.", + "required": true, + "schema": { + "type": "integer", + "example": 11 + } + }, + "SpecificationId": { + "name": "specificationId", + "in": "path", + "description": "Unique identifier of the specification.", + "required": true, + "schema": { + "type": "integer", + "example": 7 + } + }, + "ValueId": { + "name": "valueId", + "in": "path", + "description": "Unique identifier of the specification value.", + "required": true, + "schema": { + "type": "integer", + "example": 15 + } + }, + "AttachmentId": { + "name": "attachmentId", + "in": "path", + "description": "Unique identifier of the attachment.", + "required": true, + "schema": { + "type": "integer", + "example": 19 + } + }, + "SkuFileId": { + "name": "skuFileId", + "in": "path", + "description": "Unique identifier of the SKU file.", + "required": true, + "schema": { + "type": "integer", + "example": 47 + } + }, + "SkuAttributeId": { + "name": "skuAttributeId", + "in": "path", + "description": "Unique identifier of the SKU attribute.", + "required": true, + "schema": { + "type": "integer", + "example": 38 + } + }, + "SkuServiceId": { + "name": "skuserviceId", + "in": "path", + "description": "Unique identifier of the SKU service.", + "required": true, + "schema": { + "type": "integer", + "example": 10 + } + }, + "SkuServiceTypeId": { + "name": "skuServiceTypeId", + "in": "path", + "description": "Unique identifier of the SKU service type.", + "required": true, + "schema": { + "type": "integer", + "example": 1 + } + }, + "SkuServiceValueId": { + "name": "skuServiceValueId", + "in": "path", + "description": "Unique identifier of the SKU service value.", + "required": true, + "schema": { + "type": "integer", + "example": 5 + } + }, + "Locale": { + "name": "locale", + "in": "query", + "description": "Code used to filter translations by a given language. When omitted, all configured languages are returned. The format follows the IETF BCP 47 standard, such as 'en-US' for English (United States), 'en-ES' for Spanish (Spain), or 'pt-BR' for Portuguese (Brazil).", + "required": false, + "schema": { + "type": "string", + "example": "en-US" + } + } + }, + "schemas": { + "SpecificationValuesSubcollectionIdResponse": { + "type": "object", + "description": "Object with the response.", + "properties": { + "Page": { + "type": "integer", + "description": "Current page number of the result set." + }, + "Size": { + "type": "integer", + "description": "Number of records per page." + }, + "TotalRows": { + "type": "integer", + "description": "Total number of records returned." + }, + "TotalPage": { + "type": "integer", + "description": "Total number of pages available." + }, + "Data": { + "type": "array", + "description": "Array of SubCollection Specification Value records.", + "items": { + "type": "object", + "description": "SubCollection Specification Value records details.", + "properties": { + "SubCollectionId": { + "type": "integer", + "description": "Subcollection unique identifier." + }, + "SpecificationValueId": { + "type": "integer", + "description": "Subcollection specification value ID." + } + } + } + } + } + }, + "SkuFileResponse": { + "type": "array", + "description": "Array with objects containing SKU files information.", + "items": { + "type": "object", + "description": "Object containing a SKU file information.", + "properties": { + "Id": { + "type": "integer", + "description": "Unique identifier of the association of the image to the SKU." + }, + "ArchiveId": { + "type": "integer", + "description": "Unique identifier of the image." + }, + "SkuId": { + "type": "integer", + "description": "SKU unique identifier." + }, + "Name": { + "type": "string", + "description": "Image name." + }, + "IsMain": { + "type": "boolean", + "description": "Defines if the image is the SKU main image (`true`) or not (`false`). This field will always be `true` when the image `Position` is `0`, and `false` otherwise." + }, + "Text": { + "type": "string", + "description": "SKU image text." + }, + "Label": { + "type": "string", + "description": "Image label.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "SKU image URL." + }, + "FileLocation": { + "type": "string", + "description": "Location where the file is stored." + }, + "Position": { + "type": "integer", + "description": "Position of the SKU image as displayed in the storefront, where `0` corresponds to the first position, `1` to the second position, and so on. The position `0` will always make the `isMain` value `true`." + } + } + } + }, + "SKUFileURL": { + "type": "object", + "description": "Object with the request.", + "required": [ + "Name", + "Url" + ], + "properties": { + "IsMain": { + "type": "boolean", + "description": "Defines if the image is the main image of the SKU.", + "example": true + }, + "Label": { + "type": "string", + "description": "SKU image label.", + "example": "Main" + }, + "Name": { + "type": "string", + "description": "SKU image name.", + "example": "Nike-Red-Janoski-1" + }, + "Text": { + "type": "string", + "description": "General text of the image.", + "example": "Nike-Red-Janoski", + "nullable": true + }, + "Url": { + "type": "string", + "description": "External image's URL. The URL must start with the protocol identifier (`http://` or `https://`) and end with the file extension (`.jpg`, `.png` or `.gif`).", + "example": "https://m.media-amazon.com/images/I/610G2-sJx5L._AC_UX695_.jpg" + }, + "Position": { + "type": "integer", + "description": "Position of the SKU image as displayed in the storefront, where `0` corresponds to the first position, `1` to the second position, and so on. Note that:\r\n- When `isMain` is `true`, the image position will always be `0`.\r\n- When you configure more positions than the number of images, the count will jump a position. For example, if you have images in positions `0`, `1`, `2`, and you update image `1` to position `3`, you will have `0`, `2`, `3`.\r\n- If you configure images for the same position, they will both occupy it. For example, for images `0`, `1`, `2`, if you update image `2` for position `1`, you will have `0`, `1`, `1`. When in position conflict, images will be ordered by image ID.\r\n\r\nYou can reorganize all image positions using the [Reorder SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/reorder) endpoint, or via VTEX Admin, on the [SKU editing page](https://help.vtex.com/en/tutorial/adding-or-editing-skus--4ryZ6J45kwn3jDiQBxGiiN).", + "example": 0 + } + } + }, + "SKUFile": { + "type": "string", + "format": "binary", + "description": "A message about the image file size is displayed.", + "example": "The image file has a size limit of 3200 x 3200 pixels." + }, + "Category": { + "required": [ + "Id", + "Name", + "FatherCategoryId", + "Title", + "Description", + "Keywords", + "IsActive", + "LomadeeCampaignCode", + "AdWordsRemarketingCode", + "ShowInStoreFront", + "ShowBrandFilter", + "ActiveStoreFrontLink", + "GlobalCategoryId", + "StockKeepingUnitSelectionMode", + "Score", + "LinkId", + "HasChildren", + "TreePath", + "TreePathIds", + "TreePathLinkIds" + ], + "type": "object", + "description": "Object with the category details.", + "properties": { + "Id": { + "type": "integer", + "description": "Category ID." + }, + "Name": { + "type": "string", + "description": "Category name." + }, + "FatherCategoryId": { + "type": "integer", + "description": "ID of the father category, apply in case of category and subcategory.", + "nullable": true + }, + "Title": { + "type": "string", + "description": "Category page title." + }, + "Description": { + "type": "string", + "description": "Describes details about the category." + }, + "Keywords": { + "type": "string", + "description": "Substitutes words for the category." + }, + "IsActive": { + "type": "boolean", + "description": "Shows if the category is active (`true`) or not (`false`)." + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + }, + "ShowInStoreFront": { + "type": "boolean", + "description": "Defines if the category is shown on side and upper menu (`true`) or not (`false`)." + }, + "ShowBrandFilter": { + "type": "boolean", + "description": "Defines if the category has brand filter (`true`) or not (`false`)." + }, + "ActiveStoreFrontLink": { + "type": "boolean", + "description": "Defines if the category has an active link on the website (`true`) or not (`false`)." + }, + "GlobalCategoryId": { + "type": "integer", + "description": "Google global category ID." + }, + "StockKeepingUnitSelectionMode": { + "type": "string", + "description": "Defines how the SKU will be exhibited." + }, + "Score": { + "type": "integer", + "description": "Score for search ordination.", + "nullable": true + }, + "LinkId": { + "type": "string", + "description": "Category text link ID. This field value is automatically generated when you create or update a category, and it corresponds to the category `name`. Once the category `linkId` is generated, it cannot be modified directly, but you can change it by updating the category with a new `name`." + }, + "HasChildren": { + "type": "boolean", + "description": "Defines if the category has child categories (`true`) or not (`false`)." + }, + "TreePath": { + "type": "array", + "description": "Category tree path, which corresponds to the category name as it is.\r\n\r\nUnless your request includes the query param `includeTreePath` set as `true`, this field will return `null`.", + "items": { + "type": "string", + "description": "Category tree path." + }, + "nullable": true + }, + "TreePathIds": { + "type": "array", + "description": "All of the category tree path IDs. Every nested category would correspond to a path ID.\r\n\r\nUnless your request includes the query param `includeTreePath` set as `true`, this field will return `null`.", + "items": { + "type": "integer", + "description": "Category tree path ID." + }, + "nullable": true + }, + "TreePathLinkIds": { + "type": "array", + "description": "List of category tree path link IDs. A link ID is the identifier that forms the last part of the category URL, normalizing special characters.\r\n\r\nUnless your request includes the query param `includeTreePath` set as `true`, this field will return `null`.", + "items": { + "type": "string", + "description": "Category tree path link ID." + }, + "nullable": true + } + } + }, + "CreateCategoryRequest": { + "type": "object", + "description": "Object with the request.", + "required": [ + "Name", + "Keywords", + "Title", + "Description", + "AdWordsRemarketingCode", + "LomadeeCampaignCode", + "FatherCategoryId", + "GlobalCategoryId", + "ShowInStoreFront", + "IsActive", + "ActiveStoreFrontLink", + "ShowBrandFilter", + "Score", + "StockKeepingUnitSelectionMode" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Category unique identifier. If not informed, it will be automatically generated by VTEX.", + "example": 1 + }, + "Name": { + "type": "string", + "description": "Category name.", + "example": "Home Appliances" + }, + "Keywords": { + "type": "string", + "description": "Substitute words for the category.", + "example": "Kitchen, Laundry, Appliances" + }, + "Title": { + "type": "string", + "description": "Text used in title tag for category page.", + "example": "Home Appliances" + }, + "Description": { + "type": "string", + "description": "Text used in meta description tag for category page.", + "example": "Discover our range of home appliances. Find smart vacuums, kitchen and laundry appliances to suit your needs. Order online now." + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "example": "Sale", + "nullable": true, + "deprecated": true + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "example": "Sale", + "nullable": true, + "deprecated": true + }, + "FatherCategoryId": { + "type": "integer", + "description": "ID of the parent category, apply in case of category and subcategory.", + "example": 2, + "nullable": true + }, + "GlobalCategoryId": { + "type": "integer", + "description": "Google global category ID.", + "example": 222 + }, + "ShowInStoreFront": { + "type": "boolean", + "description": "If `true`, the category is shown in the top and side menu.", + "example": true + }, + "IsActive": { + "type": "boolean", + "description": "If `true`, the category page becomes available in store.", + "example": true + }, + "ActiveStoreFrontLink": { + "type": "boolean", + "description": "If `true`, the category link becomes active in store.", + "example": true + }, + "ShowBrandFilter": { + "type": "boolean", + "description": "If `true`, the category page displays a brand filter.", + "example": true + }, + "Score": { + "type": "integer", + "description": "Score for search sorting order.", + "nullable": true, + "example": 3 + }, + "StockKeepingUnitSelectionMode": { + "type": "string", + "description": "Defines how SKUs will be displayed in the storefront and selected by customers. The possible values are:\r\n- `SPECIFICATION`: choosing product variations (like size or color) through specification fields.\r\n- `LIST`: selecting and item from a list of SKUs.", + "enum": [ + "SPECIFICATION", + "LIST" + ], + "example": "SPECIFICATION" + } + } + }, + "SkuComplement": { + "required": [ + "Id", + "SkuId", + "ParentSkuId", + "ComplementTypeId" + ], + "type": "array", + "description": "List with SKU complement information.", + "items": { + "type": "object", + "description": "SKU complement details.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU complement's unique numerical identifier." + }, + "SkuId": { + "type": "integer", + "description": "ID of the SKU which will be inserted as a complement in the parent SKU." + }, + "ParentSkuId": { + "type": "integer", + "description": "ID of the parent SKU, where the complement will be inserted." + }, + "ComplementTypeId": { + "type": "integer", + "description": "Complement type ID. This represents the type of the complement. The possible values are: `1` for **Accessory**; `2` for **Suggestion**; `3` for **Similar product**; `5` for **Show together**.", + "enum": [ + 1, + 2, + 3, + 4, + 5 + ] + } + } + } + }, + "SkuKit": { + "type": "object", + "description": "SKU kit object.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU kit ID, same as `StockKeepingUnitParent`." + }, + "StockKeepingUnitParent": { + "type": "integer", + "description": "Parent SKU ID." + }, + "StockKeepingUnitId": { + "type": "integer", + "description": "SKU ID of the kit component." + }, + "Quantity": { + "type": "integer", + "description": "Component quantity." + }, + "UnitPrice": { + "type": "integer", + "description": "Component price per unit." + } + } + }, + "SKUSpecificationResponse": { + "type": "object", + "description": "Object with the response.", + "properties": { + "Id": { + "type": "integer", + "description": "ID of the association of the specification and the SKU. This ID is used to update or delete the specification." + }, + "SkuId": { + "type": "integer", + "description": "SKU ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID." + }, + "FieldValueId": { + "type": "integer", + "description": "Specification value ID. Required only for `FieldTypeId` as `5`, `6` and `7`." + }, + "Text": { + "type": "string", + "description": "Value of specification. Only for `FieldTypeId` different from `5`, `6` and `7`." + } + } + }, + "SKUService": { + "type": "object", + "description": "SKU service information.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU service ID." + }, + "SkuServiceTypeId": { + "type": "integer", + "description": "SKU service type ID." + }, + "SkuServiceValueId": { + "type": "integer", + "description": "SKU service value ID." + }, + "SkuId": { + "type": "integer", + "description": "SKU ID." + }, + "Name": { + "type": "string", + "description": "SKU service name. Maximum of 50 characters." + }, + "Text": { + "type": "string", + "description": "Internal description of the SKU service. Maximum of 100 characters." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU service is active or not." + } + } + }, + "SKUServiceTypeRequest": { + "type": "object", + "description": "Object with the request.", + "required": [ + "Name", + "IsActive", + "ShowOnProductFront", + "ShowOnCartFront", + "ShowOnAttachmentFront", + "ShowOnFileUpload", + "IsGiftCard", + "IsRequired" + ], + "properties": { + "Name": { + "type": "string", + "description": "SKU service type name. Maximum of 100 characters.", + "example": "Engraving" + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU service type is active or not.", + "default": true, + "example": true + }, + "ShowOnProductFront": { + "type": "boolean", + "description": "Deprecated field.", + "example": false, + "deprecated": true + }, + "ShowOnCartFront": { + "type": "boolean", + "description": "Defines if the SKU service type is displayed on the cart screen.", + "example": false + }, + "ShowOnAttachmentFront": { + "type": "boolean", + "description": "Defines if the SKU service type has an attachment.", + "example": false + }, + "ShowOnFileUpload": { + "type": "boolean", + "description": "Defines if the SKU service type can be associated with an attachment or not.", + "example": false + }, + "IsGiftCard": { + "type": "boolean", + "description": "Defines if the SKU service type is displayed as a gift card.", + "example": false + }, + "IsRequired": { + "type": "boolean", + "description": "Defines if the SKU service type is mandatory.", + "example": false + } + } + }, + "SKUServiceTypeResponse": { + "type": "object", + "description": "Object with the response.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU service type ID." + }, + "Name": { + "type": "string", + "description": "SKU service type name. Maximum of 100 characters." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU service type is active or not." + }, + "ShowOnProductFront": { + "type": "boolean", + "description": "Deprecated field.", + "deprecated": true + }, + "ShowOnCartFront": { + "type": "boolean", + "description": "Defines if the SKU service type is displayed on the cart screen." + }, + "ShowOnAttachmentFront": { + "type": "boolean", + "description": "Defines if the SKU service type has an attachment.", + "default": false + }, + "ShowOnFileUpload": { + "type": "boolean", + "description": "Defines if the SKU service type can be associated with an attachment or not.", + "default": false + }, + "IsGiftCard": { + "type": "boolean", + "description": "Defines if the SKU service type is displayed as a Gift Card.", + "default": false + }, + "IsRequired": { + "type": "boolean", + "description": "Defines if the SKU service type is mandatory.", + "default": false + } + } + }, + "SKUServiceValueRequest": { + "type": "object", + "description": "Object with the request.", + "required": [ + "SkuServiceTypeId", + "Name", + "Value", + "Cost" + ], + "properties": { + "SkuServiceTypeId": { + "type": "integer", + "description": "SKU service type ID.", + "example": 2 + }, + "Name": { + "type": "string", + "description": "SKU service value name. Maximum of 100 characters.", + "example": "Test ServiceValue API" + }, + "Value": { + "type": "number", + "description": "SKU service value value.", + "example": 10.5 + }, + "Cost": { + "type": "number", + "description": "SKU service value cost.", + "example": 10.5 + } + }, + "example": { + "SkuServiceTypeId": 2, + "Name": "Test ServiceValue API", + "Value": 10.5, + "Cost": 10.5 + } + }, + "SKUServiceValueResponse": { + "type": "object", + "description": "Object with the response.", + "required": [ + "SkuServiceTypeId", + "Name", + "Value", + "Cost" + ], + "properties": { + "Id": { + "type": "integer", + "description": "SKU service value ID." + }, + "SkuServiceTypeId": { + "type": "integer", + "description": "SKU service type ID." + }, + "Name": { + "type": "string", + "description": "SKU service value name. Maximum of 100 characters." + }, + "Value": { + "type": "number", + "description": "SKU service value value." + }, + "Cost": { + "type": "number", + "description": "SKU service value cost." + } + } + }, + "BrandCreateUpdateRequest": { + "type": "object", + "description": "Object containing brand information.", + "required": [ + "Id", + "Name" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Brand's unique numerical identifier.", + "example": 2000003 + }, + "Name": { + "type": "string", + "description": "Brand name.", + "example": "Adidas" + }, + "Text": { + "type": "string", + "description": "Meta description for the brand page. A brief description of the brand, displayed by search engines. Since search engines can only display less than 150 characters, we recommend not exceeding this character limit when creating the description.", + "example": "Adidas" + }, + "Keywords": { + "type": "string", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - Alternative search terms that will lead to the specific brand. The user can find the desired brand even when misspelling it. Used especially when words are of foreign origin and have a distinct spelling that is transcribed into a generic one, or when small spelling mistakes occur.", + "example": "adidas" + }, + "SiteTitle": { + "type": "string", + "description": "Meta title for the brand page.", + "example": "Adidas" + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true, + "nullable": true, + "example": null + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true, + "nullable": true, + "example": null + }, + "Score": { + "type": "integer", + "description": "Store Framework - Deprecated\r\nLegacy CMS Portal - Value used to set the priority on the search result page.", + "example": 10, + "nullable": true + }, + "MenuHome": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - Defines if the brand appears in the Department Menu control (``).", + "example": true + }, + "Active": { + "type": "boolean", + "description": "Defines if the brand is active (`true`) or not (`false`).", + "example": true + }, + "LinkId": { + "type": "string", + "description": "Brand page slug. Only lowercase letters and hyphens (`-`) are allowed.", + "example": "adidas-sports", + "nullable": true + } + } + }, + "BrandCreateUpdate": { + "type": "object", + "description": "Object containing brand information.", + "required": [ + "Id", + "Name" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Brand's unique numerical identifier." + }, + "Name": { + "type": "string", + "description": "Brand name." + }, + "Text": { + "type": "string", + "description": "Meta description for the brand page. A brief description of the brand, displayed by search engines. Since search engines can only display less than 150 characters, we recommend not exceeding this character limit when creating the description." + }, + "Keywords": { + "type": "string", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - Alternative search terms that will lead to the specific brand. The user can find the desired brand even when misspelling it. Used especially when words are of foreign origin and have a distinct spelling that is transcribed into a generic one, or when small spelling mistakes occur." + }, + "SiteTitle": { + "type": "string", + "description": "Meta title for the brand page." + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + }, + "Score": { + "type": "integer", + "description": "Store Framework - Deprecated\r\nLegacy CMS Portal - Value used to set the priority on the search result page.", + "nullable": true + }, + "MenuHome": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - Defines if the brand appears in the Department Menu control (``)." + }, + "Active": { + "type": "boolean", + "description": "Defines if the brand is active (`true`) or not (`false`)." + }, + "LinkId": { + "type": "string", + "description": "Brand page slug. Only lowercase letters and hyphens (`-`) are allowed.", + "nullable": true + } + } + }, + "AttachmentResponse": { + "type": "object", + "description": "Attachment response object.", + "required": [ + "Id", + "Name", + "IsRequired", + "IsActive", + "Domains" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Attachment ID." + }, + "Name": { + "type": "string", + "description": "Attachment name." + }, + "IsRequired": { + "type": "boolean", + "description": "Defines if the attachment is required or not." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the attachment is active or not." + }, + "Domains": { + "type": "array", + "description": "List of characteristics related to the attachment.", + "items": { + "type": "object", + "description": "Attachment object.", + "properties": { + "FieldName": { + "type": "string", + "description": "Attachment key name." + }, + "MaxCaracters": { + "type": "string", + "description": "Maximum number of characters in the attachment key." + }, + "DomainValues": { + "type": "string", + "description": "Allowed key values." + } + } + } + } + } + }, + "AttachmentRequest": { + "type": "object", + "description": "Object with the request.", + "required": [ + "Name", + "IsRequired", + "IsActive", + "Domains" + ], + "properties": { + "Name": { + "type": "string", + "description": "Attachment name.", + "example": "Shirt customization" + }, + "IsRequired": { + "type": "boolean", + "description": "Defines if the attachment is required or not.", + "example": false + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the attachment is active or not.", + "example": false + }, + "Domains": { + "type": "array", + "description": "List of characteristics related to the attachment.", + "items": { + "type": "object", + "description": "Attachment details.", + "properties": { + "FieldName": { + "type": "string", + "description": "Attachment key name.", + "example": "Number" + }, + "MaxCaracters": { + "type": "string", + "description": "Maximum number of characters in the attachment key.", + "example": "1" + }, + "DomainValues": { + "type": "string", + "description": "Allowed key values.", + "example": "7,9,10" + } + } + } + } + } + }, + "SupplierRequest": { + "type": "object", + "description": "Object with the request.", + "required": [ + "Name", + "CorporateName", + "StateInscription", + "Cnpj", + "Phone", + "CellPhone", + "CorportePhone", + "Email", + "IsActive" + ], + "properties": { + "Name": { + "type": "string", + "description": "Supplier Name.", + "example": "Supplier" + }, + "CorporateName": { + "type": "string", + "description": "Supplier Corporate Name.", + "example": "TopStore" + }, + "StateInscription": { + "type": "string", + "description": "State Inscription.", + "example": "123456" + }, + "Cnpj": { + "type": "string", + "description": "Corporate legal ID.", + "example": "33304981001272" + }, + "Phone": { + "type": "string", + "description": "Supplier Phone.", + "example": "3333333333" + }, + "CellPhone": { + "type": "string", + "description": "Supplier Cellphone.", + "example": "4444444444" + }, + "CorportePhone": { + "type": "string", + "description": "Supplier Corporate Phone.", + "example": "5555555555" + }, + "Email": { + "type": "string", + "description": "Supplier email.", + "example": "email@email.com" + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the Supplier is active (`true`) or not (`false`).", + "example": false + } + } + }, + "SupplierResponse": { + "type": "object", + "description": "Object containing the response.", + "properties": { + "Id": { + "type": "integer", + "description": "Supplier unique identifier code." + }, + "Name": { + "type": "string", + "description": "Supplier name." + }, + "CorporateName": { + "type": "string", + "description": "Supplier corporate name." + }, + "StateInscription": { + "type": "string", + "description": "State inscription." + }, + "Cnpj": { + "type": "string", + "description": "Corporate legal ID." + }, + "Phone": { + "type": "string", + "description": "Supplier phone." + }, + "CellPhone": { + "type": "string", + "description": "Supplier cellphone." + }, + "CorportePhone": { + "type": "string", + "description": "Supplier corporate phone." + }, + "Email": { + "type": "string", + "description": "Supplier email." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the Supplier is active (`true`) or not (`false`)." + } + } + } + } + }, + "tags": [ + { + "name": "SKU service" + }, + { + "name": "SKU service attachment" + }, + { + "name": "SKU service value" + }, + { + "name": "SKU service type" + }, + { + "name": "Category" + }, + { + "name": "Brand" + }, + { + "name": "Attachment" + }, + { + "name": "Product" + }, + { + "name": "Product specification" + }, + { + "name": "Trade policy" + }, + { + "name": "Similar category" + }, + { + "name": "SKU" + }, + { + "name": "SKU EAN" + }, + { + "name": "SKU file" + }, + { + "name": "SKU kit" + }, + { + "name": "SKU specification" + }, + { + "name": "SKU attachment" + }, + { + "name": "SKU complement" + }, + { + "name": "Non-structured specification" + }, + { + "name": "Specification field" + }, + { + "name": "Specification group" + }, + { + "name": "Specification value" + }, + { + "name": "Specification field value" + }, + { + "name": "Category specification" + }, + { + "name": "Specification" + }, + { + "name": "Subcollection" + }, + { + "name": "Collection" + }, + { + "name": "Supplier" + }, + { + "name": "Sales channel" + }, + { + "name": "Seller" + }, + { + "name": "SKU seller" + }, + { + "name": "Multi-language beta" + }, + { + "name": "Multi-language SKU beta" + }, + { + "name": "Multi-language specification beta" + }, + { + "name": "Multi-language category beta" + }, + { + "name": "Multi-language brand beta" + }, + { + "name": "Multi-language attachment and service beta" + }, + { + "name": "Multi-language collection beta" + }, + { + "name": "Product indexing" + }, + { + "name": "Commercial conditions" + }, + { + "name": "Gift list" + } + ] +} diff --git a/clients/manitou/output/catalog.catalog_system.json b/clients/manitou/output/catalog.catalog_system.json new file mode 100644 index 0000000000..81518b4742 --- /dev/null +++ b/clients/manitou/output/catalog.catalog_system.json @@ -0,0 +1,6704 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Catalog API (Catalog System)", + "description": "The Catalog API empowers merchants to seamlessly manage their product information. It enables the creation, modification, and deletion of product details, including attributes like images and specifications. SKU management covers product variations. This API also supports organizing products into categories, collections, and manage brands.\r\n\r\n> ⚠️ The default rate limit for the Catalog API is 45,000 requests per minute per account, and 15,000 requests per minute per endpoint.\r\n\r\n> Check the [Catalog onboarding guide](https://developers.vtex.com/docs/guides/catalog-overview), created to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Catalog and is organized by focusing on the developer's journey.\r\n\r\n## Index\r\n\r\n### Category\r\n\r\n* `GET` [Get category tree](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/category/tree/-categoryLevels-)\r\n* `GET` [Get category by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/category/-categoryId-)\r\n* `PUT` [Update category](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/category/-categoryId-)\r\n* `POST` [Create category](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/category)\r\n\r\n### Category specification\r\n\r\n* `GET` [Get specifications by category ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/field/listByCategoryId/-categoryId-)\r\n* `GET` [Get specifications tree by category ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/field/listTreeByCategoryId/-categoryId-)\r\n\r\n### Brand\r\n\r\n* `GET` [Get brand list](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/brand/list)\r\n* `GET` [Get brand list per page](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/brand/pagedlist)\r\n* `GET` [Get brand](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/brand/-brandId-)\r\n* `POST` [Create brand](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/brand)\r\n* `GET` [Get brand and context](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/brand/-brandId-)\r\n* `PUT` [Update brand](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/brand/-brandId-)\r\n* `DELETE` [Delete brand](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/brand/-brandId-)\r\n\r\n### Specification group\r\n\r\n* `GET` [List specification group by category](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/specification/groupbycategory/-categoryId-)\r\n* `GET` [Get specification group](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/groupGet/-groupId-)\r\n* `POST` [Create specification group](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specificationgroup)\r\n* `PUT` [Update specification group](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationgroup/-groupId-)\r\n\r\n### Specification\r\n\r\n* `GET` [Get specification](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/-specificationId-)\r\n* `PUT` [Update specification](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specification/-specificationId-)\r\n* `POST` [Create specification](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specification)\r\n\r\n### Specification field\r\n\r\n* `GET` [Get specification field](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/fieldGet/-fieldId-)\r\n* `POST` [Create specification field](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/specification/field)\r\n* `PUT` [Update specification field](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog_system/pvt/specification/field)\r\n\r\n### Non-structured specification\r\n\r\n* `GET` [Get non-structured specification by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/nonstructured/-Id-)\r\n* `DELETE` [Delete non-structured specification](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/specification/nonstructured/-Id-)\r\n* `GET` [Get non-structured specification by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/nonstructured)\r\n* `DELETE` [Delete non-structured specification by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/specification/nonstructured)\r\n\r\n### Specification value\r\n\r\n* `GET` [Get specification value](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specificationvalue/-specificationValueId-)\r\n* `PUT` [Update specification value](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationvalue/-specificationValueId-)\r\n* `POST` [Create specification value](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specificationvalue)\r\n\r\n### Specification field value\r\n\r\n* `GET` [Get specification field value](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/specification/fieldValue/-fieldValueId-)\r\n* `GET` [Get specification values by field ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/specification/fieldvalue/-fieldId-)\r\n* `POST` [Create specification field value](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/specification/fieldValue)\r\n* `PUT` [Update specification field value](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog_system/pvt/specification/fieldValue)\r\n\r\n### Product\r\n\r\n* `GET` [Get product and SKU IDs](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/GetProductAndSkuIds)\r\n* `GET` [Get product by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-)\r\n* `PUT` [Update product](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/product/-productId-)\r\n* `GET` [Get product and its general context](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/productget/-productId-)\r\n* `GET` [Get product by reference ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/productgetbyrefid/-refId-)\r\n* `GET` [Get product's SKUs by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/products/variations/-productId-)\r\n* `GET` [Get product review rate by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/addon/pvt/review/GetProductRate/-productId-)\r\n* `POST` [Create product with category and brand](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product)\r\n\r\n### Product specification\r\n\r\n* `GET` [Get product specifications by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/-productId-/specification)\r\n* `POST` [Update product specification by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/products/-productId-/specification)\r\n* `GET` [Get product specification and its information by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/specification)\r\n* `POST` [Associate product specification](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product/-productId-/specification)\r\n* `DELETE` [Delete all product specifications by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/specification)\r\n* `DELETE` [Delete a product specification](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/specification/-specificationId-)\r\n* `PUT` [Associate product specification using specification name and group name](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/product/-productId-/specificationvalue)\r\n\r\n### SKU\r\n\r\n* `GET` [List all SKU IDs](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitids)\r\n* `GET` [SKU and context](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitbyid/-skuId-)\r\n* `GET` [Get SKU by reference ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit)\r\n* `POST` [Create SKU](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit)\r\n* `GET` [Get SKU ID by reference ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitidbyrefid/-refId-)\r\n* `GET` [Get SKU by alternate ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitbyalternateId/-alternateId-)\r\n* `GET` [Get SKU list by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitByProductId/-productId-)\r\n* `POST` [Retrieve SKU ID list by reference ID list](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pub/sku/stockkeepingunitidsbyrefids)\r\n* `GET` [Get SKU](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-)\r\n* `PUT` [Update SKU](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-)\r\n\r\n### SKU specification\r\n\r\n* `GET` [Get SKU specifications](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `POST` [Associate SKU specification](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `PUT` [Update SKU specification](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `DELETE` [Delete all SKU specifications](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/specification)\r\n* `DELETE` [Delete SKU specification](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/specification/-specificationId-)\r\n* `PUT` [Associate SKU specification using specification name and group name](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/specificationvalue)\r\n\r\n### SKU file\r\n\r\n* `GET` [Get SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/file)\r\n* `POST` [Create SKU file](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit/-skuId-/file)\r\n* `DELETE` [Delete All SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/file)\r\n* `PUT` [Update SKU file](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-)\r\n* `PUT` [Reorder SKU files](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/reorder)\r\n* `DELETE` [Delete SKU image file](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-)\r\n* `PUT` [Copy files from a SKU to another SKU](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/copy/-skuIdfrom-/-skuIdto-/file)\r\n* `DELETE` [Disassociate SKU file](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/disassociate/-skuId-/file/-skuFileId-)\r\n\r\n### SKU complement\r\n\r\n* `GET` [Get SKU complement by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/complement)\r\n* `GET` [Get SKU complements by complement type ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/complement/-complementTypeId-)\r\n* `GET` [Get SKU complements by type](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/complements/-parentSkuId-/-type-)\r\n* `POST` [Create SKU complement](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skucomplement)\r\n* `GET` [Get SKU complement by SKU complement ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skucomplement/-skuComplementId-)\r\n* `DELETE` [Delete SKU complement by SKU complement ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skucomplement/-skuComplementId-)\r\n\r\n### SKU EAN\r\n\r\n* `GET` [Get SKU by EAN](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitbyean/-ean-)\r\n* `GET` [Get EAN by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/ean)\r\n* `DELETE` [Delete all SKU EAN values](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/ean)\r\n* `POST` [Create SKU EAN](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunit/-skuId-/ean/-ean-)\r\n* `DELETE` [Delete SKU EAN](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunit/-skuId-/ean/-ean-)\r\n\r\n### Attachment\r\n\r\n* `GET` [Get attachment](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/attachment/-attachmentid-)\r\n* `PUT` [Update attachment](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/attachment/-attachmentid-)\r\n* `DELETE` [Delete attachment](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/attachment/-attachmentid-)\r\n* `POST` [Create attachment](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/attachment)\r\n* `GET` [Get all attachments](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/attachments)\r\n\r\n### SKU attachment\r\n\r\n* `POST` [Associate SKU attachment](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuattachment)\r\n* `DELETE` [Dissociate attachments and SKUs](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuattachment)\r\n* `GET` [Get SKU attachments by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/attachment)\r\n* `DELETE` [Delete SKU attachment by attachment association ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuattachment/-skuAttachmentAssociationId-)\r\n* `POST` [Associate attachments to an SKU](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/sku/associateattachments)\r\n\r\n### SKU service\r\n\r\n* `GET` [Get SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservice/-skuServiceId-)\r\n* `PUT` [Update SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservice/-skuServiceId-)\r\n* `DELETE` [Dissociate SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservice/-skuServiceId-)\r\n* `POST` [Associate SKU service](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservice)\r\n\r\n### SKU service attachment\r\n\r\n* `POST` [Associate SKU service attachment](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservicetypeattachment)\r\n* `DELETE` [Dissociate attachment by attachment ID or SKU service type ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicetypeattachment)\r\n* `DELETE` [Dissociate attachment from SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicetypeattachment/-skuServiceTypeAttachmentId-)\r\n\r\n### SKU service type\r\n\r\n* `POST` [Create SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservicetype)\r\n* `GET` [Get SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-)\r\n* `PUT` [Update SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-)\r\n* `DELETE` [Delete SKU service type](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-)\r\n\r\n### SKU service value\r\n\r\n* `POST` [Create SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/skuservicevalue)\r\n* `GET` [Get SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-)\r\n* `PUT` [Update SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-)\r\n* `DELETE` [Delete SKU service value](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-)\r\n\r\n### SKU kit\r\n\r\n* `GET` [Get SKU kit by SKU ID or parent SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunitkit)\r\n* `POST` [Create SKU kit](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/stockkeepingunitkit)\r\n* `DELETE` [Delete SKU kit by SKU ID or parent SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunitkit)\r\n* `GET` [Get SKU kit](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunitkit/-kitId-)\r\n* `DELETE` [Delete SKU kit by kit ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/stockkeepingunitkit/-kitId-)\r\n\r\n### SKU seller\r\n\r\n* `GET` [Get details of a seller's SKU](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/skuseller/-sellerId-/-sellerSkuId-)\r\n* `POST` [Remove a seller's SKU binding](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/skuseller/remove/-sellerId-/-sellerSkuId-)\r\n* `POST` [Change notification with seller ID and seller SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/skuseller/changenotification/-sellerId-/-sellerSkuId-)\r\n* `POST` [Change notification with SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/skuseller/changenotification/-skuId-)\r\n\r\n### Multi-language beta\r\n\r\n* `GET` [Get product translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/language)\r\n* `PUT` [Create or update product translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/product/-productId-/language)\r\n* `GET` [Get product specification translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/products/-productId-/specification/-specificationId-/language)\r\n* `PUT` [Create or update product specification translation by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/products/-productId-/specification/-specificationId-/language)\r\n\r\n#### Multi-language SKU beta\r\n* `GET` [Get SKU translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/language)\r\n* `PUT` [Create or update SKU translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/language)\r\n* `GET` [Get SKU attribute translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/attribute/-skuAttributeId-/language)\r\n* `PUT` [Create or update SKU attribute translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/attribute/-skuAttributeId-/language)\r\n* `GET` [Get SKU file translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-/language)\r\n* `PUT` [Create or update SKU file translation by SKU ID](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/file/-skuFileId-/language)\r\n\r\n#### Multi-language specification beta\r\n* `GET` [Get specification group translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specificationgroup/-specificationGroupId-/language)\r\n* `PUT` [Create or update specification group translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationgroup/-specificationGroupId-/language)\r\n* `GET` [Get specification translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specification/-specificationId-/language)\r\n* `PUT` [Create or update specification translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specification/-specificationId-/language)\r\n* `GET` [Get specification value translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specificationvalue/-valueId-/language)\r\n* `PUT` [Create or update specification value translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/specificationvalue/-valueId-/language)\r\n\r\n#### Multi-language category beta\r\n* `GET` [Get category translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/category/-categoryId-/language)\r\n* `PUT` [Create or update category translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/category/-categoryId-/language)\r\n\r\n#### Multi-language brand beta\r\n* `GET` [Get brand translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/brand/-brandId-/language)\r\n* `PUT` [Create or update brand translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/brand/-brandId-/language)\r\n\r\n#### Multi-language attachment and service beta\r\n* `GET` [Get attachment translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/attachment/-attachmentId-/language)\r\n* `PUT` [Create or update attachment translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/attachment/-attachmentId-/language)\r\n* `GET` [Get SKU service type translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-/language)\r\n* `PUT` [Create or update SKU service type translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicetype/-skuServiceTypeId-/language)\r\n* `GET` [Get SKU service translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservice/-skuserviceId-/language)\r\n* `PUT` [Create or update SKU service translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservice/-skuserviceId-/language)\r\n* `GET` [Get SKU service value translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-/language)\r\n* `PUT` [Create or update SKU service value translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/skuservicevalue/-skuServiceValueId-/language)\r\n\r\n#### Multi-language collection beta\r\n* `GET` [Get collection translation](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-/language)\r\n* `PUT` [Create or update collection translation](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/collection/-collectionId-/language)\r\n\r\n### Similar category\r\n\r\n* `GET` [Get similar categories](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/similarcategory/)\r\n* `POST` [Add similar category](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product/-productId-/similarcategory/-categoryId-)\r\n* `DELETE` [Delete similar category](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/similarcategory/-categoryId-)\r\n\r\n### Collection\r\n\r\n* `GET` [Get all inactive collections](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/inactive)\r\n* `POST` [Create collection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection)\r\n* `GET` [Import collection file example](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/stockkeepingunit/importfileexample)\r\n* `POST` [Add products to collection by imported file](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection/-collectionId-/stockkeepingunit/importinsert)\r\n* `POST` [Remove products from collection by imported file](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection/-collectionId-/stockkeepingunit/importexclude)\r\n* `GET` [Get products from a collection](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-/products)\r\n* `GET` [Get collection by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-)\r\n* `PUT` [Update collection](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/collection/-collectionId-)\r\n* `DELETE` [Delete collection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/collection/-collectionId-)\r\n\r\n### Subcollection\r\n\r\n* `POST` [Add SKU to subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/stockkeepingunit)\r\n* `DELETE` [Delete SKU from subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/stockkeepingunit/-skuId-)\r\n* `POST` [Associate category to subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/category)\r\n* `DELETE` [Delete category from subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/brand/-categoryId-)\r\n* `POST` [Associate brand to subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/brand)\r\n* `DELETE` [Delete brand from subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/brand/-brandId-)\r\n* `GET` [Get subcollection by collection ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/collection/-collectionId-/subcollection)\r\n* `GET` [Get subcollection by subcollection ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/subcollection/-subCollectionId-)\r\n* `PUT` [Update subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/subcollection/-subCollectionId-)\r\n* `DELETE` [Delete subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-)\r\n* `POST` [Create subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection)\r\n* `POST` [Reposition SKU on the subcollection](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/collection/-collectionId-/position)\r\n* `GET` [Get specification values by subcollection ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/subcollection/-subCollectionId-/specificationvalue)\r\n* `POST` [Use specification value in subcollection by ID](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/subcollection/-subCollectionId-/specificationvalue)\r\n* `DELETE` [Delete specification value from subcollection by ID](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/subcollection/-subCollectionId-/specificationvalue)\r\n\r\n### Seller\r\n\r\n* `GET` [Get seller list](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/seller/list)\r\n* `GET` [Get seller by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/seller/-sellerId-)\r\n* `PUT` [Update seller](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog_system/pvt/seller)\r\n* `POST` [Create seller](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog_system/pvt/seller)\r\n* `GET` [Get seller by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sellers/-sellerId-)\r\n\r\n### Supplier\r\n\r\n* `POST` [Create supplier](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/supplier)\r\n* `PUT` [Update supplier](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/supplier/-supplierId-)\r\n* `DELETE` [Delete supplier](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/supplier/-supplierId-)\r\n\r\n### Trade policy\r\n\r\n* `GET` [Get trade policies by product ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/product/-productId-/salespolicy)\r\n* `POST` [Associate product with trade policy](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/product/-productId-/salespolicy/-tradepolicyId-)\r\n* `DELETE` [Remove product from trade policy](https://developers.vtex.com/docs/api-reference/catalog-api#delete-/api/catalog/pvt/product/-productId-/salespolicy/-tradepolicyId-)\r\n* `GET` [List all SKUs of a trade policy](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/sku/stockkeepingunitidsbysaleschannel)\r\n\r\n### Sales channel\r\n\r\n* `GET` [Get sales channel List](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/saleschannel/list)\r\n* `GET` [Get sales channel by ID](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pub/saleschannel/-salesChannelId-)\r\n\r\n### Product indexing\r\n\r\n* `GET` [Get product indexed information](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/products/GetIndexedInfo/-productId-)\r\n\r\n### Commercial conditions\r\n\r\n* `GET` [Get all commercial conditions](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/commercialcondition/list)\r\n* `GET` [Get commercial condition](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog_system/pvt/commercialcondition/-commercialConditionId-)\r\n\r\n### Gift list\r\n\r\n* `GET` [Get gift list](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/addon/pvt/giftlist/get/-listId-)\r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| :---: | :--- | :--- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/catalog_system/pvt/products/GetProductAndSkuIds": { + "get": { + "tags": [ + "Product" + ], + "summary": "Get product and SKU IDs", + "description": "Retrieves the IDs of products and SKUs.\r\n\r\n>⚠️ The response body is limited to 250 records, but you can use the query params `_from` and `_to`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "ProductAndSkuIds", + "parameters": [ + { + "name": "categoryId", + "in": "query", + "description": "ID of the category from which you need to retrieve products and SKUs.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 1 + } + }, + { + "name": "_from", + "in": "query", + "description": "Insert the ID that will start the request result.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 1 + } + }, + { + "name": "_to", + "in": "query", + "description": "Insert the ID that will end the request result.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "data": { + "1": [ + 1, + 123456, + 310118449, + 310118489, + 7, + 2 + ], + "2": [ + 3, + 310118450, + 310118451, + 4, + 8 + ], + "3": [ + 5 + ], + "4": [ + 310118448 + ], + "5": [ + 310118465 + ], + "6": [], + "7": [ + 310118452 + ], + "8": [ + 310118453, + 310118459, + 310118463 + ], + "9": [ + 310118454, + 310118455, + 310118456, + 310118457, + 310118458, + 310118460, + 310118461, + 310118462, + 310118464 + ], + "10": [], + "11": [], + "12": [ + 310118490 + ] + }, + "range": { + "total": 12, + "from": 1, + "to": 20 + } + }, + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Object composed of product IDs and SKU IDs, where the parent ID is from products and the children IDs are from SKUs.", + "properties": { + "Product ID": { + "type": "array", + "description": "Array with SKU IDs of a certain product.", + "items": { + "type": "integer", + "description": "Product SKU ID." + } + } + } + }, + "range": { + "type": "object", + "description": "Object with information about the product and SKUs list.", + "properties": { + "total": { + "type": "integer", + "description": "Total quantity of products." + }, + "from": { + "type": "integer", + "description": "Initial product ID." + }, + "to": { + "type": "integer", + "description": "Final product ID." + } + } + } + } + } + } + } + } + } + } + }, + "/api/catalog_system/pvt/products/productget/{productId}": { + "get": { + "tags": [ + "Product" + ], + "summary": "Get product and its general context", + "description": "Retrieves a specific product's general information as name, description and the trade policies where it is included.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product Form** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "ProductandTradePolicy", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique numerical identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 1, + "Name": "Ração Royal Canin Feline Urinary", + "DepartmentId": 1, + "CategoryId": 10, + "BrandId": 2000000, + "LinkId": "racao-royal-canin-feline-urinary", + "RefId": "", + "IsVisible": true, + "Description": "Descrição.", + "DescriptionShort": "", + "ReleaseDate": "2020-01-06T00:00:00", + "KeyWords": "bbbbbbbbbbbb*, a@", + "Title": "Ração Royal Canin Feline Urinary", + "IsActive": true, + "TaxCode": "", + "MetaTagDescription": "Descrição.", + "SupplierId": 1, + "ShowWithoutStock": true, + "ListStoreId": [ + 1, + 2, + 3 + ], + "AdWordsRemarketingCode": "", + "LomadeeCampaignCode": "" + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Product ID." + }, + "Name": { + "type": "string", + "description": "Product's name. Limited to 150 characters." + }, + "DepartmentId": { + "type": "integer", + "description": "Product department ID." + }, + "CategoryId": { + "type": "integer", + "description": "Product category ID." + }, + "BrandId": { + "type": "integer", + "description": "Product brand ID." + }, + "LinkId": { + "type": "string", + "description": "Product text link." + }, + "RefId": { + "type": "string", + "description": "Product reference code." + }, + "IsVisible": { + "type": "boolean", + "description": "If the product is visible on the store." + }, + "Description": { + "type": "string", + "description": "Product description." + }, + "DescriptionShort": { + "type": "string", + "description": "Product complement name." + }, + "ReleaseDate": { + "type": "string", + "description": "Product release date." + }, + "KeyWords": { + "type": "string", + "description": "Substitutes words for the product." + }, + "Title": { + "type": "string", + "description": "Product's Title tag. Limited to 150 characters. It is presented in the browser tab and corresponds to the title of the product page. This field is important for SEO." + }, + "IsActive": { + "type": "boolean", + "description": "If the product is active (`true`) or not (`false`) at the store." + }, + "TaxCode": { + "type": "string", + "description": "Product fiscal code." + }, + "MetaTagDescription": { + "type": "string", + "description": "Product meta tag description." + }, + "SupplierId": { + "type": "integer", + "description": "Product supplier ID." + }, + "ShowWithoutStock": { + "type": "boolean", + "description": "Defines if the product will be shown in the store even if it's out of stock (`true`) or not (`false`)." + }, + "ListStoreId": { + "type": "array", + "description": "List with the IDs of trade policies where the product is included.", + "items": { + "type": "integer", + "description": "Trade policy ID." + } + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + } + } + } + } + } + } + } + } + }, + "/api/catalog_system/pvt/products/productgetbyrefid/{refId}": { + "get": { + "tags": [ + "Product" + ], + "summary": "Get product by reference ID", + "description": "Retrieves a specific product by its Reference ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "ProductbyRefId", + "parameters": [ + { + "name": "refId", + "in": "path", + "description": "Product reference code.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "12345" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Id": 17, + "Name": "BLACK+DECKER 20V MAX Cordless Drill / Driver with 30-Piece Accessories (LD120VA)", + "DepartmentId": 9287, + "CategoryId": 9287, + "BrandId": 9280, + "LinkId": "black-decker-20v-max-cordless-drill-driver-with-30-piece-acessories-ld120va", + "RefId": "880010", + "IsVisible": true, + "Description": "The Black and Decker LD120-VoltA 20-Volt Max Lithium Drill/Driver with 30 Accessories come with the Black and Decker 20-volt max Lithium Ion Battery. These batteries are always ready, holding a charge up to 18 months. This drill provides an extra level of control with a 24 position clutch that helps to prevent stripping and overdriving screws. It has a soft grip handle that provides added comfort during use and a light weight to prevent user fatigue. This drill is ideal for drilling and screwdriving through wood, metal, and plastic. The LD120-VoltA set includes: LD120 20-Volt MAX Lithium Drill/Driver, (1) LB20 20-Volt MAX Lithium Ion Battery, (1) LCS20 Charger, (6) Brad Point Drill Bits, (10) 1-Inch Screwdriving Bits, (9) 2-Inch Screwdriving Bits, (4) Nut Drivers, (1) Magnetic Bit Tip Holder and is backed by Black and Decker's 2 year limited warranty.", + "DescriptionShort": "The Black and Decker LD120-VoltA 20-Volt Max Lithium Drill/Driver with 30 Accessories come with the Black and Decker 20-volt max Lithium Ion Battery. These batteries are always ready, holding a charge up to 18 months. This drill provides an extra level of control with a 24 position clutch that helps to prevent stripping and overdriving screws. It has a soft grip handle that provides added comfort during use and a light weight to prevent user fatigue. This drill is ideal for drilling and screwdriving through wood, metal, and plastic. The LD120-VoltA set includes: LD120 20-Volt MAX Lithium Drill/Driver, (1) LB20 20-Volt MAX Lithium Ion Battery, (1) LCS20 Charger, (6) Brad Point Drill Bits, (10) 1-Inch Screwdriving Bits, (9) 2-Inch Screwdriving Bits, (4) Nut Drivers, (1) Magnetic Bit Tip Holder and is backed by Black and Decker's 2 year limited warranty.", + "ReleaseDate": "2020-01-01T00:00:00", + "KeyWords": "product,sample", + "Title": "BLACK+DECKER 20V MAX Cordless Drill / Driver with 30-Piece Accessories (LD120VA)", + "IsActive": true, + "TaxCode": "", + "MetaTagDescription": "The Black and Decker LD120-VoltA 20-Volt Max Lithium Drill/Driver with 30 Accessories come with the Black and Decker 20-volt max Lithium Ion Battery. These batteries are always ready, holding a charge up to 18 months. This drill provides an extra level of control with a 24 position clutch that helps to prevent stripping and overdriving screws. It has a soft grip handle that provides added comfort during use and a light weight to prevent user fatigue. This drill is ideal for drilling and screwdriving through wood, metal, and plastic. The LD120-VoltA set includes: LD120 20-Volt MAX Lithium Drill/Driver, (1) LB20 20-Volt MAX Lithium Ion Battery, (1) LCS20 Charger, (6) Brad Point Drill Bits, (10) 1-Inch Screwdriving Bits, (9) 2-Inch Screwdriving Bits, (4) Nut Drivers, (1) Magnetic Bit Tip Holder and is backed by Black and Decker's 2 year limited warranty.", + "SupplierId": 1, + "ShowWithoutStock": true, + "ListStoreId": [ + 1 + ], + "AdWordsRemarketingCode": "", + "LomadeeCampaignCode": "" + }, + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "ID of the product." + }, + "Name": { + "type": "string", + "description": "Name of the product." + }, + "DepartmentId": { + "type": "integer", + "description": "ID of product department." + }, + "CategoryId": { + "type": "integer", + "description": "ID of product category." + }, + "BrandId": { + "type": "integer", + "description": "ID of the product brand." + }, + "LinkId": { + "type": "string", + "description": "Category URL." + }, + "RefId": { + "type": "string", + "description": "Product Reference ID. The limit for the product `RefId` is 100 characters." + }, + "IsVisible": { + "type": "boolean", + "description": "If the product are visible in search and list pages." + }, + "Description": { + "type": "string", + "description": "Product Description, HTML is allowed." + }, + "DescriptionShort": { + "type": "string", + "description": "Product Short Description." + }, + "ReleaseDate": { + "type": "string", + "description": "Product Release Date, for list ordering and product cluster highlight." + }, + "KeyWords": { + "type": "string", + "description": "Alternatives Keywords to improve the product findability." + }, + "Title": { + "type": "string", + "description": "Product's Title tag. Limited to 150 characters. It is presented in the browser tab and corresponds to the title of the product page. This field is important for SEO." + }, + "IsActive": { + "type": "boolean", + "description": "If the product is Active." + }, + "TaxCode": { + "type": "string", + "description": "SKU Tax Code." + }, + "MetaTagDescription": { + "type": "string", + "description": "Meta Description for the product page." + }, + "SupplierId": { + "type": "integer", + "description": "Product Supplier ID." + }, + "ShowWithoutStock": { + "type": "boolean", + "description": "If the product can be visible without stock." + }, + "ListStoreId": { + "type": "array", + "description": "Array with the ID of all the trade policies that are related to the product.", + "items": { + "type": "integer", + "description": "Trade policy ID." + } + }, + "AdWordsRemarketingCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + }, + "LomadeeCampaignCode": { + "type": "string", + "description": "This is a legacy field. Do not take this information into consideration.", + "deprecated": true + } + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pub/products/variations/{productId}": { + "get": { + "tags": [ + "Product" + ], + "summary": "Get product's SKUs by product ID", + "description": "Retrieves data about a product and its SKUs, given the product ID. A SKU (Stock Keeping Unit) is the physical unit of the product, also called a product variation.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "ProductVariations", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique numerical identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "productId": 9, + "name": "Tshirt", + "salesChannel": "2", + "available": true, + "displayMode": "list", + "dimensions": [ + "Color", + "Size", + "Origin country", + "Gender" + ], + "dimensionsInputType": { + "Color": "Combo", + "Size": "Combo", + "Origin country": "Combo", + "Gender": "Combo" + }, + "dimensionsMap": { + "Color": [ + "Yellow", + "Blue", + "Red" + ], + "Size": [ + "S", + "M", + "L" + ], + "Origin country": [ + "Brazil" + ], + "Gender": [ + "Male" + ] + }, + "skus": [ + { + "sku": 310118454, + "skuname": "Yellow - L", + "dimensions": { + "Color": "Yellow", + "Size": "L", + "Origin country": "Brazil", + "Gender": "Male" + }, + "available": false, + "availablequantity": 0, + "cacheVersionUsedToCallCheckout": null, + "listPriceFormated": "R$ 0,00", + "listPrice": 0, + "taxFormated": "R$ 0,00", + "taxAsInt": 0, + "bestPriceFormated": "R$ 9.999.876,00", + "bestPrice": 999987600, + "spotPrice": 999987600, + "installments": 0, + "installmentsValue": 0, + "installmentsInsterestRate": null, + "image": "https://lojadobreno.vteximg.com.br/arquivos/ids/155467-292-292/image-5d7ad76ad1954c53adecab4138319034.jpg?v=637321899584500000", + "sellerId": "1", + "seller": "lojadobreno", + "measures": { + "cubicweight": 1, + "height": 5, + "length": 20, + "weight": 200, + "width": 20 + }, + "unitMultiplier": 1, + "rewardValue": 0 + }, + { + "sku": 310118455, + "skuname": "Red - M", + "dimensions": { + "Color": "Red", + "Size": "M", + "Origin country": "Brazil", + "Gender": "Male" + }, + "available": true, + "availablequantity": 99999, + "cacheVersionUsedToCallCheckout": "38395F1AEF59DF5CEAEDE472328145CD_", + "listPriceFormated": "R$ 0,00", + "listPrice": 0, + "taxFormated": "R$ 0,00", + "taxAsInt": 0, + "bestPriceFormated": "R$ 20,00", + "bestPrice": 2000, + "spotPrice": 2000, + "installments": 1, + "installmentsValue": 2000, + "installmentsInsterestRate": 0, + "image": "https://lojadobreno.vteximg.com.br/arquivos/ids/155468-292-292/image-601a6099aace48b89d26fc9f22e8e611.jpg?v=637321906602470000", + "sellerId": "pedrostore", + "seller": "pedrostore", + "measures": { + "cubicweight": 0.4167, + "height": 5, + "length": 20, + "weight": 200, + "width": 20 + }, + "unitMultiplier": 1, + "rewardValue": 0 + } + ] + }, + "schema": { + "type": "object", + "properties": { + "productId": { + "type": "integer", + "description": "Product's unique numerical identifier." + }, + "name": { + "type": "string", + "description": "Product name." + }, + "salesChannel": { + "type": "string", + "description": "Trade policy ID." + }, + "available": { + "type": "boolean", + "description": "Defines if the product is available (`true`) or not (`false`)." + }, + "displayMode": { + "type": "string", + "description": "Defines the mannner SKUs are displayed." + }, + "dimensions": { + "type": "array", + "description": "Lists SKU specifications.", + "items": { + "type": "string", + "description": "Name of the SKU specification." + } + }, + "dimensionsInputType": { + "type": "object", + "description": "Lists SKU specifications and their Field type, in the following format: `\"{specificationName}\":\"{fieldType}\"`." + }, + "dimensionsMap": { + "type": "object", + "description": "Lists SKU specifications and their possible values inside arrays." + }, + "skus": { + "type": "array", + "description": "Array containing information about the product's SKUs.", + "items": { + "type": "object", + "description": "Object containing information about a specific SKU.", + "properties": { + "sku": { + "type": "integer", + "description": "SKU ID." + }, + "skuname": { + "type": "string", + "description": "SKU Name." + }, + "dimensions": { + "type": "object", + "description": "Lists SKU specifications and their respective values." + }, + "available": { + "type": "boolean", + "description": "Defines if the SKU is available (`true`) or not (`false`)." + }, + "availablequantity": { + "type": "integer", + "description": "Available quantity of the SKU in stock." + }, + "cacheVersionUsedToCallCheckout": { + "type": "string", + "description": "Cache version used to call Checkout.", + "nullable": true + }, + "listPriceFormated": { + "type": "string", + "description": "List price formatted according to the valid currency." + }, + "listPrice": { + "type": "integer", + "description": "List price." + }, + "taxFormated": { + "type": "string", + "description": "Tax value formatted according to the valid currency." + }, + "taxAsInt": { + "type": "integer", + "description": "Tax value." + }, + "bestPriceFormated": { + "type": "string", + "description": "Best price formatted according to the valid currency." + }, + "bestPrice": { + "type": "integer", + "description": "Best price." + }, + "spotPrice": { + "type": "integer", + "description": "Spot price." + }, + "installments": { + "type": "integer", + "description": "Number of installments." + }, + "installmentsValue": { + "type": "integer", + "description": "Value of installments." + }, + "installmentsInsterestRate": { + "type": "integer", + "description": "Interest rate of installments.", + "nullable": true + }, + "image": { + "type": "string", + "description": "SKU image URL." + }, + "sellerId": { + "type": "string", + "description": "Seller ID." + }, + "measures": { + "type": "object", + "description": "SKU measures.", + "properties": { + "cubicweight": { + "type": "number", + "description": "Cubic weight." + }, + "height": { + "type": "number", + "description": "Height." + }, + "length": { + "type": "number", + "description": "Length." + }, + "weight": { + "type": "number", + "description": "Weight." + }, + "width": { + "type": "number", + "description": "Width." + } + } + }, + "unitMultiplier": { + "type": "number", + "description": "SKU Unit Multiplier." + }, + "rewardValue": { + "type": "integer", + "description": "Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1." + } + } + } + } + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/products/{productId}/specification": { + "get": { + "tags": [ + "Product specification" + ], + "summary": "Get product specifications by product ID", + "description": "Retrieves all specifications of a product by the product's ID.\r\n> 📘 Onboarding guide \r\n>\r\n> Check the new [Catalog onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/catalog-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Catalog and is organized by focusing on the developer's journey.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetProductSpecification", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique numerical identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "Value": [ + "Iron", + "Plastic" + ], + "Id": 30, + "Name": "Material" + } + ], + "schema": { + "type": "array", + "items": { + "required": [ + "Value" + ], + "type": "object", + "description": "Object with specification values information.", + "properties": { + "Value": { + "type": "array", + "description": "Array with specification values.", + "items": { + "type": "string", + "description": "Specification value." + } + }, + "Id": { + "type": "integer", + "description": "Specification field ID, which is the same as `FieldId` in other specification endpoints." + }, + "Name": { + "type": "string", + "description": "Name of the specification." + } + } + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Product specification" + ], + "summary": "Update product specification by product ID", + "description": "Updates the value of a product specification by the product's ID. The specification's ID or name can be used to identify what product specification will be updated. specification fields must be previously created in your Catalog.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateProductSpecification", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetorUpdateProductSpecification" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/catalog_system/pvt/sku/stockkeepingunitids": { + "get": { + "tags": [ + "SKU" + ], + "summary": "List all SKU IDs", + "description": "Retrieves the IDs of all SKUs in your store. Presents the results with page size and pagination.\r\n> 📘 Onboarding guide \r\n>\r\n> Check the new [Catalog onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/catalog-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Catalog and is organized by focusing on the developer's journey.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "ListallSKUIDs", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Number of the page from where you need to retrieve SKU IDs.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "pagesize", + "in": "query", + "description": "Size of the page from where you need retrieve SKU IDs. The maximum value is `1000`.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 25 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array composed by SKU IDs, in the search context.", + "items": { + "type": "integer", + "format": "int32", + "description": "SKU ID." + } + }, + "example": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10 + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/sku/stockkeepingunitbyid/{skuId}": { + "get": { + "tags": [ + "SKU" + ], + "summary": "Get SKU and context", + "description": "Retrieves context of an SKU.\r\n> 📘 Onboarding guide \r\n>\r\n> Check the new [Catalog onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/catalog-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Catalog and is organized by focusing on the developer's journey.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SkuContext", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "SKU's unique identifier number.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 2001773 + } + }, + { + "name": "sc", + "in": "query", + "description": "Trade policy's unique identifier number.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSKUandContext" + }, + "example": { + "Id": 2001773, + "ProductId": 2001426, + "NameComplete": "Tabela de Basquete", + "ComplementName": "", + "ProductName": "Tabela de Basquete", + "ProductDescription": "Tabela de Basquete", + "SkuName": "Tabela de Basquete", + "ProductRefId": "0987", + "TaxCode": "", + "IsActive": true, + "IsTransported": true, + "IsInventoried": true, + "IsGiftCardRecharge": false, + "ImageUrl": "http://ambienteqa.vteximg.com.br/arquivos/ids/168952-55-55/7508800GG.jpg", + "DetailUrl": "/tabela-de-basquete/p", + "CSCIdentification": null, + "BrandId": "2000018", + "BrandName": "MARCA ARGOLO TESTE", + "IsBrandActive": true, + "Dimension": { + "cubicweight": 81.6833, + "height": 65, + "length": 58, + "weight": 10000, + "width": 130 + }, + "RealDimension": { + "realCubicWeight": 274.1375, + "realHeight": 241, + "realLength": 65, + "realWeight": 9800, + "realWidth": 105 + }, + "ManufacturerCode": "", + "IsKit": false, + "KitItems": [], + "Services": [], + "Categories": [], + "CategoriesFullPath": [ + "/1/10/", + "/1/", + "/20/" + ], + "Attachments": [ + { + "Id": 3, + "Name": "Mensagem", + "Keys": [ + "nome;20", + "foto;40" + ], + "Fields": [ + { + "FieldName": "nome", + "MaxCaracters": "20", + "DomainValues": "Adalberto,Pedro,João" + }, + { + "FieldName": "foto", + "MaxCaracters": "40", + "DomainValues": null + } + ], + "IsActive": true, + "IsRequired": false + } + ], + "Collections": [], + "SkuSellers": [ + { + "SellerId": "1", + "StockKeepingUnitId": 2001773, + "SellerStockKeepingUnitId": "2001773", + "IsActive": true, + "FreightCommissionPercentage": 0, + "ProductCommissionPercentage": 0 + } + ], + "SalesChannels": [ + 1, + 2, + 3, + 10 + ], + "Images": [ + { + "ImageUrl": "http://ambienteqa.vteximg.com.br/arquivos/ids/168952/7508800GG.jpg", + "ImageName": "", + "FileId": 168952 + }, + { + "ImageUrl": "http://ambienteqa.vteximg.com.br/arquivos/ids/168953/7508800_1GG.jpg", + "ImageName": "", + "FileId": 168953 + }, + { + "ImageUrl": "http://ambienteqa.vteximg.com.br/arquivos/ids/168954/7508800_2GG.jpg", + "ImageName": "", + "FileId": 168954 + } + ], + "Videos": [ + "www.google.com" + ], + "SkuSpecifications": [ + { + "FieldId": 102, + "FieldName": "Cor", + "FieldValueIds": [ + 266 + ], + "FieldValues": [ + "Padrão" + ], + "IsFilter": false, + "FieldGroupId": 11, + "FieldGroupName": "Especificações" + } + ], + "ProductSpecifications": [ + { + "FieldId": 7, + "FieldName": "Faixa Etária", + "FieldValueIds": [ + 58, + 56, + 55, + 52 + ], + "FieldValues": [ + "5 a 6 anos", + "7 a 8 anos", + "9 a 10 anos", + "Acima de 10 anos" + ], + "IsFilter": true, + "FieldGroupId": 17, + "FieldGroupName": "NewGroupName 2" + }, + { + "FieldId": 23, + "FieldName": "Fabricante", + "FieldValueIds": [], + "FieldValues": [ + "Xalingo" + ], + "IsFilter": false, + "FieldGroupId": 17, + "FieldGroupName": "NewGroupName 2" + } + ], + "ProductClustersIds": "176,187,192,194,211,217,235,242", + "PositionsInClusters": { + "151": 3, + "152": 0, + "158": 1 + }, + "ProductClusterNames": { + "151": "asdfghj", + "152": "George", + "158": "Coleção halloween" + }, + "ProductClusterHighlights": { + "151": "asdfghj", + "152": "George" + }, + "ProductCategoryIds": "/59/", + "IsDirectCategoryActive": false, + "ProductGlobalCategoryId": null, + "ProductCategories": { + "59": "Brinquedos" + }, + "CommercialConditionId": 1, + "RewardValue": 100, + "AlternateIds": { + "Ean": "8781", + "RefId": "878181" + }, + "AlternateIdValues": [ + "8781", + "878181" + ], + "EstimatedDateArrival": null, + "MeasurementUnit": "un", + "UnitMultiplier": 2, + "InformationSource": "Indexer", + "ModalType": null, + "KeyWords": "basquete, tabela", + "ReleaseDate": "2020-01-06T00:00:00", + "ProductIsVisible": true, + "ShowIfNotAvailable": true, + "IsProductActive": true, + "ProductFinalScore": 0 + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/sku/stockkeepingunitidbyrefid/{refId}": { + "get": { + "tags": [ + "SKU" + ], + "summary": "Get SKU ID by reference ID", + "description": "Retrieves an SKU ID by the SKU's reference ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SkuIdbyRefId", + "parameters": [ + { + "name": "refId", + "in": "path", + "description": "SKU reference ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "0001" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "string", + "description": "SKU ID." + }, + "example": "1" + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/sku/stockkeepingunitbyalternateId/{alternateId}": { + "get": { + "tags": [ + "SKU" + ], + "summary": "Get SKU by alternate ID", + "description": "Retrieves an SKU by its alternate ID, which can be the EAN or the reference ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SkubyAlternateId", + "parameters": [ + { + "name": "alternateId", + "in": "path", + "description": "Product EAN or `RefId`.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 10 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSKUAltID" + }, + "example": { + "Id": 310118450, + "ProductId": 2, + "NameComplete": "Caixa de Areia Azul Petmate sku test", + "ComplementName": "", + "ProductName": "Caixa de Areia Azul Petmate", + "ProductDescription": "", + "ProductRefId": "", + "TaxCode": "", + "SkuName": "sku test", + "IsActive": true, + "IsTransported": true, + "IsInventoried": true, + "IsGiftCardRecharge": false, + "ImageUrl": "https://lojadobreno.vteximg.com.br/arquivos/ids/155451-55-55/caixa-areia-azul-petmate.jpg?v=637139451191670000", + "DetailUrl": "/caixa-de-areia-azul-petmate/p", + "CSCIdentification": null, + "BrandId": "2000005", + "BrandName": "Petmate", + "IsBrandActive": true, + "Dimension": { + "cubicweight": 0.2083, + "height": 10, + "length": 10, + "weight": 10, + "width": 10 + }, + "RealDimension": { + "realCubicWeight": 0, + "realHeight": 0, + "realLength": 0, + "realWeight": 0, + "realWidth": 0 + }, + "ManufacturerCode": "123", + "IsKit": false, + "KitItems": [], + "Services": [], + "Categories": [], + "CategoriesFullPath": [ + "/3/15/", + "/3/", + "/1/" + ], + "Attachments": [], + "Collections": [], + "SkuSellers": [ + { + "SellerId": "1", + "StockKeepingUnitId": 310118450, + "SellerStockKeepingUnitId": "310118450", + "IsActive": true, + "FreightCommissionPercentage": 0, + "ProductCommissionPercentage": 0 + } + ], + "SalesChannels": [ + 1, + 3 + ], + "Images": [ + { + "ImageUrl": "https://lojadobreno.vteximg.com.br/arquivos/ids/155451/caixa-areia-azul-petmate.jpg?v=637139451191670000", + "ImageName": null, + "FileId": 155451 + } + ], + "Videos": [], + "SkuSpecifications": [], + "ProductSpecifications": [], + "ProductClustersIds": "151,158", + "PositionsInClusters": { + "151": 1, + "158": 2 + }, + "ProductClusterNames": { + "151": "asdfghj", + "158": "Coleção halloween" + }, + "ProductClusterHighlights": { + "151": "asdfghj" + }, + "ProductCategoryIds": "/3/15/", + "IsDirectCategoryActive": true, + "ProductGlobalCategoryId": 5000, + "ProductCategories": { + "1": "Alimentação", + "3": "Higiene", + "15": "Caixa de Areia" + }, + "CommercialConditionId": 1, + "RewardValue": 0, + "AlternateIds": { + "RefId": "1" + }, + "AlternateIdValues": [ + "1" + ], + "EstimatedDateArrival": null, + "MeasurementUnit": "un", + "UnitMultiplier": 1, + "InformationSource": null, + "ModalType": null, + "KeyWords": "", + "ReleaseDate": "2020-01-06T00:00:00Z", + "ProductIsVisible": true, + "ShowIfNotAvailable": true, + "IsProductActive": true, + "ProductFinalScore": 0 + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/sku/stockkeepingunitByProductId/{productId}": { + "get": { + "tags": [ + "SKU" + ], + "summary": "Get SKU list by product ID", + "description": "Retrieves a list with the SKUs related to a product by the product's ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SkulistbyProductId", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique numerical identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array with information of all SKUs with the same product ID.", + "items": { + "$ref": "#/components/schemas/SkulistbyProductId" + } + }, + "example": [ + { + "IsPersisted": true, + "IsRemoved": false, + "Id": 2000035, + "ProductId": 2000024, + "IsActive": true, + "Name": "33 - Preto", + "Height": 8, + "RealHeight": null, + "Width": 15, + "RealWidth": null, + "Length": 8, + "RealLength": null, + "WeightKg": 340, + "RealWeightKg": null, + "ModalId": 1, + "RefId": "", + "CubicWeight": 0.2, + "IsKit": false, + "IsDynamicKit": null, + "InternalNote": null, + "DateUpdated": "2015-11-06T19:10:00", + "RewardValue": 0.01, + "CommercialConditionId": 1, + "EstimatedDateArrival": null, + "FlagKitItensSellApart": false, + "ManufacturerCode": "", + "ReferenceStockKeepingUnitId": null, + "Position": 0, + "EditionSkuId": null, + "ApprovedAdminId": 123, + "EditionAdminId": 123, + "ActivateIfPossible": true, + "SupplierCode": null, + "MeasurementUnit": "un", + "UnitMultiplier": 2, + "IsInventoried": null, + "IsTransported": null, + "IsGiftCardRecharge": null, + "ModalType": null + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pub/sku/stockkeepingunitidsbyrefids": { + "post": { + "tags": [ + "SKU" + ], + "summary": "Retrieve SKU ID list by reference ID list", + "description": "Given a list of reference IDs, this endpoint returns a list with the corresponding SKU IDs.\r\n\r\n>⚠️ The list of reference IDs in the request body cannot have repeated reference IDs, or the API will return an error 500.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SkuIdlistbyRefIdlist", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array with SKU reference IDs from which you need to retrieve the related SKU IDs. Do not repeat values in the array, or the API will return an error 500.", + "items": { + "type": "string", + "description": "SKU reference ID.", + "example": "799" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object composed by a list of SKU IDs related to each reference ID list searched. Structure: \"{RefId}\": \"{SkuId}\".", + "additionalProperties": { + "type": "string", + "description": "Reference ID." + } + }, + "example": { + "123": "435", + "D25133K-B2": "4351", + "14-556": "3155", + "DCF880L2-BR": "4500" + } + } + } + }, + "500": { + "description": "Internal Server Error" + } + } + } + }, + "/api/catalog_system/pvt/sku/complements/{parentSkuId}/{type}": { + "get": { + "tags": [ + "SKU complement" + ], + "summary": "Get SKU complements by type", + "description": "Retrieves all the existing SKU complements with the same complement type ID of a specific SKU and parent SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetSKUcomplementsbytype", + "parameters": [ + { + "name": "parentSkuId", + "in": "path", + "required": true, + "description": "ID of the parent SKU, where the complement is inserted.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "type", + "in": "path", + "required": true, + "description": "Complement type ID. This represents the type of the complement. The possible values are: `1` for **Accessory**; `2` for **Suggestion**; `3` for **Similar product**; `5` for **Show together**.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "ParentSkuId": 1, + "ComplementSkuIds": [ + 7 + ], + "Type": "1" + }, + "schema": { + "type": "object", + "required": [ + "ParentSkuId", + "ComplementSkuIds", + "Type" + ], + "properties": { + "ParentSkuId": { + "type": "integer", + "description": "ID of the parent SKU, where the complement is inserted." + }, + "ComplementSkuIds": { + "type": "array", + "description": "Array with SKU complements IDs.", + "items": { + "type": "integer", + "description": "SKU complement ID." + } + }, + "Type": { + "type": "string", + "description": "Complement type ID. This represents the type of the complement. The possible values are: `1` for **Accessory**; `2` for **Suggestion**; `3` for **Similar product**; `5` for **Show together**.", + "enum": [ + "1", + "2", + "3", + "4", + "5" + ] + } + } + } + } + } + } + } + } + }, + "/api/catalog_system/pvt/sku/stockkeepingunitbyean/{ean}": { + "get": { + "tags": [ + "SKU EAN" + ], + "summary": "Get SKU by EAN", + "description": "Retrieves an SKU by its EAN ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SkubyEAN", + "parameters": [ + { + "name": "ean", + "in": "path", + "description": "EAN of the SKU which you need to retrieve details from.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1234567890123" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSKUAltID" + }, + "example": { + "Id": 2001773, + "ProductId": 2001426, + "NameComplete": "Tabela de Basquete", + "ProductName": "Tabela de Basquete", + "ProductDescription": "Tabela de Basquete", + "SkuName": "Tabela de Basquete", + "IsActive": true, + "IsTransported": true, + "IsInventoried": true, + "IsGiftCardRecharge": false, + "ImageUrl": "http://ambienteqa.vteximg.com.br/arquivos/ids/168952-55-55/7508800GG.jpg", + "DetailUrl": "/tabela-de-basquete/p", + "CSCIdentification": null, + "BrandId": "2000018", + "BrandName": "MARCA ARGOLO TESTE", + "Dimension": { + "cubicweight": 81.6833, + "height": 65, + "length": 58, + "weight": 10000, + "width": 130 + }, + "RealDimension": { + "realCubicWeight": 274.1375, + "realHeight": 241, + "realLength": 65, + "realWeight": 9800, + "realWidth": 105 + }, + "ManufacturerCode": "", + "IsKit": false, + "KitItems": [], + "Services": [], + "Categories": [], + "Attachments": [ + { + "Id": 3, + "Name": "Mensagem", + "Keys": [ + "nome;20", + "foto;40" + ], + "Fields": [ + { + "FieldName": "nome", + "MaxCaracters": "20", + "DomainValues": "Adalberto,Pedro,João" + }, + { + "FieldName": "foto", + "MaxCaracters": "40", + "DomainValues": null + } + ], + "IsActive": true, + "IsRequired": false + } + ], + "Collections": [], + "SkuSellers": [ + { + "SellerId": "1", + "StockKeepingUnitId": 2001773, + "SellerStockKeepingUnitId": "2001773", + "IsActive": true, + "FreightCommissionPercentage": 0, + "ProductCommissionPercentage": 0 + } + ], + "SalesChannels": [ + 1, + 2, + 3, + 10 + ], + "Images": [ + { + "ImageUrl": "http://ambienteqa.vteximg.com.br/arquivos/ids/168952/7508800GG.jpg", + "ImageName": "", + "FileId": 168952 + }, + { + "ImageUrl": "http://ambienteqa.vteximg.com.br/arquivos/ids/168953/7508800_1GG.jpg", + "ImageName": "", + "FileId": 168953 + }, + { + "ImageUrl": "http://ambienteqa.vteximg.com.br/arquivos/ids/168954/7508800_2GG.jpg", + "ImageName": "", + "FileId": 168954 + } + ], + "SkuSpecifications": [ + { + "FieldId": 102, + "FieldName": "Cor", + "FieldValueIds": [ + 266 + ], + "FieldValues": [ + "Padrão" + ] + } + ], + "ProductSpecifications": [ + { + "FieldId": 7, + "FieldName": "Faixa Etária", + "FieldValueIds": [ + 58, + 56, + 55, + 52 + ], + "FieldValues": [ + "5 a 6 anos", + "7 a 8 anos", + "9 a 10 anos", + "Acima de 10 anos" + ] + }, + { + "FieldId": 23, + "FieldName": "Fabricante", + "FieldValueIds": [], + "FieldValues": [ + "Xalingo" + ] + } + ], + "ProductClustersIds": "176,187,192,194,211,217,235,242", + "ProductCategoryIds": "/59/", + "ProductGlobalCategoryId": null, + "ProductCategories": { + "59": "Brinquedos" + }, + "CommercialConditionId": 1, + "RewardValue": 100, + "AlternateIds": { + "Ean": "8781", + "RefId": "878181" + }, + "AlternateIdValues": [ + "8781", + "878181" + ], + "EstimatedDateArrival": null, + "MeasurementUnit": "un", + "UnitMultiplier": 2, + "InformationSource": null, + "ModalType": "" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/sku/associateattachments": { + "post": { + "tags": [ + "SKU attachment" + ], + "summary": "Associate attachments to an SKU", + "description": "Associates attachments to an SKU based on a given SKU ID and attachment names.\n\rThis request removes existing SKU attachment associations and recreates the associations with the attachments being sent.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AssociateattachmentstoSKU", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "SkuId", + "AttachmentNames" + ], + "type": "object", + "properties": { + "SkuId": { + "type": "integer", + "description": "Unique identifier of the SKU.", + "example": 1 + }, + "AttachmentNames": { + "type": "array", + "description": "Array with all the names of the attachments that you need to associate to the SKU.", + "items": { + "type": "string", + "description": "Attachment name.", + "example": "T-Shirt Customization" + } + } + } + }, + "example": { + "SkuId": 1, + "AttachmentNames": [ + "T-Shirt Customization" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/skuseller/{sellerId}/{sellerSkuId}": { + "get": { + "tags": [ + "SKU seller" + ], + "summary": "Get details of a seller's SKU", + "description": " > ⚠️ Check out the updated version of this endpoint in our [SKU Bindings API documentation](https://developers.vtex.com/docs/api-reference/sku-bindings-api#get-/sku-binding/pvt/skuseller/-sellerId-/-sellerSkuId-). If you are doing this integration for the first time, we recommend that you follow the updated documentation.\n\nRetrieves the details of a seller's SKU given a seller ID and the SKU ID in the seller's store.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Marketplace | **Seller SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetSKUseller", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "101" + } + }, + { + "name": "sellerSkuId", + "in": "path", + "description": "SKU ID in the seller's store.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "IsPersisted", + "IsRemoved", + "SkuSellerId", + "SellerId", + "StockKeepingUnitId", + "SellerStockKeepingUnitId", + "IsActive", + "UpdateDate", + "RequestedUpdateDate" + ], + "properties": { + "IsPersisted": { + "type": "boolean", + "description": "Defines if the seller is persisted." + }, + "IsRemoved": { + "type": "boolean", + "description": "Defines if the seller is removed." + }, + "SkuSellerId": { + "type": "integer", + "format": "int32", + "description": "SKU ID in the seller's store." + }, + "SellerId": { + "type": "string", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID." + }, + "StockKeepingUnitId": { + "type": "integer", + "format": "int32", + "description": "SKU ID in the VTEX marketplace." + }, + "SellerStockKeepingUnitId": { + "type": "string", + "description": "SKU seller ID." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU binding is active." + }, + "UpdateDate": { + "type": "string", + "description": "Date when the SKU binding was updated for the last time, in UTC format." + }, + "RequestedUpdateDate": { + "type": "string", + "description": "Date when an SKU binding update was requested for the last time, in UTC format.", + "nullable": true + } + } + }, + "example": { + "IsPersisted": true, + "IsRemoved": false, + "SkuSellerId": 799, + "SellerId": "myseller", + "StockKeepingUnitId": 50, + "SellerStockKeepingUnitId": "502", + "IsActive": true, + "UpdateDate": "2018-10-11T04:52:42.1", + "RequestedUpdateDate": null + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/skuseller/remove/{sellerId}/{sellerSkuId}": { + "post": { + "tags": [ + "SKU seller" + ], + "summary": "Remove a seller's SKU binding", + "description": " > ⚠️ Check out the updated version of this endpoint in our [SKU Bindings API documentation](https://developers.vtex.com/docs/api-reference/sku-bindings-api#post-/sku-binding/pvt/skuseller/remove/-sellerId-/-sellerSkuId-). If you are doing this integration for the first time, we recommend that you follow the updated documentation.\n\nRemove a seller's SKU binding, given the seller ID and the SKU ID in the seller's store.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Marketplace | **Seller SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "DeleteSKUsellerassociation", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "101" + } + }, + { + "name": "sellerSkuId", + "in": "path", + "description": "SKU ID in the seller's store.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/skuseller/changenotification/{sellerId}/{sellerSkuId}": { + "post": { + "tags": [ + "SKU seller" + ], + "summary": "Change notification with seller ID and seller SKU ID", + "description": " > ⚠️ Check out the updated version of this endpoint in our [SKU Bindings API documentation](https://developers.vtex.com/docs/api-reference/sku-bindings-api#post-/sku-binding/pvt/skuseller/changenotification/-sellerId-/-sellerSkuId-). If you are doing this integration for the first time, we recommend that you follow the updated documentation.\n\nThe seller is responsible for suggesting new SKUs to be sold in the VTEX marketplace and also for informing the marketplace about changes in their SKUs that already exist in the marketplace. Both actions start with a catalog notification, which is made by this request.\n\nWith this notification, the seller is telling the marketplace that something has changed about a specific SKU, like price or inventory, or that this is a new SKU that the seller would like to offer to the marketplace.\n\nThere are two information expected by the marketplace in this request: the `sellerId`, which identifies the seller, and the `sellerSkuId`, which identifies the binding of the seller with the SKU.\n\nBoth information are passed through the request URL. The body of the request should be empty.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Marketplace | **Seller SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "101" + } + }, + { + "name": "sellerSkuId", + "in": "path", + "description": "ID of the binding of the seller with the SKU.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "deprecated": false, + "operationId": "post_api_catalogSystem_pvt_skuseller_changenotification_BySellerId_BySellerSkuId" + } + }, + "/api/catalog_system/pvt/skuseller/changenotification/{skuId}": { + "post": { + "tags": [ + "SKU seller" + ], + "summary": "Change notification with SKU ID", + "description": " > ⚠️ Check out the updated version of this endpoint in our [SKU Bindings API documentation](https://developers.vtex.com/docs/api-reference/sku-bindings-api#post-/sku-binding/pvt/skuseller/changenotification/-skuId-). If you are doing this integration for the first time, we recommend that you follow the updated documentation.\r\n\r\nThe seller is responsible for suggesting new SKUs to be sold in the VTEX marketplace and also for informing the marketplace about changes in their SKUs that already exist in the marketplace. Both actions start with a catalog notification, which is made by this request.\r\n\r\nWith this notification, the seller is telling the marketplace that something has changed about a specific SKU, like its name or description, or that this is a new SKU that the seller would like to offer to the marketplace. The body of the request should be empty.\r\n\r\n > ⚠️ Do not use this endpoint for price and inventory changes, because these types of updates should be notified using Marketplace API. For price changes, we recommend using the [Notify marketplace of price update](https://developers.vtex.com/docs/api-reference/marketplace-apis#post-/notificator/-sellerId-/changenotification/-skuId-/price) endpoint. For inventory changes, use [Notify marketplace of inventory update](https://developers.vtex.com/docs/api-reference/marketplace-apis#post-/notificator/-sellerId-/changenotification/-skuId-/inventory).\r\n\r\n## Example\r\n\r\nLet's say your seller has the ID `123` in the marketplace and you want to inform the marketplace that has been a change in the SKU with ID `700`.\r\n\r\nIn this case, you would have to replace the `sellerId` parameter with the value `123` and the `skuId` parameter with the value `700`. The URL of the request would be the following.\r\n\r\n```\r\nhttps://{{accountName}}.vtexcommercestable.com.br/api/catalog_system/pvt/skuseller/changenotification/123/700\r\n```\r\n\r\n## Response codes\r\n\r\nThe following response codes are possible for this request.\r\n\r\n* **404:** the SKU was not found in the marketplace. The body of the response, in this case, should follow this format: \"Seller StockKeepingUnit `{{skuId}}` not found for this seller id `{{sellerId}}`\". This means that the seller can now proceed with sending an offer to the marketplace in order to suggest that this SKU is sold there.\r\n* **200:** the SKU whose ID was informed in the URL already exists in the marketplace and was found. The marketplace can now proceed with a fulfillment simulation in order to get updated information about this SKU's inventory and price.\r\n* **429:** Failure due to too many requests.\r\n* **403:** Failure in the authentication.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Marketplace | **Seller SKUs** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "ChangeNotification", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use to look for the SKU whose change the seller wants to inform. If the marketplace finds this ID, it responds with status code 200. Otherwise, it responds with status code 404.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "10" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found", + "content": { + "text/plain": { + "schema": { + "type": "string" + }, + "example": "Seller StockKeepingUnit `{{skuId}}` not found for this seller id `{{sellerId}}`" + } + } + }, + "429": { + "description": "Too many requests" + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pub/category/tree/{categoryLevels}": { + "get": { + "tags": [ + "Category" + ], + "summary": "Get category tree", + "description": "Retrieves the category tree of your store. Get all the category levels registered in the Catalog or define the level up to which you want to get. \r\n> 📘 Onboarding guide \r\n>\r\n> Check the new [Catalog onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/catalog-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Catalog and is organized by focusing on the developer's journey.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Category** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "CategoryTree", + "parameters": [ + { + "name": "categoryLevels", + "in": "path", + "required": true, + "description": "Value of the category level you need to retrieve.", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetCategoryTree" + } + }, + "example": [ + { + "id": 1, + "name": "Alimentação", + "hasChildren": true, + "url": "https://lojadobreno.vtexcommercestable.com.br/alimentacao", + "children": [ + { + "id": 6, + "name": "Bebedouro", + "hasChildren": false, + "url": "https://lojadobreno.vtexcommercestable.com.br/alimentacao/bebedouro", + "children": [], + "Title": "Bebedouro para Gatos", + "MetaTagDescription": "" + }, + { + "id": 7, + "name": "Comedouro", + "hasChildren": false, + "url": "https://lojadobreno.vtexcommercestable.com.br/alimentacao/comedouro", + "children": [], + "Title": "Comedouro para Gatos", + "MetaTagDescription": "" + }, + { + "id": 8, + "name": "Biscoitos", + "hasChildren": false, + "url": "https://lojadobreno.vtexcommercestable.com.br/alimentacao/biscoitos", + "children": [], + "Title": "Biscoitos para Gatos", + "MetaTagDescription": "" + }, + { + "id": 9, + "name": "Petiscos", + "hasChildren": false, + "url": "https://lojadobreno.vtexcommercestable.com.br/alimentacao/petiscos", + "children": [], + "Title": "Petiscos para Gatos", + "MetaTagDescription": "" + }, + { + "id": 10, + "name": "Ração Seca", + "hasChildren": false, + "url": "https://lojadobreno.vtexcommercestable.com.br/alimentacao/racao-seca", + "children": [], + "Title": "Ração Seca para Gatos", + "MetaTagDescription": "" + }, + { + "id": 11, + "name": "Ração Úmida", + "hasChildren": false, + "url": "https://lojadobreno.vtexcommercestable.com.br/alimentacao/racao-umida", + "children": [], + "Title": "Ração Úmida para Gatos", + "MetaTagDescription": "" + } + ], + "Title": "Alimentação para Gatos", + "MetaTagDescription": "" + }, + { + "id": 2, + "name": "Brinquedos", + "hasChildren": true, + "url": "https://lojadobreno.vtexcommercestable.com.br/brinquedos", + "children": [ + { + "id": 12, + "name": "Bolinhas", + "hasChildren": false, + "url": "https://lojadobreno.vtexcommercestable.com.br/brinquedos/bolinhas", + "children": [], + "Title": "Bolinhas para Gatos", + "MetaTagDescription": "" + }, + { + "id": 13, + "name": "Ratinhos", + "hasChildren": false, + "url": "https://lojadobreno.vtexcommercestable.com.br/brinquedos/ratinhos", + "children": [], + "Title": "Ratinhos", + "MetaTagDescription": "" + }, + { + "id": 19, + "name": "Arranhador para gato", + "hasChildren": false, + "url": "https://lojadobreno.vtexcommercestable.com.br/brinquedos/arranhador-para-gato", + "children": [], + "Title": "Brinquedo Arranhador para gatos", + "MetaTagDescription": "Arranhador gatos é indispensável no lar com felinos. Ideais para afiar as unhas e garantir a diversão" + } + ], + "Title": "Brinquedos para Gatos", + "MetaTagDescription": "" + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pub/specification/field/listByCategoryId/{categoryId}": { + "get": { + "tags": [ + "Category specification" + ], + "summary": "Get specifications by category ID", + "description": "Retrieves all specifications from a category by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Groups** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SpecificationsByCategoryId", + "parameters": [ + { + "name": "categoryId", + "in": "path", + "description": "Category ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CategorySpecification" + }, + "example": [ + { + "Name": "Specification A", + "CategoryId": 1, + "FieldId": 33, + "IsActive": true, + "IsStockKeepingUnit": false + }, + { + "Name": "Specification B", + "CategoryId": 1, + "FieldId": 34, + "IsActive": true, + "IsStockKeepingUnit": false + }, + { + "Name": "Specification C", + "CategoryId": 1, + "FieldId": 35, + "IsActive": false, + "IsStockKeepingUnit": false + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pub/specification/field/listTreeByCategoryId/{categoryId}": { + "get": { + "tags": [ + "Category specification" + ], + "summary": "Get specifications tree by category ID", + "description": "Lists all specifications including the current category and the level zero specifications from a category by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Groups** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SpecificationsTreeByCategoryId", + "parameters": [ + { + "name": "categoryId", + "in": "path", + "description": "Category ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CategorySpecification" + }, + "example": [ + { + "Name": "Specification A", + "CategoryId": 1, + "FieldId": 33, + "IsActive": true, + "IsStockKeepingUnit": false + }, + { + "Name": "Specification B", + "CategoryId": 1, + "FieldId": 34, + "IsActive": true, + "IsStockKeepingUnit": false + }, + { + "Name": "Specification C", + "CategoryId": 1, + "FieldId": 35, + "IsActive": false, + "IsStockKeepingUnit": false + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/brand/list": { + "get": { + "tags": [ + "Brand" + ], + "summary": "Get brand list", + "description": "Retrieves all brands registered in the store's Catalog. \r\n>⚠️ This route's response is limited to 20k results. If you need to obtain more results, please use the [Get paginated brand list](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-brand-list) endpoint instead to get a paginated response.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Brands** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "BrandList", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "id": 9280, + "name": "Brand", + "isActive": true, + "title": "Vertical brand", + "metaTagDescription": "Brand", + "imageUrl": null + }, + { + "id": 2000000, + "name": "Orma Carbon", + "isActive": true, + "title": "Orma Carbon S.A.", + "metaTagDescription": "Orma Carbon", + "imageUrl": null + }, + { + "id": 2000001, + "name": "Pedigree", + "isActive": true, + "title": "Pedrigree brand", + "metaTagDescription": "pedigree", + "imageUrl": null + } + ], + "schema": { + "type": "array", + "description": "An array with all brands registered in the store.", + "items": { + "$ref": "#/components/schemas/BrandGet" + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/brand/pagedlist": { + "get": { + "tags": [ + "Brand" + ], + "summary": "Get paginated brand list", + "description": "Retrieves all brands registered in the store's Catalog by page number.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Brands** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "BrandListPerPage", + "parameters": [ + { + "name": "pageSize", + "in": "query", + "required": true, + "description": "Quantity of brands per page.", + "schema": { + "type": "integer", + "example": 5 + } + }, + { + "name": "page", + "in": "query", + "required": true, + "description": "Page number of the brand list.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items", + "paging" + ], + "properties": { + "items": { + "type": "array", + "description": "Array of objects with information of the store's brands.", + "items": { + "$ref": "#/components/schemas/BrandGet" + } + }, + "paging": { + "type": "object", + "description": "Object with pagination information.", + "required": [ + "page", + "perPage", + "total", + "pages" + ], + "properties": { + "page": { + "type": "integer", + "description": "Page number of the brand list." + }, + "perPage": { + "type": "integer", + "description": "Quantity of brands per page." + }, + "total": { + "type": "integer", + "description": "Total of brands in the store." + }, + "pages": { + "type": "integer", + "description": "Total number of pages." + } + } + } + } + }, + "example": { + "items": [ + { + "id": 2000003, + "name": "AOC", + "isActive": true, + "title": "AOC", + "metaTagDescription": "AOC", + "imageUrl": null + }, + { + "id": 2000004, + "name": "Calvin Klein", + "isActive": true, + "title": "", + "metaTagDescription": "", + "imageUrl": null + }, + { + "id": 2000005, + "name": "Pets", + "isActive": true, + "title": "Pets", + "metaTagDescription": "Pets", + "imageUrl": null + } + ], + "paging": { + "page": 1, + "perPage": 20000, + "total": 201, + "pages": 1 + } + } + } + } + } + } + } + }, + "/api/catalog_system/pvt/brand/{brandId}": { + "get": { + "tags": [ + "Brand" + ], + "summary": "Get brand by ID", + "description": "Retrieves a specific brand by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Brands** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Brand", + "parameters": [ + { + "name": "brandId", + "in": "path", + "description": "Brand ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "123" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BrandGet" + }, + "example": { + "id": 7000000, + "name": "Pedigree", + "isActive": true, + "metaTagDescription": "Pedigree", + "imageUrl": null, + "title": "Cat food" + } + } + } + } + } + } + }, + "/api/catalog_system/pub/specification/fieldGet/{fieldId}": { + "get": { + "tags": [ + "Specification field" + ], + "summary": "Get specification field", + "description": "Retrieves details from a specification field by this field's ID. \r\n>⚠️ This is a legacy endpoint. We recommend using [Get specification](https://developers.vtex.com/vtex-rest-api/reference/get_api-catalog-pvt-specification-specificationid) instead.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SpecificationsField", + "parameters": [ + { + "name": "fieldId", + "in": "path", + "description": "Specification field ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 88 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "Name": "Material", + "CategoryId": 4, + "FieldId": 88, + "IsActive": true, + "IsRequired": true, + "FieldTypeId": 1, + "FieldTypeName": "Texto", + "FieldValueId": null, + "Description": "Composition of the product.", + "IsStockKeepingUnit": false, + "IsFilter": true, + "IsOnProductDetails": false, + "Position": 1, + "IsWizard": false, + "IsTopMenuLinkActive": false, + "IsSideMenuLinkActive": true, + "DefaultValue": null, + "FieldGroupId": 20, + "FieldGroupName": "Clothes specifications" + }, + "schema": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Specification field name." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID." + }, + "IsActive": { + "type": "boolean", + "description": "Enable (`true`) or disable (`false`) specification." + }, + "IsRequired": { + "type": "boolean", + "description": "Makes the specification mandatory (`true`) or optional (`false`)." + }, + "FieldTypeId": { + "type": "integer", + "description": "Field type ID can be `1 - Text`, `2 - Multi-Line Text`, `4 - Number`, `5 - Combo`, `6 - Radio`, `7 - Checkbox`, `8 - Indexed Text`, `9 - Indexed Multi-Line Text`." + }, + "FieldTypeName": { + "type": "string", + "description": "Field type name, which can be `Text`, `Multi-Line Text`, `Number`, `Combo`, `Radio`, `Checkbox`, `Indexed Text` or `Indexed Multi-Line Text`." + }, + "FieldValueId": { + "type": "integer", + "description": "Specification value ID.", + "nullable": true + }, + "Description": { + "type": "string", + "deprecated": true, + "description": "Deprecated field.", + "nullable": true + }, + "IsStockKeepingUnit": { + "type": "boolean", + "description": "If `true`, it will be added as a SKU specification. If `false`, it will be added as a product specification field." + }, + "IsFilter": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To allow the specification to be used as a facet (filter) on the search navigation bar." + }, + "IsOnProductDetails": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal -If specification is visible on the product page." + }, + "Position": { + "type": "integer", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - This position number is used in ordering the specifications both in the navigation menu and in the specification listing on the product page." + }, + "IsWizard": { + "type": "boolean", + "deprecated": true, + "description": "Deprecated field.", + "nullable": true + }, + "IsTopMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification visible in the store's upper menu." + }, + "IsSideMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification field clickable in the search navigation bar." + }, + "DefaultValue": { + "type": "string", + "description": "Specification default value.", + "nullable": true + }, + "FieldGroupId": { + "type": "integer", + "description": "ID of the group of specifications that contains the new specification." + }, + "FieldGroupName": { + "type": "string", + "description": "Specification field group name." + } + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/specification/field": { + "post": { + "tags": [ + "Specification field" + ], + "summary": "Create specification field", + "description": "Creates a specification field in a category. \r\n>⚠️ This is a legacy endpoint. We recommend using [Create specification](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specification?endpoint=post-/api/catalog/pvt/specification) instead.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SpecificationsInsertField", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "Name", + "CategoryId", + "IsActive", + "FieldId", + "IsRequired", + "FieldTypeId", + "FieldValueId", + "Description", + "IsStockKeepingUnit", + "IsFilter", + "IsOnProductDetails", + "Position", + "IsWizard", + "IsTopMenuLinkActive", + "IsSideMenuLinkActive", + "DefaultValue", + "FieldGroupId", + "FieldGroupName" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Specification field name. Limited to 100 characters.", + "example": "Material" + }, + "CategoryId": { + "type": "integer", + "nullable": true, + "description": "Category ID.", + "example": 4 + }, + "FieldId": { + "type": "integer", + "nullable": true, + "description": "Specification field ID.", + "example": 88 + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the specification field is active. The default value is `true`.", + "example": true + }, + "IsRequired": { + "type": "boolean", + "description": "Makes the specification field mandatory (`true`) or optional (`false`).", + "example": true + }, + "FieldTypeId": { + "type": "integer", + "format": "int32", + "description": "Specification field type ID.", + "example": 1 + }, + "FieldValueId": { + "type": "integer", + "nullable": true, + "description": "Specification field value ID.", + "example": 1 + }, + "Description": { + "type": "string", + "nullable": true, + "description": "Specification field description.", + "example": "Composition of the product." + }, + "IsStockKeepingUnit": { + "type": "boolean", + "description": "If `true`, it will be added as a SKU specification. If `false`, it will be added as a product specification field.", + "example": false + }, + "IsFilter": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To allow the specification to be used as a facet (filter) on the search navigation bar.", + "example": true + }, + "IsOnProductDetails": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal -If specification is visible on the product page.", + "example": false + }, + "Position": { + "type": "integer", + "format": "int32", + "description": "Specification field position.", + "example": 1 + }, + "IsWizard": { + "type": "boolean", + "description": "Deprecated field.", + "deprecated": true, + "example": false + }, + "IsTopMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification visible in the store's upper menu.", + "example": true + }, + "IsSideMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification field clickable in the search navigation bar.", + "example": true + }, + "DefaultValue": { + "type": "string", + "nullable": true, + "description": "Specification field default value.", + "example": null + }, + "FieldGroupId": { + "type": "integer", + "format": "int32", + "description": "Specification field group ID.", + "example": 20 + }, + "FieldGroupName": { + "type": "string", + "description": "Specification field group name.", + "example": "Clothes specifications" + } + } + }, + "example": { + "Name": "Material", + "CategoryId": 4, + "FieldId": 88, + "IsActive": true, + "IsRequired": true, + "FieldTypeId": 1, + "FieldValueId": 1, + "IsStockKeepingUnit": false, + "Description": "Composition of the product.", + "IsFilter": true, + "IsOnProductDetails": false, + "Position": 1, + "IsWizard": false, + "IsTopMenuLinkActive": true, + "IsSideMenuLinkActive": true, + "DefaultValue": null, + "FieldGroupId": 20, + "FieldGroupName": "Clothes specifications" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": 89, + "schema": { + "type": "integer", + "description": "Specification field ID." + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Specification field" + ], + "summary": "Update specification field", + "description": "Updates a specification field in a category. \r\n>⚠️ This is a legacy endpoint. We recommend using [Update specification](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/specification?endpoint=put-/api/catalog/pvt/stockkeepingunit/-skuId-/specification) instead.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SpecificationsInsertFieldUpdate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "Name", + "CategoryId", + "IsActive", + "FieldId", + "IsRequired", + "FieldTypeId", + "Description", + "IsStockKeepingUnit", + "IsWizard", + "IsFilter", + "IsOnProductDetails", + "Position", + "IsTopMenuLinkActive", + "IsSideMenuLinkActive", + "DefaultValue", + "FieldGroupId", + "FieldGroupName" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Specification field ID.", + "example": "Material" + }, + "CategoryId": { + "type": "integer", + "nullable": true, + "description": "Category ID.", + "example": 4 + }, + "FieldId": { + "type": "integer", + "nullable": true, + "description": "Specification field ID.", + "example": 89 + }, + "IsActive": { + "type": "boolean", + "description": "Enables(`true`) or disables (`false`) the specification field.", + "example": true + }, + "IsRequired": { + "type": "boolean", + "description": "Makes the specification field mandatory (`true`) or optional (`false`).", + "example": true + }, + "FieldTypeId": { + "type": "integer", + "description": "Specification field type ID.", + "example": 1 + }, + "FieldValueId": { + "type": "integer", + "nullable": true, + "description": "Specification field value ID.", + "example": 143 + }, + "Description": { + "type": "string", + "nullable": true, + "description": "Specification field description.", + "example": "Composition of the product." + }, + "IsStockKeepingUnit": { + "type": "boolean", + "description": "If `true`, it will be added as a SKU specification field. If `false`, it will be added as a product specification field.", + "example": false + }, + "IsFilter": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To allow the specification to be used as a facet (filter) on the search navigation bar.", + "example": true + }, + "IsOnProductDetails": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - If the specification is visible on the product page.", + "example": true + }, + "Position": { + "type": "integer", + "description": "Specification field position.", + "example": 1 + }, + "IsWizard": { + "type": "boolean", + "description": "Deprecated field.", + "deprecated": true, + "example": false + }, + "IsTopMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification visible in the store's upper menu.", + "example": false + }, + "IsSideMenuLinkActive": { + "type": "boolean", + "description": "Store Framework - Deprecated.\r\nLegacy CMS Portal - To make the specification field clickable in the search navigation bar.", + "example": false + }, + "DefaultValue": { + "type": "string", + "nullable": true, + "example": "Cotton", + "description": "Specification field default value." + }, + "FieldGroupId": { + "type": "integer", + "description": "Specification field group ID.", + "example": 20 + }, + "FieldGroupName": { + "type": "string", + "description": "Specification field group name.", + "example": "Clothes specifications" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": 89, + "schema": { + "type": "integer", + "description": "Specification field ID." + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/specification/fieldValue/{fieldValueId}": { + "get": { + "tags": [ + "Specification field value" + ], + "summary": "Get specification field value", + "description": "Retrieves details from a specification field's value by this value's ID. \r\n>⚠️ This is a legacy endpoint. We recommend using [Get specification value](https://developers.vtex.com/docs/api-reference/catalog-api#get-/api/catalog/pvt/specificationvalue/-specificationValueId-?endpoint=get-/api/catalog/pvt/specificationvalue/-specificationValueId-) instead.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SpecificationsGetFieldValue", + "parameters": [ + { + "name": "fieldValueId", + "in": "path", + "description": "Specification value ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "143" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "FieldValueId": 143, + "FieldId": 34, + "Name": "Cotton", + "Text": "Cotton fibers", + "IsActive": true, + "Position": 100 + }, + "schema": { + "type": "object", + "properties": { + "FieldValueId": { + "type": "integer", + "format": "int32", + "description": "Specification field value ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID." + }, + "Name": { + "type": "string", + "description": "Specification field value name." + }, + "Text": { + "type": "string", + "description": "Specification field value Description." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the specification field Value is active (`true`) or inactive (`false`)." + }, + "Position": { + "type": "integer", + "format": "int32", + "description": "Specification field value position." + } + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pub/specification/fieldvalue/{fieldId}": { + "get": { + "tags": [ + "Specification field value" + ], + "summary": "Get specification values by specification field ID", + "description": "Gets a list of all specification values from a specification field by this field's ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SpecificationsValuesByFieldId", + "parameters": [ + { + "name": "fieldId", + "in": "path", + "description": "Specification field ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 34 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "required": [ + "FieldValueId", + "Value", + "IsActive", + "Position" + ], + "type": "object", + "description": "Object with specification field value details.", + "properties": { + "FieldValueId": { + "type": "integer", + "format": "int32", + "description": "Specification field value ID." + }, + "Value": { + "type": "string", + "description": "Specification field value." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the specification field is active (`true`) or inactive (`false`)." + }, + "Position": { + "type": "integer", + "format": "int32", + "description": "Specification field value position." + } + } + } + }, + "example": [ + { + "FieldValueId": 52, + "Value": "0 a 6 meses", + "IsActive": true, + "Position": 1 + }, + { + "FieldValueId": 53, + "Value": "1 a 2 anos", + "IsActive": true, + "Position": 4 + }, + { + "FieldValueId": 54, + "Value": "3 a 4 anos", + "IsActive": true, + "Position": 3 + }, + { + "FieldValueId": 55, + "Value": "5 a 6 anos", + "IsActive": true, + "Position": 2 + }, + { + "FieldValueId": 56, + "Value": "7 a 8 anos", + "IsActive": true, + "Position": 5 + }, + { + "FieldValueId": 57, + "Value": "9 a 10 anos", + "IsActive": true, + "Position": 6 + }, + { + "FieldValueId": 58, + "Value": "Acima de 10 anos", + "IsActive": true, + "Position": 7 + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/specification/fieldValue": { + "post": { + "tags": [ + "Specification field value" + ], + "summary": "Create specification field value", + "description": "Creates a specification field value by the specification field's ID. \r\n>⚠️ This is a legacy endpoint. We recommend using [Create specification value](https://developers.vtex.com/docs/api-reference/catalog-api#post-/api/catalog/pvt/specificationvalue) instead.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SpecificationsInsertFieldValue", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "FieldId", + "Name", + "Text", + "IsActive", + "Position" + ], + "type": "object", + "properties": { + "FieldId": { + "type": "integer", + "format": "int32", + "description": "Specification field ID.", + "example": 34 + }, + "Name": { + "type": "string", + "description": "Specification field value name.", + "example": "Cotton" + }, + "Text": { + "type": "string", + "description": "Specification field value description.", + "example": "Cotton fibers" + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the specification field value is active (`true`) or inactive (`false`).", + "example": true + }, + "Position": { + "type": "integer", + "description": "Specification field value position.", + "example": 100 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "FieldValueId": 143, + "FieldId": 34, + "Name": "Cotton", + "Text": "Cotton fibers", + "IsActive": true, + "Position": 100 + }, + "schema": { + "type": "object", + "properties": { + "FieldValueId": { + "type": "integer", + "format": "int32", + "description": "Specification field value ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID." + }, + "Name": { + "type": "string", + "description": "Specification field value name." + }, + "Text": { + "type": "string", + "description": "Specification field value description." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the specification field value is active (`true`) or inactive (`false`)." + }, + "Position": { + "type": "integer", + "format": "int32", + "description": "Specification field value position." + } + } + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Specification field value" + ], + "summary": "Update specification field value", + "description": "Updates a specification field value by the specification field's ID. \r\n>⚠️ This is a legacy endpoint. We recommend using [Update specification field value](https://developers.vtex.com/docs/api-reference/catalog-api#put-/api/catalog/pvt/stockkeepingunit/-skuId-/specification?endpoint=put-/api/catalog/pvt/stockkeepingunit/-skuId-/specification-value-id) instead.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Commercial | **SKU management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SpecificationsUpdateFieldValue", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "FieldId", + "Name", + "Text", + "IsActive", + "Position" + ], + "type": "object", + "properties": { + "FieldId": { + "type": "integer", + "nullable": true, + "description": "Specification field ID.", + "example": 1 + }, + "Name": { + "type": "string", + "description": "Specification field value name.", + "example": "Cotton" + }, + "Text": { + "type": "string", + "nullable": true, + "description": "Specification field value description.", + "example": "Cotton fibers" + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the specification field value is active (`true`) or inactive (`false`).", + "example": true + }, + "Position": { + "type": "integer", + "format": "int32", + "description": "Specification field position.", + "example": 100 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": "Field Value Updated", + "schema": { + "type": "string", + "description": "Status of the request." + } + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/specification/groupbycategory/{categoryId}": { + "get": { + "tags": [ + "Specification group" + ], + "summary": "List specification group by category", + "description": "Retrieves a list of specification groups by the category ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Groups** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SpecificationsGroupListbyCategory", + "parameters": [ + { + "name": "categoryId", + "in": "path", + "description": "Category ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecificationsGroup" + } + }, + "example": [ + { + "CategoryId": 1, + "Id": 5, + "Name": "Materials", + "Position": 2 + }, + { + "CategoryId": 1, + "Id": 6, + "Name": "Sizes", + "Position": 3 + } + ] + } + } + } + } + } + }, + "/api/catalog_system/pub/specification/groupGet/{groupId}": { + "get": { + "tags": [ + "Specification group" + ], + "summary": "Get specification group", + "description": "Retrieves details from a specification group by the ID of the group.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Groups** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SpecificationsGroupGet", + "parameters": [ + { + "name": "groupId", + "in": "path", + "description": "Specification group ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "6" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SpecificationsGroup" + }, + "example": { + "CategoryId": 1, + "Id": 6, + "Name": "Sizes", + "Position": 3 + } + } + } + } + } + } + }, + "/api/catalog_system/pvt/saleschannel/list": { + "get": { + "tags": [ + "Sales channel" + ], + "summary": "Get sales channel list", + "description": "Retrieves a list with details about the store's sales channels.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | View Product |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SalesChannelList", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object with the sales channel details.", + "properties": { + "Id": { + "type": "integer", + "description": "Sales channel unique identifier." + }, + "Name": { + "type": "string", + "description": "Sales channel name." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the Sales channel is active (`true`) or not (`false`)." + }, + "ProductClusterId": { + "type": "integer", + "description": "Product cluster ID, if the sales channel has releated product cluster.", + "nullable": true + }, + "CountryCode": { + "type": "string", + "description": "Country code in ISO 3166-1 alfa-3 standard." + }, + "CultureInfo": { + "type": "string", + "description": "Language country code in LCID string standard." + }, + "TimeZone": { + "type": "string", + "description": "Name of time zone." + }, + "CurrencyCode": { + "type": "string", + "description": "Currency code in ISO 4217 standard." + }, + "CurrencySymbol": { + "type": "string", + "description": "Currency symbol." + }, + "CurrencyLocale": { + "type": "integer", + "description": "Currency locale code in LCID standard." + }, + "CurrencyFormatInfo": { + "type": "object", + "description": "Object with currency format.", + "properties": { + "CurrencyDecimalDigits": { + "type": "integer", + "description": "Quantity of currency decimal digits." + }, + "CurrencyDecimalSeparator": { + "type": "string", + "description": "Defines which currency decimal separator will be applied." + }, + "CurrencyGroupSeparator": { + "type": "string", + "description": "Defines which currency group separator will be applied." + }, + "CurrencyGroupSize": { + "type": "integer", + "description": "Define how many characters will be grouped." + }, + "StartsWithCurrencySymbol": { + "type": "boolean", + "description": "Defines if all prices will be initiated with currency symbol (`true`) or not (`false`)." + } + } + }, + "Origin": { + "type": "string", + "description": "Origin of products in the sales channel.", + "nullable": true + }, + "Position": { + "type": "integer", + "description": "Defines the position on index.", + "nullable": true + }, + "ConditionRule": { + "type": "string", + "description": "Defines what is the conditional rule to activate de sales channel.", + "nullable": true + }, + "CurrencyDecimalDigits": { + "type": "integer", + "description": "Quantity of currency decimal digits.", + "nullable": true + } + } + } + }, + "example": [ + { + "Id": 1, + "Name": "Main store", + "IsActive": true, + "ProductClusterId": null, + "CountryCode": "BRA", + "CultureInfo": "pt-BR", + "TimeZone": "E. South America Standard Time", + "CurrencyCode": "BRL", + "CurrencySymbol": "R$", + "CurrencyLocale": 1046, + "CurrencyFormatInfo": { + "CurrencyDecimalDigits": 1, + "CurrencyDecimalSeparator": ",", + "CurrencyGroupSeparator": ".", + "CurrencyGroupSize": 3, + "StartsWithCurrencySymbol": true + }, + "Origin": null, + "Position": 8, + "ConditionRule": "approved=true", + "CurrencyDecimalDigits": 1 + }, + { + "Id": 2, + "Name": "Markeplace Fashion", + "IsActive": true, + "ProductClusterId": null, + "CountryCode": "BRA", + "CultureInfo": "pt-BR", + "TimeZone": "E. South America Standard Time", + "CurrencyCode": "BRL", + "CurrencySymbol": "R$", + "CurrencyLocale": 1046, + "CurrencyFormatInfo": { + "CurrencyDecimalDigits": 2, + "CurrencyDecimalSeparator": ",", + "CurrencyGroupSeparator": ".", + "CurrencyGroupSize": 3, + "StartsWithCurrencySymbol": true + }, + "Origin": null, + "Position": 9, + "ConditionRule": "approved=true", + "CurrencyDecimalDigits": 1 + } + ] + } + } + } + } + } + }, + "/api/catalog_system/pub/saleschannel/{salesChannelId}": { + "get": { + "tags": [ + "Sales channel" + ], + "summary": "Get sales channel by ID", + "description": "Retrieves a specific sales channel by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | View Product |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SalesChannelbyId", + "parameters": [ + { + "name": "salesChannelId", + "in": "path", + "description": "Trade policy ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Trade policy unique identifier." + }, + "Name": { + "type": "string", + "description": "Trade policy name." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the trade policy is active (`true`) or not (`false`)." + }, + "ProductClusterId": { + "type": "integer", + "description": "Product cluster ID, if the Sales channel has releated product cluster.", + "nullable": true + }, + "CountryCode": { + "type": "string", + "description": "Country code in ISO 3166-1 alfa-3 standard." + }, + "CultureInfo": { + "type": "string", + "description": "Language country code in LCID string standard." + }, + "TimeZone": { + "type": "string", + "description": "Name of time zone." + }, + "CurrencyCode": { + "type": "string", + "description": "Currency code in ISO 4217 standard.", + "nullable": true + }, + "CurrencySymbol": { + "type": "string", + "description": "Currency symbol." + }, + "CurrencyLocale": { + "type": "integer", + "description": "Currency locale code in LCID standard." + }, + "CurrencyFormatInfo": { + "type": "object", + "description": "Object with currency format.", + "properties": { + "CurrencyDecimalDigits": { + "type": "integer", + "description": "Quantity of currency decimal digits." + }, + "CurrencyDecimalSeparator": { + "type": "string", + "description": "Defines which currency decimal separator will be applied." + }, + "CurrencyGroupSeparator": { + "type": "string", + "description": "Defines which currency group separator will be applied." + }, + "CurrencyGroupSize": { + "type": "integer", + "description": "Define how many characters will be grouped." + }, + "StartsWithCurrencySymbol": { + "type": "boolean", + "description": "Defines if all prices will be initiated with currency symbol (`true`) or not (`false`)." + } + } + }, + "Origin": { + "type": "string", + "description": "Origin of products in the trade policy.", + "nullable": true + }, + "Position": { + "type": "integer", + "description": "Defines the position on index.", + "nullable": true + }, + "ConditionRule": { + "type": "string", + "description": "Defines what is the conditional rule to activate de Sales channel.", + "nullable": true + }, + "CurrencyDecimalDigits": { + "type": "integer", + "description": "Quantity of currency decimal digits." + } + } + }, + "example": { + "Id": 1, + "Name": "Main store", + "IsActive": true, + "ProductClusterId": null, + "CountryCode": "BRA", + "CultureInfo": "pt-BR", + "TimeZone": "E. South America Standard Time", + "CurrencyCode": "BRL", + "CurrencySymbol": "R$", + "CurrencyLocale": 1046, + "CurrencyFormatInfo": { + "CurrencyDecimalDigits": 1, + "CurrencyDecimalSeparator": ",", + "CurrencyGroupSeparator": ".", + "CurrencyGroupSize": 3, + "StartsWithCurrencySymbol": true + }, + "Origin": null, + "Position": 8, + "ConditionRule": null, + "CurrencyDecimalDigits": 1 + } + } + } + } + } + } + }, + "/api/catalog_system/pvt/seller/list": { + "get": { + "tags": [ + "Seller" + ], + "summary": "Get seller list", + "description": "Retrieves the seller's details by its ID.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "SellerList", + "parameters": [ + { + "name": "sc", + "in": "query", + "description": "Trade policy ID.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 1 + } + }, + { + "name": "sellerType", + "in": "query", + "description": "There are two possible values for this parameter:\n\r- `1`: Regular sellers\n\r- `2`: [White label sellers](https://help.vtex.com/en/tutorial/seller-white-label--5orlGHyDHGAYciQ64oEgKa)", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "example": 1 + } + }, + { + "name": "isBetterScope", + "in": "query", + "description": "If the seller is better scope.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "example": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object with seller details.", + "properties": { + "SellerId": { + "type": "string", + "description": "Code used to identify the seller. It is assigned by the marketplace. We recommend filling it in with the seller's account name." + }, + "Name": { + "type": "string", + "description": "Name of the account in the seller's environment. You can find it on **Account settings > Account > Account Name**). Applicable only if the seller uses their own payment method." + }, + "Email": { + "type": "string", + "description": "Email of the admin responsible for the seller." + }, + "Description": { + "type": "string", + "description": "Text describing the seller with a marketing tone. You can display this text in the marketplace window display by [customizing the CMS](https://help.vtex.com/en/tutorial/list-of-controls-for-templates--tutorials_563)." + }, + "ExchangeReturnPolicy": { + "type": "string", + "description": "Text describing the exchange and return policy previously agreed between the marketplace and the seller." + }, + "DeliveryPolicy": { + "type": "string", + "description": "Text describing the delivery policy previously agreed between the marketplace and the seller." + }, + "UseHybridPaymentOptions": { + "type": "boolean", + "description": "Allows customers to use gift cards from the seller to buy their products on the marketplace. It identifies purchases made with a gift card so that only the final price (with discounts applied) is paid to the seller." + }, + "UserName": { + "type": "string", + "description": "Seller username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Seller password.", + "nullable": true + }, + "SecutityPrivacyPolicy": { + "type": "string", + "description": "Text describing the security policy previously agreed between the marketplace and the seller." + }, + "CNPJ": { + "type": "string", + "description": "Company registration number." + }, + "CSCIdentification": { + "type": "string", + "description": "CSC identification." + }, + "ArchiveId": { + "type": "integer", + "description": "Seller archive ID.", + "nullable": true + }, + "UrlLogo": { + "type": "string", + "description": "Seller URL logo.", + "nullable": true + }, + "ProductCommissionPercentage": { + "type": "number", + "description": "Registered value for seller product commission. The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "FreightCommissionPercentage": { + "type": "number", + "description": "Registered value for seller freight commission. The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "CategoryCommissionPercentage": { + "type": "string", + "description": "Registered value for seller category commission. The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "FulfillmentEndpoint": { + "type": "string", + "description": "URL of the endpoint for fulfillment of seller's orders, which the marketplace will use to communicate with the seller. This field applies to all sellers, regardless of their type. However, for `VTEX Stores`, you don't need to fill it in because the system will do that automatically. You can edit this field once the seller has been successfully added.", + "nullable": true + }, + "CatalogSystemEndpoint": { + "type": "string", + "description": "URL of the endpoint of the seller's catalog. This field will only be displayed if the seller type is VTEX Store. The field format will be as follows: `http://{sellerName}.vtexcommercestable.com.br/api/catalog_system/`." + }, + "IsActive": { + "type": "boolean", + "description": "Determines if the seller is active (`true`) or not (`false`)." + }, + "MerchantName": { + "type": "string", + "description": "Name of the marketplace, used to guide payments. This field should be nulled if the marketplace is responsible for processing payments. Check out our [Split Payment](https://help.vtex.com/en/tutorial/split-payment--6k5JidhYRUxileNolY2VLx) article to know more." + }, + "FulfillmentSellerId": { + "type": "integer", + "description": "Identification code of the seller responsible for fulfilling the order. This is an optional field used when a seller sells SKUs from another seller. If the seller sells their own SKUs, it must be left blank.", + "nullable": true + }, + "SellerType": { + "type": "integer", + "description": "Seller type." + }, + "IsBetterScope": { + "type": "boolean", + "description": "Indicates whether it is a [comprehensive seller](https://help.vtex.com/en/tutorial/comprehensive-seller--5Qn4O2GpjUIzWTPpvLUfkI)." + }, + "TrustPolicy": { + "type": "string", + "description": "Seller trust policy. The default value is `Default`, but if your store is a B2B marketplace and you want to share the customers' emails with the sellers you need to set this field as `AllowEmailSharing`." + } + } + } + }, + "example": [ + { + "SellerId": "sellerstore", + "Name": "sellerstore", + "Email": "jane@email.com", + "Description": "s1d222", + "ExchangeReturnPolicy": "", + "DeliveryPolicy": "", + "UseHybridPaymentOptions": false, + "UserName": null, + "Password": null, + "SecutityPrivacyPolicy": "My privacy policy", + "CNPJ": "12035072751", + "CSCIdentification": "sellerstore", + "ArchiveId": null, + "UrlLogo": null, + "ProductCommissionPercentage": 0, + "FreightCommissionPercentage": 0, + "CategoryCommissionPercentage": "[{\"CategoryId\":14,\"ProductCommission\":15.0,\"FreightCommission\":0.0}]", + "FulfillmentEndpoint": "http://sellerstore.vtexcommercestable.com.br/api/fulfillment?affiliateid=LDB&sc=1", + "CatalogSystemEndpoint": "http://sellerstore.vtexcommercestable.com.br/api/catalog_system/", + "IsActive": true, + "MerchantName": "Seller store", + "FulfillmentSellerId": null, + "SellerType": 1, + "IsBetterScope": false, + "TrustPolicy": "Default" + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/catalog_system/pvt/seller/{sellerId}": { + "get": { + "tags": [ + "Seller" + ], + "summary": "Get seller by ID", + "description": "Retrieves the seller details by its ID.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "GetSellerbyId", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "pedrostore" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object with information of all sellers in the store.", + "properties": { + "SellerId": { + "type": "string", + "description": "Code used to identify the seller. It is assigned by the marketplace. We recommend filling it in with the seller's account name." + }, + "Name": { + "type": "string", + "description": "Name of the account in the seller's environment. You can find it on **Account settings > Account > Account Name**). Applicable only if the seller uses their own payment method." + }, + "Email": { + "type": "string", + "description": "Email of the admin responsible for the seller." + }, + "Description": { + "type": "string", + "description": "Text describing the seller with a marketing tone. You can display this text in the marketplace window display by [customizing the CMS](https://help.vtex.com/en/tutorial/list-of-controls-for-templates--tutorials_563)." + }, + "ExchangeReturnPolicy": { + "type": "string", + "description": "Text describing the exchange and return policy previously agreed between the marketplace and the seller." + }, + "DeliveryPolicy": { + "type": "string", + "description": "Text describing the delivery policy previously agreed between the marketplace and the seller." + }, + "UseHybridPaymentOptions": { + "type": "boolean", + "description": "Allows customers to use gift cards from the seller to buy their products on the marketplace. It identifies purchases made with a gift card so that only the final price (with discounts applied) is paid to the seller." + }, + "UserName": { + "type": "string", + "description": "Seller username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Seller password.", + "nullable": true + }, + "SecutityPrivacyPolicy": { + "type": "string", + "description": "Text describing the security policy previously agreed between the marketplace and the seller." + }, + "CNPJ": { + "type": "string", + "description": "Company registration number." + }, + "CSCIdentification": { + "type": "string", + "description": "CSC identification." + }, + "ArchiveId": { + "type": "integer", + "description": "Seller archive ID.", + "nullable": true + }, + "UrlLogo": { + "type": "string", + "description": "Seller URL logo." + }, + "ProductCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "FreightCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "CategoryCommissionPercentage": { + "type": "string", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "FulfillmentEndpoint": { + "type": "string", + "description": "URL of the endpoint for fulfillment of seller's orders, which the marketplace will use to communicate with the seller. This field applies to all sellers, regardless of their type. However, for `VTEX Stores`, you don't need to fill it in because the system will do that automatically. You can edit this field once the seller has been successfully added.", + "nullable": true + }, + "CatalogSystemEndpoint": { + "type": "string", + "description": "URL of the endpoint of the seller's catalog. This field will only be displayed if the seller type is VTEX Store. The field format will be as follows: `http://{sellerName}.vtexcommercestable.com.br/api/catalog_system/`." + }, + "IsActive": { + "type": "boolean", + "description": "If the selle is active (`true`) or not (`false`)." + }, + "MerchantName": { + "type": "string", + "description": "Name of the marketplace, used to guide payments. This field should be nulled if the marketplace is responsible for processing payments. Check out our [Split Payment](https://help.vtex.com/en/tutorial/split-de-pagamento--6k5JidhYRUxileNolY2VLx) article to know more." + }, + "FulfillmentSellerId": { + "type": "integer", + "description": "Identification code of the seller responsible for fulfilling the order. This is an optional field used when a seller sells SKUs from another seller. If the seller sells their own SKUs, it must be left blank.", + "nullable": true + }, + "SellerType": { + "type": "integer", + "description": "Seller type." + }, + "IsBetterScope": { + "type": "boolean", + "description": "Indicates whether it is a [comprehensive seller](https://help.vtex.com/en/tutorial/comprehensive-seller--5Qn4O2GpjUIzWTPpvLUfkI)." + }, + "TrustPolicy": { + "type": "string", + "description": "Seller trust policy. The default value is `'Default'`, but if your store is a B2B marketplace and you want to share the customers'emails with the sellers you need to set this field as `'AllowEmailSharing'`." + } + } + }, + "example": { + "SellerId": "pedrostore", + "Name": "pedrostore", + "Email": "breno@breno.com", + "Description": "", + "ExchangeReturnPolicy": "", + "DeliveryPolicy": "", + "UseHybridPaymentOptions": false, + "UserName": null, + "Password": null, + "SecutityPrivacyPolicy": "", + "CNPJ": "12035072751", + "CSCIdentification": "pedrostore", + "ArchiveId": null, + "UrlLogo": "", + "ProductCommissionPercentage": 0, + "FreightCommissionPercentage": 0, + "CategoryCommissionPercentage": "[{\"CategoryId\":14,\"ProductCommission\":15.0,\"FreightCommission\":0.0}]", + "FulfillmentEndpoint": "http://pedrostore.vtexcommercestable.com.br/api/fulfillment?affiliateid=LDB&sc=1", + "CatalogSystemEndpoint": "http://pedrostore.vtexcommercestable.com.br/api/catalog_system/", + "IsActive": true, + "MerchantName": "", + "FulfillmentSellerId": null, + "SellerType": 1, + "IsBetterScope": false, + "TrustPolicy": "Default" + } + } + } + } + } + } + }, + "/api/catalog_system/pvt/seller": { + "put": { + "tags": [ + "Seller" + ], + "summary": "Update seller", + "description": "Updates a seller.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateSeller", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSellerRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object with the seller details.", + "properties": { + "SellerId": { + "type": "string", + "description": "Code used to identify the seller. It is assigned by the marketplace. We recommend filling it in with the seller's account name." + }, + "Name": { + "type": "string", + "description": "Name of the account in the seller's environment. You can find it on **Account settings > Account > Account Name**). Applicable only if the seller uses their own payment method." + }, + "Email": { + "type": "string", + "description": "Email of the admin responsible for the seller." + }, + "Description": { + "type": "string", + "description": "Text describing the seller with a marketing tone. You can display this text in the marketplace window display by [customizing the CMS](https://help.vtex.com/en/tutorial/list-of-controls-for-templates--tutorials_563)." + }, + "ExchangeReturnPolicy": { + "type": "string", + "description": "Text describing the exchange and return policy previously agreed between the marketplace and the seller." + }, + "DeliveryPolicy": { + "type": "string", + "description": "Text describing the delivery policy previously agreed between the marketplace and the seller." + }, + "UseHybridPaymentOptions": { + "type": "boolean", + "description": "Allows customers to use gift cards from the seller to buy their products on the marketplace. It identifies purchases made with a gift card so that only the final price (with discounts applied) is paid to the seller." + }, + "UserName": { + "type": "string", + "description": "Seller username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Seller password.", + "nullable": true + }, + "SecutityPrivacyPolicy": { + "type": "string", + "description": "Text describing the security policy previously agreed between the marketplace and the seller." + }, + "CNPJ": { + "type": "string", + "description": "Company registration number." + }, + "CSCIdentification": { + "type": "string", + "description": "CSC identification." + }, + "ArchiveId": { + "type": "integer", + "description": "Seller archive ID.", + "nullable": true + }, + "UrlLogo": { + "type": "string", + "description": "Seller URL logo.", + "nullable": true + }, + "ProductCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "FreightCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "CategoryCommissionPercentage": { + "type": "string", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "FulfillmentEndpoint": { + "type": "string", + "description": "URL of the endpoint for fulfillment of seller's orders, which the marketplace will use to communicate with the seller. This field applies to all sellers, regardless of their type. However, for `VTEX Stores`, you don't need to fill it in because the system will do that automatically. You can edit this field once the seller has been successfully added.", + "nullable": true + }, + "CatalogSystemEndpoint": { + "type": "string", + "description": "URL of the endpoint of the seller's catalog. This field will only be displayed if the seller type is VTEX Store. The field format will be as follows: `http://{sellerName}.vtexcommercestable.com.br/api/catalog_system/`." + }, + "IsActive": { + "type": "boolean", + "description": "If the selle is active (`true`) or not (`false`)." + }, + "MerchantName": { + "type": "string", + "description": "Name of the marketplace, used to guide payments. This field should be nulled if the marketplace is responsible for processing payments. Check out our [Split Payment](https://help.vtex.com/en/tutorial/split-de-pagamento--6k5JidhYRUxileNolY2VLx) article to know more." + }, + "FulfillmentSellerId": { + "type": "integer", + "description": "Identification code of the seller responsible for fulfilling the order. This is an optional field used when a seller sells SKUs from another seller. If the seller sells their own SKUs, it must be left blank.", + "nullable": true + }, + "SellerType": { + "type": "integer", + "description": "Seller type." + }, + "IsBetterScope": { + "type": "boolean", + "description": "Indicates whether it is a [comprehensive seller](https://help.vtex.com/en/tutorial/comprehensive-seller--5Qn4O2GpjUIzWTPpvLUfkI)." + }, + "TrustPolicy": { + "type": "string", + "description": "Seller trust policy. The default value is `'Default'`, but if your store is a B2B marketplace and you want to share the customers'emails with the sellers you need to set this field as `'AllowEmailSharing'`." + } + } + }, + "example": { + "SellerId": "pedrostore", + "Name": "pedrostore", + "Email": "breno@breno.com", + "Description": "", + "ExchangeReturnPolicy": "", + "DeliveryPolicy": "", + "UseHybridPaymentOptions": false, + "UserName": null, + "Password": null, + "SecutityPrivacyPolicy": "", + "CNPJ": "12035072751", + "CSCIdentification": "pedrostore", + "ArchiveId": null, + "UrlLogo": null, + "ProductCommissionPercentage": 0, + "FreightCommissionPercentage": 0, + "CategoryCommissionPercentage": "[{\"CategoryId\":14,\"ProductCommission\":15.0,\"FreightCommission\":0.0}]", + "FulfillmentEndpoint": "http://pedrostore.vtexcommercestable.com.br/api/fulfillment?affiliateid=LDB&sc=1", + "CatalogSystemEndpoint": "http://pedrostore.vtexcommercestable.com.br/api/catalog_system/", + "IsActive": true, + "MerchantName": "", + "FulfillmentSellerId": null, + "SellerType": 1, + "IsBetterScope": false, + "TrustPolicy": "Default" + } + } + } + } + } + }, + "post": { + "tags": [ + "Seller" + ], + "summary": "Create seller", + "description": "Creates a new seller.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateSeller", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSellerRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "SellerId": { + "type": "string", + "description": "Code used to identify the seller. It is assigned by the marketplace. We recommend filling it in with the seller's account name." + }, + "Name": { + "type": "string", + "description": "Name of the account in the seller's environment. You can find it on **Account settings > Account > Account Name**). Applicable only if the seller uses their own payment method." + }, + "Email": { + "type": "string", + "description": "Email of the administrator responsible for the seller." + }, + "Description": { + "type": "string", + "description": "Text describing the seller with a marketing tone. You can display this text in the marketplace window display by [customizing the CMS](https://help.vtex.com/en/tutorial/list-of-controls-for-templates--tutorials_563)." + }, + "ExchangeReturnPolicy": { + "type": "string", + "description": "Text describing the exchange and return policy previously agreed between the marketplace and the seller." + }, + "DeliveryPolicy": { + "type": "string", + "description": "Text describing the delivery policy previously agreed between the marketplace and the seller." + }, + "UseHybridPaymentOptions": { + "type": "boolean", + "description": "Allows customers to use gift cards from the seller to buy their products on the marketplace. It identifies purchases made with a gift card so that only the final price (with discounts applied) is paid to the seller." + }, + "UserName": { + "type": "string", + "description": "Seller username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Seller password.", + "nullable": true + }, + "SecutityPrivacyPolicy": { + "type": "string", + "description": "Text describing the security policy previously agreed between the marketplace and the seller." + }, + "CNPJ": { + "type": "string", + "description": "Company registration number." + }, + "CSCIdentification": { + "type": "string", + "description": "CSC identification." + }, + "ArchiveId": { + "type": "integer", + "description": "Seller archive ID.", + "nullable": true + }, + "UrlLogo": { + "type": "string", + "description": "Seller URL logo.", + "nullable": true + }, + "ProductCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "FreightCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "CategoryCommissionPercentage": { + "type": "string", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "FulfillmentEndpoint": { + "type": "string", + "description": "URL of the endpoint for fulfillment of seller's orders, which the marketplace will use to communicate with the seller. This field applies to all sellers, regardless of their type. However, for `VTEX Stores`, you don't need to fill it in because the system will do that automatically. You can edit this field once the seller has been successfully added.", + "nullable": true + }, + "CatalogSystemEndpoint": { + "type": "string", + "description": "URL of the endpoint of the seller's catalog. This field will only be displayed if the seller type is VTEX Store. The field format will be as follows: `http://{sellerName}.vtexcommercestable.com.br/api/catalog_system/`." + }, + "IsActive": { + "type": "boolean", + "description": "If the selle is active (`true`) or not (`false`)." + }, + "MerchantName": { + "type": "string", + "description": "Name of the marketplace, used to guide payments. This field should be nulled if the marketplace is responsible for processing payments. Check out our [Split Payment](https://help.vtex.com/en/tutorial/split-de-pagamento--6k5JidhYRUxileNolY2VLx) article to know more." + }, + "FulfillmentSellerId": { + "type": "integer", + "description": "Identification code of the seller responsible for fulfilling the order. This is an optional field used when a seller sells SKUs from another seller. If the seller sells their own SKUs, it must be left blank.", + "nullable": true + }, + "SellerType": { + "type": "integer", + "description": "Seller type." + }, + "IsBetterScope": { + "type": "boolean", + "description": "Indicates whether it is a [comprehensive seller](https://help.vtex.com/en/tutorial/comprehensive-seller--5Qn4O2GpjUIzWTPpvLUfkI)." + }, + "TrustPolicy": { + "type": "string", + "description": "Seller trust policy. The default value is `'Default'`, but if your store is a B2B marketplace and you want to share the customers'emails with the sellers you need to set this field as `'AllowEmailSharing'`." + } + } + }, + "example": { + "SellerId": "pedrostore", + "Name": "pedrostore", + "Email": "breno@breno.com", + "Description": "", + "ExchangeReturnPolicy": "", + "DeliveryPolicy": "", + "UseHybridPaymentOptions": false, + "UserName": null, + "Password": null, + "SecutityPrivacyPolicy": "", + "CNPJ": "12035072751", + "CSCIdentification": "pedrostore", + "ArchiveId": null, + "UrlLogo": null, + "ProductCommissionPercentage": 0, + "FreightCommissionPercentage": 0, + "CategoryCommissionPercentage": "[{\"CategoryId\":14,\"ProductCommission\":15.0,\"FreightCommission\":0.0}]", + "FulfillmentEndpoint": "http://pedrostore.vtexcommercestable.com.br/api/fulfillment?affiliateid=LDB&sc=1", + "CatalogSystemEndpoint": "http://pedrostore.vtexcommercestable.com.br/api/catalog_system/", + "IsActive": true, + "MerchantName": "", + "FulfillmentSellerId": null, + "SellerType": 1, + "IsBetterScope": false, + "TrustPolicy": "Default" + } + } + } + } + } + } + }, + "/api/catalog_system/pvt/sellers/{sellerId}": { + "get": { + "tags": [ + "Seller" + ], + "summary": "Get seller by ID", + "description": "Retrieves the seller's details by its ID.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "GetSellersbyId", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "pedrostore" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object with information of all sellers in the store.", + "properties": { + "SellerId": { + "type": "string", + "description": "Code used to identify the seller. It is assigned by the marketplace. We recommend filling it in with the seller's account name." + }, + "Name": { + "type": "string", + "description": "Name of the account in the seller's environment. You can find it on **Account settings > Account > Account Name**). Applicable only if the seller uses their own payment method.", + "nullable": true + }, + "Email": { + "type": "string", + "description": "Email of the administrator responsible for the seller.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Text describing the seller with a marketing tone. You can display this text in the marketplace window display by [customizing the CMS](https://help.vtex.com/en/tutorial/list-of-controls-for-templates--tutorials_563)." + }, + "ExchangeReturnPolicy": { + "type": "string", + "description": "Text describing the exchange and return policy previously agreed between the marketplace and the seller." + }, + "DeliveryPolicy": { + "type": "string", + "description": "Text describing the delivery policy previously agreed between the marketplace and the seller." + }, + "UseHybridPaymentOptions": { + "type": "boolean", + "description": "Allows customers to use gift cards from the seller to buy their products on the marketplace. It identifies purchases made with a gift card so that only the final price (with discounts applied) is paid to the seller." + }, + "UserName": { + "type": "string", + "description": "Seller username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Seller password.", + "nullable": true + }, + "SecutityPrivacyPolicy": { + "type": "string", + "description": "Text describing the security policy previously agreed between the marketplace and the seller." + }, + "CNPJ": { + "type": "string", + "description": "Company registration number." + }, + "CSCIdentification": { + "type": "string", + "description": "CSC identification." + }, + "ArchiveId": { + "type": "integer", + "description": "Seller archive ID.", + "nullable": true + }, + "UrlLogo": { + "type": "string", + "description": "Seller URL logo." + }, + "ProductCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "FreightCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "CategoryCommissionPercentage": { + "type": "string", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`." + }, + "FulfillmentEndpoint": { + "type": "string", + "description": "URL of the endpoint for fulfillment of seller's orders, which the marketplace will use to communicate with the seller. This field applies to all sellers, regardless of their type. However, for `VTEX Stores`, you don't need to fill it in because the system will do that automatically. You can edit this field once the seller has been successfully added.", + "nullable": true + }, + "CatalogSystemEndpoint": { + "type": "string", + "description": "URL of the endpoint of the seller's catalog. This field will only be displayed if the seller type is VTEX Store. The field format will be as follows: `http://{sellerName}.vtexcommercestable.com.br/api/catalog_system/`." + }, + "IsActive": { + "type": "boolean", + "description": "If the selle is active (`true`) or not (`false`)." + }, + "MerchantName": { + "type": "string", + "description": "Name of the marketplace, used to guide payments. This field should be nulled if the marketplace is responsible for processing payments. Check out our [Split Payment](https://help.vtex.com/en/tutorial/split-de-pagamento--6k5JidhYRUxileNolY2VLx) article to know more." + }, + "FulfillmentSellerId": { + "type": "integer", + "description": "Identification code of the seller responsible for fulfilling the order. This is an optional field used when a seller sells SKUs from another seller. If the seller sells their own SKUs, it must be left blank.", + "nullable": true + }, + "SellerType": { + "type": "integer", + "description": "Seller type." + }, + "IsBetterScope": { + "type": "boolean", + "description": "Indicates whether it is a [comprehensive seller](https://help.vtex.com/en/tutorial/comprehensive-seller--5Qn4O2GpjUIzWTPpvLUfkI)." + }, + "TrustPolicy": { + "type": "string", + "description": "Seller trust policy. The default value is `'Default'`, but if your store is a B2B marketplace and you want to share the customers'emails with the sellers you need to set this field as `'AllowEmailSharing'`." + } + } + }, + "example": { + "SellerId": "sellerstore", + "Name": "sellerstore", + "Email": "jane@email.com", + "Description": "", + "ExchangeReturnPolicy": "", + "DeliveryPolicy": "", + "UseHybridPaymentOptions": false, + "UserName": null, + "Password": null, + "SecutityPrivacyPolicy": "", + "CNPJ": "12035072751", + "CSCIdentification": "sellerstore", + "ArchiveId": null, + "UrlLogo": "", + "ProductCommissionPercentage": 0, + "FreightCommissionPercentage": 0, + "CategoryCommissionPercentage": "[{\"CategoryId\":14,\"ProductCommission\":15.0,\"FreightCommission\":0.0}]", + "FulfillmentEndpoint": "http://sellerstore.vtexcommercestable.com.br/api/fulfillment?affiliateid=LDB&sc=1", + "CatalogSystemEndpoint": "http://sellerstore.vtexcommercestable.com.br/api/catalog_system/", + "IsActive": true, + "MerchantName": "", + "FulfillmentSellerId": null, + "SellerType": 1, + "IsBetterScope": false, + "TrustPolicy": "Default" + } + } + } + } + } + } + }, + "/api/catalog_system/pvt/sku/stockkeepingunitidsbysaleschannel": { + "get": { + "tags": [ + "Trade policy" + ], + "summary": "List all SKUs of a trade policy", + "description": "Retrieves a list of SKU IDs of a trade policy.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | View Product |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "sc", + "in": "query", + "required": true, + "description": "Trade policy's unique numerical identifier.", + "style": "form", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "page", + "in": "query", + "required": false, + "description": "Page number.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "Number of items in the page.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "onlyAssigned", + "in": "query", + "required": false, + "description": "If set as `false`, it allows the user to decide if the SKUs that are not assigned to a specific trade policy should be also returned.", + "schema": { + "type": "boolean", + "example": true + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + 405380, + 405381, + 405382, + 405383, + 405384, + 405385, + 405386, + 405387, + 405388, + 405389, + 405390, + 405391, + 405392, + 405393, + 405394, + 405395, + 405396, + 405397, + 405398, + 405399, + 405400, + 405556 + ], + "schema": { + "type": "array", + "description": "List of SKU IDs of the trade policy.", + "items": { + "type": "integer", + "description": "SKU ID." + } + } + } + } + } + }, + "operationId": "get_api_catalogSystem_pvt_sku_stockkeepingunitidsbysaleschannel" + } + }, + "/api/catalog_system/pvt/products/GetIndexedInfo/{productId}": { + "get": { + "tags": [ + "Product indexing" + ], + "summary": "Get product indexed information", + "description": "Retrieves product indexed data in `XML` format searching by product ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | View Product |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "IndexedInfo", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product's unique numerical identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/xml": { + "schema": { + "type": "string" + }, + "example": "\n\n\n\n true\n 0\n 1\n \n *\n \n instanceId:394dbdc8-b1f4-4dea-adfa-1ec104f3bfe1\n productId:310117603\n \n \n\n\n\n\n \n \n \n \n \n\n\n" + } + } + } + } + } + }, + "/api/catalog_system/pvt/commercialcondition/list": { + "get": { + "tags": [ + "Commercial conditions" + ], + "summary": "Get all commercial conditions", + "description": "Lists all commercial conditions on the store.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | View Product |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetAllCommercialConditions", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object with information of the commercial condition.", + "properties": { + "Id": { + "type": "integer", + "description": "Commercial condition ID." + }, + "Name": { + "type": "string", + "description": "Commercial condition name." + }, + "IsDefault": { + "type": "boolean", + "description": "Defines if the commercial condition is default (`true`) or not (`false`)." + } + } + } + }, + "example": [ + { + "Id": 1, + "Name": "Standard", + "IsDefault": true + }, + { + "Id": 2, + "Name": "Secondary", + "IsDefault": false + }, + { + "Id": 3, + "Name": "Stallments 18x", + "IsDefault": false + } + ] + } + } + } + } + } + }, + "/api/catalog_system/pvt/commercialcondition/{commercialConditionId}": { + "get": { + "tags": [ + "Commercial conditions" + ], + "summary": "Get commercial condition", + "description": "Retrieves information of a commercial condition by its ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog API | General | View Product |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetCommercialConditions", + "parameters": [ + { + "name": "commercialConditionId", + "in": "path", + "required": true, + "description": "Commercial condition unique numerical identifier.", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object with information of the commercial condition.", + "properties": { + "Id": { + "type": "integer", + "description": "Commercial condition ID." + }, + "Name": { + "type": "string", + "description": "Commercial condition name." + }, + "IsDefault": { + "type": "boolean", + "description": "Defines if the commercial condition is default (`true`) or not (`false`)." + } + } + }, + "example": { + "Id": 1, + "Name": "Default", + "IsDefault": true + } + } + } + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "schemas": { + "GetCategoryTree": { + "required": [ + "id", + "name", + "hasChildren", + "url", + "children", + "Title", + "MetaTagDescription" + ], + "type": "object", + "description": "Object with the response.", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Category ID." + }, + "name": { + "type": "string", + "description": "Category name." + }, + "hasChildren": { + "type": "boolean", + "description": "If the category has a category child (`true`) or not (`false`)." + }, + "url": { + "type": "string", + "description": "Category URL." + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetCategoryTreeChild" + }, + "description": "Array with information about the category's children." + }, + "Title": { + "type": "string", + "description": "Category page title." + }, + "MetaTagDescription": { + "type": "string", + "description": "Category page Meta tag description." + } + } + }, + "GetCategoryTreeChild": { + "required": [ + "id", + "name", + "hasChildren", + "url", + "children", + "Title", + "MetaTagDescription" + ], + "type": "object", + "description": "Object with category children information.", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Category ID." + }, + "name": { + "type": "string", + "description": "Category name." + }, + "hasChildren": { + "type": "boolean", + "description": "If the category has a category child (`true`) or not (`false`)." + }, + "url": { + "type": "string", + "description": "Category URL." + }, + "children": { + "type": "array", + "description": "Array with information about the category's children.", + "items": { + "type": "string", + "description": "Category children ID." + } + }, + "Title": { + "type": "string", + "description": "Category page title." + }, + "MetaTagDescription": { + "type": "string", + "description": "Category page Meta tag description." + } + } + }, + "GetorUpdateProductSpecification": { + "required": [ + "Value" + ], + "type": "object", + "description": "Object with the request.", + "properties": { + "Value": { + "type": "array", + "description": "Array with specification values.", + "items": { + "type": "string", + "description": "Specification value.", + "example": "Cotton" + } + }, + "Id": { + "type": "integer", + "format": "int32", + "description": "Specification field ID, which is the same as `FieldId` in other specification endpoints.", + "example": 7 + }, + "Name": { + "type": "string", + "description": "Name of the specification.", + "example": "Fabric" + } + } + }, + "GetSKUandContext": { + "required": [ + "Id", + "ProductId", + "NameComplete", + "ProductName", + "ProductDescription", + "SkuName", + "IsActive", + "IsTransported", + "IsInventoried", + "IsGiftCardRecharge", + "ImageUrl", + "DetailUrl", + "CSCIdentification", + "BrandId", + "BrandName", + "Dimension", + "RealDimension", + "ManufacturerCode", + "IsKit", + "KitItems", + "Services", + "Categories", + "Attachments", + "Collections", + "SkuSellers", + "SalesChannels", + "Images", + "SkuSpecifications", + "ProductSpecifications", + "ProductClustersIds", + "ProductCategoryIds", + "ProductGlobalCategoryId", + "ProductCategories", + "CommercialConditionId", + "RewardValue", + "AlternateIds", + "AlternateIdValues", + "EstimatedDateArrival", + "MeasurementUnit", + "UnitMultiplier", + "InformationSource", + "ModalType" + ], + "type": "object", + "description": "Object with the response.", + "properties": { + "Id": { + "type": "integer", + "format": "int32", + "description": "SKU ID." + }, + "ProductId": { + "type": "integer", + "format": "int32", + "description": "ID of the related product." + }, + "NameComplete": { + "type": "string", + "description": "Product Name and SKU Name concatenated." + }, + "ComplementName": { + "type": "string", + "description": "Product Complement Name." + }, + "ProductName": { + "type": "string", + "description": "Product Name." + }, + "ProductDescription": { + "type": "string", + "description": "Product Description. HTML is allowed." + }, + "ProductRefId": { + "type": "string", + "description": "Reference ID of the related product." + }, + "TaxCode": { + "type": "string", + "description": "SKU Tax Code." + }, + "SkuName": { + "type": "string", + "description": "SKU Name." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU is active or not." + }, + "IsTransported": { + "type": "boolean", + "description": "Deprecated field.", + "nullable": true, + "deprecated": true + }, + "IsInventoried": { + "type": "boolean", + "description": "Deprecated field.", + "nullable": true, + "deprecated": true + }, + "IsGiftCardRecharge": { + "type": "boolean", + "description": "Defines if the purchase will generate a reward." + }, + "ImageUrl": { + "type": "string", + "description": "SKU image URL." + }, + "DetailUrl": { + "type": "string", + "description": "Product URL." + }, + "CSCIdentification": { + "type": "string", + "nullable": true, + "description": "SKU seller identification." + }, + "BrandId": { + "type": "string", + "description": "Product brand ID." + }, + "BrandName": { + "type": "string", + "description": "Product brand Name." + }, + "Dimension": { + "$ref": "#/components/schemas/Dimension" + }, + "RealDimension": { + "$ref": "#/components/schemas/RealDimension" + }, + "ManufacturerCode": { + "type": "string", + "description": "Product Supplier ID." + }, + "IsKit": { + "type": "boolean", + "description": "Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted." + }, + "KitItems": { + "type": "array", + "items": { + "type": "string", + "description": "SKU ID." + }, + "description": "Array with SKU IDs of bundle components." + }, + "Services": { + "type": "array", + "items": { + "type": "string", + "description": "Service ID." + }, + "description": "Array with Service IDs that are related to the SKU." + }, + "Categories": { + "type": "array", + "items": { + "type": "string", + "description": "Category ID." + }, + "description": "Array with Categories from the related product." + }, + "Attachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Attachment" + }, + "description": "Array with Attachments ID that are related to the SKU." + }, + "Collections": { + "type": "array", + "items": { + "type": "string", + "description": "Collection ID." + }, + "description": "Array with Collection IDs that are related to the product." + }, + "SkuSellers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SkuSeller" + }, + "description": "Array with SKU sellers data." + }, + "SalesChannels": { + "type": "array", + "items": { + "type": "integer", + "description": "Trade policy ID." + }, + "description": "Array with the ID of all the trade policies that are related to the product." + }, + "Images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Image" + }, + "description": "Array with SKU images." + }, + "SkuSpecifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SkuSpecification" + }, + "description": "Array with related SKU specifications." + }, + "ProductSpecifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSpecification" + }, + "description": "Array with related product specifications." + }, + "ProductClustersIds": { + "type": "string", + "description": "Product clusters IDs." + }, + "ProductCategoryIds": { + "type": "string", + "description": "Category hierarchy with category IDs." + }, + "ProductGlobalCategoryId": { + "type": "integer", + "nullable": true, + "description": "Global category ID." + }, + "ProductCategories": { + "type": "object", + "description": "Object containing product categories. Structure: \"{CategoryID}\": \"{CategoryName}\".", + "additionalProperties": { + "type": "string", + "description": "Category ID.", + "additionalProperties": { + "type": "string", + "description": "Category name." + } + } + }, + "CommercialConditionId": { + "type": "integer", + "format": "int32", + "description": "Commercial condition ID, used to define SKU specific promotions or installment rules. In case of no specific condition, use `1` (default value). This field does not accept `0`. Learn more at [Registering a commercial condition](https://help.vtex.com/tutorial/registering-a-commercial-condition--tutorials_445).", + "default": 1 + }, + "RewardValue": { + "type": "number", + "description": "Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1." + }, + "AlternateIds": { + "$ref": "#/components/schemas/AlternateIds" + }, + "AlternateIdValues": { + "type": "array", + "items": { + "type": "string", + "description": "Alternative SKU ID." + }, + "description": "Array with values of alternative SKU IDs." + }, + "EstimatedDateArrival": { + "type": "string", + "nullable": true, + "description": "To add the product as pre-sale, enter the product estimated arrival date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format. You must take into consideration both the launch date and the freight calculation for the arrival date." + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. For example, if a product is sold in boxes, but customers want to buy per square meter (m²). In common cases, use `\"un\"`." + }, + "UnitMultiplier": { + "type": "number", + "description": "Multiple number of SKU. If the multiplier is 5.0000, the product can be added in multiple quantities of 5, 10, 15, 20, onward." + }, + "InformationSource": { + "type": "string", + "description": "Information source.", + "nullable": true + }, + "ModalType": { + "type": "string", + "nullable": true, + "description": "Links an unusual type of SKU that needs special transportation, such as meat, glass, or a mattress, to a carrier specialized in delivering it. This field should be filled in with the name of the modal (e.g. \"Chemicals\" or \"Refrigerated products\"). To learn more about this feature, read our articles [How the modal works](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) and [Setting up modal for carriers](https://help.vtex.com/en/tutorial/configure-modal--3jhLqxuPhuiq24UoykCcqy)." + }, + "KeyWords": { + "type": "string", + "nullable": true, + "description": "Keywords related to the product." + }, + "ReleaseDate": { + "type": "string", + "nullable": true, + "description": "Release date of the product." + }, + "ProductIsVisible": { + "type": "boolean", + "description": "Defines if the product is visible or not." + }, + "ShowIfNotAvailable": { + "type": "boolean", + "description": "Defines if the product will be shown if it is not available." + }, + "IsProductActive": { + "type": "boolean", + "description": "Defines if the product is active or not." + }, + "ProductFinalScore": { + "type": "integer", + "description": "Product final score." + } + } + }, + "Dimension": { + "required": [ + "cubicweight", + "height", + "length", + "weight", + "width" + ], + "type": "object", + "description": "Object containing the SKU dimensions to be used on the shipping calculation.", + "properties": { + "cubicweight": { + "type": "number", + "description": "SKU [cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128)." + }, + "height": { + "type": "number", + "description": "SKU height." + }, + "length": { + "type": "number", + "description": "SKU length." + }, + "weight": { + "type": "number", + "description": "SKU weight." + }, + "width": { + "type": "number", + "description": "SKU width." + } + } + }, + "RealDimension": { + "required": [ + "realCubicWeight", + "realHeight", + "realLength", + "realWeight", + "realWidth" + ], + "type": "object", + "description": "Object containing the real SKU dimensions, which appear in the product page.", + "properties": { + "realCubicWeight": { + "type": "number", + "description": "Real SKU [cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128)." + }, + "realHeight": { + "type": "number", + "description": "Real SKU height." + }, + "realLength": { + "type": "number", + "description": "Real SKU length." + }, + "realWeight": { + "type": "number", + "description": "Real SKU weight." + }, + "realWidth": { + "type": "number", + "description": "Real SKU width." + } + } + }, + "Attachment": { + "required": [ + "Id", + "Name", + "Keys", + "Fields", + "IsActive", + "IsRequired" + ], + "type": "object", + "description": "Object containing information about SKU attachments.", + "properties": { + "Id": { + "type": "integer", + "description": "Attachment ID." + }, + "Name": { + "type": "string", + "description": "Attachment name." + }, + "Keys": { + "type": "array", + "items": { + "type": "string", + "description": "Each attachment key." + }, + "description": "Attachment Keys." + }, + "Fields": { + "type": "array", + "items": { + "required": [ + "FieldName", + "MaxCaracters", + "DomainValues" + ], + "type": "object", + "description": "Object with field details.", + "properties": { + "FieldName": { + "type": "string", + "description": "Attachment field name." + }, + "MaxCaracters": { + "type": "string", + "description": "Maximum number of characters accepted in the attachment field." + }, + "DomainValues": { + "type": "string", + "nullable": true, + "description": "Allowed key values." + } + } + }, + "description": "Array containing attachment fields." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the attachment is active or not." + }, + "IsRequired": { + "type": "boolean", + "description": "Defines if the attachment is required or not." + } + } + }, + "SkuSeller": { + "required": [ + "SellerId", + "StockKeepingUnitId", + "SellerStockKeepingUnitId", + "IsActive", + "FreightCommissionPercentage", + "ProductCommissionPercentage" + ], + "type": "object", + "description": "Object containing related SKU sellers data.", + "properties": { + "SellerId": { + "type": "string", + "description": "SKU seller ID. This is the ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID." + }, + "StockKeepingUnitId": { + "type": "integer", + "description": "SKU ID." + }, + "SellerStockKeepingUnitId": { + "type": "string", + "description": "SKU ID for the SKU seller." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU is active." + }, + "FreightCommissionPercentage": { + "type": "number", + "description": "Registered value for Seller Freight Commission." + }, + "ProductCommissionPercentage": { + "type": "number", + "description": "Registered value for Seller product Commission." + } + } + }, + "Image": { + "required": [ + "ImageUrl", + "ImageName", + "FileId" + ], + "type": "object", + "description": "Object containing SKU images details.", + "properties": { + "ImageUrl": { + "type": "string", + "description": "Image URL." + }, + "ImageName": { + "type": "string", + "description": "Image label.", + "nullable": true + }, + "FileId": { + "type": "integer", + "format": "int32", + "description": "SKU image ID." + } + } + }, + "SkuSpecification": { + "required": [ + "FieldId", + "FieldName", + "FieldValueIds", + "FieldValues" + ], + "type": "object", + "description": "Object containing related SKU specifications.", + "properties": { + "FieldId": { + "type": "integer", + "format": "int32", + "description": "Specification field ID." + }, + "FieldName": { + "type": "string", + "description": "Specification field Name." + }, + "FieldValueIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "description": "Specification value ID." + }, + "description": "Array with related specification values IDs." + }, + "FieldValues": { + "type": "array", + "items": { + "type": "string", + "description": "Each field value." + }, + "description": "Array with related specification values." + } + } + }, + "ProductSpecification": { + "required": [ + "FieldId", + "FieldName", + "FieldValueIds", + "FieldValues" + ], + "type": "object", + "description": "Object with product specification details.", + "properties": { + "FieldId": { + "type": "integer", + "format": "int32", + "description": "Specification field ID." + }, + "FieldName": { + "type": "string", + "description": "Specification name. Limited to 100 characters." + }, + "FieldValueIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "description": "Specification value ID." + }, + "description": "Array with related specification values IDs." + }, + "FieldValues": { + "type": "array", + "items": { + "type": "string", + "description": "Each field value." + }, + "description": "Array with related specification values." + } + } + }, + "AlternateIds": { + "type": "object", + "description": "Array with alternate SKU IDs, such as EAN and `RefId`.", + "properties": { + "Ean": { + "type": "string", + "description": "SKU EAN." + }, + "RefId": { + "type": "string", + "description": "SKU reference ID." + } + } + }, + "GetSKUAltID": { + "required": [ + "Id", + "ProductId", + "NameComplete", + "ProductName", + "ProductDescription", + "SkuName", + "IsActive", + "IsTransported", + "IsInventoried", + "IsGiftCardRecharge", + "ImageUrl", + "DetailUrl", + "CSCIdentification", + "BrandId", + "BrandName", + "Dimension", + "RealDimension", + "ManufacturerCode", + "IsKit", + "KitItems", + "Services", + "Categories", + "Attachments", + "Collections", + "SkuSellers", + "SalesChannels", + "Images", + "SkuSpecifications", + "ProductSpecifications", + "ProductClustersIds", + "ProductCategoryIds", + "ProductGlobalCategoryId", + "ProductCategories", + "CommercialConditionId", + "RewardValue", + "AlternateIds", + "AlternateIdValues", + "EstimatedDateArrival", + "MeasurementUnit", + "UnitMultiplier", + "InformationSource", + "ModalType" + ], + "type": "object", + "description": "Object with the response.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU ID." + }, + "ProductId": { + "type": "integer", + "description": "Product ID." + }, + "NameComplete": { + "type": "string", + "description": "Product name and SKU name combined." + }, + "ComplementName": { + "type": "string", + "description": "Product complement name." + }, + "ProductName": { + "type": "string", + "description": "Product name." + }, + "ProductDescription": { + "type": "string", + "description": "Product description. HTML is allowed." + }, + "ProductRefId": { + "type": "string", + "description": "Product reference ID." + }, + "TaxCode": { + "type": "string", + "description": "SKU tax code." + }, + "SkuName": { + "type": "string", + "description": "SKU name." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU is active or not." + }, + "IsTransported": { + "type": "boolean", + "deprecated": true, + "description": "Deprecated field." + }, + "IsInventoried": { + "type": "boolean", + "deprecated": true, + "description": "Deprecated field." + }, + "IsGiftCardRecharge": { + "type": "boolean", + "description": "Defines if the purchase of the SKU will generate reward value for the customer." + }, + "ImageUrl": { + "type": "string", + "description": "SKU image URL." + }, + "DetailUrl": { + "type": "string", + "description": "Product slug." + }, + "CSCIdentification": { + "type": "string", + "nullable": true, + "description": "SKU seller identification." + }, + "BrandId": { + "type": "string", + "description": "Brand ID." + }, + "BrandName": { + "type": "string", + "description": "Brand name." + }, + "Dimension": { + "$ref": "#/components/schemas/Dimension" + }, + "RealDimension": { + "$ref": "#/components/schemas/RealDimension" + }, + "ManufacturerCode": { + "type": "string", + "description": "Identifier provided by the manufacturers to identify their product. This field should be filled in if the product has a specific manufacturer's code." + }, + "IsKit": { + "type": "boolean", + "description": "Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted." + }, + "KitItems": { + "type": "array", + "description": "Array with SKU IDs of bundle components.", + "items": { + "type": "string", + "description": "SKU ID of each bundle component." + } + }, + "Services": { + "type": "array", + "description": "Array with service IDs that are related to the SKU.", + "items": { + "type": "string", + "description": "Service IDs of each service related to the SKU." + } + }, + "Categories": { + "type": "array", + "description": "Categories of the related product.", + "items": { + "type": "string", + "description": "Category ID." + } + }, + "CategoriesFullPath": { + "type": "array", + "description": "Path of categories of the related product.", + "items": { + "type": "string", + "description": "Path composed by category IDs separated by `/`." + } + }, + "Attachments": { + "type": "array", + "description": "Array with attachment IDs that are related to the product.", + "items": { + "$ref": "#/components/schemas/Attachment" + } + }, + "Collections": { + "type": "array", + "description": "Array with collections IDs that are related to the product.", + "items": { + "type": "string", + "description": "Collection ID." + } + }, + "SkuSellers": { + "type": "array", + "description": "Array with related sellers data.", + "items": { + "$ref": "#/components/schemas/SkuSeller" + } + }, + "SalesChannels": { + "type": "array", + "description": "Array of trade policy IDs.", + "items": { + "type": "integer", + "description": "Trade policy ID." + } + }, + "Images": { + "type": "array", + "description": "Array of objects with SKU image details.", + "items": { + "$ref": "#/components/schemas/Image" + } + }, + "SkuSpecifications": { + "type": "array", + "description": "Array with related SKU specifications.", + "items": { + "$ref": "#/components/schemas/SkuSpecification" + } + }, + "ProductSpecifications": { + "type": "array", + "description": "Array with related product specifications.", + "items": { + "$ref": "#/components/schemas/ProductSpecification" + } + }, + "ProductClustersIds": { + "type": "string", + "description": "Product cluster IDs separated by comma (`,`)." + }, + "PositionsInClusters": { + "type": "object", + "description": "Product clusters position in each cluster. Structure: \"{Product cluster ID}\": {Position}.\n\n`{Product cluster ID}` is a string, while `{Position}` is an integer.", + "additionalProperties": { + "type": "integer", + "description": "Product cluster ID.", + "additionalProperties": { + "type": "integer", + "description": "Position." + } + } + }, + "ProductClusterNames": { + "type": "object", + "description": "Product clusters names. Structure: \"{Product cluster ID}\": \"{Product cluster name}\". Both the key and the value are strings.", + "additionalProperties": { + "type": "string", + "description": "Product cluster ID.", + "additionalProperties": { + "type": "string", + "description": "Product cluster name." + } + } + }, + "ProductClusterHighlights": { + "type": "object", + "description": "Product clusters highlights. Structure: \"{Product cluster ID}\": \"{Product cluster name}\". Both the key and the value are strings.", + "additionalProperties": { + "type": "string", + "description": "Product cluster ID.", + "additionalProperties": { + "type": "string", + "description": "Product cluster highlight." + } + } + }, + "ProductCategoryIds": { + "type": "string", + "description": "Category path composed by category IDs separated by `/`." + }, + "IsDirectCategoryActive": { + "type": "boolean", + "description": "Indicates if the direct product category is active or not." + }, + "ProductGlobalCategoryId": { + "type": "integer", + "nullable": true, + "description": "Product global category ID." + }, + "ProductCategories": { + "type": "object", + "description": "Object containing product categories. Structure: \"{CategoryID}\": \"{CategoryName}\". Both the key and the value are strings.", + "additionalProperties": { + "type": "string", + "description": "Category ID.", + "additionalProperties": { + "type": "string", + "description": "Category name." + } + } + }, + "CommercialConditionId": { + "type": "integer", + "format": "int32", + "description": "Commercial condition ID, used to define SKU specific promotions or installment rules. In case of no specific condition, use `1` (default value). This field does not accept `0`. Learn more at [Registering a commercial condition](https://help.vtex.com/tutorial/registering-a-commercial-condition--tutorials_445).", + "default": 1 + }, + "RewardValue": { + "type": "number", + "description": "Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1." + }, + "AlternateIds": { + "$ref": "#/components/schemas/AlternateIds" + }, + "AlternateIdValues": { + "type": "array", + "description": "Array with values of alternative SKU IDs.", + "items": { + "type": "string", + "description": "Alternative SKU ID." + } + }, + "EstimatedDateArrival": { + "type": "string", + "nullable": true, + "description": "SKU estimated arrival date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format, when the product is on pre-sale. You must take into consideration both the launch date and the freight calculation for the arrival date." + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. For example, if a product is sold in boxes, but customers want to buy per square meter (m²). In common cases, use `\"un\"`." + }, + "UnitMultiplier": { + "type": "number", + "description": "Multiple number of SKU. If the multiplier is 5.0000, the product can be added in multiple quantities of 5, 10, 15, 20, onward." + }, + "InformationSource": { + "type": "string", + "nullable": true, + "description": "Information source." + }, + "ModalType": { + "type": "string", + "nullable": true, + "description": "Links an unusual type of SKU that needs special transportation, such as meat, glass, or a mattress, to a carrier specialized in delivering it. This field should be filled in with the name of the modal (e.g. \"Chemicals\" or \"Refrigerated products\"). To learn more about this feature, read our articles [How the modal works](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) and [Setting up modal for carriers](https://help.vtex.com/en/tutorial/configure-modal--3jhLqxuPhuiq24UoykCcqy)." + }, + "KeyWords": { + "type": "string", + "nullable": true, + "description": "Keywords related to the product." + }, + "ReleaseDate": { + "type": "string", + "nullable": true, + "description": "Release date of the product." + }, + "ProductIsVisible": { + "type": "boolean", + "description": "Defines if the product is visible or not." + }, + "ShowIfNotAvailable": { + "type": "boolean", + "description": "Defines if the product will be shown if it is not available." + }, + "IsProductActive": { + "type": "boolean", + "description": "Defines if the product is active or not." + }, + "ProductFinalScore": { + "type": "integer", + "description": "Product final score." + } + } + }, + "SkulistbyProductId": { + "type": "object", + "description": "Object with the response.", + "properties": { + "IsPersisted": { + "type": "boolean", + "description": "Defines if the SKU is persisted." + }, + "IsRemoved": { + "type": "boolean", + "deprecated": true, + "description": "Defines if the SKU is removed." + }, + "Id": { + "type": "integer", + "format": "int32", + "description": "SKU ID." + }, + "ProductId": { + "type": "integer", + "format": "int32", + "description": "Product ID." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU is active or not." + }, + "Name": { + "type": "string", + "description": "SKU name." + }, + "Height": { + "type": "number", + "description": "SKU height." + }, + "RealHeight": { + "type": "number", + "nullable": true, + "description": "Real SKU height." + }, + "Width": { + "type": "number", + "description": "SKU width." + }, + "RealWidth": { + "type": "number", + "nullable": true, + "description": "Real SKU width." + }, + "Length": { + "type": "number", + "description": "SKU length." + }, + "RealLength": { + "type": "number", + "nullable": true, + "description": "Real SKU length." + }, + "WeightKg": { + "type": "number", + "nullable": true, + "description": "Weight of the SKU in the measurement [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams." + }, + "RealWeightKg": { + "type": "number", + "nullable": true, + "description": "Real weight of the SKU in the measurement unit [configured in the store](https://help.vtex.com/en/tutorial/filling-in-system-settings--tutorials_269), which by default is in grams." + }, + "ModalId": { + "type": "integer", + "format": "int32", + "description": "Delivery method (modal type) ID." + }, + "RefId": { + "type": "string", + "description": "Product reference ID." + }, + "CubicWeight": { + "type": "number", + "description": "[Cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128)." + }, + "IsKit": { + "type": "boolean", + "description": "Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted." + }, + "IsDynamicKit": { + "type": "string", + "nullable": true, + "deprecated": true, + "description": "Deprecated field." + }, + "InternalNote": { + "type": "string", + "nullable": true, + "description": "Internal note." + }, + "DateUpdated": { + "type": "string", + "description": "Date when the product was updated for the most recent time." + }, + "RewardValue": { + "type": "number", + "nullable": true, + "description": "Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1." + }, + "CommercialConditionId": { + "type": "integer", + "format": "int32", + "description": "Commercial condition ID, used to define SKU specific promotions or installment rules. In case of no specific condition, use `1` (default value). This field does not accept `0`. Learn more at [Registering a commercial condition](https://help.vtex.com/tutorial/registering-a-commercial-condition--tutorials_445).", + "default": 1 + }, + "EstimatedDateArrival": { + "type": "string", + "nullable": true, + "description": "SKU estimated arrival date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format, when the product is on pre-sale. You must take into consideration both the launch date and the freight calculation for the arrival date." + }, + "FlagKitItensSellApart": { + "type": "boolean", + "description": "Defines if the SKU bundle items can be sold separately." + }, + "ManufacturerCode": { + "type": "string", + "description": "Identifier provided by the manufacturers to identify their product. This field should be filled in if the product has a specific manufacturer's code." + }, + "ReferenceStockKeepingUnitId": { + "type": "string", + "nullable": true, + "description": "SKU reference ID." + }, + "Position": { + "type": "integer", + "format": "int32", + "description": "SKU position." + }, + "ActivateIfPossible": { + "type": "boolean", + "description": "When set to `true`, this attribute will automatically update the SKU as active once associated with an image or an active component." + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. For example, if a product is sold in boxes, but customers want to buy per square meter (m²). In common cases, use `\"un\"`." + }, + "UnitMultiplier": { + "type": "number", + "description": "Multiple number of SKU. If the multiplier is 5.0000, the product can be added in multiple quantities of 5, 10, 15, 20, onward." + }, + "IsInventoried": { + "type": "boolean", + "nullable": true, + "deprecated": true, + "description": "Deprecated field." + }, + "IsTransported": { + "type": "boolean", + "nullable": true, + "deprecated": true, + "description": "Deprecated field." + }, + "IsGiftCardRecharge": { + "type": "boolean", + "nullable": true, + "description": "Defines if the purchase of the SKU will generate reward value for the customer." + }, + "ModalType": { + "type": "string", + "nullable": true, + "description": "Links an unusual type of SKU that needs special transportation, such as meat, glass, or a mattress, to a carrier specialized in delivering it. This field should be filled in with the name of the modal (e.g. \"Chemicals\" or \"Refrigerated products\"). To learn more about this feature, read our articles [How the modal works](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) and [Setting up modal for carriers](https://help.vtex.com/en/tutorial/configure-modal--3jhLqxuPhuiq24UoykCcqy)." + }, + "isKitOptimized": { + "type": "boolean", + "description": "Defines if the SKU is an optimized bundle." + } + } + }, + "CreateSellerRequest": { + "type": "object", + "description": "Object with the request.", + "required": [ + "SellerId", + "Name", + "Email", + "Description", + "ExchangeReturnPolicy", + "DeliveryPolicy", + "UseHybridPaymentOptions", + "UserName", + "Password", + "SecutityPrivacyPolicy", + "CNPJ", + "CSCIdentification", + "ArchiveId", + "UrlLogo", + "ProductCommissionPercentage", + "FreightCommissionPercentage", + "FulfillmentEndpoint", + "CatalogSystemEndpoint", + "IsActive", + "FulfillmentSellerId", + "SellerType", + "IsBetterScope" + ], + "properties": { + "SellerId": { + "type": "string", + "description": "Code used to identify the seller. It is assigned by the marketplace. We recommend filling it in with the seller's account name.", + "example": "pedrostore" + }, + "Name": { + "type": "string", + "description": "Name of the account in the seller's environment. You can find it on **Account settings > Account > Account Name**). Applicable only if the seller uses their own payment method.", + "example": "My pedrostore" + }, + "Email": { + "type": "string", + "description": "Email of the admin responsible for the seller.", + "example": "breno@breno.com" + }, + "Description": { + "type": "string", + "description": "Text describing the seller with a marketing tone. You can display this text in the marketplace window display by [customizing the CMS](https://help.vtex.com/en/tutorial/list-of-controls-for-templates--tutorials_563).", + "example": "Brief description" + }, + "ExchangeReturnPolicy": { + "type": "string", + "description": "Text describing the exchange and return policy previously agreed between the marketplace and the seller.", + "example": "Exchange return policy text" + }, + "DeliveryPolicy": { + "type": "string", + "description": "Text describing the delivery policy previously agreed between the marketplace and the seller.", + "example": "Delivery policy text" + }, + "UseHybridPaymentOptions": { + "type": "boolean", + "description": "Allows customers to use gift cards from the seller to buy their products on the marketplace. It identifies purchases made with a gift card so that only the final price (with discounts applied) is paid to the seller.", + "example": false + }, + "UserName": { + "type": "string", + "description": "Seller username.", + "example": "myseller" + }, + "Password": { + "type": "string", + "description": "Seller password.", + "example": "passoword" + }, + "SecutityPrivacyPolicy": { + "type": "string", + "description": "Text describing the security policy previously agreed between the marketplace and the seller.", + "example": "Secutity privacy policy text" + }, + "CNPJ": { + "type": "string", + "description": "Company registration number.", + "example": "12035072751" + }, + "CSCIdentification": { + "type": "string", + "description": "CSC identification.", + "example": "pedrostore" + }, + "ArchiveId": { + "type": "integer", + "description": "Seller archive ID.", + "example": 1 + }, + "UrlLogo": { + "type": "string", + "description": "Seller URL logo.", + "example": "/myseller" + }, + "ProductCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`.", + "example": 0 + }, + "FreightCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`.", + "example": 0 + }, + "CategoryCommissionPercentage": { + "type": "string", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`.", + "example": "[{\"CategoryId\":14,\"ProductCommission\":15.0,\"FreightCommission\":0.0}]" + }, + "FulfillmentEndpoint": { + "type": "string", + "description": "URL of the endpoint for fulfillment of seller's orders, which the marketplace will use to communicate with the seller. This field applies to all sellers, regardless of their type. However, for `VTEX Stores`, you don't need to fill it in because the system will do that automatically. You can edit this field once the seller has been successfully added.", + "example": "http://pedrostore.vtexcommercestable.com.br/api/fulfillment?affiliateid=LDB&sc=1" + }, + "CatalogSystemEndpoint": { + "type": "string", + "description": "URL of the endpoint of the seller's catalog. This field will only be displayed if the seller type is VTEX Store. The field format will be as follows: `http://{sellerName}.vtexcommercestable.com.br/api/catalog_system/`.", + "example": "http://pedrostore.vtexcommercestable.com.br/api/catalog_system/" + }, + "IsActive": { + "type": "boolean", + "description": "If the selle is active (`true`) or not (`false`).", + "example": true + }, + "MerchantName": { + "type": "string", + "description": "Name of the marketplace, used to guide payments. This field should be nulled if the marketplace is responsible for processing payments. Check out our [Split Payment](https://help.vtex.com/en/tutorial/split-payment--6k5JidhYRUxileNolY2VLx) article to know more.", + "example": "pedrostore" + }, + "FulfillmentSellerId": { + "type": "integer", + "description": "Identification code of the seller responsible for fulfilling the order. This is an optional field used when a seller sells SKUs from another seller. If the seller sells their own SKUs, it must be left blank.", + "example": 1 + }, + "SellerType": { + "type": "integer", + "description": "Seller type.", + "example": 1 + }, + "IsBetterScope": { + "type": "boolean", + "description": "Indicates whether it is a [comprehensive seller](https://help.vtex.com/en/tutorial/comprehensive-seller--5Qn4O2GpjUIzWTPpvLUfkI).", + "example": false + }, + "TrustPolicy": { + "type": "string", + "description": "Seller trust policy. The default value is `'Default'`, but if your store is a B2B marketplace and you want to share the customers'emails with the sellers you need to set this field as `'AllowEmailSharing'`.", + "example": "Default" + } + } + }, + "UpdateSellerRequest": { + "type": "object", + "description": "Object with the request.", + "required": [ + "SellerId", + "Name", + "Email", + "Description", + "ExchangeReturnPolicy", + "DeliveryPolicy", + "UseHybridPaymentOptions", + "UserName", + "Password", + "SecutityPrivacyPolicy", + "CNPJ", + "CSCIdentification", + "ArchiveId", + "UrlLogo", + "ProductCommissionPercentage", + "FreightCommissionPercentage", + "FulfillmentEndpoint", + "CatalogSystemEndpoint", + "IsActive", + "FulfillmentSellerId", + "SellerType", + "IsBetterScope" + ], + "properties": { + "SellerId": { + "type": "string", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID.", + "example": "pedrostore" + }, + "Name": { + "type": "string", + "description": "Name of the account in the seller's environment. You can find it on **Account settings > Account > Account Name**). Applicable only if the seller uses their own payment method.", + "example": "My pedrostore" + }, + "Email": { + "type": "string", + "description": "Email of the admin responsible for the seller.", + "example": "breno@breno.com" + }, + "Description": { + "type": "string", + "description": "Text describing the seller with a marketing tone. You can display this text in the marketplace window display by [customizing the CMS](https://help.vtex.com/en/tutorial/list-of-controls-for-templates--tutorials_563).", + "example": "Brief description" + }, + "ExchangeReturnPolicy": { + "type": "string", + "description": "Text describing the exchange and return policy previously agreed between the marketplace and the seller.", + "example": "Exchange return policy text" + }, + "DeliveryPolicy": { + "type": "string", + "description": "Text describing the delivery policy previously agreed between the marketplace and the seller.", + "example": "Delivery policy text" + }, + "UseHybridPaymentOptions": { + "type": "boolean", + "description": "Allows customers to use gift cards from the seller to buy their products on the marketplace. It identifies purchases made with a gift card so that only the final price (with discounts applied) is paid to the seller.", + "example": false + }, + "UserName": { + "type": "string", + "description": "Seller username.", + "example": "myseller" + }, + "Password": { + "type": "string", + "description": "Seller password.", + "example": "passoword" + }, + "SecutityPrivacyPolicy": { + "type": "string", + "description": "Text describing the security policy previously agreed between the marketplace and the seller.", + "example": "Secutity privacy policy text" + }, + "CNPJ": { + "type": "string", + "description": "Company registration number.", + "example": "12035072751" + }, + "CSCIdentification": { + "type": "string", + "description": "CSC identification.", + "example": "pedrostore" + }, + "ArchiveId": { + "type": "integer", + "description": "Seller archive ID.", + "example": 1 + }, + "UrlLogo": { + "type": "string", + "description": "Seller URL logo.", + "example": "/myseller" + }, + "ProductCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`.", + "example": 0 + }, + "FreightCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`.", + "example": 0 + }, + "CategoryCommissionPercentage": { + "type": "string", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`.", + "example": "[{\"CategoryId\":14,\"ProductCommission\":15.0,\"FreightCommission\":0.0}]" + }, + "FulfillmentEndpoint": { + "type": "string", + "description": "URL of the endpoint for fulfillment of seller's orders, which the marketplace will use to communicate with the seller. This field applies to all sellers, regardless of their type. However, for `VTEX Stores`, you don't need to fill it in because the system will do that automatically. You can edit this field once the seller has been successfully added.", + "example": "http://pedrostore.vtexcommercestable.com.br/api/fulfillment?affiliateid=LDB&sc=1" + }, + "CatalogSystemEndpoint": { + "type": "string", + "description": "URL of the endpoint of the seller's catalog. This field will only be displayed if the seller type is VTEX Store. The field format will be as follows: `http://{sellerName}.vtexcommercestable.com.br/api/catalog_system/`.", + "example": "http://pedrostore.vtexcommercestable.com.br/api/catalog_system/" + }, + "IsActive": { + "type": "boolean", + "description": "If the selle is active (`true`) or not (`false`).", + "example": true + }, + "MerchantName": { + "type": "string", + "description": "Name of the marketplace, used to guide payments. This field should be nulled if the marketplace is responsible for processing payments. Check out our [Split Payment](https://help.vtex.com/en/tutorial/split-payment--6k5JidhYRUxileNolY2VLx) article to know more.", + "example": "pedrostore" + }, + "FulfillmentSellerId": { + "type": "integer", + "description": "Identification code of the seller responsible for fulfilling the order. This is an optional field used when a seller sells SKUs from another seller. If the seller sells their own SKUs, it must be left blank.", + "example": 1 + }, + "SellerType": { + "type": "integer", + "description": "Seller type.", + "example": 1 + }, + "IsBetterScope": { + "type": "boolean", + "description": "Indicates whether it is a [comprehensive seller](https://help.vtex.com/en/tutorial/comprehensive-seller--5Qn4O2GpjUIzWTPpvLUfkI).", + "example": false + }, + "TrustPolicy": { + "type": "string", + "description": "Seller trust policy. The default value is `'Default'`, but if your store is a B2B marketplace and you want to share the customers'emails with the sellers you need to set this field as `'AllowEmailSharing'`.", + "example": "Default" + } + } + }, + "CategorySpecification": { + "required": [ + "Name", + "CategoryId", + "FieldId", + "IsActive", + "IsStockKeepingUnit" + ], + "type": "array", + "description": "Array of objects.", + "items": { + "type": "object", + "description": "Object containing specification information.", + "properties": { + "Name": { + "type": "string", + "description": "Specification name. Limited to 100 characters." + }, + "CategoryId": { + "type": "integer", + "description": "Category ID." + }, + "FieldId": { + "type": "integer", + "description": "Specification field ID." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the specification is active." + }, + "IsStockKeepingUnit": { + "type": "boolean", + "description": "Defines if it is an SKU specification." + } + } + } + }, + "SpecificationsGroup": { + "required": [ + "CategoryId", + "Id", + "Name", + "Position" + ], + "type": "object", + "description": "Object with specification groups information.", + "properties": { + "CategoryId": { + "type": "integer", + "nullable": true, + "description": "Category ID." + }, + "Id": { + "type": "integer", + "description": "Specification group ID." + }, + "Name": { + "type": "string", + "description": "Specification group name." + }, + "Position": { + "type": "integer", + "nullable": true, + "description": "Specification group position." + } + } + }, + "BrandGet": { + "type": "object", + "description": "Object containing brand information.", + "required": [ + "id", + "name", + "isActive", + "imageUrl", + "title", + "metaTagDescription" + ], + "properties": { + "id": { + "type": "integer", + "description": "Brand's unique numerical identifier." + }, + "name": { + "type": "string", + "description": "Brand name." + }, + "isActive": { + "type": "boolean", + "description": "Defines if the brand is active (`true`) or not (`false`)." + }, + "title": { + "type": "string", + "description": "Meta title for the brand page." + }, + "metaTagDescription": { + "type": "string", + "description": "Meta Description for the brand page. A brief description of the brand, displayed by search engines. Since search engines can only display less than 150 characters, we recommend not exceeding this character limit when creating the description." + }, + "imageUrl": { + "type": "string", + "description": "URL of the brand's image.", + "nullable": true + } + } + } + } + }, + "tags": [ + { + "name": "SKU service" + }, + { + "name": "SKU service attachment" + }, + { + "name": "SKU service value" + }, + { + "name": "SKU service type" + }, + { + "name": "Category" + }, + { + "name": "Brand" + }, + { + "name": "Attachment" + }, + { + "name": "Product" + }, + { + "name": "Product specification" + }, + { + "name": "Trade policy" + }, + { + "name": "Similar category" + }, + { + "name": "SKU" + }, + { + "name": "SKU EAN" + }, + { + "name": "SKU file" + }, + { + "name": "SKU kit" + }, + { + "name": "SKU specification" + }, + { + "name": "SKU attachment" + }, + { + "name": "SKU complement" + }, + { + "name": "Non-structured specification" + }, + { + "name": "Specification field" + }, + { + "name": "Specification group" + }, + { + "name": "Specification value" + }, + { + "name": "Specification field value" + }, + { + "name": "Category specification" + }, + { + "name": "Specification" + }, + { + "name": "Subcollection" + }, + { + "name": "Collection" + }, + { + "name": "Supplier" + }, + { + "name": "Sales channel" + }, + { + "name": "Seller" + }, + { + "name": "SKU seller" + }, + { + "name": "Multi-language beta" + }, + { + "name": "Multi-language SKU beta" + }, + { + "name": "Multi-language specification beta" + }, + { + "name": "Multi-language category beta" + }, + { + "name": "Multi-language brand beta" + }, + { + "name": "Multi-language attachment and service beta" + }, + { + "name": "Multi-language collection beta" + }, + { + "name": "Product indexing" + }, + { + "name": "Commercial conditions" + }, + { + "name": "Gift list" + } + ] +} diff --git a/clients/manitou/output/checkout.json b/clients/manitou/output/checkout.json new file mode 100644 index 0000000000..2ccfde9f9e --- /dev/null +++ b/clients/manitou/output/checkout.json @@ -0,0 +1,39659 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Checkout API", + "description": ">ℹ️ Check the new [Checkout onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/checkout-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about the Checkout and is organized by focusing on the developer's journey.\r\n\r\nThe Checkout API allows you to obtain and configure information about the shopping cart and its attachments, personalization of custom fields, orderForm structure, fulfillment data, order management, and identification of the sellers delivery region.\r\n\r\n>ℹ️ Data modification operations (`POST`, `PATCH`, `PUT` or `DELETE` endpoints) shall not be performed in parallel in the Checkout APIs. They need to be enqueued by the client/requester. Otherwise, old values ​​can be overwritten incorrectly or competition errors may occur.\r\n\r\n>⚠️ All endpoints that consult or edit the orderForm can change the authentication depending on the customer context. If you are handling information from a customer with a complete profile on the store, authentication will be required. You can only access or modify the customer data for these profiles with an authenticated request.\r\n\r\n## Shopping cart\r\n\r\nAllows merchants to simulate, configure and customize shopping cart information.\r\n\r\n- [POST - Cart Simulation](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForms/simulation): simulate a cart in VTEX Checkout.\r\n- [GET - Get current or create a new cart](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pub/orderForm): get your current shopping cart information or to create a new cart.\r\n- [GET - Get cart information by ID](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pub/orderForm/-orderFormId-): get all information associated to a given shopping cart.\r\n- [POST - Add cart items](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/items): add a new item to the shopping cart.\r\n- [POST - Update cart items](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/items/update): change the quantity of one or more items in a specific cart or remove an item from the cart.\r\n- [PATCH - Handle cart items](https://developers.vtex.com/docs/api-reference/checkout-api#patch-/api/checkout/pub/orderForm/-orderFormId-/items): change the quantity or price of one or more items to the shopping cart or add a new item to the shopping cart.\r\n- [POST - Remove all items](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/items/removeAll): removes all items from a given cart, leaving it empty.\r\n- [PUT - Change price](https://developers.vtex.com/docs/api-reference/checkout-api#put-/api/checkout/pub/orderForm/-orderFormId-/items/-itemIndex-/price): changes the price of an SKU in a cart.\r\n- [GET - Cart installments](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pub/orderForm/-orderFormId-/installments): retrieves possible amount of installments and respective values for a given cart with a given payment method.\r\n\r\n## Cart attachments\r\n\r\nAllows merchants to obtain client profiles and add information to a given shopping cart.\r\n\r\n- [GET - Get client profile by email](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pub/profiles): retrieve a client's profile information by providing an email address.\r\n- [POST - Add client profile](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/attachments/clientProfileData): include client profile information to a given shopping cart.\r\n- [Patch - Ignore profile data](https://developers.vtex.com/docs/api-reference/checkout-api#patch-/api/checkout/pub/orderForm/-orderFormId-/profile): disable the automatic inclusion of profile information in a shopping cart when a shopper provides an email address at checkout.\r\n- [GET - Remove all personal data](https://developers.vtex.com/docs/api-reference/checkout-api#get-/checkout/changeToAnonymousUser/-orderFormId-): removes all user information, making a cart anonymous while leaving the items.\r\n- [POST - Add client preferences](https://developers.vtex.com/docs/api-reference/checkout-api#patch-/api/checkout/pub/orderForm/-orderFormId-/items): include client preferences information to a given shopping cart.\r\n- [POST - Add shipping address and select delivery option](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/attachments/shippingData): include shipping information and/or selected delivery option to a given shopping cart.\r\n- [POST - Add marketing data](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/attachments/marketingData): include marketing information to a given shopping cart.\r\n- [POST - Add payment data](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/attachments/paymentData): include payment information to a given shopping cart.\r\n- [POST - Add merchant context data](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/attachments/merchantContextData): add to the cart any relevant information that is related to the context of a specific order.\r\n- [POST - Add coupons to the cart](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/coupons): add coupons to a given shopping cart.\r\n\r\n## Custom data\r\n\r\nAllows merchants to manage custom fields that were created by an app in their account.\r\n\r\n- [PUT - Set multiple custom field values](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/coupons): allows you to update the values of custom fields created in your account's apps.\r\n- [PUT - Set single custom field value](https://developers.vtex.com/docs/api-reference/checkout-api#put-/api/checkout/pub/orderForm/-orderFormId-/customData/-appId-/-appFieldName-): allows you to update the value of a specific custom field created in your account's apps.\r\n- [DELETE - Remove single custom field value](https://developers.vtex.com/docs/api-reference/checkout-api#delete-/api/checkout/pub/orderForm/-orderFormId-/customData/-appId-/-appFieldName-): allows you to remove the value of a specific custom field created in your account's apps.\r\n- [PUT - Batch add custom fields](https://developers.vtex.com/docs/api-reference/checkout-api#put-/api/checkout/pub/orderForm/-orderFormId-/customFields): Add multiple custom fields to an `orderForm` in a single request.\r\n- [PUT - Add order custom field](https://developers.vtex.com/docs/api-reference/checkout-api#put-/api/checkout/pub/orderForm/-orderFormId-/customFields/order): Add a custom field to the order level of an `orderForm`.\r\n- [PUT - Add item custom field](https://developers.vtex.com/docs/api-reference/checkout-api#put-/api/checkout/pub/orderForm/-orderFormId-/customFields/item/-itemId-): Add a custom field to a specific item in an `orderForm`.\r\n- [PUT - Add item custom field](https://developers.vtex.com/docs/api-reference/checkout-api#put-/api/checkout/pub/orderForm/-orderFormId-/customFields/item/-itemId-): Add a custom field to a specific item in an `orderForm`.\r\n- [DELETE - Remove item custom field](https://developers.vtex.com/docs/api-reference/checkout-api#delete-/api/checkout/pub/orderForm/-orderFormId-/customFields/item/-itemId-): Remove a specific custom field from an item in an `orderForm`.\r\n- [PUT - Add address custom field](https://developers.vtex.com/docs/api-reference/checkout-api#put-/api/checkout/pub/orderForm/-orderFormId-/customFields/address/-addressId): Add a custom field to a specific address in an `orderForm`.\r\n\r\n## Configuration\r\n\r\nAllows merchants to configure `orderForm` in the account and seller exchange on a given order.\r\n\r\n- [GET - Get orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pvt/configuration/orderForm): retrieves the settings that are currently applied to every [`orderForm`](https://developers.vtex.com/docs/guides/orderform-fields) in the account.\r\n- [POST - Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm): determines settings that will apply to every [`orderForm`](https://developers.vtex.com/docs/guides/orderform-fields) in the account.\r\n- [GET - Get window to change seller](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pvt/configuration/window-to-change-seller): retrieves a marketplace’s window to change seller.\r\n- [POST - Update window to change seller](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/window-to-change-seller): updates a marketplace’s window to change seller.\r\n- [POST - Clear orderForm messages](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/messages/clear): removes all messages from the `messages` field of the [`orderForm`](https://developers.vtex.com/docs/guides/orderform-fields).\r\n\r\n## Fulfillment\r\n\r\nAllows merchants to obtain pickup points and address information.\r\n\r\n- [GET - List pickup points by location](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pub/pickup-points): retrieves information on pickup points close to a given location determined by geocoordinates or postal code.\r\n- [GET - Get address by postal code](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pub/postal-code/-countryCode-/-postalCode-): retrieves address information for a given postal code and country.\r\n\r\n## Order placement\r\n\r\nAllows merchants to place and process orders by creating a new cart or using an existing cart.\r\n\r\n- [POST - Place order from an existing cart](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/transaction): places an order from an existing [`orderForm`](https://developers.vtex.com/docs/guides/orderform-fields) object, meaning an existing cart.\r\n- [PUT - Place order](https://developers.vtex.com/docs/api-reference/checkout-api#put-/api/checkout/pub/orders): places order without having any prior cart information.\r\n- [POST - Process order](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/gatewayCallback/-orderGroup-): order processing callback request, which is made after an order's payment is approved.\r\n\r\n## Region\r\n\r\nAllows merchants to obtain a list of sellers serving a specific delivery region.\r\n\r\n- [GET - Get sellers by region or address](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pub/regions/-regionId-)\": retrieves a list of sellers that cater to a specific region or address.\r\n\r\n## Common parameters in the documentation\r\n\r\n| Parameter name | Description |\r\n|---------------------------|-----------------------------------------------------------------------------------------|\r\n| `{{accountName}}` | Store account name |\r\n| `{{environment}}` | The environment that will be called. Change for vtexcommercestable or vtexcommmercebeta |\r\n| `{{X-VTEX-API-AppKey}}` | Located in the headers of the requests, user authentication key |\r\n| `{{X-VTEX-API-AppToken}}` | Located in the headers of the requests, authentication password |\r\n", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/checkout/pub/orderForms/simulation": { + "post": { + "tags": [ + "Shopping cart" + ], + "summary": "Cart simulation", + "description": "This endpoint is used to simulate a cart in VTEX Checkout.\r\n\r\nIt receives an SKU ID, the quantity of items in the cart and the seller ID.\r\n\r\nIt returns all information about the cart, such as the selling price of each item, pricing and promotion data, payment and logistics info.\r\n\r\nThis request is useful whenever you need to know the availability of fulfilling an order for a specific cart setting, since the API response will let you know the updated price, inventory and shipping data.\r\n\r\n>⚠️ The fields (`sku id`, `quantity`, `seller`, `country`, `postalCode` and `geoCoordinates`) are just examples of content that you can simulate in your cart. You can add more fields to the request as per your need. Access the [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) guide to check the available fields.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [authentication](https://developers.vtex.com/docs/guides/authentication) or [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CartSimulation", + "security": [], + "parameters": [ + { + "name": "RnbBehavior", + "in": "query", + "description": "This parameter defines which promotions apply to the simulation. Use `0` for simulations at cart stage, which means all promotions apply. In case of window simulation use `1`, which indicates promotions that apply nominal discounts over the total purchase value shouldn't be considered on the simulation.\n\r\n\rNote that if this not sent, the parameter is `1`.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 0 + } + }, + { + "name": "sc", + "in": "query", + "description": "Trade Policy (Sales Channel) identification.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "Array containing information about the SKUs inside the cart to be simulated.", + "items": { + "type": "object", + "description": "SKU information.", + "required": [ + "id", + "quantity", + "seller" + ], + "properties": { + "id": { + "type": "string", + "description": "The SKU ID.", + "example": "1" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "The quantity of items of this specific SKU in the cart to be simulated.", + "example": 1 + }, + "seller": { + "type": "string", + "description": "The ID of the seller responsible for this SKU. This ID can be found in your VTEX Admin.", + "example": "1" + } + } + } + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address. This value must be sent along with the `postalCode` or `geoCoordinates` values.", + "example": "BRA" + }, + "postalCode": { + "type": "string", + "description": "Postal code.", + "example": "12345-000" + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "example": [ + -47.924747467041016, + -15.832582473754883 + ], + "items": { + "description": "Geocoordinates.", + "type": "number", + "example": -47.924747467041016 + } + } + } + }, + "example": { + "items": [ + { + "id": "12345", + "quantity": 2, + "seller": "1" + }, + { + "id": "67890", + "quantity": 1, + "seller": "2" + } + ], + "country": "BRA", + "postalCode": "12345-000", + "geoCoordinates": [ + -47.924747, + -15.832582 + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "Information on each item in the cart.", + "items": { + "type": "object", + "description": "Object containing information of the item.", + "properties": { + "id": { + "type": "string", + "description": "ID of the item." + }, + "requestIndex": { + "type": "integer", + "description": "Request index information." + }, + "quantity": { + "type": "integer", + "description": "The quantity of the item the cart." + }, + "seller": { + "type": "string", + "description": "The seller responsible for the SKU." + }, + "sellerChain": { + "type": "array", + "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", + "items": { + "type": "string", + "description": "Seller." + } + }, + "tax": { + "type": "integer", + "description": "Tax value in cents." + }, + "taxCode": { + "type": "string", + "description": "A unique identifier code assigned to a tax within the VTEX Admin." + }, + "priceValidUntil": { + "type": "string", + "description": "Price expiration date and time." + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "rewardValue": { + "type": "integer", + "description": "Reward value in cents." + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." + }, + "offerings": { + "type": "array", + "description": "Array containing offering information of SKU service. A service is an item that may come with a product, optionally and with cost. It is used to assign a value of an additional service itself to an SKU.", + "items": { + "type": "object", + "description": "Service general information.", + "properties": { + "type": { + "type": "string", + "description": "Service type." + }, + "id": { + "type": "string", + "description": "Service type ID." + }, + "name": { + "type": "string", + "description": "Name of the service type." + }, + "allowGiftMessage": { + "type": "boolean", + "description": "Option to display the service type on the gift card." + }, + "attachmentOfferings": { + "type": "array", + "description": "List of attachments details.", + "nullable": true, + "items": { + "description": "Attachment details.", + "type": "object", + "required": [ + "name", + "required", + "schema" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the attachment.", + "nullable": true + }, + "required": { + "type": "boolean", + "description": "Defines if the attachment is required (`true`) or not (`false`).", + "nullable": true + }, + "schema": { + "type": "object", + "description": "Custom values [created into attachment](https://help.vtex.com/en/tutorial/adding-an-attachment--7zHMUpuoQE4cAskqEUWScU).", + "nullable": true + } + } + } + }, + "price": { + "type": "integer", + "description": "Service type price." + } + } + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags, each of which, modifies the price in some way, like discounts or taxes that apply to the item in the context of the order.", + "items": { + "description": "Price tag information.", + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Promotion unique identifier.", + "nullable": true + }, + "isPercentual": { + "type": "boolean", + "description": "Indicates whether the `value` and `rawValue` of the price tag represent a percentage to be applied during checkout calculation. The default value is `false`. When set to `true`, the `value` and `rawValue` fields are interpreted as percentages, and the final price is calculated accordingly." + }, + "name": { + "type": "string", + "description": "Price tag name in the format: `{type}@{where}-{identifier}#{calculationId}`. Where:\r\n- `type` indicates whether the tag refers to a discount or tax.\r\n- `where` specifies the context, either price or shipping.\r\n- `identifier` is the promotion ID.\r\n- `calculationId` is a hash that may vary with each price calculation." + }, + "rawValue": { + "type": "number", + "description": "Raw price tag value with up to five decimals, sourced from the promotion configuration. This value is informational only and is not used in checkout calculations." + }, + "value": { + "type": "integer", + "description": "Price tag value representing either a promotion (value decrease) or a tax (value increase)." + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit." + }, + "unitMultiplier": { + "type": "integer", + "description": "Unit multiplier." + }, + "parentItemIndex": { + "type": "integer", + "description": "Parent item index.", + "nullable": true + }, + "parentAssemblyBinding": { + "type": "string", + "description": "Parent assembly binding.", + "nullable": true + }, + "availability": { + "type": "string", + "description": "Availability." + }, + "priceDefinition": { + "type": "object", + "description": "Price information for all units of a specific item.", + "properties": { + "calculatedSellingPrice": { + "type": "integer", + "description": "Item's calculated unitary selling price in cents." + }, + "total": { + "type": "integer", + "description": "Total value for all units of the item in cents." + }, + "sellingPrices": { + "type": "array", + "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", + "items": { + "type": "object", + "description": "Item value and rounding quantity.", + "properties": { + "value": { + "type": "integer", + "description": "Value in cents for that specific rounding." + }, + "quantity": { + "type": "integer", + "description": "Rounding quantity, meaning how many items are rounded to this value." + } + } + } + } + } + } + } + } + }, + "ratesAndBenefitsData": { + "type": "object", + "description": "Information on pricing and promotions that apply to the order.", + "properties": { + "rateAndBenefitsIdentifiers": { + "type": "array", + "description": "List with pricing and promotions identifiers.", + "items": { + "type": "string", + "description": "Promotion identifier." + } + }, + "teaser": { + "type": "array", + "description": "List with pricing and promotions teaser.", + "items": { + "type": "string", + "description": "Promotion teaser." + } + } + } + }, + "paymentData": { + "type": "object", + "description": "Payment data information.", + "properties": { + "installmentOptions": { + "type": "array", + "description": "List of Installment options.", + "items": { + "type": "object", + "description": "Information about the installment option.", + "properties": { + "paymentSystem": { + "type": "integer", + "description": "Payment system identification." + }, + "bin": { + "type": "string", + "description": "Card bin.", + "nullable": true + }, + "paymentName": { + "type": "string", + "description": "Payment name.", + "nullable": true + }, + "paymentGroupName": { + "type": "string", + "description": "Payment group name.", + "nullable": true + }, + "value": { + "type": "integer", + "description": "Total value assigned to this payment." + }, + "installments": { + "type": "array", + "description": "Installment information.", + "items": { + "type": "object", + "description": "Installment information.", + "properties": { + "count": { + "type": "integer", + "description": "Count information." + }, + "hasInterestRate": { + "type": "boolean", + "description": "Indicates whether the payment has interest." + }, + "interestRate": { + "type": "integer", + "description": "Interest rate value." + }, + "value": { + "type": "integer", + "description": "Value of the order without the interest rate. The value is shown without separating cents." + }, + "total": { + "type": "integer", + "description": "Total value of the order without separating cents. For example, $24.99 is represented `2499`." + }, + "sellerMerchantInstallments": { + "type": "array", + "description": "Seller merchant installments information.", + "items": { + "type": "object", + "description": "Installment information." + } + } + } + } + } + } + } + }, + "paymentSystems": { + "type": "array", + "description": "Information on payment systems.", + "items": { + "type": "object", + "description": "Payment system information.", + "properties": { + "id": { + "type": "integer", + "description": "Payment system ID." + }, + "name": { + "type": "string", + "description": "Payment system name." + }, + "groupName": { + "type": "string", + "description": "Payment group name." + }, + "validator": { + "type": "object", + "description": "Payment system validator.", + "nullable": true + }, + "stringId": { + "type": "string", + "description": "String ID." + }, + "template": { + "type": "string", + "description": "Template." + }, + "requiresDocument": { + "type": "boolean", + "description": "Indicates whether a document is required." + }, + "displayDocument": { + "type": "boolean", + "description": "Indicates whether a document is shown." + }, + "isCustom": { + "type": "boolean", + "description": "Indicates whether it is custom." + }, + "description": { + "type": "string", + "description": "Description." + }, + "requiresAuthentication": { + "type": "boolean", + "description": "Indicates whether a authentication is required." + }, + "dueDate": { + "type": "string", + "description": "Payment due date." + }, + "availablePayments": { + "type": "string", + "description": "Availability of payment.", + "nullable": true + } + } + } + }, + "payments": { + "type": "array", + "description": "Array with information on each payment chosen by the shopper.", + "items": { + "type": "object", + "description": "Payment information.", + "properties": { + "paymentSystem": { + "type": "integer", + "description": "Payment system ID." + }, + "paymentSystemName": { + "type": "string", + "description": "Payment system name." + }, + "group": { + "type": "string", + "description": "Payment system group." + }, + "installments": { + "type": "integer", + "description": "Selected number of installments." + }, + "installmentsInterestRate": { + "type": "number", + "description": "Installments' interest rate." + }, + "installmentsValue": { + "type": "integer", + "description": "Value of the installments." + }, + "value": { + "type": "integer", + "description": "Total value assigned to this payment." + }, + "referenceValue": { + "type": "integer", + "description": "Reference value used to calculate total order value with interest." + }, + "hasDefaultBillingAddress": { + "type": "boolean", + "description": "Indicates whether billing address for this payment is the default address." + } + } + } + }, + "giftCards": { + "type": "array", + "description": "Gift card information, if it applies to the order.", + "items": { + "type": "string", + "description": "Gift card." + } + }, + "giftCardMessages": { + "type": "array", + "description": "Array of gift card messages.", + "items": { + "type": "string", + "description": "Gift card message." + } + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts.", + "items": { + "type": "string", + "description": "Available account." + } + }, + "availableTokens": { + "type": "array", + "description": "Available tokens.", + "items": { + "type": "string", + "description": "Available token." + } + }, + "availableAssociations": { + "type": "object", + "description": "Available associations." + } + } + }, + "selectableGifts": { + "type": "array", + "description": "Array containing the data of the items selected as a gift.", + "items": { + "type": "string", + "description": "Selected gift item." + } + }, + "marketingData": { + "type": "object", + "description": "Object containing promotion data such as coupon tracking information and internal or external UTMs.", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code.", + "nullable": true + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "logisticsInfo": { + "type": "array", + "description": "Array with logistics information on each item of the `items` array in the `orderForm`.", + "items": { + "description": "Logistics information of a item.", + "type": "object", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index of item in items array." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "selectedSla": { + "type": "string", + "description": "Selected SLA. For example, `\"normal\"` or `\"express\"`. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`.", + "nullable": true + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Delivery channel selected by the customer. For example, `\"delivery\"` or `\"pickup-in-point\"`.", + "nullable": true + }, + "quantity": { + "type": "integer", + "description": "Quantity." + }, + "shipsTo": { + "type": "array", + "description": "List of countries that the item may be shipped to.", + "items": { + "type": "string", + "description": "Country that the item may be shipped to." + } + }, + "slas": { + "type": "array", + "description": "Information on available SLAs.", + "items": { + "description": "SLA information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SLA ID. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`." + }, + "deliveryChannel": { + "type": "string", + "description": "Delivery channel." + }, + "name": { + "type": "string", + "description": "SLA name. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, the value of this field will show the specific delivery option name selected for this SLA, as the example `Delivery | BRA | Up to 30 hours`." + }, + "deliveryIds": { + "type": "array", + "description": "Information on each delivery ID.", + "items": { + "type": "object", + "description": "Object with delivery infomation.", + "properties": { + "courierId": { + "type": "string", + "description": "Courier ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "dockId": { + "type": "string", + "description": "Warehouse ID." + }, + "courierName": { + "type": "string", + "description": "Courier name." + }, + "quantity": { + "type": "integer", + "description": "Quantity." + } + } + } + }, + "attachmentOfferings": { + "type": "array", + "description": "List of attachments details.", + "nullable": true, + "items": { + "description": "Attachment details.", + "type": "object", + "required": [ + "name", + "required", + "schema" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the attachment.", + "nullable": true + }, + "required": { + "type": "boolean", + "description": "Defines if the attachment is required (`true`) or not (`false`).", + "nullable": true + }, + "schema": { + "type": "object", + "description": "Custom values [created into attachment](https://help.vtex.com/en/tutorial/adding-an-attachment--7zHMUpuoQE4cAskqEUWScU).", + "nullable": true + } + } + } + }, + "shippingEstimate": { + "type": "string", + "description": "Shipping estimate. For instance, \"three business days\" will be represented as `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", + "nullable": true + }, + "useIndividualShippingEstimates": { + "type": "boolean", + "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`." + }, + "lockTTL": { + "type": "string", + "description": "Estimate date of delivery.", + "nullable": true + }, + "availableDeliveryWindows": { + "type": "object", + "description": "This object contains information about the delivery window available to the shopper.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting day and time in UTC." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending day and time in UTC." + }, + "price": { + "type": "integer", + "description": "Delivery window price." + }, + "lisPrice": { + "type": "integer", + "description": "Delivery window list price." + }, + "tax": { + "type": "integer", + "description": "Delivery window tax." + } + } + }, + "deliveryWindow": { + "type": "object", + "description": "In case of scheduled delivery, this object will contain information on the delivery window selected by the shopper.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting day and time in UTC." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending day and time in UTC." + }, + "price": { + "type": "integer", + "description": "Delivery window price." + }, + "lisPrice": { + "type": "integer", + "description": "Delivery window list price." + }, + "tax": { + "type": "integer", + "description": "Delivery window tax." + } + } + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "tax": { + "type": "integer", + "description": "Tax in cents." + }, + "pickupStoreInfo": { + "type": "object", + "description": "Information on the pickup store.", + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Indicates whether it is the pickup store." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Address information.", + "nullable": true + }, + "additionalInfo": { + "type": "string", + "description": "Additional information.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "Corresponding dock ID.", + "nullable": true + } + } + }, + "pickupPointId": { + "type": "string", + "description": "Pickup point ID.", + "nullable": true + }, + "pickupDistance": { + "type": "integer", + "description": "Pickup point distance." + }, + "polygonName": { + "type": "string", + "description": "Polygon name.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Transit time. For instance, \"three business days\" is represented as `3bd`." + } + } + } + }, + "deliveryChannels": { + "type": "array", + "description": "List of available delivery channels.", + "items": { + "type": "object", + "description": "Object containing delivery channel ID.", + "properties": { + "id": { + "type": "string", + "description": "Delivery channel ID." + } + } + } + }, + "messages": { + "type": "array", + "description": "Array containing an object for each message generated by our servers while processing the request.", + "items": { + "type": "string", + "description": "Message." + } + }, + "purchaseConditions": { + "type": "object", + "description": "Purchase conditions information.", + "properties": { + "itemPurchaseConditions": { + "type": "array", + "description": "List of objects containing purchase condition information on each item in the order.", + "items": { + "type": "object", + "description": "Purchase condition information.", + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "sellerChain": { + "type": "array", + "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", + "items": { + "type": "string", + "description": "Seller ID." + } + }, + "slas": { + "type": "array", + "description": "Information on available SLAs.", + "items": { + "type": "object", + "description": "SLA information.", + "properties": { + "id": { + "type": "string", + "description": "SLA ID. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`." + }, + "deliveryChannel": { + "type": "string", + "description": "Delivery channel." + }, + "name": { + "type": "string", + "description": "SLA name. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, the value of this field will show the specific delivery option name selected for this SLA, as the example `Delivery | BRA | Up to 30 hours`." + }, + "deliveryIds": { + "type": "array", + "description": "Information on each delivery ID.", + "items": { + "type": "object", + "description": "Object with delivery inforamtion.", + "properties": { + "courierId": { + "type": "string", + "description": "Courier ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "dockId": { + "type": "string", + "description": "Warehouse ID." + }, + "courierName": { + "type": "string", + "description": "Courier name." + }, + "quantity": { + "type": "integer", + "description": "Quantity." + } + } + } + }, + "attachmentOfferings": { + "type": "array", + "description": "List of attachments details.", + "nullable": true, + "items": { + "description": "Attachment details.", + "type": "object", + "required": [ + "name", + "required", + "schema" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the attachment. Ex. `vtex.subscription.weekly`.", + "nullable": true + }, + "required": { + "type": "boolean", + "description": "Defines if the attachment is required (`true`) or not (`false`).", + "nullable": true + }, + "schema": { + "type": "object", + "description": "Custom values [created into attachment](https://help.vtex.com/en/tutorial/adding-an-attachment--7zHMUpuoQE4cAskqEUWScU).", + "nullable": true + } + } + } + }, + "shippingEstimate": { + "type": "string", + "description": "Shipping estimate. For instance, \"three business days\" will be represented as `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", + "nullable": true + }, + "useIndividualShippingEstimates": { + "type": "boolean", + "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`." + }, + "lockTTL": { + "type": "string", + "description": "Estimate date of delivery.", + "nullable": true + }, + "availableDeliveryWindows": { + "type": "object", + "description": "This object contains information about the delivery window available to the shopper.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting day and time in UTC." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending day and time in UTC." + }, + "price": { + "type": "integer", + "description": "Delivery window price." + }, + "lisPrice": { + "type": "integer", + "description": "Delivery window list price." + }, + "tax": { + "type": "integer", + "description": "Delivery window tax." + } + } + }, + "deliveryWindow": { + "type": "object", + "description": "In case of scheduled delivery, this object will contain information on the delivery window selected by the shopper.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting day and time in UTC." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending day and time in UTC." + }, + "price": { + "type": "integer", + "description": "Delivery window price." + }, + "lisPrice": { + "type": "integer", + "description": "Delivery window list price." + }, + "tax": { + "type": "integer", + "description": "Delivery window tax." + } + } + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "tax": { + "type": "integer", + "description": "Tax in cents." + }, + "pickupStoreInfo": { + "type": "object", + "description": "Information on the pickup store.", + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Indicates whether it is the pickup store." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Address information.", + "nullable": true + }, + "additionalInfo": { + "type": "string", + "description": "Additional information.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "Corresponding dock ID.", + "nullable": true + } + } + }, + "pickupPointId": { + "type": "string", + "description": "Pickup point ID.", + "nullable": true + }, + "pickupDistance": { + "type": "integer", + "description": "Pickup point distance." + }, + "polygonName": { + "type": "string", + "description": "Polygon name.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Transit time. For instance, \"three business days\" is represented as `3bd`." + } + } + } + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + } + } + } + } + } + }, + "pickupPoints": { + "type": "array", + "description": "Array containing pickup points information.", + "items": { + "type": "string", + "description": "Pickup points." + } + }, + "subscriptionData": { + "type": "object", + "description": "Subscription information.", + "nullable": true + }, + "totals": { + "type": "array", + "description": "Information on order totals.", + "items": { + "type": "object", + "description": "Order information.", + "properties": { + "id": { + "type": "string", + "description": "Total ID." + }, + "name": { + "type": "string", + "description": "Total name." + }, + "value": { + "type": "integer", + "description": "Total value." + } + } + } + }, + "itemMetadata": { + "type": "object", + "description": "Item metadata.", + "properties": { + "items": { + "type": "array", + "description": "List of objects containing metadata on each item in the order.", + "items": { + "type": "object", + "description": "Object containing item metadata.", + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "assemblyOptions": { + "type": "array", + "description": "Assembly options information.", + "items": { + "type": "string", + "description": "Assembly option.", + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart." + }, + "name": { + "type": "string", + "description": "Item name." + }, + "required": { + "type": "boolean", + "description": "Indicates whether the item is required." + }, + "inputValues": { + "type": "object", + "description": "Input values information." + }, + "composition": { + "type": "string", + "description": "Composition information.", + "nullable": true + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "example": { + "items": [ + { + "id": "1", + "requestIndex": 0, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "tax": 0, + "taxCode": "54WC8ZN6K8", + "priceValidUntil": "2023-07-12T11:49:01Z", + "price": 9999, + "listPrice": 9999, + "rewardValue": 0, + "sellingPrice": 2999700, + "offerings": [ + { + "type": "removal of additional old appliance", + "id": "1", + "name": "removal of additional old appliance", + "allowGiftMessage": false, + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "price": 2999 + } + ], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c" + } + ], + "measurementUnit": "un", + "unitMultiplier": 300, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "availability": "available", + "priceDefinition": { + "calculatedSellingPrice": 2999700, + "total": 2999700, + "sellingPrices": [ + { + "value": 2999700, + "quantity": 1 + } + ] + } + } + ], + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "paymentData": { + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 2999700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 2999700, + "total": 2999700, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 2999700, + "total": 2999700 + } + ] + } + ] + }, + { + "paymentSystem": 6, + "bin": null, + "paymentName": "Boleto Bancário", + "paymentGroupName": "bankInvoicePaymentGroup", + "value": 2999700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 2999700, + "total": 2999700, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 2999700, + "total": 2999700 + } + ] + } + ] + }, + { + "paymentSystem": 127, + "bin": null, + "paymentName": "MercadoPagoPro", + "paymentGroupName": "MercadoPagoProPaymentGroup", + "value": 2999700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 2999700, + "total": 2999700, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 2999700, + "total": 2999700 + } + ] + } + ] + }, + { + "paymentSystem": 202, + "bin": null, + "paymentName": "Dinheiro", + "paymentGroupName": "custom202PaymentGroupPaymentGroup", + "value": 2999700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 2999700, + "total": 2999700, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 2999700, + "total": 2999700 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 202, + "name": "Dinheiro", + "groupName": "custom202PaymentGroupPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "202", + "template": "custom202PaymentGroupPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": true, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2022-07-22T11:39:36.37197Z", + "availablePayments": null + }, + { + "id": 6, + "name": "Boleto Bancário", + "groupName": "bankInvoicePaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "6", + "template": "bankInvoicePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2022-07-19T11:39:36.37197Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2022-07-19T11:39:36.37197Z", + "availablePayments": null + }, + { + "id": 127, + "name": "MercadoPagoPro", + "groupName": "MercadoPagoProPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "127", + "template": "MercadoPagoProPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2022-07-19T11:39:36.37197Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [], + "availableAssociations": {} + }, + "selectableGifts": [], + "marketingData": { + "utmSource": "app", + "utmMedium": "CPC", + "utmCampaign": "Black friday", + "utmipage": "true", + "utmiPart": "true", + "utmiCampaign": "true", + "coupon": "blackfriday", + "marketingTags": [ + "tag1", + "tag2" + ] + }, + "country": "BRA", + "postalCode": "12345-000", + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ], + "logisticsInfo": [ + { + "itemIndex": 0, + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "quantity": 1, + "shipsTo": [ + "BRA" + ], + "slas": [ + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "10d", + "availableDeliveryWindows": { + "startDateUtc": "2024-03-27T00:00:00+00:00", + "endDateUtc": "2024-03-27T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + "deliveryWindow": { + "startDateUtc": "2014-04-21T09:00:00+00:00", + "endDateUtc": "2014-04-21T12:00:00+00:00", + "price": 0, + "listprice": 1000, + "tax": 0 + }, + "price": 1500, + "listPrice": 1500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": null, + "transitTime": "3bd" + } + ], + "deliveryChannels": [ + { + "id": "pickup-in-point" + }, + { + "id": "delivery" + } + ] + } + ], + "messages": [], + "purchaseConditions": { + "itemPurchaseConditions": [ + { + "id": "1", + "seller": "1", + "sellerChain": [ + "1" + ], + "slas": [ + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "10d", + "availableDeliveryWindows": { + "startDateUtc": "2024-03-27T00:00:00+00:00", + "endDateUtc": "2024-03-27T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + "deliveryWindow": { + "startDateUtc": "2014-04-21T09:00:00+00:00", + "endDateUtc": "2014-04-21T12:00:00+00:00", + "price": 0, + "listprice": 1000, + "tax": 0 + }, + "price": 1500, + "listPrice": 1500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": null, + "transitTime": "3bd" + } + ], + "price": 9999, + "listPrice": 9999 + } + ] + }, + "pickupPoints": [], + "subscriptionData": null, + "totals": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 2999700 + } + ], + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "assemblyOptions": [ + { + "id": "T-Shirt Customization", + "name": "T-Shirt Customization", + "required": false, + "inputValues": { + "T-Shirt Name": { + "maximumNumberOfCharacters": 2, + "domain": [ + "[]" + ] + } + }, + "composition": null + } + ] + } + ] + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm": { + "get": { + "tags": [ + "Shopping cart" + ], + "summary": "Get current or create a new cart", + "description": "You can use this request to get your current shopping cart information (`orderFormId`) or to create a new cart.\r\n\r\n**Important**: To create a new empty shopping cart you need to send this request with the query param `forceNewCart=true`.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` obtained in response is the identification code of the newly created cart.\n\r\n\r> This request has a time out of 45 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "CreateANewCart", + "security": [], + "parameters": [ + { + "name": "forceNewCart", + "in": "query", + "description": "Use this query parameter to create a new empty shopping cart.", + "required": false, + "style": "form", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "orderFormId": "9ceee0fde6db489fbc682a0e2ab13a86", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 0, + "messages": [], + "items": [], + "selectableGifts": [], + "totalizers": [], + "shippingData": null, + "clientProfileData": { + "email": "clark.kent@examplemail.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5500123456789", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "installmentOptions": [], + "paymentSystems": [], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + }, + "schema": { + "$ref": "#/components/schemas/orderForm" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}": { + "get": { + "tags": [ + "Shopping cart" + ], + "summary": "Get cart information by ID", + "description": "Retrieves all information associated to a given shopping cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 45 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | Checkout | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetCartInformationById", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm corresponding to the cart whose information you want to retrieve.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "name": "refreshOutdatedData", + "in": "query", + "description": "It is possible to use the [Update cart items request](https://developers.vtex.com/vtex-rest-api/reference/cart-update#itemsupdate) so as to allow outdated information in the `orderForm`, which may improve performance in some cases. To guarantee that all cart information is updated, send this request with this parameter as `true`. We recommend doing this in the final stages of the shopping experience, starting from the checkout page.", + "required": false, + "style": "form", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 15000, + "messages": [], + "items": [ + { + "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C", + "id": "1", + "productId": "1", + "productRefId": "1", + "refId": "0001", + "ean": "123456789", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2021-02-27T14:59:00.8288784Z", + "tax": 0, + "taxCode": "54WC8ZN6K8", + "price": 15000, + "listPrice": 30000, + "manualPrice": null, + "sellingPrice": 15000, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "brandName": "Royal Canin", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/10/", + "productCategories": { + "1": "Alimentação", + "10": "Ração Seca" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c" + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 15000 + } + ], + "shippingData": { + "address": null, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "slas": [], + "shipsTo": [ + "BRA" + ], + "itemId": "1", + "deliveryChannels": [ + { + "id": "pickup-in-point" + }, + { + "id": "delivery" + } + ] + } + ], + "selectedAddresses": [], + "availableAddresses": [], + "pickupPoints": [] + }, + "clientProfileData": { + "email": "clark.kent@examplemail.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5500123456789", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 15000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 15000, + "total": 15000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 15000, + "total": 15000 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 7500, + "total": 15000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 7500, + "total": 15000 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^2[1-8]{17}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-3]{8}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2020-03-05T14:59:00.7879306Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "lojadobreno", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + }, + "schema": { + "$ref": "#/components/schemas/orderForm" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/items/removeAll": { + "post": { + "tags": [ + "Shopping cart" + ], + "summary": "Remove all items from shopping cart", + "description": "This request removes all items from a given cart, leaving it empty.\r\n\r\nYou must send an empty JSON in the body of the request.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\n>ℹ️ Request body must always be sent with empty value \"{ }\" in this endpoint.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Shopping Cart Full Access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "RemoveAllItems", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm corresponding to the cart whose items you want to remove.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "This object must be empty.", + "default": {} + }, + "example": {} + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 0, + "messages": [], + "items": [], + "selectableGifts": [], + "totalizers": [], + "shippingData": { + "address": null, + "logisticsInfo": [], + "selectedAddresses": [], + "availableAddresses": [], + "pickupPoints": [] + }, + "clientProfileData": { + "email": "john.doe@google.com", + "firstName": "John", + "lastName": "Doe", + "document": "769387308", + "documentType": "dni", + "phone": "+5491111223344", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 15000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 15000, + "total": 15000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 15000, + "total": 15000 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 4, + "name": "Mastercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[5-5])[0-3]{8}|0((2|9)([0-2]{5}))|1(0(5((0|[4-8])[1-7]{6})|([2-3]|[1-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[1-3]{9}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "4", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2020-03-05T14:23:23.8196668Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + } + } + } + } + }, + "deprecated": false + } + }, + "/checkout/changeToAnonymousUser/{orderFormId}": { + "get": { + "tags": [ + "Shopping cart" + ], + "summary": "Remove all personal data from shopping cart", + "description": "This call removes all user information, making a cart anonymous while leaving the items.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure that represents a shopping cart and contains all information about it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\nThis call works by creating a new orderForm, setting a new cookie, and returning a redirect 302 to the cart URL (`/checkout/#/orderform`).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Removeallpersonaldata", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm corresponding to the cart whose user's personal data you want to remove.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "object", + "description": "Empty object." + }, + "example": {} + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/items/update": { + "post": { + "tags": [ + "Shopping cart" + ], + "summary": "Update cart items", + "description": "You can use this request to:\n\r\n\r1. Change the quantity of one or more items in a specific cart.\n\r2. Remove an item from the cart (by sending the `quantity` value = `0` in the request body).\r\n\r\n>ℹ️ To remove all items from the cart at the same time, use the [Remove all items](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/items/removeAll?endpoint=post-/api/checkout/pub/orderForm/-orderFormId-/items/removeAll) endpoint.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure that represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 45 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "ItemsUpdate", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the `orderForm` corresponding to the cart whose items you want to update.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "name": "allowedOutdatedData", + "in": "query", + "description": "In order to optimize performance, this parameter allows some information to not be updated when there are changes in the minicart. For instance, if a shopper adds another unit of a given SKU to the cart, it may not be necessary to recalculate payment information, which could impact performance.\n\r\n\rThis array accepts strings and currently the only possible value is `”paymentData”`.", + "required": false, + "style": "form", + "schema": { + "type": "array", + "example": [ + "paymentData" + ], + "items": { + "type": "string", + "description": "Information that will not be updated when there are changes in the minicart." + } + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "orderItems": { + "type": "array", + "description": "Array containing the cart items. Each object inside this array corresponds to a different item.", + "items": { + "type": "object", + "description": "Cart item information.", + "properties": { + "quantity": { + "type": "integer", + "format": "int32", + "description": "The quantity of the item in the cart.", + "example": 3 + }, + "index": { + "type": "integer", + "description": "The position of the item in the array.", + "example": 0 + } + } + } + } + } + }, + "example": { + "orderItems": [ + { + "quantity": 3, + "index": 0 + }, + { + "quantity": 1, + "index": 1 + }, + { + "quantity": 2, + "index": 2 + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "profileProvider": "VTEX", + "availableAccounts": [], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "userType": "User type", + "ignoreProfileData": false, + "value": 34390, + "messages": [], + "items": [ + { + "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", + "id": "2", + "productId": "2", + "productRefId": "1", + "refId": "CBC30L", + "ean": null, + "name": "Chopp Brahma Claro 30L", + "skuName": "Chopp Brahma Claro 30L", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2022-07-13T18:30:46Z", + "tax": 0, + "taxCode": "54WC8ZN6K8", + "price": 32890, + "listPrice": 49900, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 32890, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brahma", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Bebidas" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-brahma-claro-30l/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c" + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 32890, + "total": 32890, + "sellingPrices": [ + { + "value": 32890, + "quantity": 1 + } + ] + } + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 15000 + } + ], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "teste", + "slas": [ + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "10d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1500, + "listPrice": 1500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": null, + "transitTime": "3bd" + } + ], + "shipsTo": [ + "BRA", + "COL", + "USA" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "pickupPoints": [] + }, + "clientProfileData": { + "email": "clark.kent@example.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5521998765432", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 15000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 15000, + "total": 15000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 15000, + "total": 15000 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 7500, + "total": 15000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 7500, + "total": 15000 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^2[1-8]{17}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-3]{8}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2020-03-05T14:59:00.7879306Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": { + "coupon": "free-shipping", + "utmSource": "app", + "utmMedium": "CPC", + "utmCampaign": "Black friday", + "utmipage": null, + "utmiPart": null, + "utmiCampaign": null + }, + "sellers": [ + { + "id": "1", + "name": "lojadobreno", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": false + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymboupdate cartl": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/items": { + "post": { + "tags": [ + "Shopping cart" + ], + "summary": "Add cart items", + "description": "Use this request to add a new item to the shopping cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 45 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Items", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm corresponding to the cart in which the new item will be added.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "name": "allowedOutdatedData", + "in": "query", + "description": "In order to optimize performance, this parameter allows some information to not be updated when there are changes in the minicart. For instance, if a shopper adds another unit of a given SKU to the cart, it may not be necessary to recalculate payment information, which could impact performance.\n\r\n\rThis array accepts strings and currently the only possible value is `”paymentData”`.", + "required": false, + "style": "form", + "schema": { + "type": "array", + "example": [ + "paymentData" + ], + "items": { + "type": "string", + "description": "Information that will not be updated when there are changes in the minicart." + } + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "orderItems": { + "type": "array", + "description": "Array containing the cart items. Each object inside this array corresponds to a different item.", + "items": { + "required": [ + "quantity", + "seller", + "id", + "index" + ], + "type": "object", + "description": "Cart item information", + "properties": { + "quantity": { + "type": "integer", + "format": "int32", + "description": "The quantity of the item (SKU) in the cart.", + "example": 3 + }, + "seller": { + "type": "string", + "description": "The seller responsible for the SKU.", + "example": "1" + }, + "id": { + "type": "string", + "description": "The ID of the SKU in VTEX platform.", + "example": "2005" + }, + "index": { + "type": "integer", + "description": "The position of the item in the array.", + "example": 0 + }, + "price": { + "type": "integer", + "description": "Price of the item in cents. Send this value in case you want to make a bulk price change.", + "example": 1099 + } + } + } + } + } + }, + "example": { + "orderItems": [ + { + "quantity": 3, + "seller": "1", + "id": "2005", + "index": 0, + "price": 1099 + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "profileProvider": "VTEX", + "availableAccounts": [], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "userType": "User type", + "ignoreProfileData": false, + "value": 34390, + "messages": [], + "items": [ + { + "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", + "id": "2", + "productId": "2005", + "productRefId": "1", + "refId": "CBC30L", + "ean": null, + "name": "Chopp Brahma Claro 30L", + "skuName": "Chopp Brahma Claro 30L", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2022-07-13T18:30:46Z", + "tax": 0, + "taxCode": "54WC8ZN6K8", + "price": 32890, + "listPrice": 49900, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 32890, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brahma", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Bebidas" + }, + "quantity": 3, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-brahma-claro-30l/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c" + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 32890, + "total": 32890, + "sellingPrices": [ + { + "value": 32890, + "quantity": 1 + } + ] + } + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 15000 + } + ], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "teste", + "slas": [ + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "10d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1500, + "listPrice": 1500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": null, + "transitTime": "3bd" + } + ], + "shipsTo": [ + "BRA", + "COL", + "USA" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "pickupPoints": [] + }, + "clientProfileData": { + "email": "clark.kent@example.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5521998765432", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 15000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 15000, + "total": 15000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 15000, + "total": 15000 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 7500, + "total": 15000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 7500, + "total": 15000 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^2[1-8]{17}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-3]{8}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2020-03-05T14:59:00.7879306Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": { + "coupon": "free-shipping", + "utmSource": "app", + "utmMedium": "CPC", + "utmCampaign": "Black friday", + "utmipage": null, + "utmiPart": null, + "utmiCampaign": null + }, + "sellers": [ + { + "id": "1", + "name": "lojadobreno", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": false + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymboupdate cartl": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + } + } + } + } + }, + "deprecated": false + }, + "patch": { + "tags": [ + "Shopping cart" + ], + "summary": "Handle cart items", + "description": "You can use this request to:\n\r\n\r1. Change the quantity or price of one or more items to the shopping cart.\n\r2. Add a new item to the shopping cart.\r\n\r\n**Important**: To add a new item to the shopping cart, do not send the string `index` in the request body.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure that represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 45 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "ItemsHandle", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm corresponding to the cart in which items will be handled.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "orderItems": { + "type": "array", + "description": "Array containing the cart items. Each object inside this array corresponds to a different item.", + "items": { + "required": [ + "id", + "quantity", + "seller" + ], + "type": "object", + "description": "Cart item information.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the SKU in VTEX platform.", + "example": "2005" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "The quantity of the item (SKU) in the cart.", + "example": 3 + }, + "seller": { + "type": "string", + "description": "The seller responsible for the SKU.", + "example": "1" + }, + "index": { + "type": "integer", + "description": "The position of the item in the array. This string should be sent only to modify price or quantity of an item. NOTE: This string should not be sent when you are adding a new item to the cart.", + "example": 0 + }, + "price": { + "type": "integer", + "description": "Price of the item in cents. Send this value in case you want to make a bulk price change.", + "example": 1099 + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "type": "object", + "description": "Attachment information.", + "properties": { + "name": { + "type": "string", + "description": "Attachment identification.", + "example": "Packages" + }, + "content": { + "type": "object", + "description": "Attachment content data. E.g. `\"Do you want to receive packages?\": \"Yes\"`.", + "nullable": true, + "properties": { + "content": { + "type": "string", + "description": "Content referring to the customization requested by the customer.", + "example": "content-example" + } + } + } + } + } + }, + "noSplitItem": { + "type": "boolean", + "description": "Indicates whether the item can be splitted.", + "example": false + }, + "allowedOutdatedData": { + "type": "array", + "description": "In order to optimize performance, this parameter allows some information to not be updated when there are changes in the minicart. For instance, if a shopper adds another unit of a given SKU to the cart, it may not be necessary to recalculate payment information, which could impact performance. This array accepts strings and currently the only possible value is `\"paymentData\"`.", + "items": { + "type": "string", + "description": "String that allows some information to not be updated when there are changes in the minicart.", + "example": "paymentData" + } + } + } + } + } + } + }, + "example": { + "orderItems": [ + { + "id": "2005", + "quantity": 3, + "seller": "1", + "index": 0, + "price": 1099, + "attachments": [ + { + "name": "Packages", + "content": { + "content": "content-example" + } + } + ], + "noSplitItem": false, + "allowedOutdatedData": [ + "paymentData" + ] + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "profileProvider": "VTEX", + "availableAccounts": [], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "userType": "User type", + "ignoreProfileData": false, + "value": 34390, + "messages": [], + "items": [ + { + "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", + "id": "2", + "productId": "2005", + "productRefId": "1", + "refId": "CBC30L", + "ean": null, + "name": "Chopp Brahma Claro 30L", + "skuName": "Chopp Brahma Claro 30L", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2022-07-13T18:30:46Z", + "tax": 0, + "taxCode": "54WC8ZN6K8", + "price": 32890, + "listPrice": 49900, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 32890, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brahma", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Bebidas" + }, + "quantity": 3, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-brahma-claro-30l/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c" + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 32890, + "total": 32890, + "sellingPrices": [ + { + "value": 32890, + "quantity": 1 + } + ] + } + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 15000 + } + ], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "teste", + "slas": [ + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "10d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1500, + "listPrice": 1500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": null, + "transitTime": "3bd" + } + ], + "shipsTo": [ + "BRA", + "COL", + "USA" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "pickupPoints": [] + }, + "clientProfileData": { + "email": "clark.kent@example.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5521998765432", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 15000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 15000, + "total": 15000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 15000, + "total": 15000 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 7500, + "total": 15000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 7500, + "total": 15000 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^2[1-8]{17}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-3]{8}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2020-03-05T14:59:00.7879306Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": { + "coupon": "free-shipping", + "utmSource": "app", + "utmMedium": "CPC", + "utmCampaign": "Black friday", + "utmipage": null, + "utmiPart": null, + "utmiCampaign": null + }, + "sellers": [ + { + "id": "1", + "name": "lojadobreno", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": false + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymboupdate cartl": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/items/{itemIndex}/price": { + "put": { + "tags": [ + "Shopping cart" + ], + "summary": "Change price of an SKU in a cart", + "description": "This request changes the price of an SKU in a cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\rYou need to inform which cart you are referring to, by sending its `orderFormId` and what is the item whose price you want to change, by sending its `itemIndex`.\n\r\n\rYou also need to pass the new price value in the body.\n\r\n\rRemember that, to use this endpoint, the feature of *manual price* must be active. To check if it's active, use the [Get orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pvt/configuration/orderForm) endpoint. To make it active, use the [Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm) endpoint, making the `allowManualPrice` field `true`.\n\r\n\r> Whenever you use this request to change the price of an item, all items in that cart with the same SKU are affected by this change. This applies even to items that share the SKU but have been separated into different objects in the `items` array due to customizations or attachments, for example.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PriceChange", + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm corresponding to the cart whose items will have the price changed.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "name": "itemIndex", + "in": "path", + "description": "The index of the item in the cart. Each cart item is identified by an index, starting in 0.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "0" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PriceChangeRequest" + }, + "example": { + "price": 10000 + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": true, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": true, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 10000, + "messages": [], + "items": [ + { + "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C", + "id": "1", + "productId": "1", + "productRefId": "1", + "refId": "0001", + "ean": "123456789", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2021-02-27T14:59:00.8288784Z", + "tax": 0, + "taxCode": "54WC8ZN6K8", + "price": 15000, + "listPrice": 30000, + "manualPrice": 10000, + "sellingPrice": 10000, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "brandName": "Royal Canin", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/10/", + "productCategories": { + "1": "Alimentação", + "10": "Ração Seca" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": null + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 15000 + }, + { + "id": "Discounts", + "name": "Total dos Descontos", + "value": -5000 + } + ], + "shippingData": { + "address": null, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "slas": [], + "shipsTo": [ + "BRA" + ], + "itemId": "1", + "deliveryChannels": [ + { + "id": "pickup-in-point" + }, + { + "id": "delivery" + } + ] + } + ], + "selectedAddresses": [], + "availableAddresses": [], + "pickupPoints": [] + }, + "clientProfileData": null, + "paymentData": { + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 10000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 10000, + "total": 10000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 10000, + "total": 10000 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 5000, + "total": 10000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 5000, + "total": 10000 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2020-03-05T16:42:31.7836281Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "lojadobreno", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + }, + "schema": { + "$ref": "#/components/schemas/orderForm" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/profile": { + "patch": { + "tags": [ + "Shopping cart" + ], + "summary": "Ignore profile data on checkout", + "description": "When a shopper provides an email address at Checkout, the platform tries to retrieve existing profile information for that email and add it to the shopping cart information. Use this request if you want to change this behavior for a given cart, meaning profile information will not be included in the order automatically.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\nNote that this request will only work if you have not sent the `clientProfileData` to the cart yet. Sending it to a cart that already has a `clientProfileData` should return a status `403 Forbidden` error, with an `Access denied` message.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "IgnoreProfileData", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm corresponding to the cart whose items will have the price changed.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ignoreProfileData": { + "type": "boolean", + "description": "Indicates whether profile data should be ignored.", + "example": false + } + } + }, + "example": { + "ignoreProfileData": true + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "orderFormId": "68b287ae65534704b1a1e42e47c82abc", + "salesChannel": "1", + "loggedIn": true, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": true, + "value": 0, + "messages": [], + "items": [], + "selectableGifts": [], + "totalizers": [], + "shippingData": null, + "clientProfileData": { + "email": "clark.kent@examplemail.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5500123456789", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [], + "paymentSystems": [], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + }, + "schema": { + "$ref": "#/components/schemas/orderForm" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/profiles": { + "get": { + "tags": [ + "Cart attachments" + ], + "summary": "Get client profile by email", + "description": "Retrieves a client's profile information by providing an email address.\n\r\n\rIf the response body fields are empty, the following situations may have occurred:\n\r\n\r1. There is no client registered with the email address provided in your store, or;\n\r2. Client profile is invalid or incomplete. However, you can use the query parameter `ensureComplete=false` to get incomplete profiles. For more information, see [SmartCheckout - Customer information automatic fill-in](https://help.vtex.com/en/tutorial/smartcheckout-customer-information-automatic-fill-in--2Nuu3xAFzdhIzJIldAdtan).\r\n\r\n>⚠️ The authentication of this endpoint can change depending on the customer context. If you are consulting information from a customer with a complete profile on the store, the response will return the customer's data masked. You can only access the customer data with an authenticated request.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Shopping Cart Full Access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Checkout Admin | Shopping Cart Full Access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "GetClientProfileByEmail", + "security": [], + "parameters": [ + { + "name": "email", + "in": "query", + "description": "Client's email address to be searched.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "clark.kent@examplemail.com" + } + }, + { + "name": "ensureComplete", + "in": "query", + "description": "Indicates whether the returned profiles must be complete or not.", + "required": false, + "style": "form", + "schema": { + "type": "boolean", + "example": false + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userProfileId": { + "type": "string", + "description": "Unique ID associated with the customer profile." + }, + "profileProvider": { + "type": "string", + "description": "Profile provider." + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts.", + "items": { + "type": "string", + "description": "Account name." + } + }, + "availableAddresses": { + "type": "array", + "description": "Information on each available address.", + "items": { + "type": "object", + "description": "Address information.", + "properties": { + "addressType": { + "type": "string", + "description": "Address type." + }, + "receiverName": { + "type": "string", + "description": "Name of the receiver." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "city": { + "type": "string", + "description": "City of the address." + }, + "state": { + "type": "string", + "description": "State of the address." + }, + "country": { + "type": "string", + "description": "Country of the address. ISO three-letter code." + }, + "street": { + "type": "string", + "description": "Street of the address." + }, + "number": { + "type": "string", + "description": "Number of the address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the address." + }, + "complement": { + "type": "string", + "description": "Complement to the address.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference that may help in the location of the address.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + } + }, + "userProfile": { + "type": "object", + "description": "Customer profile information.", + "properties": { + "email": { + "type": "string", + "description": "Email address.", + "nullable": true + }, + "firstName": { + "type": "string", + "description": "First name.", + "nullable": true + }, + "lastName": { + "type": "string", + "description": "Last name." + }, + "document": { + "type": "string", + "description": "Document." + }, + "documentType": { + "type": "string", + "description": "Document type." + }, + "phone": { + "type": "string", + "description": "Telephone number." + }, + "corporateName": { + "type": "string", + "description": "Name of the company. Used for corporate clients.", + "nullable": true + }, + "tradeName": { + "type": "string", + "description": "Trade name. Used for corporate clients.", + "nullable": true + }, + "corporateDocument": { + "type": "string", + "description": "Document. Used for corporate clients.", + "nullable": true + }, + "stateInscription": { + "type": "string", + "description": "State inscription. Used for corporate clients.", + "nullable": true + }, + "corporatePhone": { + "type": "string", + "description": "Telephone number. Used for corporate clients.", + "nullable": true + }, + "isCorporate": { + "type": "boolean", + "description": "Indicates whether the client is corporate." + }, + "profileCompleteOnLoading": { + "type": "boolean", + "description": "Profile complete when loading.", + "nullable": true + }, + "profileErrorOnLoading": { + "type": "boolean", + "description": "Profile error when loading.", + "nullable": true + }, + "customerClass": { + "type": "string", + "description": "Customer class.", + "nullable": true + } + } + }, + "isComplete": { + "type": "boolean", + "description": "Indicates whether customer profile is complete." + } + } + }, + "example": { + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "profileProvider": "VTEX", + "availableAccounts": [], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "isDisposable": false, + "postalCode": "12345-000", + "city": "Metropolis", + "state": "NY", + "country": "USA", + "street": "My street", + "number": "123", + "neighborhood": "My neighborhood", + "complement": "Complement", + "reference": "Reference", + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "userProfile": { + "email": "clark.kent@example.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+556199999999", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "isComplete": true + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/attachments/clientProfileData": { + "post": { + "tags": [ + "Cart attachments" + ], + "summary": "Add client profile", + "description": "Use this request to include client profile information to a given shopping cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n>⚠️ The authentication of this endpoint can change depending on the customer context. If you are modifying information from a customer with a complete profile on the store, the response will return the customer's data masked. You can only access the customer data with an authenticated request.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AddClientProfile", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm that will receive client profile information.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Customer's profile information.", + "required": [ + "email", + "firstName", + "lastName", + "documentType", + "document" + ], + "properties": { + "email": { + "type": "string", + "description": "Customer's email address.", + "example": "customer@examplemail.com", + "nullable": true + }, + "firstName": { + "type": "string", + "description": "Customer's first name.", + "example": "first-name", + "nullable": true + }, + "lastName": { + "type": "string", + "description": "Customer's last name.", + "example": "last-name" + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer.", + "example": "cpf" + }, + "document": { + "type": "string", + "description": "Document number informed by the customer.", + "example": "123456789" + }, + "phone": { + "type": "string", + "description": "Customer's phone number.", + "example": "+55110988887777" + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity.", + "example": "company-name" + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity.", + "example": "trade-name" + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity.", + "example": "12345678000100" + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity.", + "example": "12345678" + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity.", + "example": "+551100988887777" + }, + "isCorporate": { + "type": "boolean", + "description": "Set `true` if the customer is a legal entity.", + "example": false + } + } + }, + "example": { + "email": "orders@acmecorp.com", + "firstName": "Jane", + "lastName": "Smith", + "documentType": "cnpj", + "document": "12345678000199", + "phone": "+5511987654321", + "corporateName": "Acme Corporation Ltda", + "tradeName": "Acme Corp", + "corporateDocument": "12345678000199", + "stateInscription": "123456789", + "corporatePhone": "+551122334455", + "isCorporate": true + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "orderFormId": "9ceee0fde6db489fbc809a0e2ab13a86", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 0, + "messages": [], + "items": [], + "selectableGifts": [], + "totalizers": [], + "shippingData": null, + "clientProfileData": { + "email": "clark.kent@examplemail.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "44444444444", + "documentType": "cpf", + "phone": "+5511123456789", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [], + "paymentSystems": [], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + }, + "schema": { + "$ref": "#/components/schemas/orderForm" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/attachments/shippingData": { + "post": { + "tags": [ + "Cart attachments" + ], + "summary": "Add shipping address and select delivery option", + "description": "Use this request to include shipping information and/or selected delivery option to a given shopping cart.\r\n\r\nTo add shipping addresses send the `selectedAddresses` array. For delivery option use the `logisticsInfo` array.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n>⚠️ The authentication of this endpoint can change depending on the customer context. If you are modifying information from a customer with a complete profile on the store, the response will return the customer's data masked. You can only access the customer data with an authenticated request.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AddShippingAddress", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm that will receive client profile information.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "clearAddressIfPostalCodeNotFound": { + "type": "boolean", + "description": "This field should be sent as `false` to prevent the address information from being filled in automatically based on the `postalCode` information.", + "example": false + }, + "selectedAddresses": { + "type": "array", + "description": "List of objects with addresses information.", + "items": { + "type": "object", + "description": "Address information.", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`, among others.", + "example": "residential" + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order.", + "example": "receiver name" + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "example": "c3701fc4c61b4d1b91f67e81415db44d", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal Code.", + "example": "12345-000" + }, + "city": { + "type": "string", + "description": "City of the shipping address.", + "example": "Rio de Janeiro" + }, + "state": { + "type": "string", + "description": "State of the shipping address.", + "example": "RJ" + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address.", + "example": "BRA" + }, + "street": { + "type": "string", + "description": "Street of the shipping address.", + "example": "Praia de Botafogo" + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address.", + "example": "300" + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address.", + "example": "Botafogo" + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address in case it applies.", + "example": "3rd floor", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "example": "Grey building" + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "example": [ + -47.924747467041016, + -15.832582473754883 + ], + "items": { + "type": "number", + "example": -47.924747467041016, + "description": "Geocoordinates." + } + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array with logistics information on each item of the `items` array in the `orderForm`.", + "items": { + "type": "object", + "description": "Logistic information.", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index of item in items array.", + "example": 0 + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Delivery channel selected by the customer. For example, `\"delivery\"` or `\"pickup-in-point\"`.", + "example": "delivery", + "nullable": true + }, + "selectedSla": { + "type": "string", + "description": "Selected SLA. For example, `\"normal\"` or `\"express\"`. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`.", + "example": "normal", + "nullable": true + } + } + } + } + } + }, + "example": { + "clearAddressIfPostalCodeNotFound": false, + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "c3701fc4c61b4d1b91f67e81415db44d", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "ST", + "country": "BRA", + "street": "My street", + "number": "1091", + "neighborhood": "My neighborhood", + "complement": "", + "reference": "", + "geoCoordinates": [] + } + ], + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": null, + "selectedDeliveryChannel": null + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "2f586e50342a4f87b7e0654c56299e88", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 0, + "messages": [], + "items": [], + "selectableGifts": [], + "totalizers": [], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "c3701fc4c61b4d1b91f67e81415db44d", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "ST", + "country": "BRA", + "street": "My street", + "number": "1091", + "neighborhood": "My neighborhood", + "complement": null, + "reference": null, + "geoCoordinates": [] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "f239ad30f8c948a382543ab2c739b967", + "slas": [ + { + "id": "Retirada (VTEXSP)", + "deliveryChannel": "pickup-in-point", + "name": "Retirada (VTEXSP)", + "deliveryIds": [ + { + "courierId": "1ee17c2", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Retira em Loja", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": { + "startDateUtc": "2024-03-27T00:00:00+00:00", + "endDateUtc": "2024-03-27T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + "deliveryWindow": { + "startDateUtc": "2014-04-21T09:00:00+00:00", + "endDateUtc": "2014-04-21T12:00:00+00:00", + "price": 0, + "listprice": 1000, + "tax": 0 + }, + "price": 250, + "listPrice": 250, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "VTEX SP", + "address": { + "addressType": "pickup", + "receiverName": "Clark Kent", + "addressId": "VTEXSP", + "isDisposable": true, + "postalCode": "04538-132", + "city": "São Paulo", + "state": "SP", + "country": "BRA", + "street": "Avenida Brigadeiro Faria Lima", + "number": "4440", + "neighborhood": "Itaim Bibi", + "complement": "Apto 101", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + }, + "additionalInfo": "Additional info", + "dockId": "1" + }, + "pickupPointId": "1_VTEXSP", + "pickupDistance": 15, + "polygonName": null, + "transitTime": "3bd" + } + ], + "shipsTo": [ + "BRA", + "COL", + "USA" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "pickup-in-point" + }, + { + "id": "delivery" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "c3701fc4c61b4d1b91f67e81415db44d", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "ST", + "country": "BRA", + "street": "My street", + "number": "1091", + "neighborhood": "My neighborhood", + "complement": null, + "reference": null, + "geoCoordinates": [] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "ae3173b32bf64663a81fc42b057be211", + "isDisposable": true, + "postalCode": "70386060", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Quadra SQS 116 Bloco F", + "number": "101", + "neighborhood": "Asa Sul", + "complement": null, + "reference": null, + "geoCoordinates": [ + -47.92592239379883, + -15.832707405090332 + ] + }, + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "449dcbe11c5844098fb4545a49cf6e07", + "isDisposable": true, + "postalCode": "00076555", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "My street", + "number": "101", + "neighborhood": "Asa sul", + "complement": null, + "reference": null, + "geoCoordinates": [] + }, + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "c3701fc4c61b4d1b91f67e81415db44d", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "ST", + "country": "BRA", + "street": "My street", + "number": "1091", + "neighborhood": "My neighborhood", + "complement": null, + "reference": null, + "geoCoordinates": [] + } + ], + "pickupPoints": [] + }, + "clientProfileData": { + "email": "clark.kent@example.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5521998765432", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [], + "paymentSystems": [], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": false + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/attachments/clientPreferencesData": { + "post": { + "tags": [ + "Cart attachments" + ], + "summary": "Add client preferences", + "description": "Use this request to include client preferences information to a given shopping cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AddClientPreferences", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm that will receive client profile information.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "locale": { + "type": "string", + "description": "Locale chosen by the shopper. Determines website language.", + "example": "EN" + }, + "optinNewsLetter": { + "type": "boolean", + "description": "Indicates whether the shopper opted in to receive the store's news letter.", + "example": false, + "nullable": true + } + } + }, + "example": { + "locale": "pt-BR", + "optinNewsLetter": false + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "a7e4702410864239959f9bdcf77e3fba", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 0, + "messages": [], + "items": [], + "selectableGifts": [], + "totalizers": [], + "shippingData": null, + "clientProfileData": null, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [], + "paymentSystems": [], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [], + "clientPreferencesData": { + "locale": "PT", + "optinNewsLetter": false + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/attachments/marketingData": { + "post": { + "tags": [ + "Cart attachments" + ], + "summary": "Add marketing data", + "description": "Use this request to include marketing information to a given shopping cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AddMarketingData", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm that will receive client profile information.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "coupon": { + "type": "string", + "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.\n\r\n\rTo send more than one coupon code to the same cart, use commas. E.g.`\"sales25, blackfriday30\"`.", + "example": "free-shipping" + }, + "marketingTags": { + "type": "array", + "description": "Marketing tags. Limited to a maximum of 50 items.", + "items": { + "type": "string", + "description": "Marketing tag.", + "example": "tag1" + }, + "example": [ + "tag1", + "tag2" + ] + }, + "utmSource": { + "type": "string", + "description": "UTM source.", + "example": "Facebook" + }, + "utmMedium": { + "type": "string", + "description": "UTM medium.", + "example": "CPC" + }, + "utmCampaign": { + "type": "string", + "description": "UTM campaign.", + "example": "Black friday" + }, + "utmiPage": { + "type": "string", + "description": "UTMI page (internal utm).", + "example": "utmi_page-example" + }, + "utmiPart": { + "type": "string", + "description": "UTMI part (internal utm).", + "example": "utmi_part-exmaple" + }, + "utmiCampaign": { + "type": "string", + "description": "UTMI campaign (internal utm).", + "example": "utmi_campaign-exmaple" + } + } + }, + "example": { + "utmSource": "app", + "utmMedium": "CPC", + "utmCampaign": "Black friday", + "utmiPage": "", + "utmiPart": "", + "utmiCampaign": "", + "coupon": "free-shipping", + "marketingTags": [ + "tag1", + "tag2" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "orderFormId": "7c5b47971fad41b89102c7ab7bb8b08b", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 0, + "messages": [], + "items": [], + "selectableGifts": [], + "totalizers": [], + "shippingData": null, + "clientProfileData": null, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [], + "paymentSystems": [], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": { + "utmSource": "app", + "utmMedium": "CPC", + "utmCampaign": "Black friday", + "utmipage": null, + "utmiPart": null, + "utmiCampaign": null, + "coupon": "free-shipping", + "marketingTags": [ + "tag1", + "tag2" + ] + }, + "sellers": [], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + }, + "schema": { + "$ref": "#/components/schemas/orderForm" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/attachments/paymentData": { + "post": { + "tags": [ + "Cart attachments" + ], + "summary": "Add payment data", + "description": "Use this request to include payment information to a given shopping cart. The payment information attachment in the shopping cart does not determine the final order payment method in itself. However, it allows tha platform to update any relevant information that may be impacted by the payment method.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AddPaymentData", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm that will receive client profile information.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "payments": { + "type": "array", + "description": "Array with information on each payment chosen by the shopper.", + "items": { + "type": "object", + "description": "Payment information.", + "properties": { + "paymentSystem": { + "type": "integer", + "description": "Payment system ID.", + "example": 1 + }, + "paymentSystemName": { + "type": "string", + "description": "Payment system name.", + "example": "Boleto Bancário" + }, + "group": { + "type": "string", + "description": "Payment system group.", + "example": "bankInvoicePaymentGroup" + }, + "installments": { + "type": "integer", + "description": "Selected number of installments.", + "example": 1 + }, + "installmentsInterestRate": { + "type": "number", + "description": "Installments' interest rate.", + "example": 0 + }, + "installmentsValue": { + "type": "integer", + "description": "Value of the installments.", + "example": 1 + }, + "value": { + "type": "integer", + "description": "Total value assigned to this payment.", + "example": 100 + }, + "referenceValue": { + "type": "integer", + "description": "Reference value used to calculate total order value with interest.", + "example": 100 + }, + "hasDefaultBillingAddress": { + "type": "boolean", + "description": "Indicates whether billing address for this payment is the default address.", + "example": false + } + } + } + } + } + }, + "example": { + "payments": [ + { + "paymentSystem": 6, + "paymentSystemName": "Boleto Bancário", + "group": "bankInvoicePaymentGroup", + "installments": 1, + "installmentsInterestRate": 0, + "installmentsValue": 34390, + "value": 34390, + "referenceValue": 34390, + "hasDefaultBillingAddress": false + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "orderFormId": "29154e27383145cc8ce1f7a1df0d99c4", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 65780, + "messages": [], + "items": [ + { + "uniqueId": "3CBFA140CE8F4E208062FC15CE9ED8D3", + "id": "2", + "productId": "2", + "productRefId": "1", + "refId": "CBC30L", + "ean": null, + "name": "Chopp Claro 30L", + "skuName": "Chopp Claro 30L", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2022-07-28T22:25:25Z", + "tax": 0, + "price": 32890, + "listPrice": 49900, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 32890, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Beershow", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Bebidas" + }, + "quantity": 2, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://myshop.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-claro-30l/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c" + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 32890, + "total": 65780, + "sellingPrices": [ + { + "value": 32890, + "quantity": 2 + } + ] + } + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 65780 + } + ], + "shippingData": { + "address": null, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "slas": [], + "shipsTo": [ + "BRA", + "COL", + "USA" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [], + "availableAddresses": [], + "pickupPoints": [] + }, + "clientProfileData": null, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 65780, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 65780, + "total": 65780, + "sellerMerchantInstallments": [ + { + "id": "MYSHOP", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 65780, + "total": 65780 + } + ] + } + ] + }, + { + "paymentSystem": 4, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 65780, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 65780, + "total": 65780, + "sellerMerchantInstallments": [ + { + "id": "MYSHOP", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 65780, + "total": 65780 + } + ] + } + ] + }, + { + "paymentSystem": 6, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 65780, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 65780, + "total": 65780, + "sellerMerchantInstallments": [ + { + "id": "MYSHOP", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 65780, + "total": 65780 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2021-08-04T22:19:04.9948627Z", + "availablePayments": null + }, + { + "id": 4, + "name": "Mastercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "4", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2021-08-04T22:19:04.9948627Z", + "availablePayments": null + }, + { + "id": 6, + "name": "Boleto Bancário", + "groupName": "bankInvoicePaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "6", + "template": "bankInvoicePaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2021-08-04T22:19:04.9948627Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "installments": 1, + "referenceValue": 65780, + "value": 65780, + "merchantSellerPayments": [ + { + "id": "MYSHOP", + "installments": 1, + "referenceValue": 65780, + "value": 65780, + "interestRate": 0, + "installmentValue": 65780 + } + ] + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "My Seller", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "2", + "seller": "1", + "name": "Chopp Claro 30L", + "skuName": "Chopp Claro 30L", + "productId": "2", + "refId": "CBC30L", + "ean": null, + "imageUrl": "http://myshop.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-claro-30l/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + }, + "schema": { + "$ref": "#/components/schemas/orderForm" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/attachments/merchantContextData": { + "post": { + "tags": [ + "Cart attachments" + ], + "summary": "Add merchant context data", + "description": "This endpoint is used for the merchant to add to the cart any relevant information that is related to the context of a specific order.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AddMerchantContextData", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm that will receive the relevant information added by the merchant.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "29154e27383145cc8ce1f7a1df0d99c4" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "salesAssociateData" + ], + "properties": { + "salesAssociateData": { + "type": "object", + "description": "Sales Associate information.", + "properties": { + "salesAssociateId": { + "type": "string", + "description": "Sales Associate (Seller) identification code. All information should be registered by the merchant. Maximum of 100 characters.", + "example": "seller123" + } + } + } + } + }, + "example": { + "salesAssociateData": { + "salesAssociateId": "seller123" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "salesAssociateId": { + "type": "string", + "description": "Sales Associate (Seller) identification code." + } + } + }, + "example": { + "salesAssociateData": { + "salesAssociateId": "seller123" + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/attachments/invoiceData": { + "post": { + "tags": [ + "Cart attachments" + ], + "summary": "Attach invoice data", + "description": "Attaches invoice data to the cart.\r\n\r\nThe [`orderForm`](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the `orderForm` that will receive the invoice data.", + "required": true, + "schema": { + "type": "string", + "example": "29154e27383145cc8ce1f7a1df0d99c4" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "address": { + "type": "object", + "description": "Invoice address information.", + "properties": { + "addressType": { + "type": "string", + "description": " Type of address, as `residential` or `business`." + }, + "city": { + "type": "string", + "description": "Address city name." + }, + "complement": { + "type": "string", + "description": "Address complement, such as the apartment number." + }, + "country": { + "type": "string", + "description": "Address country name." + }, + "geoCoordinates": { + "type": "array", + "description": "List containing address geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates of the address, longitude and latitude." + } + }, + "neighborhood": { + "type": "string", + "description": "Address neighborhood name." + }, + "number": { + "type": "string", + "description": "Address number." + }, + "postalCode": { + "type": "string", + "description": "Address postal code." + }, + "reference": { + "type": "string", + "description": "Reference that may help in the location of the address, as a landmark." + }, + "state": { + "type": "string", + "description": "Address state name." + }, + "street": { + "type": "string", + "description": "Address street name." + } + }, + "required": [ + "postalCode", + "geoCoordinates" + ] + } + }, + "required": [ + "address" + ] + }, + "example": { + "address": { + "addressType": "residential", + "city": "New York", + "complement": "101", + "country": "USA", + "geoCoordinates": [ + 40.7986877, + -73.9534529 + ], + "neighborhood": "Manhattan", + "number": "52", + "postalCode": "10019", + "reference": "Between the Upper West Side and Upper East Side", + "state": "NY", + "street": "North 110th Street" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "e66d440c15d0497692dffbec775cae2f", + "salesChannel": "1", + "loggedIn": true, + "isCheckedIn": false, + "storeId": null, + "checkedInPickupPointId": null, + "allowManualPrice": true, + "canEditData": true, + "userProfileId": "", + "userType": null, + "ignoreProfileData": false, + "value": 0, + "messages": [], + "items": [], + "selectableGifts": [], + "totalizers": [], + "shippingData": null, + "clientProfileData": { + "email": "karen.krieger@vtex.com", + "firstName": "", + "lastName": "", + "document": "", + "documentType": "", + "phone": "", + "corporateName": "", + "tradeName": null, + "corporateDocument": null, + "stateInscription": null, + "corporatePhone": null, + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [], + "paymentSystems": [], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [], + "availableAssociations": {} + }, + "marketingData": null, + "sellers": [], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": { + "address": { + "postalCode": "10019", + "city": "New York", + "state": "NY", + "country": "USA", + "street": "North 110th Street", + "number": "52", + "neighborhood": "Manhattan", + "complement": "101", + "reference": "Between the Upper West Side and Upper East Side", + "geoCoordinates": [ + 40.7986877, + -73.9534529 + ] + } + }, + "customData": null, + "itemMetadata": {}, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "merchantContextData": null, + "purchaseAgentsData": null, + "itemsOrdination": {} + } + } + } + } + }, + "operationId": "post_api_checkout_pub_orderform_ByOrderFormId_attachments_invoicedata" + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/customData/{appId}": { + "put": { + "tags": [ + "Custom data" + ], + "summary": "Set multiple custom field values", + "description": "Your account may create `apps`, which contain custom fields, through the [Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm) request. The values of these custom fields can then be updated by this request.\n\r\n\rTo do that, you need to inform the ID of the app you created with the configuration API (`appId`).\n\r\n\rIn the body of the request, for each field created in this app (`appFieldName`) you will inform a value (`appFieldValue`).\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SetMultipleCustomFieldValues", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm that will receive the new custom field values.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "29154e27383145cc8ce1f7a1df0d99c4" + } + }, + { + "name": "appId", + "in": "path", + "description": "ID of the app created with the configuration API.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "appId" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "Here you must add the pairs of Field Name and Field Value.", + "type": "object", + "additionalProperties": true + }, + "example": { + "fieldName": "fieldValue" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 10000, + "messages": [], + "items": [ + { + "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C", + "id": "1", + "productId": "1", + "productRefId": "1", + "refId": "0001", + "ean": "123456789", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2021-02-27T14:59:00.8288784Z", + "tax": 0, + "price": 15000, + "listPrice": 30000, + "manualPrice": 10000, + "sellingPrice": 10000, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "brandName": "Royal Canin", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/10/", + "productCategories": { + "1": "Alimentação", + "10": "Ração Seca" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": null + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 15000 + }, + { + "id": "Discounts", + "name": "Total dos Descontos", + "value": -5000 + } + ], + "shippingData": { + "address": null, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "slas": [], + "shipsTo": [ + "BRA" + ], + "itemId": "1", + "deliveryChannels": [ + { + "id": "pickup-in-point" + }, + { + "id": "delivery" + } + ] + } + ], + "selectedAddresses": [], + "availableAddresses": [], + "pickupPoints": [] + }, + "clientProfileData": null, + "paymentData": { + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 10000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 10000, + "total": 10000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 10000, + "total": 10000 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 5000, + "total": 10000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 5000, + "total": 10000 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2020-03-05T16:42:31.7836281Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "lojadobreno", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": { + "customApps": [ + { + "fields": { + "testField1": "testValue1", + "testField2": "testValue2" + }, + "id": "abcd", + "major": 1 + } + ] + }, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/customData/{appId}/{appFieldName}": { + "put": { + "tags": [ + "Custom data" + ], + "summary": "Set single custom field value", + "description": "Your account may create `apps`, which contain custom fields, through the [Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm) request. The value of a specific custom field can then be updated by this request.\n\r\n\rTo do that, you need to inform in the URL the ID of the app you created with the configuration API (`appId`).\n\r\n\rIn the body of the request, you will inform the new value (`appFieldValue`, passed through the body) of the specific field created in this app (identified by the `appFieldName` parameter, passed through the URL).\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SetSingleCustomFieldValue", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "The ID of the orderForm whose custom field's value you want to change.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "29154e27383145cc8ce1f7a1df0d99c4" + } + }, + { + "name": "appId", + "in": "path", + "description": "ID of the app created through the Update orderForm Configuration endpoint.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "appId" + } + }, + { + "name": "appFieldName", + "in": "path", + "description": "Name of the app's field created through the Update orderForm Configuration endpoint.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "appFieldName" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetsinglecustomfieldvalueRequest" + }, + "example": { + "value": "{appFieldValue}" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 10000, + "messages": [], + "items": [ + { + "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C", + "id": "1", + "productId": "1", + "productRefId": "1", + "refId": "0001", + "ean": "123456789", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2021-02-27T14:59:00.8288784Z", + "tax": 0, + "price": 15000, + "listPrice": 30000, + "manualPrice": 10000, + "sellingPrice": 10000, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "brandName": "Royal Canin", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/10/", + "productCategories": { + "1": "Alimentação", + "10": "Ração Seca" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": null + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 15000 + }, + { + "id": "Discounts", + "name": "Total dos Descontos", + "value": -5000 + } + ], + "shippingData": { + "address": null, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "slas": [], + "shipsTo": [ + "BRA" + ], + "itemId": "1", + "deliveryChannels": [ + { + "id": "pickup-in-point" + }, + { + "id": "delivery" + } + ] + } + ], + "selectedAddresses": [], + "availableAddresses": [], + "pickupPoints": [] + }, + "clientProfileData": null, + "paymentData": { + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 10000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 10000, + "total": 10000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 10000, + "total": 10000 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 5000, + "total": 10000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 5000, + "total": 10000 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2020-03-05T16:42:31.7836281Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "lojadobreno", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": { + "customApps": [] + }, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + }, + "schema": { + "$ref": "#/components/schemas/orderForm" + } + } + } + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Custom data" + ], + "summary": "Remove single custom field value", + "description": "Your account may create `apps`, which contain custom fields, through the [Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm) request. The value of a specific custom field can be removed by this request.\n\r\n\rTo do that, you need to inform in the URL the ID of the app you created with the configuration API (`appId`).\n\r\n\rYou also need to iform the specific field created in this app (identified by the `appFieldName` parameter, also passed through the URL) whose value you want to remove.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Removesinglecustomfieldvalue", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "The ID of the orderForm from which you want to remove the custom field value.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "29154e27383145cc8ce1f7a1df0d99c4" + } + }, + { + "name": "appId", + "in": "path", + "description": "ID of the app created through the Update orderForm Configuration endpoint.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "appId" + } + }, + { + "name": "appFieldName", + "in": "path", + "description": "Name of the app's field created through the Update orderForm Configuration endpoint and which will be deleted.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "appFieldName" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "checkedInPickupPointId": "21", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "userType": "User type", + "ignoreProfileData": false, + "value": 10000, + "messages": [], + "items": [ + { + "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C", + "id": "1", + "productId": "1", + "productRefId": "1", + "refId": "0001", + "ean": "123456789", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2021-02-27T14:59:00.8288784Z", + "tax": 0, + "price": 15000, + "listPrice": 30000, + "manualPrice": 10000, + "sellingPrice": 10000, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "brandName": "Royal Canin", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/10/", + "productCategories": { + "1": "Alimentação", + "10": "Ração Seca" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": null + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 15000 + }, + { + "id": "Discounts", + "name": "Total dos Descontos", + "value": -5000 + } + ], + "shippingData": { + "address": null, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "slas": [], + "shipsTo": [ + "BRA" + ], + "itemId": "1", + "deliveryChannels": [ + { + "id": "pickup-in-point" + }, + { + "id": "delivery" + } + ] + } + ], + "selectedAddresses": [], + "availableAddresses": [], + "pickupPoints": [] + }, + "clientProfileData": null, + "paymentData": { + "installmentOptions": [ + { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 10000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 10000, + "total": 10000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 10000, + "total": 10000 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 5000, + "total": 10000, + "sellerMerchantInstallments": [ + { + "id": "LOJADOBRENO", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 5000, + "total": 10000 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": "Payment description", + "requiresAuthentication": false, + "dueDate": "2020-03-05T16:42:31.7836281Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "lojadobreno", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": { + "customApps": [] + }, + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "name": "Ração Royal Canin Feline Urinary 500g", + "skuName": "Ração Royal Canin Feline Urinary 500g", + "productId": "1", + "refId": "0001", + "ean": "123456789", + "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", + "detailUrl": "/racao-royal-canin-feline-urinary/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + }, + "schema": { + "$ref": "#/components/schemas/orderForm" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/customFields": { + "put": { + "tags": [ + "Custom data" + ], + "summary": "Batch add custom fields", + "description": "Add multiple custom fields to an order form in a single request. Custom fields can be linked to the order, specific items, or addresses and be related to different entities from Master Data.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\n>⚠️ This endpoint is only available for B2B Buyer Portal. Authorization from the Commerce Engineer of the account is required for usage.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm that will receive the new custom fields.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "29154e27383145cc8ce1f7a1df0d99c4" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array of custom fields to add.", + "items": { + "type": "object", + "description": "Object containing the entity and the fields to add.", + "properties": { + "linkedEntity": { + "type": "object", + "description": "The entity this custom field is linked to.", + "properties": { + "type": { + "type": "string", + "description": "Type of entity: `order`, `item`, or `address`.", + "enum": [ + "order", + "item", + "address" + ] + }, + "id": { + "type": "string", + "description": "ID of the linked entity. Required for `item` (uniqueId) and `address` (addressId) types. Omit for `order` type." + } + }, + "required": [ + "type" + ] + }, + "fields": { + "type": "array", + "description": "Array of custom fields.", + "items": { + "type": "object", + "description": "Object containing the name, value and reference ID of the custom field.", + "properties": { + "name": { + "type": "string", + "description": "Name of the custom field." + }, + "value": { + "type": "string", + "description": "Value of the custom field." + }, + "refId": { + "type": "string", + "description": "Reference identifier for this custom field, typically used for internal tracking within the store." + } + }, + "required": [ + "name", + "value" + ] + } + } + }, + "required": [ + "linkedEntity", + "fields" + ] + } + }, + "example": [ + { + "linkedEntity": { + "type": "address", + "id": "12345678-1234-1234-1234-123456789012" + }, + "fields": [ + { + "name": "desktop", + "value": "DK1", + "refId": "DK1" + } + ] + }, + { + "linkedEntity": { + "type": "item", + "id": "E0F2B7AF5CD74D668F1E27537206912C" + }, + "fields": [ + { + "name": "costCenter", + "value": "CC1", + "refId": "CC1" + } + ] + } + ] + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "cd29b21bf1f4432ba938e2863c79a70e", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": null, + "checkedInPickupPointId": null, + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "", + "userType": null, + "ignoreProfileData": false, + "value": 700, + "messages": [], + "items": [ + { + "uniqueId": "55DE6DCE21B740B1BD01E2E86EB3AD30", + "id": "2", + "productId": "2", + "productRefId": "", + "refId": "codrefmangueiraverde", + "ean": null, + "name": "mangueira wl verde", + "skuName": "verde", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2026-12-16T14:29:14Z", + "tax": 0, + "price": 100, + "listPrice": 100, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 100, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brand name", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Category" + }, + "quantity": 2, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "https://qastore.vteximg.com.br/arquivos/ids/155395-55-55/mangueira.jpg?v=636565509324700000", + "detailUrl": "/mangueira/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [], + "offerings": [], + "priceTags": [], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 100, + "total": 200, + "sellingPrices": [ + { + "value": 100, + "quantity": 2 + } + ], + "reason": null + }, + "taxCode": "" + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 200 + }, + { + "id": "Shipping", + "name": "Total do Frete", + "value": 500 + } + ], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Lenta", + "selectedDeliveryChannel": "delivery", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "slas": [ + { + "id": "Agendada com limite", + "deliveryChannel": "delivery", + "name": "Agendada com limite", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Agendada com limite", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "5bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-23T08:00:00+00:00", + "endDateUtc": "2025-12-23T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-23T12:00:00+00:00", + "endDateUtc": "2025-12-23T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-24T08:00:00+00:00", + "endDateUtc": "2025-12-24T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-24T12:00:00+00:00", + "endDateUtc": "2025-12-24T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-25T08:00:00+00:00", + "endDateUtc": "2025-12-25T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-25T12:00:00+00:00", + "endDateUtc": "2025-12-25T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-26T08:00:00+00:00", + "endDateUtc": "2025-12-26T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-26T12:00:00+00:00", + "endDateUtc": "2025-12-26T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-27T08:00:00+00:00", + "endDateUtc": "2025-12-27T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-27T12:00:00+00:00", + "endDateUtc": "2025-12-27T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-28T08:00:00+00:00", + "endDateUtc": "2025-12-28T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-28T12:00:00+00:00", + "endDateUtc": "2025-12-28T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-29T08:00:00+00:00", + "endDateUtc": "2025-12-29T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-29T12:00:00+00:00", + "endDateUtc": "2025-12-29T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-30T08:00:00+00:00", + "endDateUtc": "2025-12-30T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-30T12:00:00+00:00", + "endDateUtc": "2025-12-30T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-31T08:00:00+00:00", + "endDateUtc": "2025-12-31T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-31T12:00:00+00:00", + "endDateUtc": "2025-12-31T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-01T08:00:00+00:00", + "endDateUtc": "2026-01-01T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-01T12:00:00+00:00", + "endDateUtc": "2026-01-01T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-02T08:00:00+00:00", + "endDateUtc": "2026-01-02T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-02T12:00:00+00:00", + "endDateUtc": "2026-01-02T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-03T08:00:00+00:00", + "endDateUtc": "2026-01-03T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-03T12:00:00+00:00", + "endDateUtc": "2026-01-03T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-04T08:00:00+00:00", + "endDateUtc": "2026-01-04T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-04T12:00:00+00:00", + "endDateUtc": "2026-01-04T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-05T08:00:00+00:00", + "endDateUtc": "2026-01-05T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "5bd" + }, + { + "id": "Lenta", + "deliveryChannel": "delivery", + "name": "Lenta", + "deliveryIds": [ + { + "courierId": "1d6f441", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "20bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "20bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1000, + "listPrice": 1000, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Motoboy", + "deliveryChannel": "delivery", + "name": "Motoboy", + "deliveryIds": [ + { + "courierId": "1d251fc", + "warehouseId": "1_1", + "dockId": "10af216", + "courierName": "Motoexpress", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "119m", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 4500, + "listPrice": 4500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "119m" + }, + { + "id": "Agendada", + "deliveryChannel": "delivery", + "name": "Agendada", + "deliveryIds": [ + { + "courierId": "12b2b74", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1d", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-17T13:00:00+00:00", + "endDateUtc": "2025-12-17T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-17T17:00:00+00:00", + "endDateUtc": "2025-12-17T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T08:00:00+00:00", + "endDateUtc": "2025-12-18T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T13:00:00+00:00", + "endDateUtc": "2025-12-18T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T17:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T08:00:00+00:00", + "endDateUtc": "2025-12-19T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T13:00:00+00:00", + "endDateUtc": "2025-12-19T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T17:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T08:00:00+00:00", + "endDateUtc": "2025-12-20T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 5000, + "listPrice": 5000, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "1d" + }, + { + "id": "Pickup (13f1c17)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (13f1c17)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_13f1c17", + "pickupDistance": 5, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (13f1c17)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (13f1c17)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_13f1c17", + "pickupDistance": 5, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (14b25e5)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (14b25e5)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "dockId": "1be1850" + }, + "pickupPointId": "1_14b25e5", + "pickupDistance": 9, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (14b25e5)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (14b25e5)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "dockId": "1be1850" + }, + "pickupPointId": "1_14b25e5", + "pickupDistance": 9, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Teste propagacao (Retirada-Teste)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (Retirada-Teste)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Retirada-Teste", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "Retirada-Teste", + "isDisposable": true, + "postalCode": "22250-145", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "200", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18039, + -22.94183 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_Retirada-Teste", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Pickup (retiradarjvtex)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (retiradarjvtex)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_retiradarjvtex", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (retiradarjvtex)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (retiradarjvtex)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_retiradarjvtex", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (1d98b7a)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (1d98b7a)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_1d98b7a", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (1d98b7a)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (1d98b7a)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_1d98b7a", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Teste propagacao (akkel223k)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (akkel223k)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "akkel223k", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_akkel223k", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (16cbd27)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (16cbd27)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Botafogo Praia Shopping", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "16cbd27", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "400", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "Trazer sacola", + "dockId": null + }, + "pickupPointId": "qastoremg_16cbd27", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (0w97tw)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (0w97tw)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Praça do Flamengo", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "0w97tw", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da praça", + "number": "400", + "neighborhood": "Flamengo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_0w97tw", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (19c4a07)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (19c4a07)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - COBAL Humaitá", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "19c4a07", + "isDisposable": true, + "postalCode": "22270018", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Voluntários da Pátria", + "number": "446", + "neighborhood": "Humaitá", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.1898, + -22.95333 + ] + }, + "additionalInfo": "Trazer documentos oficiais", + "dockId": null + }, + "pickupPointId": "qastoremg_19c4a07", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (1284d4e)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (1284d4e)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Shopping Rio Sul", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1284d4e", + "isDisposable": true, + "postalCode": "22290160", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Lauro Muller", + "number": "116", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.176, + -22.95637 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_1284d4e", + "pickupDistance": 12, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (2043cc0)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (2043cc0)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Retirada Ximi", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2043cc0", + "isDisposable": true, + "postalCode": "21820-020", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Bangu", + "number": "", + "neighborhood": "Bangu", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.46651, + -22.88117 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_2043cc0", + "pickupDistance": 20, + "polygonName": "", + "transitTime": "0bd" + } + ], + "shipsTo": [ + "BRA", + "AFG", + "ALB", + "DZA", + "ASM", + "AND", + "AGO", + "AIA", + "ATA", + "ATG", + "ARG", + "ARM", + "ABW", + "AUS", + "AUT", + "AZE", + "BHS", + "BHR", + "BGD", + "BRB", + "BLR", + "BEL", + "BLZ", + "BEN", + "BMU", + "BTN", + "BOL", + "BIH", + "BWA", + "IOT", + "VGB", + "BRN", + "BGR", + "BFA", + "BDI", + "KHM", + "CMR", + "CAN", + "CPV", + "CYM", + "CAF", + "TCD", + "CHL", + "CHN", + "CXR", + "CCK", + "COL", + "COM", + "COK", + "CRI", + "HRV", + "CUB", + "CUW", + "CYP", + "CZE", + "COD", + "DNK", + "DJI", + "DMA", + "DOM", + "TLS", + "ECU", + "EGY", + "SLV", + "GNQ", + "ERI", + "EST", + "ETH", + "FLK", + "FRO", + "FJI", + "FIN", + "FRA", + "PYF", + "GAB", + "GMB", + "GEO", + "DEU", + "GHA", + "GIB", + "GRC", + "GRL", + "GRD", + "GUM", + "GTM", + "GGY", + "GIN", + "GNB", + "GUY", + "HTI", + "HND", + "HKG", + "HUN", + "ISL", + "IND", + "IDN", + "IRN", + "IRQ", + "IRL", + "IMN", + "ISR", + "ITA", + "CIV", + "JAM", + "JPN", + "JEY", + "JOR", + "KAZ", + "KEN", + "KIR", + "XKX", + "KWT", + "KGZ", + "LAO", + "LVA", + "LBN", + "LSO", + "LBR", + "LBY", + "LIE", + "LTU", + "LUX", + "MAC", + "MKD", + "MDG", + "MWI", + "MYS", + "MDV", + "MLI", + "MLT", + "MHL", + "MRT", + "MUS", + "MYT", + "MEX", + "FSM", + "MDA", + "MCO", + "MNG", + "MNE", + "MSR", + "MAR", + "MOZ", + "MMR", + "NAM", + "NRU", + "NPL", + "NLD", + "ANT", + "NCL", + "NZL", + "NIC", + "NER", + "NGA", + "NIU", + "PRK", + "MNP", + "NOR", + "OMN", + "PAK", + "PLW", + "PSE", + "PAN", + "PNG", + "PRY", + "PER", + "PHL", + "PCN", + "POL", + "PRT", + "PRI", + "QAT", + "COG", + "REU", + "ROU", + "RUS", + "RWA", + "BLM", + "SHN", + "KNA", + "LCA", + "MAF", + "SPM", + "VCT", + "WSM", + "SMR", + "STP", + "SAU", + "SEN", + "SRB", + "SYC", + "SLE", + "SGP", + "SXM", + "SVK", + "SVN", + "SLB", + "SOM", + "ZAF", + "KOR", + "SSD", + "ESP", + "LKA", + "SDN", + "SUR", + "SJM", + "SWZ", + "SWE", + "CHE", + "SYR", + "TWN", + "TJK", + "TZA", + "THA", + "TGO", + "TKL", + "TON", + "TTO", + "TUN", + "TUR", + "TKM", + "TCA", + "TUV", + "VIR", + "UGA", + "UKR", + "ARE", + "GBR", + "USA", + "URY", + "UZB", + "VUT", + "VAT", + "VEN", + "VNM", + "WLF", + "ESH", + "YEM", + "ZMB", + "ZWE" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + } + ], + "pickupPoints": [ + { + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "id": "1_13f1c17", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "id": "1_14b25e5", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "id": "1_retiradarjvtex", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "id": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "id": "1_1d98b7a", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "Retirada-Teste", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "Retirada-Teste", + "isDisposable": true, + "postalCode": "22250-145", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "200", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18039, + -22.94183 + ] + }, + "additionalInfo": "", + "id": "qastoremg_Retirada-Teste", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "akkel223k", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "id": "qastoremg_akkel223k", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "RJ - Botafogo Praia Shopping", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "16cbd27", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "400", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "Trazer sacola", + "id": "qastoremg_16cbd27", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "RJ - Praça do Flamengo", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "0w97tw", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da praça", + "number": "400", + "neighborhood": "Flamengo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "", + "id": "qastoremg_0w97tw", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "RJ - COBAL Humaitá", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "19c4a07", + "isDisposable": true, + "postalCode": "22270018", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Voluntários da Pátria", + "number": "446", + "neighborhood": "Humaitá", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.1898, + -22.95333 + ] + }, + "additionalInfo": "Trazer documentos oficiais", + "id": "qastoremg_19c4a07", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Shopping Rio Sul", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1284d4e", + "isDisposable": true, + "postalCode": "22290160", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Lauro Muller", + "number": "116", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.176, + -22.95637 + ] + }, + "additionalInfo": "", + "id": "qastoremg_1284d4e", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "Retirada Ximi", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2043cc0", + "isDisposable": true, + "postalCode": "21820-020", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Bangu", + "number": "", + "neighborhood": "Bangu", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.46651, + -22.88117 + ] + }, + "additionalInfo": "", + "id": "qastoremg_2043cc0", + "isActive": null, + "businessHours": [] + } + ], + "contacts": [ + { + "id": "ac40152925234fd6b6dbae6c88e34a51", + "firstName": "Saul", + "lastName": "Goodman" + } + ], + "contactsInfo": [ + { + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "contacts": [ + "ac40152925234fd6b6dbae6c88e34a51" + ], + "receiveWindows": [] + } + ] + }, + "clientProfileData": null, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [ + { + "paymentSystem": "1", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + }, + { + "count": 7, + "hasInterestRate": false, + "interestRate": 0, + "value": 100, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 7, + "hasInterestRate": false, + "interestRate": 0, + "value": 100, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "2", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "3", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "4", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + }, + { + "count": 8, + "hasInterestRate": false, + "interestRate": 0, + "value": 87, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 8, + "hasInterestRate": false, + "interestRate": 0, + "value": 87, + "total": 700 + } + ] + }, + { + "count": 10, + "hasInterestRate": false, + "interestRate": 0, + "value": 70, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 10, + "hasInterestRate": false, + "interestRate": 0, + "value": 70, + "total": 700 + } + ] + }, + { + "count": 12, + "hasInterestRate": false, + "interestRate": 0, + "value": 58, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 12, + "hasInterestRate": false, + "interestRate": 0, + "value": 58, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "6", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "7", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "8", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "9", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "12", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "16", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "21", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "39", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "44", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "45", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "64", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "65", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "125", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "201", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "900", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 16, + "name": "Vale", + "groupName": "giftCardPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "16", + "template": "giftCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.794798Z", + "availablePayments": null + }, + { + "id": 12, + "name": "PayPal", + "groupName": "payPalPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "12", + "template": "payPalPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947983Z", + "availablePayments": null + }, + { + "id": 44, + "name": "Venda Direta Debito", + "groupName": "debitDirectSalePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "44", + "template": "debitDirectSalePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947984Z", + "availablePayments": null + }, + { + "id": 45, + "name": "Venda Direta Credito", + "groupName": "creditDirectSalePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "45", + "template": "creditDirectSalePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947986Z", + "availablePayments": null + }, + { + "id": 3, + "name": "Diners", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^3(0[0-5]|[68][0-9])[0-9]{11}$", + "mask": "9999 999999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "3", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947987Z", + "availablePayments": null + }, + { + "id": 9, + "name": "Elo", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^(50(67(0[78]|1[5789]|2[012456789]|3[01234569]|4[0-7]|53|7[4-8])|9(0(0[0-9]|1[34]|2[0-7]|3[0359]|4[01235678]|5[01235789]|6[0-9]|7[01346789]|8[01234789]|9[123479])|1(0[34568]|4[6-9]|5[1-8]|8[356789])|2(2[0-2]|5[78]|6[1-9]|7[0-9]|8[01235678]|90)|357|4(0[7-9]|1[0-9]|2[0-2]|31|5[7-9]|6[0-6]|84)|55[01]|636|7(2[2-9]|6[5-9])))|4(0117[89]|3(1274|8935)|5(1416|7(393|63[12])))|6(27780|36368|5(0(0(3[12356789]|4[0-7]|7[78])|4(0[6-9]|1[0234]|2[2-9]|3[045789]|8[5-9]|9[0-9])|5(0[012346789]|1[0-9]|2[0-9]|3[0178]|5[2-9]|6[0-6]|7[7-9]|8[0-8]|9[1-8])|72[0-7]|9(0[1-9]|1[0-9]|2[0128]|3[89]|4[6-9]|5[0145]|6[235678]|71))|16(5[2-9]|6[0-9]|7[01456789])|50(0[0-9]|1[02345678]|36|5[1267]))))\\d{0,13}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "9", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947989Z", + "availablePayments": null + }, + { + "id": 4, + "name": "Mastercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "4", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947989Z", + "availablePayments": null + }, + { + "id": 6, + "name": "Boleto Bancário", + "groupName": "bankInvoicePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "6", + "template": "bankInvoicePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.794799Z", + "availablePayments": null + }, + { + "id": 8, + "name": "Hipercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^606282|^3841(?:[0|4|6]{1})0", + "mask": "9999999999999999999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "8", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947991Z", + "availablePayments": null + }, + { + "id": 65, + "name": "Mastercard Debit", + "groupName": "debitCardPaymentGroup", + "validator": { + "regex": "^(502275|528745|(5045|5061|5062|5063|5064|5105|5111|5112|5117|5118|5122|5160|5161|5164|5165|5166|5174|5177|5188|5201|5204|5206|5235|5236|5240|5247|5256|5261|5263|5264|5280|5284|5285|5290|5295|5301|5306|5312|5324|5336|5339|5343|5349|5359|5367|5370|5379|5380|5384|5389|5399|5439|5452|5453|5457|5463|5496|5502|5508|5510|5512|5513|5514|5515|5534|5538|5541|5544|5546|5549|5559|5575|5576|5578|5579)[0-9]{2}|558426|559471|588772|589617|528733|549180|517562|551792|553771|553777)[0-9]{0,10}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "65", + "template": "debitCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947993Z", + "availablePayments": null + }, + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:24:11.7947993Z", + "availablePayments": null + }, + { + "id": 7, + "name": "Aura", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^50[0-9]{17}$", + "mask": "9999999999999999999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "7", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947996Z", + "availablePayments": null + }, + { + "id": 39, + "name": "Maestro", + "groupName": "debitCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "39", + "template": "debitCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947996Z", + "availablePayments": null + }, + { + "id": 1, + "name": "American Express", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^3[47][0-9]{13}$", + "mask": "9999 999999 99999", + "cardCodeRegex": "^[0-9]{4}$", + "cardCodeMask": "9999", + "weights": [ + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "1", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7947997Z", + "availablePayments": null + }, + { + "id": 21, + "name": "JCB", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^(35[0-9]{3}|2131|1800)[0-9]{11}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "21", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7948Z", + "availablePayments": null + }, + { + "id": 201, + "name": "Dinheiro", + "groupName": "custom201PaymentGroupPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "201", + "template": "custom201PaymentGroupPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": true, + "description": "Pague no dinheiro", + "requiresAuthentication": false, + "dueDate": "2025-12-26T14:23:11.7948001Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7948003Z", + "availablePayments": null + }, + { + "id": 64, + "name": "Customer Credit", + "groupName": "creditControlPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "64", + "template": "creditControlPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7948003Z", + "availablePayments": null + }, + { + "id": 125, + "name": "Pix", + "groupName": "instantPaymentPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "125", + "template": "instantPaymentPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7948004Z", + "availablePayments": null + }, + { + "id": 900, + "name": "WH Google Pay", + "groupName": "WH Google PayPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "900", + "template": "WH Google PayPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T14:23:11.7948005Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": "125", + "bin": null, + "accountId": null, + "tokenId": null, + "installments": 1, + "referenceValue": 700, + "value": 700, + "merchantSellerPayments": [ + { + "id": "QASTORE", + "installments": 1, + "referenceValue": 700, + "value": 700, + "interestRate": 0, + "installmentValue": 700 + } + ] + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [], + "availableAssociations": {} + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "QA Store", + "logo": "", + "minimumOrderValue": 0 + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null, + "savePersonalData": false, + "savePaymentData": false + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": { + "customApps": [], + "customFields": [ + { + "linkedEntity": { + "type": "address", + "id": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd" + }, + "fields": [ + { + "name": "desktop", + "value": "DK1", + "refId": "DK1" + } + ] + }, + { + "linkedEntity": { + "type": "order" + }, + "fields": [ + { + "name": "poNumber", + "value": "PO2", + "refId": "PO2" + } + ] + }, + { + "linkedEntity": { + "type": "item", + "id": "55DE6DCE21B740B1BD01E2E86EB3AD30" + }, + "fields": [ + { + "name": "costCenter", + "value": "CC1", + "refId": "CC1" + } + ] + } + ] + }, + "itemMetadata": { + "items": [ + { + "id": "2", + "seller": "1", + "name": "mangueira wl verde", + "skuName": "verde", + "productId": "2", + "refId": "codrefmangueiraverde", + "ean": null, + "imageUrl": "https://qastore.vteximg.com.br/arquivos/ids/155395-55-55/mangueira.jpg?v=636565509324700000", + "detailUrl": "/mangueira/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "merchantContextData": null, + "purchaseAgentsData": null, + "itemsOrdination": {} + } + } + } + } + }, + "operationId": "put_api_checkout_pub_orderform_ByOrderFormId_customfields" + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/customFields/order": { + "put": { + "tags": [ + "Custom data" + ], + "summary": "Add order custom field", + "description": "Add a custom field to the order level of an orderForm. Order-level custom fields are not linked to any specific item or address.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\n>⚠️ This endpoint is only available for B2B Buyer Portal. Authorization from the Commerce Engineer of the account is required for usage.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "29154e27383145cc8ce1f7a1df0d99c4" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the custom field." + }, + "value": { + "type": "string", + "description": "Value of the custom field." + }, + "refId": { + "type": "string", + "description": "Reference identifier for this custom field, typically used for internal tracking within the store." + } + }, + "required": [ + "name", + "value" + ] + }, + "example": { + "name": "poNumber", + "value": "PO2", + "refId": "PO2" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "cd29b21bf1f4432ba938e2863c79a70e", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": null, + "checkedInPickupPointId": null, + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "", + "userType": null, + "ignoreProfileData": false, + "value": 700, + "messages": [], + "items": [ + { + "uniqueId": "55DE6DCE21B740B1BD01E2E86EB3AD30", + "id": "2", + "productId": "2", + "productRefId": "", + "refId": "codrefmangueiraverde", + "ean": null, + "name": "mangueira wl verde", + "skuName": "verde", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2026-12-16T16:51:48Z", + "tax": 0, + "price": 100, + "listPrice": 100, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 100, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brand name", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Category" + }, + "quantity": 2, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "https://qastore.vteximg.com.br/arquivos/ids/155395-55-55/mangueira.jpg?v=636565509324700000", + "detailUrl": "/mangueira/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [], + "offerings": [], + "priceTags": [], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 100, + "total": 200, + "sellingPrices": [ + { + "value": 100, + "quantity": 2 + } + ], + "reason": null + }, + "taxCode": "" + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 200 + }, + { + "id": "Shipping", + "name": "Total do Frete", + "value": 500 + } + ], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Lenta", + "selectedDeliveryChannel": "delivery", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "slas": [ + { + "id": "Agendada com limite", + "deliveryChannel": "delivery", + "name": "Agendada com limite", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Agendada com limite", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "5bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-23T08:00:00+00:00", + "endDateUtc": "2025-12-23T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-23T12:00:00+00:00", + "endDateUtc": "2025-12-23T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-24T08:00:00+00:00", + "endDateUtc": "2025-12-24T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-24T12:00:00+00:00", + "endDateUtc": "2025-12-24T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-25T08:00:00+00:00", + "endDateUtc": "2025-12-25T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-25T12:00:00+00:00", + "endDateUtc": "2025-12-25T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-26T08:00:00+00:00", + "endDateUtc": "2025-12-26T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-26T12:00:00+00:00", + "endDateUtc": "2025-12-26T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-27T08:00:00+00:00", + "endDateUtc": "2025-12-27T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-27T12:00:00+00:00", + "endDateUtc": "2025-12-27T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-28T08:00:00+00:00", + "endDateUtc": "2025-12-28T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-28T12:00:00+00:00", + "endDateUtc": "2025-12-28T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-29T08:00:00+00:00", + "endDateUtc": "2025-12-29T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-29T12:00:00+00:00", + "endDateUtc": "2025-12-29T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-30T08:00:00+00:00", + "endDateUtc": "2025-12-30T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-30T12:00:00+00:00", + "endDateUtc": "2025-12-30T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-31T08:00:00+00:00", + "endDateUtc": "2025-12-31T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-31T12:00:00+00:00", + "endDateUtc": "2025-12-31T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-01T08:00:00+00:00", + "endDateUtc": "2026-01-01T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-01T12:00:00+00:00", + "endDateUtc": "2026-01-01T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-02T08:00:00+00:00", + "endDateUtc": "2026-01-02T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-02T12:00:00+00:00", + "endDateUtc": "2026-01-02T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-03T08:00:00+00:00", + "endDateUtc": "2026-01-03T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-03T12:00:00+00:00", + "endDateUtc": "2026-01-03T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-04T08:00:00+00:00", + "endDateUtc": "2026-01-04T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-04T12:00:00+00:00", + "endDateUtc": "2026-01-04T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-05T08:00:00+00:00", + "endDateUtc": "2026-01-05T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-05T12:00:00+00:00", + "endDateUtc": "2026-01-05T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "5bd" + }, + { + "id": "Lenta", + "deliveryChannel": "delivery", + "name": "Lenta", + "deliveryIds": [ + { + "courierId": "1d6f441", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "20bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "20bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1000, + "listPrice": 1000, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Motoboy", + "deliveryChannel": "delivery", + "name": "Motoboy", + "deliveryIds": [ + { + "courierId": "1d251fc", + "warehouseId": "1_1", + "dockId": "10af216", + "courierName": "Motoexpress", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "119m", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 4500, + "listPrice": 4500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "119m" + }, + { + "id": "Agendada", + "deliveryChannel": "delivery", + "name": "Agendada", + "deliveryIds": [ + { + "courierId": "12b2b74", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1d", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-17T17:00:00+00:00", + "endDateUtc": "2025-12-17T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T08:00:00+00:00", + "endDateUtc": "2025-12-18T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T13:00:00+00:00", + "endDateUtc": "2025-12-18T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T17:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T08:00:00+00:00", + "endDateUtc": "2025-12-19T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T13:00:00+00:00", + "endDateUtc": "2025-12-19T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T17:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T08:00:00+00:00", + "endDateUtc": "2025-12-20T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T13:00:00+00:00", + "endDateUtc": "2025-12-20T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 5000, + "listPrice": 5000, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "1d" + }, + { + "id": "Pickup (13f1c17)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (13f1c17)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_13f1c17", + "pickupDistance": 5, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (13f1c17)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (13f1c17)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_13f1c17", + "pickupDistance": 5, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (14b25e5)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (14b25e5)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "dockId": "1be1850" + }, + "pickupPointId": "1_14b25e5", + "pickupDistance": 9, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (14b25e5)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (14b25e5)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "dockId": "1be1850" + }, + "pickupPointId": "1_14b25e5", + "pickupDistance": 9, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Teste propagacao (Retirada-Teste)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (Retirada-Teste)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Retirada-Teste", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "Retirada-Teste", + "isDisposable": true, + "postalCode": "22250-145", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "200", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18039, + -22.94183 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_Retirada-Teste", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Pickup (retiradarjvtex)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (retiradarjvtex)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_retiradarjvtex", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (retiradarjvtex)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (retiradarjvtex)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_retiradarjvtex", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (1d98b7a)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (1d98b7a)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_1d98b7a", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (1d98b7a)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (1d98b7a)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_1d98b7a", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Teste propagacao (akkel223k)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (akkel223k)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "akkel223k", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_akkel223k", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (16cbd27)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (16cbd27)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Botafogo Praia Shopping", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "16cbd27", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "400", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "Trazer sacola", + "dockId": null + }, + "pickupPointId": "qastoremg_16cbd27", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (0w97tw)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (0w97tw)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Praça do Flamengo", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "0w97tw", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da praça", + "number": "400", + "neighborhood": "Flamengo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_0w97tw", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (19c4a07)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (19c4a07)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - COBAL Humaitá", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "19c4a07", + "isDisposable": true, + "postalCode": "22270018", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Voluntários da Pátria", + "number": "446", + "neighborhood": "Humaitá", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.1898, + -22.95333 + ] + }, + "additionalInfo": "Trazer documentos oficiais", + "dockId": null + }, + "pickupPointId": "qastoremg_19c4a07", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (1284d4e)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (1284d4e)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Shopping Rio Sul", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1284d4e", + "isDisposable": true, + "postalCode": "22290160", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Lauro Muller", + "number": "116", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.176, + -22.95637 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_1284d4e", + "pickupDistance": 12, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (2043cc0)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (2043cc0)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Retirada Ximi", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2043cc0", + "isDisposable": true, + "postalCode": "21820-020", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Bangu", + "number": "", + "neighborhood": "Bangu", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.46651, + -22.88117 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_2043cc0", + "pickupDistance": 20, + "polygonName": "", + "transitTime": "0bd" + } + ], + "shipsTo": [ + "BRA", + "AFG", + "ALB", + "DZA", + "ASM", + "AND", + "AGO", + "AIA", + "ATA", + "ATG", + "ARG", + "ARM", + "ABW", + "AUS", + "AUT", + "AZE", + "BHS", + "BHR", + "BGD", + "BRB", + "BLR", + "BEL", + "BLZ", + "BEN", + "BMU", + "BTN", + "BOL", + "BIH", + "BWA", + "IOT", + "VGB", + "BRN", + "BGR", + "BFA", + "BDI", + "KHM", + "CMR", + "CAN", + "CPV", + "CYM", + "CAF", + "TCD", + "CHL", + "CHN", + "CXR", + "CCK", + "COL", + "COM", + "COK", + "CRI", + "HRV", + "CUB", + "CUW", + "CYP", + "CZE", + "COD", + "DNK", + "DJI", + "DMA", + "DOM", + "TLS", + "ECU", + "EGY", + "SLV", + "GNQ", + "ERI", + "EST", + "ETH", + "FLK", + "FRO", + "FJI", + "FIN", + "FRA", + "PYF", + "GAB", + "GMB", + "GEO", + "DEU", + "GHA", + "GIB", + "GRC", + "GRL", + "GRD", + "GUM", + "GTM", + "GGY", + "GIN", + "GNB", + "GUY", + "HTI", + "HND", + "HKG", + "HUN", + "ISL", + "IND", + "IDN", + "IRN", + "IRQ", + "IRL", + "IMN", + "ISR", + "ITA", + "CIV", + "JAM", + "JPN", + "JEY", + "JOR", + "KAZ", + "KEN", + "KIR", + "XKX", + "KWT", + "KGZ", + "LAO", + "LVA", + "LBN", + "LSO", + "LBR", + "LBY", + "LIE", + "LTU", + "LUX", + "MAC", + "MKD", + "MDG", + "MWI", + "MYS", + "MDV", + "MLI", + "MLT", + "MHL", + "MRT", + "MUS", + "MYT", + "MEX", + "FSM", + "MDA", + "MCO", + "MNG", + "MNE", + "MSR", + "MAR", + "MOZ", + "MMR", + "NAM", + "NRU", + "NPL", + "NLD", + "ANT", + "NCL", + "NZL", + "NIC", + "NER", + "NGA", + "NIU", + "PRK", + "MNP", + "NOR", + "OMN", + "PAK", + "PLW", + "PSE", + "PAN", + "PNG", + "PRY", + "PER", + "PHL", + "PCN", + "POL", + "PRT", + "PRI", + "QAT", + "COG", + "REU", + "ROU", + "RUS", + "RWA", + "BLM", + "SHN", + "KNA", + "LCA", + "MAF", + "SPM", + "VCT", + "WSM", + "SMR", + "STP", + "SAU", + "SEN", + "SRB", + "SYC", + "SLE", + "SGP", + "SXM", + "SVK", + "SVN", + "SLB", + "SOM", + "ZAF", + "KOR", + "SSD", + "ESP", + "LKA", + "SDN", + "SUR", + "SJM", + "SWZ", + "SWE", + "CHE", + "SYR", + "TWN", + "TJK", + "TZA", + "THA", + "TGO", + "TKL", + "TON", + "TTO", + "TUN", + "TUR", + "TKM", + "TCA", + "TUV", + "VIR", + "UGA", + "UKR", + "ARE", + "GBR", + "USA", + "URY", + "UZB", + "VUT", + "VAT", + "VEN", + "VNM", + "WLF", + "ESH", + "YEM", + "ZMB", + "ZWE" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + } + ], + "pickupPoints": [ + { + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "id": "1_13f1c17", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "id": "1_14b25e5", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "id": "1_retiradarjvtex", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "id": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "id": "1_1d98b7a", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "Retirada-Teste", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "Retirada-Teste", + "isDisposable": true, + "postalCode": "22250-145", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "200", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18039, + -22.94183 + ] + }, + "additionalInfo": "", + "id": "qastoremg_Retirada-Teste", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "akkel223k", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "id": "qastoremg_akkel223k", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "RJ - Botafogo Praia Shopping", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "16cbd27", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "400", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "Trazer sacola", + "id": "qastoremg_16cbd27", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "RJ - Praça do Flamengo", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "0w97tw", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da praça", + "number": "400", + "neighborhood": "Flamengo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "", + "id": "qastoremg_0w97tw", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "RJ - COBAL Humaitá", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "19c4a07", + "isDisposable": true, + "postalCode": "22270018", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Voluntários da Pátria", + "number": "446", + "neighborhood": "Humaitá", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.1898, + -22.95333 + ] + }, + "additionalInfo": "Trazer documentos oficiais", + "id": "qastoremg_19c4a07", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Shopping Rio Sul", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1284d4e", + "isDisposable": true, + "postalCode": "22290160", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Lauro Muller", + "number": "116", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.176, + -22.95637 + ] + }, + "additionalInfo": "", + "id": "qastoremg_1284d4e", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "Retirada Ximi", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2043cc0", + "isDisposable": true, + "postalCode": "21820-020", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Bangu", + "number": "", + "neighborhood": "Bangu", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.46651, + -22.88117 + ] + }, + "additionalInfo": "", + "id": "qastoremg_2043cc0", + "isActive": null, + "businessHours": [] + } + ], + "contacts": [ + { + "id": "ac40152925234fd6b6dbae6c88e34a51", + "firstName": "Saul", + "lastName": "Goodman" + } + ], + "contactsInfo": [ + { + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "contacts": [ + "ac40152925234fd6b6dbae6c88e34a51" + ], + "receiveWindows": [] + } + ] + }, + "clientProfileData": null, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [ + { + "paymentSystem": "1", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + }, + { + "count": 7, + "hasInterestRate": false, + "interestRate": 0, + "value": 100, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 7, + "hasInterestRate": false, + "interestRate": 0, + "value": 100, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "2", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "3", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "4", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + }, + { + "count": 8, + "hasInterestRate": false, + "interestRate": 0, + "value": 87, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 8, + "hasInterestRate": false, + "interestRate": 0, + "value": 87, + "total": 700 + } + ] + }, + { + "count": 10, + "hasInterestRate": false, + "interestRate": 0, + "value": 70, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 10, + "hasInterestRate": false, + "interestRate": 0, + "value": 70, + "total": 700 + } + ] + }, + { + "count": 12, + "hasInterestRate": false, + "interestRate": 0, + "value": 58, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 12, + "hasInterestRate": false, + "interestRate": 0, + "value": 58, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "6", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "7", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "8", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "9", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "12", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "16", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "21", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "39", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "44", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "45", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "64", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "65", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "125", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "201", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "900", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 16, + "name": "Vale", + "groupName": "giftCardPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "16", + "template": "giftCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108824Z", + "availablePayments": null + }, + { + "id": 12, + "name": "PayPal", + "groupName": "payPalPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "12", + "template": "payPalPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108826Z", + "availablePayments": null + }, + { + "id": 44, + "name": "Venda Direta Debito", + "groupName": "debitDirectSalePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "44", + "template": "debitDirectSalePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108828Z", + "availablePayments": null + }, + { + "id": 45, + "name": "Venda Direta Credito", + "groupName": "creditDirectSalePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "45", + "template": "creditDirectSalePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108829Z", + "availablePayments": null + }, + { + "id": 3, + "name": "Diners", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^3(0[0-5]|[68][0-9])[0-9]{11}$", + "mask": "9999 999999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "3", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710883Z", + "availablePayments": null + }, + { + "id": 9, + "name": "Elo", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^(50(67(0[78]|1[5789]|2[012456789]|3[01234569]|4[0-7]|53|7[4-8])|9(0(0[0-9]|1[34]|2[0-7]|3[0359]|4[01235678]|5[01235789]|6[0-9]|7[01346789]|8[01234789]|9[123479])|1(0[34568]|4[6-9]|5[1-8]|8[356789])|2(2[0-2]|5[78]|6[1-9]|7[0-9]|8[01235678]|90)|357|4(0[7-9]|1[0-9]|2[0-2]|31|5[7-9]|6[0-6]|84)|55[01]|636|7(2[2-9]|6[5-9])))|4(0117[89]|3(1274|8935)|5(1416|7(393|63[12])))|6(27780|36368|5(0(0(3[12356789]|4[0-7]|7[78])|4(0[6-9]|1[0234]|2[2-9]|3[045789]|8[5-9]|9[0-9])|5(0[012346789]|1[0-9]|2[0-9]|3[0178]|5[2-9]|6[0-6]|7[7-9]|8[0-8]|9[1-8])|72[0-7]|9(0[1-9]|1[0-9]|2[0128]|3[89]|4[6-9]|5[0145]|6[235678]|71))|16(5[2-9]|6[0-9]|7[01456789])|50(0[0-9]|1[02345678]|36|5[1267]))))\\d{0,13}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "9", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108831Z", + "availablePayments": null + }, + { + "id": 4, + "name": "Mastercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "4", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108833Z", + "availablePayments": null + }, + { + "id": 6, + "name": "Boleto Bancário", + "groupName": "bankInvoicePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "6", + "template": "bankInvoicePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108834Z", + "availablePayments": null + }, + { + "id": 8, + "name": "Hipercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^606282|^3841(?:[0|4|6]{1})0", + "mask": "9999999999999999999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "8", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108836Z", + "availablePayments": null + }, + { + "id": 65, + "name": "Mastercard Debit", + "groupName": "debitCardPaymentGroup", + "validator": { + "regex": "^(502275|528745|(5045|5061|5062|5063|5064|5105|5111|5112|5117|5118|5122|5160|5161|5164|5165|5166|5174|5177|5188|5201|5204|5206|5235|5236|5240|5247|5256|5261|5263|5264|5280|5284|5285|5290|5295|5301|5306|5312|5324|5336|5339|5343|5349|5359|5367|5370|5379|5380|5384|5389|5399|5439|5452|5453|5457|5463|5496|5502|5508|5510|5512|5513|5514|5515|5534|5538|5541|5544|5546|5549|5559|5575|5576|5578|5579)[0-9]{2}|558426|559471|588772|589617|528733|549180|517562|551792|553771|553777)[0-9]{0,10}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "65", + "template": "debitCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108837Z", + "availablePayments": null + }, + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:51:49.7108837Z", + "availablePayments": null + }, + { + "id": 7, + "name": "Aura", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^50[0-9]{17}$", + "mask": "9999999999999999999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "7", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108838Z", + "availablePayments": null + }, + { + "id": 39, + "name": "Maestro", + "groupName": "debitCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "39", + "template": "debitCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710884Z", + "availablePayments": null + }, + { + "id": 1, + "name": "American Express", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^3[47][0-9]{13}$", + "mask": "9999 999999 99999", + "cardCodeRegex": "^[0-9]{4}$", + "cardCodeMask": "9999", + "weights": [ + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "1", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710884Z", + "availablePayments": null + }, + { + "id": 21, + "name": "JCB", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^(35[0-9]{3}|2131|1800)[0-9]{11}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "21", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108841Z", + "availablePayments": null + }, + { + "id": 201, + "name": "Dinheiro", + "groupName": "custom201PaymentGroupPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "201", + "template": "custom201PaymentGroupPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": true, + "description": "Pague no dinheiro", + "requiresAuthentication": false, + "dueDate": "2025-12-26T16:50:49.7108842Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108844Z", + "availablePayments": null + }, + { + "id": 64, + "name": "Customer Credit", + "groupName": "creditControlPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "64", + "template": "creditControlPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108844Z", + "availablePayments": null + }, + { + "id": 125, + "name": "Pix", + "groupName": "instantPaymentPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "125", + "template": "instantPaymentPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108846Z", + "availablePayments": null + }, + { + "id": 900, + "name": "WH Google Pay", + "groupName": "WH Google PayPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "900", + "template": "WH Google PayPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108847Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": "125", + "bin": null, + "accountId": null, + "tokenId": null, + "installments": 1, + "referenceValue": 700, + "value": 700, + "merchantSellerPayments": [ + { + "id": "QASTORE", + "installments": 1, + "referenceValue": 700, + "value": 700, + "interestRate": 0, + "installmentValue": 700 + } + ] + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [], + "availableAssociations": {} + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "QA Store", + "logo": "", + "minimumOrderValue": 0 + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null, + "savePersonalData": false, + "savePaymentData": false + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": { + "customApps": [], + "customFields": [ + { + "linkedEntity": { + "type": "address", + "id": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd" + }, + "fields": [ + { + "name": "desktop", + "value": "DK1", + "refId": "DK1" + } + ] + }, + { + "linkedEntity": { + "type": "order" + }, + "fields": [ + { + "name": "poNumber", + "value": "PO2", + "refId": "PO2" + } + ] + }, + { + "linkedEntity": { + "type": "item", + "id": "55DE6DCE21B740B1BD01E2E86EB3AD30" + }, + "fields": [ + { + "name": "costCenter", + "value": "CC1", + "refId": "CC1" + } + ] + } + ] + }, + "itemMetadata": { + "items": [ + { + "id": "2", + "seller": "1", + "name": "mangueira wl verde", + "skuName": "verde", + "productId": "2", + "refId": "codrefmangueiraverde", + "ean": null, + "imageUrl": "https://qastore.vteximg.com.br/arquivos/ids/155395-55-55/mangueira.jpg?v=636565509324700000", + "detailUrl": "/mangueira/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "merchantContextData": null, + "purchaseAgentsData": null, + "itemsOrdination": {} + } + } + } + } + }, + "operationId": "put_api_checkout_pub_orderform_ByOrderFormId_customfields_order" + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/customFields/item/{itemId}": { + "put": { + "tags": [ + "Custom data" + ], + "summary": "Add item custom field", + "description": "Add a custom field to a specific item in an orderForm. The custom field is linked to the item's unique ID.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\n>⚠️ This endpoint is only available for B2B Buyer Portal. Authorization from the Commerce Engineer of the account is required for usage.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "29154e27383145cc8ce1f7a1df0d99c4" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "E0F2B7AF5CD74D668F1E27537206912C" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the custom field." + }, + "value": { + "type": "string", + "description": "Value of the custom field." + }, + "refId": { + "type": "string", + "description": "Reference identifier for this custom field, typically used for internal tracking within the store." + } + }, + "required": [ + "name", + "value" + ] + }, + "example": { + "name": "costCenter", + "value": "CC1", + "refId": "CC1" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "cd29b21bf1f4432ba938e2863c79a70e", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": null, + "checkedInPickupPointId": null, + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "", + "userType": null, + "ignoreProfileData": false, + "value": 700, + "messages": [], + "items": [ + { + "uniqueId": "55DE6DCE21B740B1BD01E2E86EB3AD30", + "id": "2", + "productId": "2", + "productRefId": "", + "refId": "codrefmangueiraverde", + "ean": null, + "name": "mangueira wl verde", + "skuName": "verde", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2026-12-16T16:51:48Z", + "tax": 0, + "price": 100, + "listPrice": 100, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 100, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brand name", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Category" + }, + "quantity": 2, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "https://qastore.vteximg.com.br/arquivos/ids/155395-55-55/mangueira.jpg?v=636565509324700000", + "detailUrl": "/mangueira/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [], + "offerings": [], + "priceTags": [], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 100, + "total": 200, + "sellingPrices": [ + { + "value": 100, + "quantity": 2 + } + ], + "reason": null + }, + "taxCode": "" + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 200 + }, + { + "id": "Shipping", + "name": "Total do Frete", + "value": 500 + } + ], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Lenta", + "selectedDeliveryChannel": "delivery", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "slas": [ + { + "id": "Agendada com limite", + "deliveryChannel": "delivery", + "name": "Agendada com limite", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Agendada com limite", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "5bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-23T08:00:00+00:00", + "endDateUtc": "2025-12-23T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-23T12:00:00+00:00", + "endDateUtc": "2025-12-23T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-24T08:00:00+00:00", + "endDateUtc": "2025-12-24T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-24T12:00:00+00:00", + "endDateUtc": "2025-12-24T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-25T08:00:00+00:00", + "endDateUtc": "2025-12-25T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-25T12:00:00+00:00", + "endDateUtc": "2025-12-25T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-26T08:00:00+00:00", + "endDateUtc": "2025-12-26T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-26T12:00:00+00:00", + "endDateUtc": "2025-12-26T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-27T08:00:00+00:00", + "endDateUtc": "2025-12-27T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-27T12:00:00+00:00", + "endDateUtc": "2025-12-27T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-28T08:00:00+00:00", + "endDateUtc": "2025-12-28T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-28T12:00:00+00:00", + "endDateUtc": "2025-12-28T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-29T08:00:00+00:00", + "endDateUtc": "2025-12-29T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-29T12:00:00+00:00", + "endDateUtc": "2025-12-29T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-30T08:00:00+00:00", + "endDateUtc": "2025-12-30T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-30T12:00:00+00:00", + "endDateUtc": "2025-12-30T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-31T08:00:00+00:00", + "endDateUtc": "2025-12-31T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-31T12:00:00+00:00", + "endDateUtc": "2025-12-31T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-01T08:00:00+00:00", + "endDateUtc": "2026-01-01T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-01T12:00:00+00:00", + "endDateUtc": "2026-01-01T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-02T08:00:00+00:00", + "endDateUtc": "2026-01-02T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-02T12:00:00+00:00", + "endDateUtc": "2026-01-02T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-03T08:00:00+00:00", + "endDateUtc": "2026-01-03T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-03T12:00:00+00:00", + "endDateUtc": "2026-01-03T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-04T08:00:00+00:00", + "endDateUtc": "2026-01-04T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-04T12:00:00+00:00", + "endDateUtc": "2026-01-04T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-05T08:00:00+00:00", + "endDateUtc": "2026-01-05T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-05T12:00:00+00:00", + "endDateUtc": "2026-01-05T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "5bd" + }, + { + "id": "Lenta", + "deliveryChannel": "delivery", + "name": "Lenta", + "deliveryIds": [ + { + "courierId": "1d6f441", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "20bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "20bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1000, + "listPrice": 1000, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Motoboy", + "deliveryChannel": "delivery", + "name": "Motoboy", + "deliveryIds": [ + { + "courierId": "1d251fc", + "warehouseId": "1_1", + "dockId": "10af216", + "courierName": "Motoexpress", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "119m", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 4500, + "listPrice": 4500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "119m" + }, + { + "id": "Agendada", + "deliveryChannel": "delivery", + "name": "Agendada", + "deliveryIds": [ + { + "courierId": "12b2b74", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1d", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-17T17:00:00+00:00", + "endDateUtc": "2025-12-17T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T08:00:00+00:00", + "endDateUtc": "2025-12-18T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T13:00:00+00:00", + "endDateUtc": "2025-12-18T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T17:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T08:00:00+00:00", + "endDateUtc": "2025-12-19T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T13:00:00+00:00", + "endDateUtc": "2025-12-19T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T17:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T08:00:00+00:00", + "endDateUtc": "2025-12-20T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T13:00:00+00:00", + "endDateUtc": "2025-12-20T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 5000, + "listPrice": 5000, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "1d" + }, + { + "id": "Pickup (13f1c17)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (13f1c17)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_13f1c17", + "pickupDistance": 5, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (13f1c17)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (13f1c17)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_13f1c17", + "pickupDistance": 5, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (14b25e5)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (14b25e5)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "dockId": "1be1850" + }, + "pickupPointId": "1_14b25e5", + "pickupDistance": 9, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (14b25e5)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (14b25e5)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "dockId": "1be1850" + }, + "pickupPointId": "1_14b25e5", + "pickupDistance": 9, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Teste propagacao (Retirada-Teste)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (Retirada-Teste)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Retirada-Teste", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "Retirada-Teste", + "isDisposable": true, + "postalCode": "22250-145", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "200", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18039, + -22.94183 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_Retirada-Teste", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Pickup (retiradarjvtex)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (retiradarjvtex)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_retiradarjvtex", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (retiradarjvtex)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (retiradarjvtex)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_retiradarjvtex", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (1d98b7a)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (1d98b7a)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_1d98b7a", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (1d98b7a)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (1d98b7a)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_1d98b7a", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Teste propagacao (akkel223k)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (akkel223k)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "akkel223k", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_akkel223k", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (16cbd27)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (16cbd27)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Botafogo Praia Shopping", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "16cbd27", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "400", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "Trazer sacola", + "dockId": null + }, + "pickupPointId": "qastoremg_16cbd27", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (0w97tw)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (0w97tw)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Praça do Flamengo", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "0w97tw", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da praça", + "number": "400", + "neighborhood": "Flamengo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_0w97tw", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (19c4a07)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (19c4a07)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - COBAL Humaitá", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "19c4a07", + "isDisposable": true, + "postalCode": "22270018", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Voluntários da Pátria", + "number": "446", + "neighborhood": "Humaitá", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.1898, + -22.95333 + ] + }, + "additionalInfo": "Trazer documentos oficiais", + "dockId": null + }, + "pickupPointId": "qastoremg_19c4a07", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (1284d4e)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (1284d4e)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Shopping Rio Sul", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1284d4e", + "isDisposable": true, + "postalCode": "22290160", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Lauro Muller", + "number": "116", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.176, + -22.95637 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_1284d4e", + "pickupDistance": 12, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (2043cc0)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (2043cc0)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Retirada Ximi", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2043cc0", + "isDisposable": true, + "postalCode": "21820-020", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Bangu", + "number": "", + "neighborhood": "Bangu", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.46651, + -22.88117 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_2043cc0", + "pickupDistance": 20, + "polygonName": "", + "transitTime": "0bd" + } + ], + "shipsTo": [ + "BRA", + "AFG", + "ALB", + "DZA", + "ASM", + "AND", + "AGO", + "AIA", + "ATA", + "ATG", + "ARG", + "ARM", + "ABW", + "AUS", + "AUT", + "AZE", + "BHS", + "BHR", + "BGD", + "BRB", + "BLR", + "BEL", + "BLZ", + "BEN", + "BMU", + "BTN", + "BOL", + "BIH", + "BWA", + "IOT", + "VGB", + "BRN", + "BGR", + "BFA", + "BDI", + "KHM", + "CMR", + "CAN", + "CPV", + "CYM", + "CAF", + "TCD", + "CHL", + "CHN", + "CXR", + "CCK", + "COL", + "COM", + "COK", + "CRI", + "HRV", + "CUB", + "CUW", + "CYP", + "CZE", + "COD", + "DNK", + "DJI", + "DMA", + "DOM", + "TLS", + "ECU", + "EGY", + "SLV", + "GNQ", + "ERI", + "EST", + "ETH", + "FLK", + "FRO", + "FJI", + "FIN", + "FRA", + "PYF", + "GAB", + "GMB", + "GEO", + "DEU", + "GHA", + "GIB", + "GRC", + "GRL", + "GRD", + "GUM", + "GTM", + "GGY", + "GIN", + "GNB", + "GUY", + "HTI", + "HND", + "HKG", + "HUN", + "ISL", + "IND", + "IDN", + "IRN", + "IRQ", + "IRL", + "IMN", + "ISR", + "ITA", + "CIV", + "JAM", + "JPN", + "JEY", + "JOR", + "KAZ", + "KEN", + "KIR", + "XKX", + "KWT", + "KGZ", + "LAO", + "LVA", + "LBN", + "LSO", + "LBR", + "LBY", + "LIE", + "LTU", + "LUX", + "MAC", + "MKD", + "MDG", + "MWI", + "MYS", + "MDV", + "MLI", + "MLT", + "MHL", + "MRT", + "MUS", + "MYT", + "MEX", + "FSM", + "MDA", + "MCO", + "MNG", + "MNE", + "MSR", + "MAR", + "MOZ", + "MMR", + "NAM", + "NRU", + "NPL", + "NLD", + "ANT", + "NCL", + "NZL", + "NIC", + "NER", + "NGA", + "NIU", + "PRK", + "MNP", + "NOR", + "OMN", + "PAK", + "PLW", + "PSE", + "PAN", + "PNG", + "PRY", + "PER", + "PHL", + "PCN", + "POL", + "PRT", + "PRI", + "QAT", + "COG", + "REU", + "ROU", + "RUS", + "RWA", + "BLM", + "SHN", + "KNA", + "LCA", + "MAF", + "SPM", + "VCT", + "WSM", + "SMR", + "STP", + "SAU", + "SEN", + "SRB", + "SYC", + "SLE", + "SGP", + "SXM", + "SVK", + "SVN", + "SLB", + "SOM", + "ZAF", + "KOR", + "SSD", + "ESP", + "LKA", + "SDN", + "SUR", + "SJM", + "SWZ", + "SWE", + "CHE", + "SYR", + "TWN", + "TJK", + "TZA", + "THA", + "TGO", + "TKL", + "TON", + "TTO", + "TUN", + "TUR", + "TKM", + "TCA", + "TUV", + "VIR", + "UGA", + "UKR", + "ARE", + "GBR", + "USA", + "URY", + "UZB", + "VUT", + "VAT", + "VEN", + "VNM", + "WLF", + "ESH", + "YEM", + "ZMB", + "ZWE" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + } + ], + "pickupPoints": [ + { + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "id": "1_13f1c17", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "id": "1_14b25e5", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "id": "1_retiradarjvtex", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "id": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "id": "1_1d98b7a", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "Retirada-Teste", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "Retirada-Teste", + "isDisposable": true, + "postalCode": "22250-145", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "200", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18039, + -22.94183 + ] + }, + "additionalInfo": "", + "id": "qastoremg_Retirada-Teste", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "akkel223k", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "id": "qastoremg_akkel223k", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "RJ - Botafogo Praia Shopping", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "16cbd27", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "400", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "Trazer sacola", + "id": "qastoremg_16cbd27", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "RJ - Praça do Flamengo", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "0w97tw", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da praça", + "number": "400", + "neighborhood": "Flamengo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "", + "id": "qastoremg_0w97tw", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "RJ - COBAL Humaitá", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "19c4a07", + "isDisposable": true, + "postalCode": "22270018", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Voluntários da Pátria", + "number": "446", + "neighborhood": "Humaitá", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.1898, + -22.95333 + ] + }, + "additionalInfo": "Trazer documentos oficiais", + "id": "qastoremg_19c4a07", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Shopping Rio Sul", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1284d4e", + "isDisposable": true, + "postalCode": "22290160", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Lauro Muller", + "number": "116", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.176, + -22.95637 + ] + }, + "additionalInfo": "", + "id": "qastoremg_1284d4e", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "Retirada Ximi", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2043cc0", + "isDisposable": true, + "postalCode": "21820-020", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Bangu", + "number": "", + "neighborhood": "Bangu", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.46651, + -22.88117 + ] + }, + "additionalInfo": "", + "id": "qastoremg_2043cc0", + "isActive": null, + "businessHours": [] + } + ], + "contacts": [ + { + "id": "ac40152925234fd6b6dbae6c88e34a51", + "firstName": "Saul", + "lastName": "Goodman" + } + ], + "contactsInfo": [ + { + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "contacts": [ + "ac40152925234fd6b6dbae6c88e34a51" + ], + "receiveWindows": [] + } + ] + }, + "clientProfileData": null, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [ + { + "paymentSystem": "1", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + }, + { + "count": 7, + "hasInterestRate": false, + "interestRate": 0, + "value": 100, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 7, + "hasInterestRate": false, + "interestRate": 0, + "value": 100, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "2", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "3", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "4", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + }, + { + "count": 8, + "hasInterestRate": false, + "interestRate": 0, + "value": 87, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 8, + "hasInterestRate": false, + "interestRate": 0, + "value": 87, + "total": 700 + } + ] + }, + { + "count": 10, + "hasInterestRate": false, + "interestRate": 0, + "value": 70, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 10, + "hasInterestRate": false, + "interestRate": 0, + "value": 70, + "total": 700 + } + ] + }, + { + "count": 12, + "hasInterestRate": false, + "interestRate": 0, + "value": 58, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 12, + "hasInterestRate": false, + "interestRate": 0, + "value": 58, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "6", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "7", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "8", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "9", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "12", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "16", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "21", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "39", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "44", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "45", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "64", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "65", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "125", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "201", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "900", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 16, + "name": "Vale", + "groupName": "giftCardPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "16", + "template": "giftCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108824Z", + "availablePayments": null + }, + { + "id": 12, + "name": "PayPal", + "groupName": "payPalPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "12", + "template": "payPalPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108826Z", + "availablePayments": null + }, + { + "id": 44, + "name": "Venda Direta Debito", + "groupName": "debitDirectSalePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "44", + "template": "debitDirectSalePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108828Z", + "availablePayments": null + }, + { + "id": 45, + "name": "Venda Direta Credito", + "groupName": "creditDirectSalePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "45", + "template": "creditDirectSalePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108829Z", + "availablePayments": null + }, + { + "id": 3, + "name": "Diners", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^3(0[0-5]|[68][0-9])[0-9]{11}$", + "mask": "9999 999999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "3", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710883Z", + "availablePayments": null + }, + { + "id": 9, + "name": "Elo", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^(50(67(0[78]|1[5789]|2[012456789]|3[01234569]|4[0-7]|53|7[4-8])|9(0(0[0-9]|1[34]|2[0-7]|3[0359]|4[01235678]|5[01235789]|6[0-9]|7[01346789]|8[01234789]|9[123479])|1(0[34568]|4[6-9]|5[1-8]|8[356789])|2(2[0-2]|5[78]|6[1-9]|7[0-9]|8[01235678]|90)|357|4(0[7-9]|1[0-9]|2[0-2]|31|5[7-9]|6[0-6]|84)|55[01]|636|7(2[2-9]|6[5-9])))|4(0117[89]|3(1274|8935)|5(1416|7(393|63[12])))|6(27780|36368|5(0(0(3[12356789]|4[0-7]|7[78])|4(0[6-9]|1[0234]|2[2-9]|3[045789]|8[5-9]|9[0-9])|5(0[012346789]|1[0-9]|2[0-9]|3[0178]|5[2-9]|6[0-6]|7[7-9]|8[0-8]|9[1-8])|72[0-7]|9(0[1-9]|1[0-9]|2[0128]|3[89]|4[6-9]|5[0145]|6[235678]|71))|16(5[2-9]|6[0-9]|7[01456789])|50(0[0-9]|1[02345678]|36|5[1267]))))\\d{0,13}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "9", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108831Z", + "availablePayments": null + }, + { + "id": 4, + "name": "Mastercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "4", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108833Z", + "availablePayments": null + }, + { + "id": 6, + "name": "Boleto Bancário", + "groupName": "bankInvoicePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "6", + "template": "bankInvoicePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108834Z", + "availablePayments": null + }, + { + "id": 8, + "name": "Hipercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^606282|^3841(?:[0|4|6]{1})0", + "mask": "9999999999999999999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "8", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108836Z", + "availablePayments": null + }, + { + "id": 65, + "name": "Mastercard Debit", + "groupName": "debitCardPaymentGroup", + "validator": { + "regex": "^(502275|528745|(5045|5061|5062|5063|5064|5105|5111|5112|5117|5118|5122|5160|5161|5164|5165|5166|5174|5177|5188|5201|5204|5206|5235|5236|5240|5247|5256|5261|5263|5264|5280|5284|5285|5290|5295|5301|5306|5312|5324|5336|5339|5343|5349|5359|5367|5370|5379|5380|5384|5389|5399|5439|5452|5453|5457|5463|5496|5502|5508|5510|5512|5513|5514|5515|5534|5538|5541|5544|5546|5549|5559|5575|5576|5578|5579)[0-9]{2}|558426|559471|588772|589617|528733|549180|517562|551792|553771|553777)[0-9]{0,10}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "65", + "template": "debitCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108837Z", + "availablePayments": null + }, + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:51:49.7108837Z", + "availablePayments": null + }, + { + "id": 7, + "name": "Aura", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^50[0-9]{17}$", + "mask": "9999999999999999999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "7", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108838Z", + "availablePayments": null + }, + { + "id": 39, + "name": "Maestro", + "groupName": "debitCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "39", + "template": "debitCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710884Z", + "availablePayments": null + }, + { + "id": 1, + "name": "American Express", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^3[47][0-9]{13}$", + "mask": "9999 999999 99999", + "cardCodeRegex": "^[0-9]{4}$", + "cardCodeMask": "9999", + "weights": [ + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "1", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710884Z", + "availablePayments": null + }, + { + "id": 21, + "name": "JCB", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^(35[0-9]{3}|2131|1800)[0-9]{11}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "21", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108841Z", + "availablePayments": null + }, + { + "id": 201, + "name": "Dinheiro", + "groupName": "custom201PaymentGroupPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "201", + "template": "custom201PaymentGroupPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": true, + "description": "Pague no dinheiro", + "requiresAuthentication": false, + "dueDate": "2025-12-26T16:50:49.7108842Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108844Z", + "availablePayments": null + }, + { + "id": 64, + "name": "Customer Credit", + "groupName": "creditControlPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "64", + "template": "creditControlPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108844Z", + "availablePayments": null + }, + { + "id": 125, + "name": "Pix", + "groupName": "instantPaymentPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "125", + "template": "instantPaymentPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108846Z", + "availablePayments": null + }, + { + "id": 900, + "name": "WH Google Pay", + "groupName": "WH Google PayPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "900", + "template": "WH Google PayPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108847Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": "125", + "bin": null, + "accountId": null, + "tokenId": null, + "installments": 1, + "referenceValue": 700, + "value": 700, + "merchantSellerPayments": [ + { + "id": "QASTORE", + "installments": 1, + "referenceValue": 700, + "value": 700, + "interestRate": 0, + "installmentValue": 700 + } + ] + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [], + "availableAssociations": {} + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "QA Store", + "logo": "", + "minimumOrderValue": 0 + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null, + "savePersonalData": false, + "savePaymentData": false + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": { + "customApps": [], + "customFields": [ + { + "linkedEntity": { + "type": "address", + "id": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd" + }, + "fields": [ + { + "name": "desktop", + "value": "DK1", + "refId": "DK1" + } + ] + }, + { + "linkedEntity": { + "type": "order" + }, + "fields": [ + { + "name": "poNumber", + "value": "PO2", + "refId": "PO2" + } + ] + }, + { + "linkedEntity": { + "type": "item", + "id": "55DE6DCE21B740B1BD01E2E86EB3AD30" + }, + "fields": [ + { + "name": "costCenter", + "value": "CC1", + "refId": "CC1" + } + ] + } + ] + }, + "itemMetadata": { + "items": [ + { + "id": "2", + "seller": "1", + "name": "mangueira wl verde", + "skuName": "verde", + "productId": "2", + "refId": "codrefmangueiraverde", + "ean": null, + "imageUrl": "https://qastore.vteximg.com.br/arquivos/ids/155395-55-55/mangueira.jpg?v=636565509324700000", + "detailUrl": "/mangueira/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "merchantContextData": null, + "purchaseAgentsData": null, + "itemsOrdination": {} + } + } + } + } + }, + "operationId": "put_api_checkout_pub_orderform_ByOrderFormId_customfields_item_ByItemId" + }, + "delete": { + "tags": [ + "Custom data" + ], + "summary": "Remove item custom field", + "description": "Remove a specific custom field from an item in an orderForm.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\n>⚠️ This endpoint is only available for B2B Buyer Portal. Authorization from the Commerce Engineer of the account is required for usage.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "29154e27383145cc8ce1f7a1df0d99c4" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "E0F2B7AF5CD74D668F1E27537206912C" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "cd29b21bf1f4432ba938e2863c79a70e", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": null, + "checkedInPickupPointId": null, + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "", + "userType": null, + "ignoreProfileData": false, + "value": 700, + "messages": [], + "items": [ + { + "uniqueId": "55DE6DCE21B740B1BD01E2E86EB3AD30", + "id": "2", + "productId": "2", + "productRefId": "", + "refId": "codrefmangueiraverde", + "ean": null, + "name": "mangueira wl verde", + "skuName": "verde", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2026-12-16T16:51:48Z", + "tax": 0, + "price": 100, + "listPrice": 100, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 100, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brand name", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Category" + }, + "quantity": 2, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "https://qastore.vteximg.com.br/arquivos/ids/155395-55-55/mangueira.jpg?v=636565509324700000", + "detailUrl": "/mangueira/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [], + "offerings": [], + "priceTags": [], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 100, + "total": 200, + "sellingPrices": [ + { + "value": 100, + "quantity": 2 + } + ], + "reason": null + }, + "taxCode": "" + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 200 + }, + { + "id": "Shipping", + "name": "Total do Frete", + "value": 500 + } + ], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Lenta", + "selectedDeliveryChannel": "delivery", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "slas": [ + { + "id": "Agendada com limite", + "deliveryChannel": "delivery", + "name": "Agendada com limite", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Agendada com limite", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "5bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-23T08:00:00+00:00", + "endDateUtc": "2025-12-23T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-23T12:00:00+00:00", + "endDateUtc": "2025-12-23T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-24T08:00:00+00:00", + "endDateUtc": "2025-12-24T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-24T12:00:00+00:00", + "endDateUtc": "2025-12-24T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-25T08:00:00+00:00", + "endDateUtc": "2025-12-25T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-25T12:00:00+00:00", + "endDateUtc": "2025-12-25T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-26T08:00:00+00:00", + "endDateUtc": "2025-12-26T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-26T12:00:00+00:00", + "endDateUtc": "2025-12-26T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-27T08:00:00+00:00", + "endDateUtc": "2025-12-27T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-27T12:00:00+00:00", + "endDateUtc": "2025-12-27T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-28T08:00:00+00:00", + "endDateUtc": "2025-12-28T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-28T12:00:00+00:00", + "endDateUtc": "2025-12-28T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-29T08:00:00+00:00", + "endDateUtc": "2025-12-29T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-29T12:00:00+00:00", + "endDateUtc": "2025-12-29T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-30T08:00:00+00:00", + "endDateUtc": "2025-12-30T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-30T12:00:00+00:00", + "endDateUtc": "2025-12-30T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-31T08:00:00+00:00", + "endDateUtc": "2025-12-31T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-31T12:00:00+00:00", + "endDateUtc": "2025-12-31T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-01T08:00:00+00:00", + "endDateUtc": "2026-01-01T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-01T12:00:00+00:00", + "endDateUtc": "2026-01-01T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-02T08:00:00+00:00", + "endDateUtc": "2026-01-02T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-02T12:00:00+00:00", + "endDateUtc": "2026-01-02T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-03T08:00:00+00:00", + "endDateUtc": "2026-01-03T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-03T12:00:00+00:00", + "endDateUtc": "2026-01-03T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-04T08:00:00+00:00", + "endDateUtc": "2026-01-04T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-04T12:00:00+00:00", + "endDateUtc": "2026-01-04T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-05T08:00:00+00:00", + "endDateUtc": "2026-01-05T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-05T12:00:00+00:00", + "endDateUtc": "2026-01-05T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "5bd" + }, + { + "id": "Lenta", + "deliveryChannel": "delivery", + "name": "Lenta", + "deliveryIds": [ + { + "courierId": "1d6f441", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "20bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "20bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1000, + "listPrice": 1000, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Motoboy", + "deliveryChannel": "delivery", + "name": "Motoboy", + "deliveryIds": [ + { + "courierId": "1d251fc", + "warehouseId": "1_1", + "dockId": "10af216", + "courierName": "Motoexpress", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "119m", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 4500, + "listPrice": 4500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "119m" + }, + { + "id": "Agendada", + "deliveryChannel": "delivery", + "name": "Agendada", + "deliveryIds": [ + { + "courierId": "12b2b74", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1d", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-17T17:00:00+00:00", + "endDateUtc": "2025-12-17T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T08:00:00+00:00", + "endDateUtc": "2025-12-18T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T13:00:00+00:00", + "endDateUtc": "2025-12-18T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T17:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T08:00:00+00:00", + "endDateUtc": "2025-12-19T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T13:00:00+00:00", + "endDateUtc": "2025-12-19T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T17:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T08:00:00+00:00", + "endDateUtc": "2025-12-20T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T13:00:00+00:00", + "endDateUtc": "2025-12-20T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 5000, + "listPrice": 5000, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "1d" + }, + { + "id": "Pickup (13f1c17)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (13f1c17)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_13f1c17", + "pickupDistance": 5, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (13f1c17)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (13f1c17)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_13f1c17", + "pickupDistance": 5, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (14b25e5)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (14b25e5)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "dockId": "1be1850" + }, + "pickupPointId": "1_14b25e5", + "pickupDistance": 9, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (14b25e5)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (14b25e5)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "dockId": "1be1850" + }, + "pickupPointId": "1_14b25e5", + "pickupDistance": 9, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Teste propagacao (Retirada-Teste)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (Retirada-Teste)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Retirada-Teste", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "Retirada-Teste", + "isDisposable": true, + "postalCode": "22250-145", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "200", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18039, + -22.94183 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_Retirada-Teste", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Pickup (retiradarjvtex)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (retiradarjvtex)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_retiradarjvtex", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (retiradarjvtex)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (retiradarjvtex)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_retiradarjvtex", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (1d98b7a)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (1d98b7a)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_1d98b7a", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (1d98b7a)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (1d98b7a)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_1d98b7a", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Teste propagacao (akkel223k)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (akkel223k)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "akkel223k", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_akkel223k", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (16cbd27)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (16cbd27)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Botafogo Praia Shopping", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "16cbd27", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "400", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "Trazer sacola", + "dockId": null + }, + "pickupPointId": "qastoremg_16cbd27", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (0w97tw)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (0w97tw)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Praça do Flamengo", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "0w97tw", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da praça", + "number": "400", + "neighborhood": "Flamengo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_0w97tw", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (19c4a07)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (19c4a07)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - COBAL Humaitá", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "19c4a07", + "isDisposable": true, + "postalCode": "22270018", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Voluntários da Pátria", + "number": "446", + "neighborhood": "Humaitá", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.1898, + -22.95333 + ] + }, + "additionalInfo": "Trazer documentos oficiais", + "dockId": null + }, + "pickupPointId": "qastoremg_19c4a07", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (1284d4e)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (1284d4e)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Shopping Rio Sul", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1284d4e", + "isDisposable": true, + "postalCode": "22290160", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Lauro Muller", + "number": "116", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.176, + -22.95637 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_1284d4e", + "pickupDistance": 12, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (2043cc0)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (2043cc0)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Retirada Ximi", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2043cc0", + "isDisposable": true, + "postalCode": "21820-020", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Bangu", + "number": "", + "neighborhood": "Bangu", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.46651, + -22.88117 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_2043cc0", + "pickupDistance": 20, + "polygonName": "", + "transitTime": "0bd" + } + ], + "shipsTo": [ + "BRA", + "AFG", + "ALB", + "DZA", + "ASM", + "AND", + "AGO", + "AIA", + "ATA", + "ATG", + "ARG", + "ARM", + "ABW", + "AUS", + "AUT", + "AZE", + "BHS", + "BHR", + "BGD", + "BRB", + "BLR", + "BEL", + "BLZ", + "BEN", + "BMU", + "BTN", + "BOL", + "BIH", + "BWA", + "IOT", + "VGB", + "BRN", + "BGR", + "BFA", + "BDI", + "KHM", + "CMR", + "CAN", + "CPV", + "CYM", + "CAF", + "TCD", + "CHL", + "CHN", + "CXR", + "CCK", + "COL", + "COM", + "COK", + "CRI", + "HRV", + "CUB", + "CUW", + "CYP", + "CZE", + "COD", + "DNK", + "DJI", + "DMA", + "DOM", + "TLS", + "ECU", + "EGY", + "SLV", + "GNQ", + "ERI", + "EST", + "ETH", + "FLK", + "FRO", + "FJI", + "FIN", + "FRA", + "PYF", + "GAB", + "GMB", + "GEO", + "DEU", + "GHA", + "GIB", + "GRC", + "GRL", + "GRD", + "GUM", + "GTM", + "GGY", + "GIN", + "GNB", + "GUY", + "HTI", + "HND", + "HKG", + "HUN", + "ISL", + "IND", + "IDN", + "IRN", + "IRQ", + "IRL", + "IMN", + "ISR", + "ITA", + "CIV", + "JAM", + "JPN", + "JEY", + "JOR", + "KAZ", + "KEN", + "KIR", + "XKX", + "KWT", + "KGZ", + "LAO", + "LVA", + "LBN", + "LSO", + "LBR", + "LBY", + "LIE", + "LTU", + "LUX", + "MAC", + "MKD", + "MDG", + "MWI", + "MYS", + "MDV", + "MLI", + "MLT", + "MHL", + "MRT", + "MUS", + "MYT", + "MEX", + "FSM", + "MDA", + "MCO", + "MNG", + "MNE", + "MSR", + "MAR", + "MOZ", + "MMR", + "NAM", + "NRU", + "NPL", + "NLD", + "ANT", + "NCL", + "NZL", + "NIC", + "NER", + "NGA", + "NIU", + "PRK", + "MNP", + "NOR", + "OMN", + "PAK", + "PLW", + "PSE", + "PAN", + "PNG", + "PRY", + "PER", + "PHL", + "PCN", + "POL", + "PRT", + "PRI", + "QAT", + "COG", + "REU", + "ROU", + "RUS", + "RWA", + "BLM", + "SHN", + "KNA", + "LCA", + "MAF", + "SPM", + "VCT", + "WSM", + "SMR", + "STP", + "SAU", + "SEN", + "SRB", + "SYC", + "SLE", + "SGP", + "SXM", + "SVK", + "SVN", + "SLB", + "SOM", + "ZAF", + "KOR", + "SSD", + "ESP", + "LKA", + "SDN", + "SUR", + "SJM", + "SWZ", + "SWE", + "CHE", + "SYR", + "TWN", + "TJK", + "TZA", + "THA", + "TGO", + "TKL", + "TON", + "TTO", + "TUN", + "TUR", + "TKM", + "TCA", + "TUV", + "VIR", + "UGA", + "UKR", + "ARE", + "GBR", + "USA", + "URY", + "UZB", + "VUT", + "VAT", + "VEN", + "VNM", + "WLF", + "ESH", + "YEM", + "ZMB", + "ZWE" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + } + ], + "pickupPoints": [ + { + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "id": "1_13f1c17", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "id": "1_14b25e5", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "id": "1_retiradarjvtex", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "id": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "id": "1_1d98b7a", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "Retirada-Teste", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "Retirada-Teste", + "isDisposable": true, + "postalCode": "22250-145", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "200", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18039, + -22.94183 + ] + }, + "additionalInfo": "", + "id": "qastoremg_Retirada-Teste", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "akkel223k", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "id": "qastoremg_akkel223k", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "RJ - Botafogo Praia Shopping", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "16cbd27", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "400", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "Trazer sacola", + "id": "qastoremg_16cbd27", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "RJ - Praça do Flamengo", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "0w97tw", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da praça", + "number": "400", + "neighborhood": "Flamengo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "", + "id": "qastoremg_0w97tw", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "RJ - COBAL Humaitá", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "19c4a07", + "isDisposable": true, + "postalCode": "22270018", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Voluntários da Pátria", + "number": "446", + "neighborhood": "Humaitá", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.1898, + -22.95333 + ] + }, + "additionalInfo": "Trazer documentos oficiais", + "id": "qastoremg_19c4a07", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Shopping Rio Sul", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1284d4e", + "isDisposable": true, + "postalCode": "22290160", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Lauro Muller", + "number": "116", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.176, + -22.95637 + ] + }, + "additionalInfo": "", + "id": "qastoremg_1284d4e", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "Retirada Ximi", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2043cc0", + "isDisposable": true, + "postalCode": "21820-020", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Bangu", + "number": "", + "neighborhood": "Bangu", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.46651, + -22.88117 + ] + }, + "additionalInfo": "", + "id": "qastoremg_2043cc0", + "isActive": null, + "businessHours": [] + } + ], + "contacts": [ + { + "id": "ac40152925234fd6b6dbae6c88e34a51", + "firstName": "Saul", + "lastName": "Goodman" + } + ], + "contactsInfo": [ + { + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "contacts": [ + "ac40152925234fd6b6dbae6c88e34a51" + ], + "receiveWindows": [] + } + ] + }, + "clientProfileData": null, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [ + { + "paymentSystem": "1", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + }, + { + "count": 7, + "hasInterestRate": false, + "interestRate": 0, + "value": 100, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 7, + "hasInterestRate": false, + "interestRate": 0, + "value": 100, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "2", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "3", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "4", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + }, + { + "count": 8, + "hasInterestRate": false, + "interestRate": 0, + "value": 87, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 8, + "hasInterestRate": false, + "interestRate": 0, + "value": 87, + "total": 700 + } + ] + }, + { + "count": 10, + "hasInterestRate": false, + "interestRate": 0, + "value": 70, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 10, + "hasInterestRate": false, + "interestRate": 0, + "value": 70, + "total": 700 + } + ] + }, + { + "count": 12, + "hasInterestRate": false, + "interestRate": 0, + "value": 58, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 12, + "hasInterestRate": false, + "interestRate": 0, + "value": 58, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "6", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "7", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "8", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "9", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "12", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "16", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "21", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "39", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "44", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "45", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "64", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "65", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "125", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "201", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "900", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 16, + "name": "Vale", + "groupName": "giftCardPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "16", + "template": "giftCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108824Z", + "availablePayments": null + }, + { + "id": 12, + "name": "PayPal", + "groupName": "payPalPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "12", + "template": "payPalPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108826Z", + "availablePayments": null + }, + { + "id": 44, + "name": "Venda Direta Debito", + "groupName": "debitDirectSalePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "44", + "template": "debitDirectSalePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108828Z", + "availablePayments": null + }, + { + "id": 45, + "name": "Venda Direta Credito", + "groupName": "creditDirectSalePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "45", + "template": "creditDirectSalePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108829Z", + "availablePayments": null + }, + { + "id": 3, + "name": "Diners", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^3(0[0-5]|[68][0-9])[0-9]{11}$", + "mask": "9999 999999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "3", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710883Z", + "availablePayments": null + }, + { + "id": 9, + "name": "Elo", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^(50(67(0[78]|1[5789]|2[012456789]|3[01234569]|4[0-7]|53|7[4-8])|9(0(0[0-9]|1[34]|2[0-7]|3[0359]|4[01235678]|5[01235789]|6[0-9]|7[01346789]|8[01234789]|9[123479])|1(0[34568]|4[6-9]|5[1-8]|8[356789])|2(2[0-2]|5[78]|6[1-9]|7[0-9]|8[01235678]|90)|357|4(0[7-9]|1[0-9]|2[0-2]|31|5[7-9]|6[0-6]|84)|55[01]|636|7(2[2-9]|6[5-9])))|4(0117[89]|3(1274|8935)|5(1416|7(393|63[12])))|6(27780|36368|5(0(0(3[12356789]|4[0-7]|7[78])|4(0[6-9]|1[0234]|2[2-9]|3[045789]|8[5-9]|9[0-9])|5(0[012346789]|1[0-9]|2[0-9]|3[0178]|5[2-9]|6[0-6]|7[7-9]|8[0-8]|9[1-8])|72[0-7]|9(0[1-9]|1[0-9]|2[0128]|3[89]|4[6-9]|5[0145]|6[235678]|71))|16(5[2-9]|6[0-9]|7[01456789])|50(0[0-9]|1[02345678]|36|5[1267]))))\\d{0,13}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "9", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108831Z", + "availablePayments": null + }, + { + "id": 4, + "name": "Mastercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "4", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108833Z", + "availablePayments": null + }, + { + "id": 6, + "name": "Boleto Bancário", + "groupName": "bankInvoicePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "6", + "template": "bankInvoicePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108834Z", + "availablePayments": null + }, + { + "id": 8, + "name": "Hipercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^606282|^3841(?:[0|4|6]{1})0", + "mask": "9999999999999999999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "8", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108836Z", + "availablePayments": null + }, + { + "id": 65, + "name": "Mastercard Debit", + "groupName": "debitCardPaymentGroup", + "validator": { + "regex": "^(502275|528745|(5045|5061|5062|5063|5064|5105|5111|5112|5117|5118|5122|5160|5161|5164|5165|5166|5174|5177|5188|5201|5204|5206|5235|5236|5240|5247|5256|5261|5263|5264|5280|5284|5285|5290|5295|5301|5306|5312|5324|5336|5339|5343|5349|5359|5367|5370|5379|5380|5384|5389|5399|5439|5452|5453|5457|5463|5496|5502|5508|5510|5512|5513|5514|5515|5534|5538|5541|5544|5546|5549|5559|5575|5576|5578|5579)[0-9]{2}|558426|559471|588772|589617|528733|549180|517562|551792|553771|553777)[0-9]{0,10}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "65", + "template": "debitCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108837Z", + "availablePayments": null + }, + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:51:49.7108837Z", + "availablePayments": null + }, + { + "id": 7, + "name": "Aura", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^50[0-9]{17}$", + "mask": "9999999999999999999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "7", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108838Z", + "availablePayments": null + }, + { + "id": 39, + "name": "Maestro", + "groupName": "debitCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "39", + "template": "debitCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710884Z", + "availablePayments": null + }, + { + "id": 1, + "name": "American Express", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^3[47][0-9]{13}$", + "mask": "9999 999999 99999", + "cardCodeRegex": "^[0-9]{4}$", + "cardCodeMask": "9999", + "weights": [ + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "1", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710884Z", + "availablePayments": null + }, + { + "id": 21, + "name": "JCB", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^(35[0-9]{3}|2131|1800)[0-9]{11}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "21", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108841Z", + "availablePayments": null + }, + { + "id": 201, + "name": "Dinheiro", + "groupName": "custom201PaymentGroupPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "201", + "template": "custom201PaymentGroupPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": true, + "description": "Pague no dinheiro", + "requiresAuthentication": false, + "dueDate": "2025-12-26T16:50:49.7108842Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108844Z", + "availablePayments": null + }, + { + "id": 64, + "name": "Customer Credit", + "groupName": "creditControlPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "64", + "template": "creditControlPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108844Z", + "availablePayments": null + }, + { + "id": 125, + "name": "Pix", + "groupName": "instantPaymentPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "125", + "template": "instantPaymentPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108846Z", + "availablePayments": null + }, + { + "id": 900, + "name": "WH Google Pay", + "groupName": "WH Google PayPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "900", + "template": "WH Google PayPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108847Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": "125", + "bin": null, + "accountId": null, + "tokenId": null, + "installments": 1, + "referenceValue": 700, + "value": 700, + "merchantSellerPayments": [ + { + "id": "QASTORE", + "installments": 1, + "referenceValue": 700, + "value": 700, + "interestRate": 0, + "installmentValue": 700 + } + ] + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [], + "availableAssociations": {} + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "QA Store", + "logo": "", + "minimumOrderValue": 0 + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null, + "savePersonalData": false, + "savePaymentData": false + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": { + "customApps": [], + "customFields": [ + { + "linkedEntity": { + "type": "address", + "id": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd" + }, + "fields": [ + { + "name": "desktop", + "value": "DK1", + "refId": "DK1" + } + ] + }, + { + "linkedEntity": { + "type": "order" + }, + "fields": [ + { + "name": "poNumber", + "value": "PO2", + "refId": "PO2" + } + ] + } + ] + }, + "itemMetadata": { + "items": [ + { + "id": "2", + "seller": "1", + "name": "mangueira wl verde", + "skuName": "verde", + "productId": "2", + "refId": "codrefmangueiraverde", + "ean": null, + "imageUrl": "https://qastore.vteximg.com.br/arquivos/ids/155395-55-55/mangueira.jpg?v=636565509324700000", + "detailUrl": "/mangueira/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "merchantContextData": null, + "purchaseAgentsData": null, + "itemsOrdination": {} + } + } + } + } + }, + "operationId": "delete_api_checkout_pub_orderform_ByOrderFormId_customfields_item_ByItemId" + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/customFields/address/{addressId}": { + "put": { + "tags": [ + "Custom data" + ], + "summary": "Add address custom field", + "description": "Add a custom field to a specific address in an orderForm. The custom field is linked to the address ID.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart. \n\n>⚠️ This endpoint is only available for B2B Buyer Portal. Authorization from the Commerce Engineer of the account is required for usage.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "29154e27383145cc8ce1f7a1df0d99c4" + } + }, + { + "name": "addressId", + "in": "path", + "description": "ID of the address.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "12345678-1234-1234-1234-123456789012" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the custom field." + }, + "value": { + "type": "string", + "description": "Value of the custom field." + }, + "refId": { + "type": "string", + "description": "Reference identifier for this custom field, typically used for internal tracking within the store." + } + }, + "required": [ + "name", + "value" + ] + }, + "example": { + "name": "desktop", + "value": "DK1", + "refId": "DK1" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderFormId": "cd29b21bf1f4432ba938e2863c79a70e", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": null, + "checkedInPickupPointId": null, + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "", + "userType": null, + "ignoreProfileData": false, + "value": 700, + "messages": [], + "items": [ + { + "uniqueId": "55DE6DCE21B740B1BD01E2E86EB3AD30", + "id": "2", + "productId": "2", + "productRefId": "", + "refId": "codrefmangueiraverde", + "ean": null, + "name": "mangueira wl verde", + "skuName": "verde", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2026-12-16T16:51:48Z", + "tax": 0, + "price": 100, + "listPrice": 100, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 100, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brand name", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Category" + }, + "quantity": 2, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "https://qastore.vteximg.com.br/arquivos/ids/155395-55-55/mangueira.jpg?v=636565509324700000", + "detailUrl": "/mangueira/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [], + "offerings": [], + "priceTags": [], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 100, + "total": 200, + "sellingPrices": [ + { + "value": 100, + "quantity": 2 + } + ], + "reason": null + }, + "taxCode": "" + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 200 + }, + { + "id": "Shipping", + "name": "Total do Frete", + "value": 500 + } + ], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Lenta", + "selectedDeliveryChannel": "delivery", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "slas": [ + { + "id": "Agendada com limite", + "deliveryChannel": "delivery", + "name": "Agendada com limite", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Agendada com limite", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "5bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-23T08:00:00+00:00", + "endDateUtc": "2025-12-23T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-23T12:00:00+00:00", + "endDateUtc": "2025-12-23T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-24T08:00:00+00:00", + "endDateUtc": "2025-12-24T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-24T12:00:00+00:00", + "endDateUtc": "2025-12-24T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-25T08:00:00+00:00", + "endDateUtc": "2025-12-25T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-25T12:00:00+00:00", + "endDateUtc": "2025-12-25T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-26T08:00:00+00:00", + "endDateUtc": "2025-12-26T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-26T12:00:00+00:00", + "endDateUtc": "2025-12-26T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-27T08:00:00+00:00", + "endDateUtc": "2025-12-27T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-27T12:00:00+00:00", + "endDateUtc": "2025-12-27T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-28T08:00:00+00:00", + "endDateUtc": "2025-12-28T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-28T12:00:00+00:00", + "endDateUtc": "2025-12-28T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-29T08:00:00+00:00", + "endDateUtc": "2025-12-29T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-29T12:00:00+00:00", + "endDateUtc": "2025-12-29T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-30T08:00:00+00:00", + "endDateUtc": "2025-12-30T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-30T12:00:00+00:00", + "endDateUtc": "2025-12-30T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-31T08:00:00+00:00", + "endDateUtc": "2025-12-31T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-31T12:00:00+00:00", + "endDateUtc": "2025-12-31T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-01T08:00:00+00:00", + "endDateUtc": "2026-01-01T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-01T12:00:00+00:00", + "endDateUtc": "2026-01-01T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-02T08:00:00+00:00", + "endDateUtc": "2026-01-02T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-02T12:00:00+00:00", + "endDateUtc": "2026-01-02T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-03T08:00:00+00:00", + "endDateUtc": "2026-01-03T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-03T12:00:00+00:00", + "endDateUtc": "2026-01-03T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-04T08:00:00+00:00", + "endDateUtc": "2026-01-04T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-04T12:00:00+00:00", + "endDateUtc": "2026-01-04T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-05T08:00:00+00:00", + "endDateUtc": "2026-01-05T12:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2026-01-05T12:00:00+00:00", + "endDateUtc": "2026-01-05T18:00:59+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "5bd" + }, + { + "id": "Lenta", + "deliveryChannel": "delivery", + "name": "Lenta", + "deliveryIds": [ + { + "courierId": "1d6f441", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "20bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "20bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1000, + "listPrice": 1000, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Motoboy", + "deliveryChannel": "delivery", + "name": "Motoboy", + "deliveryIds": [ + { + "courierId": "1d251fc", + "warehouseId": "1_1", + "dockId": "10af216", + "courierName": "Motoexpress", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "119m", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 4500, + "listPrice": 4500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "119m" + }, + { + "id": "Agendada", + "deliveryChannel": "delivery", + "name": "Agendada", + "deliveryIds": [ + { + "courierId": "12b2b74", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1d", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-17T17:00:00+00:00", + "endDateUtc": "2025-12-17T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T08:00:00+00:00", + "endDateUtc": "2025-12-18T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T13:00:00+00:00", + "endDateUtc": "2025-12-18T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T17:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T08:00:00+00:00", + "endDateUtc": "2025-12-19T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T13:00:00+00:00", + "endDateUtc": "2025-12-19T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T17:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T08:00:00+00:00", + "endDateUtc": "2025-12-20T12:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T13:00:00+00:00", + "endDateUtc": "2025-12-20T17:00:00+00:00", + "price": 1000, + "lisPrice": 1000, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 5000, + "listPrice": 5000, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": "", + "transitTime": "1d" + }, + { + "id": "Pickup (13f1c17)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (13f1c17)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_13f1c17", + "pickupDistance": 5, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (13f1c17)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (13f1c17)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_13f1c17", + "pickupDistance": 5, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (14b25e5)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (14b25e5)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "dockId": "1be1850" + }, + "pickupPointId": "1_14b25e5", + "pickupDistance": 9, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (14b25e5)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (14b25e5)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "dockId": "1be1850" + }, + "pickupPointId": "1_14b25e5", + "pickupDistance": 9, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Teste propagacao (Retirada-Teste)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (Retirada-Teste)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Retirada-Teste", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "Retirada-Teste", + "isDisposable": true, + "postalCode": "22250-145", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "200", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18039, + -22.94183 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_Retirada-Teste", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Pickup (retiradarjvtex)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (retiradarjvtex)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_retiradarjvtex", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (2a93c59b-7a6c-42f9-a301-2952cf8ef590)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (retiradarjvtex)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (retiradarjvtex)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_retiradarjvtex", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup (1d98b7a)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup (1d98b7a)", + "deliveryIds": [ + { + "courierId": "1950055", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_1d98b7a", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Pickup Agendado (1d98b7a)", + "deliveryChannel": "pickup-in-point", + "name": "Pickup Agendado (1d98b7a)", + "deliveryIds": [ + { + "courierId": "10776f5", + "warehouseId": "1_1", + "dockId": "1be1850", + "courierName": "Retirada QA (Agendada)", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [ + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-18T00:00:00+00:00", + "endDateUtc": "2025-12-18T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-19T00:00:00+00:00", + "endDateUtc": "2025-12-19T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T16:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2025-12-20T00:00:00+00:00", + "endDateUtc": "2025-12-20T20:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 300, + "listPrice": 300, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": "1be1850" + }, + "pickupPointId": "1_1d98b7a", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "1bd" + }, + { + "id": "Teste propagacao (akkel223k)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (akkel223k)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "akkel223k", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_akkel223k", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (16cbd27)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (16cbd27)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Botafogo Praia Shopping", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "16cbd27", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "400", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "Trazer sacola", + "dockId": null + }, + "pickupPointId": "qastoremg_16cbd27", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (0w97tw)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (0w97tw)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Praça do Flamengo", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "0w97tw", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da praça", + "number": "400", + "neighborhood": "Flamengo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_0w97tw", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (19c4a07)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (19c4a07)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - COBAL Humaitá", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "19c4a07", + "isDisposable": true, + "postalCode": "22270018", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Voluntários da Pátria", + "number": "446", + "neighborhood": "Humaitá", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.1898, + -22.95333 + ] + }, + "additionalInfo": "Trazer documentos oficiais", + "dockId": null + }, + "pickupPointId": "qastoremg_19c4a07", + "pickupDistance": 11, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (1284d4e)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (1284d4e)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "RJ - Shopping Rio Sul", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1284d4e", + "isDisposable": true, + "postalCode": "22290160", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Lauro Muller", + "number": "116", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.176, + -22.95637 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_1284d4e", + "pickupDistance": 12, + "polygonName": "", + "transitTime": "0bd" + }, + { + "id": "Teste propagacao (2043cc0)", + "deliveryChannel": "pickup-in-point", + "name": "Teste propagacao (2043cc0)", + "deliveryIds": [ + { + "courierId": "testepropagacaopps", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "[QASTOREMG] Teste propagacao pps", + "quantity": 2, + "kitItemDetails": [] + } + ], + "shippingEstimate": "0bd", + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 0, + "listPrice": 0, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Retirada Ximi", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2043cc0", + "isDisposable": true, + "postalCode": "21820-020", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Bangu", + "number": "", + "neighborhood": "Bangu", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.46651, + -22.88117 + ] + }, + "additionalInfo": "", + "dockId": null + }, + "pickupPointId": "qastoremg_2043cc0", + "pickupDistance": 20, + "polygonName": "", + "transitTime": "0bd" + } + ], + "shipsTo": [ + "BRA", + "AFG", + "ALB", + "DZA", + "ASM", + "AND", + "AGO", + "AIA", + "ATA", + "ATG", + "ARG", + "ARM", + "ABW", + "AUS", + "AUT", + "AZE", + "BHS", + "BHR", + "BGD", + "BRB", + "BLR", + "BEL", + "BLZ", + "BEN", + "BMU", + "BTN", + "BOL", + "BIH", + "BWA", + "IOT", + "VGB", + "BRN", + "BGR", + "BFA", + "BDI", + "KHM", + "CMR", + "CAN", + "CPV", + "CYM", + "CAF", + "TCD", + "CHL", + "CHN", + "CXR", + "CCK", + "COL", + "COM", + "COK", + "CRI", + "HRV", + "CUB", + "CUW", + "CYP", + "CZE", + "COD", + "DNK", + "DJI", + "DMA", + "DOM", + "TLS", + "ECU", + "EGY", + "SLV", + "GNQ", + "ERI", + "EST", + "ETH", + "FLK", + "FRO", + "FJI", + "FIN", + "FRA", + "PYF", + "GAB", + "GMB", + "GEO", + "DEU", + "GHA", + "GIB", + "GRC", + "GRL", + "GRD", + "GUM", + "GTM", + "GGY", + "GIN", + "GNB", + "GUY", + "HTI", + "HND", + "HKG", + "HUN", + "ISL", + "IND", + "IDN", + "IRN", + "IRQ", + "IRL", + "IMN", + "ISR", + "ITA", + "CIV", + "JAM", + "JPN", + "JEY", + "JOR", + "KAZ", + "KEN", + "KIR", + "XKX", + "KWT", + "KGZ", + "LAO", + "LVA", + "LBN", + "LSO", + "LBR", + "LBY", + "LIE", + "LTU", + "LUX", + "MAC", + "MKD", + "MDG", + "MWI", + "MYS", + "MDV", + "MLI", + "MLT", + "MHL", + "MRT", + "MUS", + "MYT", + "MEX", + "FSM", + "MDA", + "MCO", + "MNG", + "MNE", + "MSR", + "MAR", + "MOZ", + "MMR", + "NAM", + "NRU", + "NPL", + "NLD", + "ANT", + "NCL", + "NZL", + "NIC", + "NER", + "NGA", + "NIU", + "PRK", + "MNP", + "NOR", + "OMN", + "PAK", + "PLW", + "PSE", + "PAN", + "PNG", + "PRY", + "PER", + "PHL", + "PCN", + "POL", + "PRT", + "PRI", + "QAT", + "COG", + "REU", + "ROU", + "RUS", + "RWA", + "BLM", + "SHN", + "KNA", + "LCA", + "MAF", + "SPM", + "VCT", + "WSM", + "SMR", + "STP", + "SAU", + "SEN", + "SRB", + "SYC", + "SLE", + "SGP", + "SXM", + "SVK", + "SVN", + "SLB", + "SOM", + "ZAF", + "KOR", + "SSD", + "ESP", + "LKA", + "SDN", + "SUR", + "SJM", + "SWZ", + "SWE", + "CHE", + "SYR", + "TWN", + "TJK", + "TZA", + "THA", + "TGO", + "TKL", + "TON", + "TTO", + "TUN", + "TUR", + "TKM", + "TCA", + "TUV", + "VIR", + "UGA", + "UKR", + "ARE", + "GBR", + "USA", + "URY", + "UZB", + "VUT", + "VAT", + "VEN", + "VNM", + "WLF", + "ESH", + "YEM", + "ZMB", + "ZWE" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Saul Goodman", + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "isDisposable": true, + "editable": true, + "postalCode": "21050-454", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Dom Hélder Câmara", + "number": "34", + "neighborhood": "Maria da Graça", + "complement": null, + "reference": null, + "geoCoordinates": [ + -43.264739990234375, + -22.878454208374023 + ] + } + ], + "pickupPoints": [ + { + "friendlyName": "QAStore - Loja Urca", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "13f1c17", + "isDisposable": true, + "postalCode": "22291-100", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da Praia", + "number": "8765", + "neighborhood": "Urca", + "complement": "123", + "reference": null, + "geoCoordinates": [ + -43.26347, + -22.83667 + ] + }, + "additionalInfo": "", + "id": "1_13f1c17", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "QAStore - Posto de Inscrição", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "14b25e5", + "isDisposable": true, + "postalCode": "20010060", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Visconde de Itaboraí", + "number": "22", + "neighborhood": "Centro", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17653, + -22.8996 + ] + }, + "additionalInfo": "Trazer documento com foto", + "id": "1_14b25e5", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "09:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "retiradarjvtex", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "id": "1_retiradarjvtex", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "RJ - Escritório VTEX", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "additionalInfo": "", + "id": "1_2a93c59b-7a6c-42f9-a301-2952cf8ef590", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "QAStore - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1d98b7a", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "id": "1_1d98b7a", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "Retirada-Teste", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "Retirada-Teste", + "isDisposable": true, + "postalCode": "22250-145", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "200", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18039, + -22.94183 + ] + }, + "additionalInfo": "", + "id": "qastoremg_Retirada-Teste", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Meu ponto de retirada", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "akkel223k", + "isDisposable": true, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "89", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.17835, + -22.94071 + ] + }, + "additionalInfo": "", + "id": "qastoremg_akkel223k", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "RJ - Botafogo Praia Shopping", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "16cbd27", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "400", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "Trazer sacola", + "id": "qastoremg_16cbd27", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "00:00:00" + } + ] + }, + { + "friendlyName": "RJ - Praça do Flamengo", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "0w97tw", + "isDisposable": true, + "postalCode": "22250040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da praça", + "number": "400", + "neighborhood": "Flamengo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.18227, + -22.94599 + ] + }, + "additionalInfo": "", + "id": "qastoremg_0w97tw", + "isActive": null, + "businessHours": [] + }, + { + "friendlyName": "RJ - COBAL Humaitá", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "19c4a07", + "isDisposable": true, + "postalCode": "22270018", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Voluntários da Pátria", + "number": "446", + "neighborhood": "Humaitá", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.1898, + -22.95333 + ] + }, + "additionalInfo": "Trazer documentos oficiais", + "id": "qastoremg_19c4a07", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "RJ - Shopping Rio Sul", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "1284d4e", + "isDisposable": true, + "postalCode": "22290160", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Lauro Muller", + "number": "116", + "neighborhood": "Botafogo", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.176, + -22.95637 + ] + }, + "additionalInfo": "", + "id": "qastoremg_1284d4e", + "isActive": null, + "businessHours": [ + { + "DayOfWeek": 1, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "08:00:00", + "ClosingTime": "18:00:00" + } + ] + }, + { + "friendlyName": "Retirada Ximi", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "2043cc0", + "isDisposable": true, + "postalCode": "21820-020", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua Bangu", + "number": "", + "neighborhood": "Bangu", + "complement": "", + "reference": null, + "geoCoordinates": [ + -43.46651, + -22.88117 + ] + }, + "additionalInfo": "", + "id": "qastoremg_2043cc0", + "isActive": null, + "businessHours": [] + } + ], + "contacts": [ + { + "id": "ac40152925234fd6b6dbae6c88e34a51", + "firstName": "Saul", + "lastName": "Goodman" + } + ], + "contactsInfo": [ + { + "addressId": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd", + "contacts": [ + "ac40152925234fd6b6dbae6c88e34a51" + ], + "receiveWindows": [] + } + ] + }, + "clientProfileData": null, + "paymentData": { + "updateStatus": "updated", + "installmentOptions": [ + { + "paymentSystem": "1", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + }, + { + "count": 7, + "hasInterestRate": false, + "interestRate": 0, + "value": 100, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 7, + "hasInterestRate": false, + "interestRate": 0, + "value": 100, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "2", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "3", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "4", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + }, + { + "count": 8, + "hasInterestRate": false, + "interestRate": 0, + "value": 87, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 8, + "hasInterestRate": false, + "interestRate": 0, + "value": 87, + "total": 700 + } + ] + }, + { + "count": 10, + "hasInterestRate": false, + "interestRate": 0, + "value": 70, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 10, + "hasInterestRate": false, + "interestRate": 0, + "value": 70, + "total": 700 + } + ] + }, + { + "count": 12, + "hasInterestRate": false, + "interestRate": 0, + "value": 58, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 12, + "hasInterestRate": false, + "interestRate": 0, + "value": 58, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "6", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "7", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "8", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "9", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "12", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "16", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "21", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "39", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "44", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "45", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 175, + "total": 700 + } + ] + }, + { + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 5, + "hasInterestRate": false, + "interestRate": 0, + "value": 140, + "total": 700 + } + ] + }, + { + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 6, + "hasInterestRate": false, + "interestRate": 0, + "value": 116, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "64", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 350, + "total": 700 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 233, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "65", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "125", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "201", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + }, + { + "paymentSystem": "900", + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 700, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700, + "sellerMerchantInstallments": [ + { + "id": "QASTORE", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 700, + "total": 700 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 16, + "name": "Vale", + "groupName": "giftCardPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "16", + "template": "giftCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108824Z", + "availablePayments": null + }, + { + "id": 12, + "name": "PayPal", + "groupName": "payPalPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "12", + "template": "payPalPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108826Z", + "availablePayments": null + }, + { + "id": 44, + "name": "Venda Direta Debito", + "groupName": "debitDirectSalePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "44", + "template": "debitDirectSalePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108828Z", + "availablePayments": null + }, + { + "id": 45, + "name": "Venda Direta Credito", + "groupName": "creditDirectSalePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "45", + "template": "creditDirectSalePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108829Z", + "availablePayments": null + }, + { + "id": 3, + "name": "Diners", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^3(0[0-5]|[68][0-9])[0-9]{11}$", + "mask": "9999 999999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "3", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710883Z", + "availablePayments": null + }, + { + "id": 9, + "name": "Elo", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^(50(67(0[78]|1[5789]|2[012456789]|3[01234569]|4[0-7]|53|7[4-8])|9(0(0[0-9]|1[34]|2[0-7]|3[0359]|4[01235678]|5[01235789]|6[0-9]|7[01346789]|8[01234789]|9[123479])|1(0[34568]|4[6-9]|5[1-8]|8[356789])|2(2[0-2]|5[78]|6[1-9]|7[0-9]|8[01235678]|90)|357|4(0[7-9]|1[0-9]|2[0-2]|31|5[7-9]|6[0-6]|84)|55[01]|636|7(2[2-9]|6[5-9])))|4(0117[89]|3(1274|8935)|5(1416|7(393|63[12])))|6(27780|36368|5(0(0(3[12356789]|4[0-7]|7[78])|4(0[6-9]|1[0234]|2[2-9]|3[045789]|8[5-9]|9[0-9])|5(0[012346789]|1[0-9]|2[0-9]|3[0178]|5[2-9]|6[0-6]|7[7-9]|8[0-8]|9[1-8])|72[0-7]|9(0[1-9]|1[0-9]|2[0128]|3[89]|4[6-9]|5[0145]|6[235678]|71))|16(5[2-9]|6[0-9]|7[01456789])|50(0[0-9]|1[02345678]|36|5[1267]))))\\d{0,13}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "9", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108831Z", + "availablePayments": null + }, + { + "id": 4, + "name": "Mastercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "4", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108833Z", + "availablePayments": null + }, + { + "id": 6, + "name": "Boleto Bancário", + "groupName": "bankInvoicePaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "6", + "template": "bankInvoicePaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108834Z", + "availablePayments": null + }, + { + "id": 8, + "name": "Hipercard", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^606282|^3841(?:[0|4|6]{1})0", + "mask": "9999999999999999999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "8", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108836Z", + "availablePayments": null + }, + { + "id": 65, + "name": "Mastercard Debit", + "groupName": "debitCardPaymentGroup", + "validator": { + "regex": "^(502275|528745|(5045|5061|5062|5063|5064|5105|5111|5112|5117|5118|5122|5160|5161|5164|5165|5166|5174|5177|5188|5201|5204|5206|5235|5236|5240|5247|5256|5261|5263|5264|5280|5284|5285|5290|5295|5301|5306|5312|5324|5336|5339|5343|5349|5359|5367|5370|5379|5380|5384|5389|5399|5439|5452|5453|5457|5463|5496|5502|5508|5510|5512|5513|5514|5515|5534|5538|5541|5544|5546|5549|5559|5575|5576|5578|5579)[0-9]{2}|558426|559471|588772|589617|528733|549180|517562|551792|553771|553777)[0-9]{0,10}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "65", + "template": "debitCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108837Z", + "availablePayments": null + }, + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:51:49.7108837Z", + "availablePayments": null + }, + { + "id": 7, + "name": "Aura", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^50[0-9]{17}$", + "mask": "9999999999999999999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "7", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108838Z", + "availablePayments": null + }, + { + "id": 39, + "name": "Maestro", + "groupName": "debitCardPaymentGroup", + "validator": { + "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "39", + "template": "debitCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710884Z", + "availablePayments": null + }, + { + "id": 1, + "name": "American Express", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^3[47][0-9]{13}$", + "mask": "9999 999999 99999", + "cardCodeRegex": "^[0-9]{4}$", + "cardCodeMask": "9999", + "weights": [ + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "1", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.710884Z", + "availablePayments": null + }, + { + "id": 21, + "name": "JCB", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^(35[0-9]{3}|2131|1800)[0-9]{11}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "21", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108841Z", + "availablePayments": null + }, + { + "id": 201, + "name": "Dinheiro", + "groupName": "custom201PaymentGroupPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "201", + "template": "custom201PaymentGroupPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": true, + "description": "Pague no dinheiro", + "requiresAuthentication": false, + "dueDate": "2025-12-26T16:50:49.7108842Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": { + "regex": "^4[0-9]{15}$", + "mask": "9999 9999 9999 9999", + "cardCodeRegex": "^[0-9]{3}$", + "cardCodeMask": "999", + "weights": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ], + "useCvv": true, + "useExpirationDate": true, + "useCardHolderName": true, + "useBillingAddress": true + }, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108844Z", + "availablePayments": null + }, + { + "id": 64, + "name": "Customer Credit", + "groupName": "creditControlPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "64", + "template": "creditControlPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108844Z", + "availablePayments": null + }, + { + "id": 125, + "name": "Pix", + "groupName": "instantPaymentPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "125", + "template": "instantPaymentPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108846Z", + "availablePayments": null + }, + { + "id": 900, + "name": "WH Google Pay", + "groupName": "WH Google PayPaymentGroup", + "validator": { + "regex": null, + "mask": null, + "cardCodeRegex": null, + "cardCodeMask": null, + "weights": null, + "useCvv": false, + "useExpirationDate": false, + "useCardHolderName": false, + "useBillingAddress": false + }, + "stringId": "900", + "template": "WH Google PayPaymentGroup-template", + "requiresDocument": false, + "displayDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2025-12-23T16:50:49.7108847Z", + "availablePayments": null + } + ], + "payments": [ + { + "paymentSystem": "125", + "bin": null, + "accountId": null, + "tokenId": null, + "installments": 1, + "referenceValue": 700, + "value": 700, + "merchantSellerPayments": [ + { + "id": "QASTORE", + "installments": 1, + "referenceValue": 700, + "value": 700, + "interestRate": 0, + "installmentValue": 700 + } + ] + } + ], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [], + "availableAssociations": {} + }, + "marketingData": null, + "sellers": [ + { + "id": "1", + "name": "QA Store", + "logo": "", + "minimumOrderValue": 0 + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": null, + "savePersonalData": false, + "savePaymentData": false + }, + "commercialConditionData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": true, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": { + "customApps": [], + "customFields": [ + { + "linkedEntity": { + "type": "address", + "id": "7dfd4580-6340-437d-a8c8-c6c1f690c4fd" + }, + "fields": [ + { + "name": "desktop", + "value": "DK1", + "refId": "DK1" + } + ] + }, + { + "linkedEntity": { + "type": "order" + }, + "fields": [ + { + "name": "poNumber", + "value": "PO2", + "refId": "PO2" + } + ] + } + ] + }, + "itemMetadata": { + "items": [ + { + "id": "2", + "seller": "1", + "name": "mangueira wl verde", + "skuName": "verde", + "productId": "2", + "refId": "codrefmangueiraverde", + "ean": null, + "imageUrl": "https://qastore.vteximg.com.br/arquivos/ids/155395-55-55/mangueira.jpg?v=636565509324700000", + "detailUrl": "/mangueira/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "merchantContextData": null, + "purchaseAgentsData": null, + "itemsOrdination": {} + } + } + } + } + }, + "deprecated": false, + "operationId": "put_api_checkout_pub_orderform_ByOrderFormId_customfields_address_ByAddressId" + } + }, + "/api/checkout/pvt/configuration/orderForm": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Get order form configuration", + "description": "Retrieves the settings that are currently applied to every orderForm in the account.\n\r\n\rThese settings are defined by the request [Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm).\n\r\n\rAlways use this request to retrieve the current configuration before performing an update. By doing so you ensure that you are modifying only the properties you want.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetorderFormconfiguration", + "parameters": [ + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "paymentConfiguration": { + "type": "object", + "description": "Payment configuration information.", + "properties": { + "requiresAuthenticationForPreAuthorizedPaymentOption": { + "type": "boolean", + "description": "Determines whether pre-authorized payments require authentication." + }, + "allowInstallmentsMerge": { + "type": "boolean", + "description": "By default (when `false`), on a multi-seller purchase is on the run, a simple intersection with installment options configured by every seller will be available. When indicated as `true`, this option allows a more complex but flexible installment option, since it considers max installments of every seller configuration, even if those do not match. Installment values may not be equal in this case." + } + } + }, + "taxConfiguration": { + "type": "object", + "description": "External tax service configuration information.", + "nullable": true, + "properties": { + "url": { + "type": "string", + "description": "Endpoint URL.", + "nullable": true + }, + "authorizationHeader": { + "type": "string", + "description": "Authorization header.", + "nullable": true + }, + "appId": { + "type": "string", + "description": "Custom data ID sent to the tax system." + }, + "isMarketplaceResponsibleForTaxes": { + "type": "boolean", + "description": "Indicates whether the marketplace is responsible for the products taxes." + } + } + }, + "minimumQuantityAccumulatedForItems": { + "type": "integer", + "description": "Minimum SKU quantity by cart." + }, + "decimalDigitsPrecision": { + "type": "integer", + "description": "Number of price digits." + }, + "minimumValueAccumulated": { + "type": "integer", + "description": "Minimum cart value.", + "nullable": true + }, + "apps": { + "type": "array", + "nullable": true, + "description": "Array of objects containing Apps configuration information.", + "items": { + "description": "App configuration information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "App ID." + }, + "fields": { + "type": "array", + "description": "Array of fields available to the app.", + "items": { + "type": "string", + "description": "Available fieldValue name." + } + }, + "major": { + "type": "integer", + "description": "App major version." + } + } + } + }, + "allowMultipleDeliveries": { + "type": "boolean", + "description": "On the same purchase, allows the selection of items from multiple delivery channels.", + "nullable": true + }, + "allowManualPrice": { + "type": "boolean", + "description": "Allows the editing of SKU prices right in the cart.", + "nullable": true + }, + "savePersonalDataAsOptIn": { + "type": "boolean", + "description": "Allows users to select whether they want the store to keep their personal and payment data saved.", + "nullable": true + }, + "maxNumberOfWhiteLabelSellers": { + "type": "integer", + "description": "Allows the input of a limit of white label sellers involved on the cart.", + "nullable": true + }, + "maskFirstPurchaseData": { + "type": "boolean", + "description": "Allows, on a first purchase, masking client's data. It could be useful when a shared cart is used and the client does not want to share its data.", + "nullable": true + }, + "recaptchaValidation": { + "type": "string", + "description": "Configures reCAPTCHA validation for the account, defining in which situations the shopper will be prompted to validate a purchase with reCAPTCHA. Learn more about [reCAPTCHA validation for VTEX stores](https://help.vtex.com/en/tutorial/using-recaptcha-at-checkout--18Te3oDd7f4qcjKu9jhNzP)\n\r\n\rPossible values are:\n\r- `\"never\"`: no purchases are validated with reCAPTCHA.\n\r- `\"always\"`: every purchase is validated with reCAPTCHA.\n\r- `\"vtexCriteria\"`: only some purchases are validated with reCAPTCHA in order to minimize friction and improve shopping experience. VTEX's algorithm determines which sessions are trustworthy and which should be validated with reCAPTCHA. This is the recommended option.", + "example": "vtexCriteria" + } + } + }, + "example": { + "paymentConfiguration": { + "requiresAuthenticationForPreAuthorizedPaymentOption": false, + "allowInstallmentsMerge": false, + "blockPaymentSession": null + }, + "taxConfiguration": null, + "minimumQuantityAccumulatedForItems": 1, + "decimalDigitsPrecision": 2, + "minimumValueAccumulated": null, + "apps": [ + { + "fields": [ + "name", + "age" + ], + "id": "abcd", + "major": 1 + } + ], + "allowMultipleDeliveries": false, + "allowManualPrice": true, + "savePersonalDataAsOptIn": false, + "maxNumberOfWhiteLabelSellers": null, + "maskFirstPurchaseData": null, + "recaptchaValidation": "vtexCriteria" + } + } + } + } + }, + "deprecated": false + }, + "post": { + "tags": [ + "Configuration" + ], + "summary": "Update order form configuration", + "description": "Determines settings that will apply to every orderForm in the account.\n\r\n\rFor example, if you create an app using this request, every orderForm of this account will have the custom fields created though it.\n\r\n\r>ℹ️ Always retrieve the current configuration before performing an update to ensure that you are modifying only the properties you want. Otherwise, old values can be overwritten. To retrieve the current configuration, use the request [Get orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pvt/configuration/orderForm).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateorderFormconfiguration", + "parameters": [ + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateorderFormconfigurationRequest" + }, + "example": { + "paymentConfiguration": { + "requiresAuthenticationForPreAuthorizedPaymentOption": false + }, + "taxConfiguration": null, + "minimumQuantityAccumulatedForItems": 1, + "decimalDigitsPrecision": 2, + "minimumValueAccumulated": null, + "apps": null, + "allowMultipleDeliveries": null, + "allowManualPrice": null + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "deprecated": false + } + }, + "/api/checkout/pvt/configuration/window-to-change-seller": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Get window to change seller", + "description": "Retrieves a marketplace's window to change seller, that is, the period when it is possible to choose another seller to fulfill a given order after the original seller has canceled it.\n\r\n\r> The default period for this window is of 2 days, but it can be configured by the request Update window to change seller.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetWindowToChangeSeller", + "parameters": [ + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string", + "description": "Window to change seller in days." + }, + "example": "2" + } + } + } + }, + "deprecated": false + }, + "post": { + "tags": [ + "Configuration" + ], + "summary": "Update window to change seller", + "description": "Updates a marketplace's window to change seller, that is, the period when it is possible to choose another seller to fulfill a given order after the original seller has canceled it.\n\r\n\r> It is possible to check the current window using the request Get window to change seller.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateWindowToChangeSeller", + "parameters": [ + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WaitingTime" + }, + "example": { + "waitingTime": 4 + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created" + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/messages/clear": { + "post": { + "tags": [ + "Configuration" + ], + "summary": "Clear order form messages", + "description": "This request removes all messages from the `messages` field of the orderForm , leaving it empty.\r\n\r\nYou must send an empty JSON in the body of the request.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\n**Important**: **Request Body** must always be sent with empty value \"{ }\" in this endpoint.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "ClearorderFormMessages", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the orderForm corresponding to the cart whose messages you want to remove.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "This object must be empty.", + "default": {} + }, + "example": {} + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "orderFormId": { + "type": "string", + "description": "ID of the orderForm corresponding to a specific cart." + }, + "salesChannel": { + "type": "string", + "description": "Attribute created by the seller, in their VTEX store configuration." + }, + "loggedIn": { + "type": "boolean", + "description": "Indicates whether the user is logged into the store." + }, + "isCheckedIn": { + "type": "boolean", + "description": "Indicates whether order is checked in." + }, + "storeId": { + "type": "string", + "description": "ID of the store.", + "nullable": true + }, + "allowManualPrice": { + "type": "boolean", + "description": "Permission to modify item price manually." + }, + "canEditData": { + "type": "boolean", + "description": "Data can be edited." + }, + "userProfileId": { + "type": "string", + "description": "Unique ID associated with the customer profile." + }, + "profileProvider": { + "type": "string", + "description": "Profile provider." + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts.", + "items": { + "type": "string", + "description": "Available account." + } + }, + "availableAddresses": { + "type": "array", + "description": "Information on each available address.", + "items": { + "description": "Available address information.", + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Address type." + }, + "receiverName": { + "type": "string", + "description": "Name of the receiver." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "city": { + "type": "string", + "description": "City of the address." + }, + "state": { + "type": "string", + "description": "State of the address." + }, + "country": { + "type": "string", + "description": "Country of the address. ISO three-letter code." + }, + "street": { + "type": "string", + "description": "Street of the address." + }, + "number": { + "type": "string", + "description": "Number of the address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the address." + }, + "complement": { + "type": "string", + "description": "Complement to the address.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference that may help in the location of the address.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + } + }, + "userType": { + "type": "string", + "description": "User type.", + "nullable": true + }, + "ignoreProfileData": { + "type": "boolean", + "description": "Ignore customer profile data." + }, + "value": { + "type": "integer", + "description": "Total value of the order without separating cents. For example, $24.99 is represented `2499`." + }, + "messages": { + "type": "array", + "description": "Array containing an object for each message generated by our servers while processing the request.", + "items": { + "type": "string", + "description": "Message." + } + }, + "items": { + "type": "array", + "description": "Information on each item in the order.", + "items": { + "description": "Item information.", + "type": "object", + "properties": { + "uniqueId": { + "type": "string", + "description": "Unique ID." + }, + "id": { + "type": "string", + "description": "ID of the item." + }, + "productId": { + "type": "string", + "description": "Product ID." + }, + "productRefId": { + "type": "string", + "description": "Product Ref ID." + }, + "refId": { + "type": "string", + "description": "Ref ID." + }, + "ean": { + "type": "string", + "description": "European Article Number.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Product name." + }, + "skuName": { + "type": "string", + "description": "SKU name." + }, + "modalType": { + "type": "string", + "description": "Modal type.", + "nullable": true + }, + "parentItemIndex": { + "type": "integer", + "description": "Parent item index.", + "nullable": true + }, + "parentAssemblyBinding": { + "type": "string", + "description": "Parent assembly binding.", + "nullable": true + }, + "priceValidUntil": { + "type": "string", + "description": "Price expiration date and time." + }, + "tax": { + "type": "integer", + "description": "Tax value in cents." + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "manualPrice": { + "type": "integer", + "description": "Manual price in cents.", + "nullable": true + }, + "manualPriceAppliedBy": { + "type": "string", + "description": "User that applied the manual price, if that is the case.", + "nullable": true + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." + }, + "rewardValue": { + "type": "integer", + "description": "Reward value in cents." + }, + "isGift": { + "type": "boolean", + "description": "Indicates whether item is a gift." + }, + "additionalInfo": { + "type": "object", + "description": "Additional information.", + "properties": { + "dimension": { + "type": "string", + "description": "Dimension.", + "nullable": true + }, + "brandName": { + "type": "string", + "description": "Brand name." + }, + "brandId": { + "type": "string", + "description": "Brand ID." + }, + "offeringInfo": { + "type": "string", + "description": "Offering information.", + "nullable": true + }, + "offeringType": { + "type": "string", + "description": "Offering type.", + "nullable": true + }, + "offeringTypeId": { + "type": "string", + "description": "Offering type ID.", + "nullable": true + } + } + }, + "preSaleDate": { + "type": "string", + "description": "Presale date.", + "nullable": true + }, + "productCategoryIds": { + "type": "string", + "description": "Product category IDs." + }, + "productCategories": { + "type": "object", + "description": "Object, where each field is an ID from `productCategoryIds`.", + "properties": { + "{ID}": { + "type": "string", + "description": "Product category corresponding to the ID in the field key." + } + } + }, + "quantity": { + "type": "integer", + "description": "Quantity." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "sellerChain": { + "type": "array", + "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", + "items": { + "type": "string", + "description": "Seller." + } + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "detailUrl": { + "type": "string", + "description": "Detail URL." + }, + "bundleItems": { + "type": "array", + "description": "Information on services sold along with the SKU. Example: a gift package.", + "items": { + "description": "Service information.", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Service type." + }, + "id": { + "type": "integer", + "description": "Service identifier." + }, + "name": { + "type": "string", + "description": "Service name." + }, + "price": { + "type": "integer", + "description": "Service price in cents." + } + } + } + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "type": "string", + "description": "Attachment information." + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags, each of which, modifies the price in some way, like discounts or taxes that apply to the item in the context of the order.", + "items": { + "description": "Price tag information.", + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Promotion unique identifier.", + "nullable": true + }, + "isPercentual": { + "type": "boolean", + "description": "Indicates whether the `value` and `rawValue` of the price tag represent a percentage to be applied during checkout calculation. The default value is `false`. When set to `true`, the `value` and `rawValue` fields are interpreted as percentages, and the final price is calculated accordingly." + }, + "name": { + "type": "string", + "description": "Price tag name in the format: `{type}@{where}-{identifier}#{calculationId}`. Where:\r\n- `type` indicates whether the tag refers to a discount or tax.\r\n- `where` specifies the context, either price or shipping.\r\n- `identifier` is the promotion ID.\r\n- `calculationId` is a hash that may vary with each price calculation." + }, + "rawValue": { + "type": "number", + "description": "Raw price tag value with up to five decimals, sourced from the promotion configuration. This value is informational only and is not used in checkout calculations." + }, + "value": { + "type": "integer", + "description": "Price tag value representing either a promotion (value decrease) or a tax (value increase)." + } + } + } + }, + "availability": { + "type": "string", + "description": "Availability." + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit." + }, + "unitMultiplier": { + "type": "integer", + "description": "Unit multiplier." + }, + "manufacturerCode": { + "type": "string", + "description": "Manufacturer code.", + "nullable": true + }, + "priceDefinition": { + "type": "object", + "description": "Price information for all units of a specific item.", + "properties": { + "calculatedSellingPrice": { + "type": "integer", + "description": "Item's calculated unitary selling price in cents." + }, + "total": { + "type": "integer", + "description": "Total value for all units of the item in cents." + }, + "sellingPrices": { + "type": "array", + "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", + "items": { + "description": "Rounding information.", + "type": "object", + "properties": { + "value": { + "type": "integer", + "description": "Value in cents for that specific rounding." + }, + "quantity": { + "type": "integer", + "description": "Rounding quantity, meaning how many items are rounded to this value." + } + } + } + } + } + } + } + } + }, + "selectableGifts": { + "type": "array", + "description": "Array containing the data of the item selected as a gift.", + "items": { + "type": "string", + "description": "Gift." + } + }, + "totalizers": { + "type": "array", + "description": "Array containing an object for each totalizer for the purchase. Totalizers contain the sum of values for a specific part of the order (e.g. Total item value, Total shipping value).", + "items": { + "type": "object", + "description": "Totalizer of purchases." + } + }, + "shippingData": { + "type": "object", + "description": "Shipping information pertinent to the order.", + "nullable": true, + "properties": { + "address": { + "type": "object", + "description": "Address information.", + "nullable": true, + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array with logistics information. Each object in this array corresponds to an object in the `items` array, based on the respective `itemIndex`.", + "items": { + "description": "Logistics information.", + "type": "object", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index corresponding to the position of the object in the `items` array." + }, + "selectedSla": { + "type": "string", + "description": "SLA selected by the customer. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`.", + "nullable": true + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Delivery channel selected by the customer.", + "nullable": true + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "slas": { + "type": "array", + "description": "Information on available SLAs.", + "items": { + "description": "SLA information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SLA ID. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`." + }, + "deliveryChannel": { + "type": "string", + "description": "Delivery channel." + }, + "name": { + "type": "string", + "description": "SLA name. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, the value of this field will show the specific delivery option name selected for this SLA, as the example `Delivery | BRA | Up to 30 hours`." + }, + "deliveryIds": { + "type": "array", + "description": "Information on each delivery ID.", + "items": { + "description": "Delivery ID information.", + "type": "object", + "properties": { + "courierId": { + "type": "string", + "description": "Courier ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "dockId": { + "type": "string", + "description": "Warehouse ID." + }, + "courierName": { + "type": "string", + "description": "Courier name." + }, + "quantity": { + "type": "integer", + "description": "Quantity." + } + } + } + }, + "attachmentOfferings": { + "type": "array", + "description": "List of attachments details.", + "nullable": true, + "items": { + "description": "Attachment details.", + "type": "object", + "required": [ + "name", + "required", + "schema" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the attachment.", + "nullable": true + }, + "required": { + "type": "boolean", + "description": "Defines if the attachment is required (`true`) or not (`false`).", + "nullable": true + }, + "schema": { + "type": "object", + "description": "Custom values [created into attachment](https://help.vtex.com/en/tutorial/adding-an-attachment--7zHMUpuoQE4cAskqEUWScU).", + "nullable": true + } + } + } + }, + "shippingEstimate": { + "type": "string", + "description": "Shipping estimate. For instance, Three business days will be represented `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", + "nullable": true + }, + "useIndividualShippingEstimates": { + "type": "boolean", + "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`." + }, + "lockTTL": { + "type": "string", + "description": "Estimate date of delivery.", + "nullable": true + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "tax": { + "type": "integer", + "description": "Tax in cents." + }, + "pickupStoreInfo": { + "type": "object", + "description": "Information on the pickup store.", + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Indicates whether it is the pickup store." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Address information.", + "nullable": true, + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + }, + "additionalInfo": { + "type": "string", + "description": "Additional information.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "Corresponding dock ID.", + "nullable": true + } + } + }, + "pickupPointId": { + "type": "string", + "description": "Pickup point ID.", + "nullable": true + }, + "pickupDistance": { + "type": "integer", + "description": "Pickup point distance." + }, + "polygonName": { + "type": "string", + "description": "Polygon name.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Transit time. For instance, \"three business days\" is represented `3bd`." + } + } + } + }, + "shipsTo": { + "type": "array", + "description": "List of countries that the item may be shipped to.", + "items": { + "type": "string", + "description": "Three letter country code." + } + }, + "itemId": { + "type": "string", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart." + }, + "deliveryChannels": { + "type": "array", + "description": "List of available delivery channels.", + "items": { + "description": "Delivery channel information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Delivery channel ID." + } + } + } + } + } + } + }, + "selectedAddresses": { + "type": "array", + "description": "Array with information on the selected addresses for the order.", + "items": { + "description": "Selected address information.", + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + } + }, + "availableAddresses": { + "type": "array", + "description": "Array with information on the available addresses for the order.", + "items": { + "description": "Available address information.", + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + } + } + } + }, + "clientProfileData": { + "type": "object", + "nullable": true, + "description": "Customer's profile information.", + "properties": { + "email": { + "type": "string", + "description": "Email address.", + "nullable": true + }, + "firstName": { + "type": "string", + "description": "First name.", + "nullable": true + }, + "lastName": { + "type": "string", + "description": "Last name." + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer." + }, + "document": { + "type": "string", + "description": "Document informed by the customer." + }, + "phone": { + "type": "string", + "description": "Phone number." + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity.", + "nullable": true + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity.", + "nullable": true + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity.", + "nullable": true + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity.", + "nullable": true + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity.", + "nullable": true + }, + "isCorporate": { + "type": "boolean", + "description": "Indicates whether the customer is a legal entity." + }, + "profileCompleteOnLoading": { + "type": "boolean", + "description": "Indicates whether profile is complete on loading." + }, + "profileErrorOnLoading": { + "type": "boolean", + "description": "Indicates whether profile presents error on loading.", + "nullable": true + }, + "customerClass": { + "type": "string", + "description": "Customer class.", + "nullable": true + } + } + }, + "paymentData": { + "type": "object", + "description": "Information on the order's payment.", + "properties": { + "giftCards": { + "type": "array", + "description": "Gift card information, if it applies to the order.", + "items": { + "description": "Gift card information.", + "type": "object", + "properties": { + "redemptionCode": { + "type": "string", + "description": "Gift card redemption code." + }, + "value": { + "type": "integer", + "description": "Gift card value in cents." + }, + "balance": { + "type": "integer", + "description": "Gift card balance in cents." + }, + "name": { + "type": "string", + "description": "Gift card name." + }, + "id": { + "type": "string", + "description": "Gift card ID." + }, + "inUse": { + "type": "boolean", + "description": "Indicates whether gift card is in use." + }, + "isSpecialCard": { + "type": "boolean", + "description": "Indicates whether gift card is special." + } + } + } + }, + "transactions": { + "type": "array", + "description": "Information on each transaction pertinent to the order.", + "items": { + "description": "Transaction information.", + "type": "object", + "properties": { + "isActive": { + "type": "boolean", + "description": "Indicates whether transaction is active." + }, + "transactionId": { + "type": "string", + "description": "Transaction ID." + }, + "merchantName": { + "type": "string", + "description": "Merchant name." + }, + "payments": { + "type": "array", + "description": "Information on each payment.", + "items": { + "description": "Payment information.", + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID.", + "nullable": true + }, + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true + }, + "installments": { + "type": "integer", + "description": "Number of installments." + }, + "paymentSystem": { + "type": "integer", + "description": "Payment system." + }, + "referenceValue": { + "type": "integer", + "description": "Reference value for calculating interest rates, in case it applies. Displayed in cents." + }, + "value": { + "type": "integer", + "description": "Value including interest, in case it applies. Displayed in cents." + } + } + } + }, + "sharedTransaction": { + "type": "boolean", + "description": "Indicates whather transaction is shared." + } + } + } + } + } + }, + "marketingData": { + "type": "object", + "description": "Object containing promotion data such as coupon tracking information and internal or external UTMs.", + "nullable": true, + "properties": { + "coupon": { + "type": "string", + "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.", + "example": "free-shipping" + }, + "utmSource": { + "type": "string", + "description": "UTM source.", + "example": "Facebook" + }, + "utmMedium": { + "type": "string", + "description": "UTM medium.", + "example": "CPC" + }, + "utmCampaign": { + "type": "string", + "description": "UTM campaign.", + "example": "Black friday" + }, + "utmiPage": { + "type": "string", + "description": "utmi_page (internal utm).", + "example": "utmi_page-example", + "nullable": true + }, + "utmiPart": { + "type": "string", + "description": "utmi_part (internal utm).", + "example": "utmi_part-example", + "nullable": true + }, + "utmiCampaign": { + "type": "string", + "description": "utmi_campaign (internal utm).", + "example": "utmi_campaign-example", + "nullable": true + } + } + }, + "sellers": { + "type": "array", + "description": "Information on each seller.", + "items": { + "description": "Seller information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Seller ID." + }, + "name": { + "type": "string", + "description": "Seller name." + }, + "logo": { + "type": "string", + "description": "Seller logo.", + "nullable": true + } + } + } + }, + "clientPreferencesData": { + "type": "object", + "description": "Object containing preferences from the client who placed the order.", + "properties": { + "locale": { + "type": "string", + "description": "Client's locale. Examples: `pt-BR` and `en-US`." + }, + "optinNewsLetter": { + "type": "boolean", + "description": "`true` if the client opted to receive newsletter from the store.", + "example": false, + "nullable": true + } + } + }, + "commercialConditionData": { + "type": "object", + "description": "Object containing commercial condition information.", + "nullable": true + }, + "storePreferencesData": { + "type": "object", + "description": "Object containing data from the store's configuration (stored in VTEX's License Manager)." + }, + "giftRegistryData": { + "type": "object", + "description": "Gift registry list information.", + "nullable": true + }, + "openTextField": { + "type": "string", + "description": "Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as `JSON` even if escaped. For that purpose, see [Creating customizable fields](https://developers.vtex.com/vtex-rest-api/docs/creating-customizable-fields-in-the-cart-with-checkout-api-1).", + "example": "open-text-example", + "nullable": true + }, + "invoiceData": { + "type": "object", + "description": "Object containing information pertinent to the order's invoice.", + "nullable": true + }, + "customData": { + "type": "object", + "description": "Customer additional information.", + "nullable": true + }, + "itemMetadata": { + "type": "object", + "description": "Item metadata.", + "properties": { + "items": { + "type": "array", + "description": "List of objects containing metadata on each item in the order.", + "items": { + "description": "Item metadata.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "name": { + "type": "string", + "description": "Product name." + }, + "skuName": { + "type": "string", + "description": "SKU name." + }, + "productId": { + "type": "string", + "description": "Product ID." + }, + "refId": { + "type": "string", + "description": "Ref ID." + }, + "ean": { + "type": "string", + "description": "European Article Number.", + "nullable": true + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "detailUrl": { + "type": "string", + "description": "Detail URL." + } + } + } + } + } + }, + "hooksData": { + "type": "object", + "description": "Hooks information.", + "nullable": true + }, + "ratesAndBenefitsData": { + "type": "object", + "description": "Information on rates and benefits that apply to the order.", + "properties": { + "rateAndBenefitsIdentifiers": { + "type": "array", + "description": "List with rates and benefits identifiers.", + "items": { + "type": "string", + "description": "Benefit identifier." + } + }, + "teaser": { + "type": "array", + "description": "List with rates and benefits teasers.", + "items": { + "type": "string", + "description": "Benefit teaser." + } + } + } + }, + "subscriptionData": { + "type": "object", + "description": "Subscription information.", + "nullable": true + }, + "itemsOrdination": { + "type": "object", + "description": "Object containing information about the ordering of items within the orderForm.", + "properties": { + "criteria": { + "type": "string", + "description": "Criteria adopted to order the items in the list." + }, + "ascending": { + "type": "boolean", + "description": "Indicates whether the ordering is ascending." + } + } + } + } + }, + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "profileProvider": "VTEX", + "availableAccounts": [], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "userType": "User type", + "ignoreProfileData": false, + "value": 34390, + "messages": [], + "items": [ + { + "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", + "id": "2", + "productId": "2", + "productRefId": "1", + "refId": "CBC30L", + "ean": null, + "name": "Chopp Brahma Claro 30L", + "skuName": "Chopp Brahma Claro 30L", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2022-07-13T18:30:46Z", + "tax": 0, + "price": 32890, + "listPrice": 49900, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 32890, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brahma", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Bebidas" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-brahma-claro-30l/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c" + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 32890, + "total": 32890, + "sellingPrices": [ + { + "value": 32890, + "quantity": 1 + } + ] + } + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total Items", + "value": 32890 + } + ], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "teste", + "slas": [ + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "10d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1500, + "listPrice": 1500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": null, + "transitTime": "3bd" + } + ], + "shipsTo": [ + "BRA", + "COL", + "USA" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "pickupPoints": [] + }, + "clientProfileData": { + "email": "clark.kent@example.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5521998765432", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "giftCards": [], + "transactions": [ + { + "isActive": true, + "transactionId": "296D6D245C17437E823EB77E403FC88D", + "merchantName": "MYSTORE", + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "sharedTransaction": false + } + ] + }, + "marketingData": { + "coupon": "free-shipping", + "utmSource": "app", + "utmMedium": "CPC", + "utmCampaign": "Black friday", + "utmipage": null, + "utmiPart": null, + "utmiCampaign": null + }, + "sellers": [ + { + "id": "1", + "name": "lojadobreno", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": false + }, + "commercialConditionData": null, + "storePreferencesData": {}, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "2", + "seller": "1", + "name": "Chopp Brahma Claro 30L", + "skuName": "Chopp Brahma Claro 30L", + "productId": "2", + "refId": "CBC30L", + "ean": null, + "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-brahma-claro-30l/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/installments": { + "get": { + "tags": [ + "Shopping cart" + ], + "summary": "Cart installments", + "description": "Retrieves possible amount of installments and respective values for a given cart with a given payment method.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\rThis endpoint can be used to get the installment options for only one payment method at a time.\n\r\n\rThis endpoint should be called only after the selected `orderForm` already has a `paymentData`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetCartInstallments", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "required": true, + "description": "ID of the `orderForm` to be consulted for installments.", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "name": "paymentSystem", + "in": "query", + "description": "ID of the payment method to be consulted for installments.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 2 + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "paymentSystem": 2, + "bin": null, + "paymentName": null, + "paymentGroupName": null, + "value": 32000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 32000, + "total": 32000, + "sellerMerchantInstallments": [ + { + "id": "MyStore", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 32000, + "total": 32000 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 1600, + "total": 32000, + "sellerMerchantInstallments": [ + { + "id": "MyStore", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 1600, + "total": 32000 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 10666, + "total": 32000, + "sellerMerchantInstallments": [ + { + "id": "MyStore", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 10666, + "total": 32000 + } + ] + } + ] + }, + "schema": { + "type": "object", + "properties": { + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true + }, + "installments": { + "type": "array", + "description": "Array of installments.", + "items": { + "description": "Object with installments information.", + "type": "object", + "properties": { + "count": { + "description": "An explanation about the purpose of this instance.", + "type": "integer" + }, + "hasInterestRate": { + "description": "An explanation about the purpose of this instance.", + "type": "boolean" + }, + "interestRate": { + "description": "An explanation about the purpose of this instance.", + "type": "integer" + }, + "value": { + "description": "An explanation about the purpose of this instance.", + "type": "integer" + }, + "total": { + "description": "An explanation about the purpose of this instance.", + "type": "integer" + }, + "sellerMerchantInstallments": { + "description": "An explanation about the purpose of this instance.", + "type": "array", + "items": { + "description": "An explanation about the purpose of this instance.", + "type": "object", + "properties": { + "id": { + "description": "Installment ID.", + "type": "string" + }, + "count": { + "description": "Count.", + "type": "integer" + }, + "hasInterestRate": { + "description": "If the installment has an interest rate.", + "type": "boolean" + }, + "interestRate": { + "description": "Interest rate number.", + "type": "integer" + }, + "value": { + "description": "Installment value.", + "type": "integer" + }, + "total": { + "description": "Installment total.", + "type": "integer" + } + } + } + } + } + } + }, + "paymentSystem": { + "type": "integer", + "description": "Payment system." + }, + "value": { + "type": "integer", + "description": "Value including interest, in case it applies. Displayed in cents." + }, + "paymentName": { + "type": "string", + "description": "Payment name.", + "nullable": true + }, + "paymentGroupName": { + "type": "string", + "description": "Payment group name.", + "nullable": true + } + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/coupons": { + "post": { + "tags": [ + "Shopping cart" + ], + "summary": "Add coupons to the cart", + "description": "Use this request to add coupons to a given shopping cart.\n\r\n\rTo add multiple coupons to the same cart, you need to:\n\r\n\r1. Request the activation of this feature through the [Support VTEX](https://help.vtex.com/support) if this is the first time you perform this action on your store.\n\r2. Submit all coupon codes in the same requisition separated by commas. E.g.: {\"text\": \"freeshipping, discount10, holiday30\"}.\r\n\r\nFor more information on multiple coupons, access the [coupons tutorial](https://help.vtex.com/en/tutorial/creating-a-coupon-beta--7lMk3MmhNp2IEccyGApxU).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AddCoupons", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "required": true, + "description": "ID of the orderForm that will receive coupon information.", + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase." + } + } + }, + "example": { + "text": "freeshipping" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "orderFormId": { + "type": "string", + "description": "ID of the orderForm corresponding to a specific cart." + }, + "salesChannel": { + "type": "string", + "description": "Attribute created by the seller, in their VTEX store configuration." + }, + "loggedIn": { + "type": "boolean", + "description": "Indicates whether the user is logged into the store." + }, + "isCheckedIn": { + "type": "boolean", + "description": "Indicates whether order is checked in." + }, + "storeId": { + "type": "string", + "description": "ID of the store.", + "nullable": true + }, + "allowManualPrice": { + "type": "boolean", + "description": "Permission to modify item price manually." + }, + "canEditData": { + "type": "boolean", + "description": "Data can be edited." + }, + "userProfileId": { + "type": "string", + "description": "Unique ID associated with the customer profile." + }, + "profileProvider": { + "type": "string", + "description": "Profile provider." + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts.", + "items": { + "type": "string", + "description": "Available account." + } + }, + "availableAddresses": { + "type": "array", + "description": "Information on each available address.", + "items": { + "description": "Address information.", + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Address type." + }, + "receiverName": { + "type": "string", + "description": "Name of the receiver." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "city": { + "type": "string", + "description": "City of the address." + }, + "state": { + "type": "string", + "description": "State of the address." + }, + "country": { + "type": "string", + "description": "Country of the address. ISO three-letter code." + }, + "street": { + "type": "string", + "description": "Street of the address." + }, + "number": { + "type": "string", + "description": "Number of the address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the address." + }, + "complement": { + "type": "string", + "description": "Complement to the address.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference that may help in the location of the address.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + } + }, + "userType": { + "type": "string", + "description": "User type.", + "nullable": true + }, + "ignoreProfileData": { + "type": "boolean", + "description": "Ignore customer profile data." + }, + "value": { + "type": "integer", + "description": "Total value of the order without separating cents. For example, $24.99 is represented `2499`." + }, + "messages": { + "type": "array", + "description": "Array containing an object for each message generated by our servers while processing the request.", + "items": { + "type": "string", + "description": "Message." + } + }, + "items": { + "type": "array", + "description": "Information on each item in the order.", + "items": { + "description": "Item information.", + "type": "object", + "properties": { + "uniqueId": { + "type": "string", + "description": "Unique ID." + }, + "id": { + "type": "string", + "description": "ID of the item." + }, + "productId": { + "type": "string", + "description": "Product ID." + }, + "productRefId": { + "type": "string", + "description": "Product Ref ID." + }, + "refId": { + "type": "string", + "description": "Ref ID." + }, + "ean": { + "type": "string", + "description": "European Article Number.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Product name." + }, + "skuName": { + "type": "string", + "description": "SKU name." + }, + "modalType": { + "type": "string", + "description": "Modal type.", + "nullable": true + }, + "parentItemIndex": { + "type": "integer", + "description": "Parent item index.", + "nullable": true + }, + "parentAssemblyBinding": { + "type": "string", + "description": "Parent assembly binding.", + "nullable": true + }, + "priceValidUntil": { + "type": "string", + "description": "Price expiration date and time." + }, + "tax": { + "type": "integer", + "description": "Tax value in cents." + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "manualPrice": { + "type": "integer", + "description": "Manual price in cents.", + "nullable": true + }, + "manualPriceAppliedBy": { + "type": "string", + "description": "User that applied the manual price, if that is the case.", + "nullable": true + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." + }, + "rewardValue": { + "type": "integer", + "description": "Reward value in cents." + }, + "isGift": { + "type": "boolean", + "description": "Indicates whether item is a gift." + }, + "additionalInfo": { + "type": "object", + "description": "Additional information.", + "properties": { + "dimension": { + "type": "string", + "description": "Dimension.", + "nullable": true + }, + "brandName": { + "type": "string", + "description": "Brand name." + }, + "brandId": { + "type": "string", + "description": "Brand ID." + }, + "offeringInfo": { + "type": "string", + "description": "Offering information.", + "nullable": true + }, + "offeringType": { + "type": "string", + "description": "Offering type.", + "nullable": true + }, + "offeringTypeId": { + "type": "string", + "description": "Offering type ID.", + "nullable": true + } + } + }, + "preSaleDate": { + "type": "string", + "description": "Presale date.", + "nullable": true + }, + "productCategoryIds": { + "type": "string", + "description": "Product category IDs." + }, + "productCategories": { + "type": "object", + "description": "Object, where each field is an ID from `productCategoryIds`.", + "properties": { + "{ID}": { + "type": "string", + "description": "Product category corresponding to the ID in the field key." + } + } + }, + "quantity": { + "type": "integer", + "description": "Quantity." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "sellerChain": { + "type": "array", + "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", + "items": { + "type": "string", + "description": "Seller." + } + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "detailUrl": { + "type": "string", + "description": "Detail URL." + }, + "bundleItems": { + "type": "array", + "description": "Information on services sold along with the SKU. Example: a gift package.", + "items": { + "description": "Service information.", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Service type." + }, + "id": { + "type": "integer", + "description": "Service identifier." + }, + "name": { + "type": "string", + "description": "Service name." + }, + "price": { + "type": "integer", + "description": "Service price in cents." + } + } + } + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "type": "string", + "description": "Attachment information." + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags, each of which, modifies the price in some way, like discounts or taxes that apply to the item in the context of the order.", + "items": { + "description": "Price tag information.", + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Promotion unique identifier.", + "nullable": true + }, + "isPercentual": { + "type": "boolean", + "description": "Indicates whether the `value` and `rawValue` of the price tag represent a percentage to be applied during checkout calculation. The default value is `false`. When set to `true`, the `value` and `rawValue` fields are interpreted as percentages, and the final price is calculated accordingly." + }, + "name": { + "type": "string", + "description": "Price tag name in the format: `{type}@{where}-{identifier}#{calculationId}`. Where:\r\n- `type` indicates whether the tag refers to a discount or tax.\r\n- `where` specifies the context, either price or shipping.\r\n- `identifier` is the promotion ID.\r\n- `calculationId` is a hash that may vary with each price calculation." + }, + "rawValue": { + "type": "number", + "description": "Raw price tag value with up to five decimals, sourced from the promotion configuration. This value is informational only and is not used in checkout calculations." + }, + "value": { + "type": "integer", + "description": "Price tag value representing either a promotion (value decrease) or a tax (value increase)." + } + } + } + }, + "availability": { + "type": "string", + "description": "Availability." + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit." + }, + "unitMultiplier": { + "type": "integer", + "description": "Unit multiplier." + }, + "manufacturerCode": { + "type": "string", + "description": "Manufacturer code.", + "nullable": true + }, + "priceDefinition": { + "type": "object", + "description": "Price information for all units of a specific item.", + "properties": { + "calculatedSellingPrice": { + "type": "integer", + "description": "Item's calculated unitary selling price in cents." + }, + "total": { + "type": "integer", + "description": "Total value for all units of the item in cents." + }, + "sellingPrices": { + "type": "array", + "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", + "items": { + "description": "Rounding information.", + "type": "object", + "properties": { + "value": { + "type": "integer", + "description": "Value in cents for that specific rounding." + }, + "quantity": { + "type": "integer", + "description": "Rounding quantity, meaning how many items are rounded to this value." + } + } + } + } + } + } + } + } + }, + "selectableGifts": { + "type": "array", + "description": "Array containing the data of the item selected as a gift.", + "items": { + "type": "string", + "description": "Gift." + } + }, + "totalizers": { + "type": "array", + "description": "Array containing an object for each totalizer for the purchase. Totalizers contain the sum of values for a specific part of the order (e.g. Total item value, Total shipping value).", + "items": { + "type": "object", + "description": "Totalizer of purchases." + } + }, + "shippingData": { + "type": "object", + "nullable": true, + "description": "Shipping information pertinent to the order.", + "properties": { + "address": { + "type": "object", + "description": "Address information.", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array with logistics information. Each object in this array corresponds to an object in the `items` array, based on the respective `itemIndex`.", + "items": { + "description": "Logistics information.", + "type": "object", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index corresponding to the position of the object in the `items` array." + }, + "selectedSla": { + "type": "string", + "description": "SLA selected by the customer. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`.", + "nullable": true + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Delivery channel selected by the customer.", + "nullable": true + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "slas": { + "type": "array", + "description": "Information on available SLAs.", + "items": { + "description": "SLA information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SLA ID. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`." + }, + "deliveryChannel": { + "type": "string", + "description": "Delivery channel." + }, + "name": { + "type": "string", + "description": "SLA name. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, the value of this field will show the specific delivery option name selected for this SLA, as the example `Delivery | BRA | Up to 30 hours`." + }, + "deliveryIds": { + "type": "array", + "description": "Information on each delivery ID.", + "items": { + "type": "object", + "description": "Delivery ID information.", + "properties": { + "courierId": { + "type": "string", + "description": "Courier ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "dockId": { + "type": "string", + "description": "Warehouse ID." + }, + "courierName": { + "type": "string", + "description": "Courier name." + }, + "quantity": { + "type": "integer", + "description": "Quantity." + } + } + } + }, + "shippingEstimate": { + "type": "string", + "description": "Shipping estimate. For instance, Three business days will be represented `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", + "nullable": true + }, + "useIndividualShippingEstimates": { + "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`.", + "type": "boolean" + }, + "lockTTL": { + "type": "string", + "description": "Estimate date of delivery.", + "nullable": true + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "tax": { + "type": "integer", + "description": "Tax in cents." + }, + "pickupStoreInfo": { + "type": "object", + "description": "Information on the pickup store.", + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Indicates whether it is the pickup store." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Address information.", + "nullable": true, + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + }, + "additionalInfo": { + "type": "string", + "description": "Additional information.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "Corresponding dock ID.", + "nullable": true + } + } + }, + "pickupPointId": { + "type": "string", + "description": "Pickup point ID.", + "nullable": true + }, + "pickupDistance": { + "type": "integer", + "description": "Pickup point distance." + }, + "polygonName": { + "type": "string", + "description": "Polygon name.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Transit time. For instance, \"three business days\" is represented `3bd`." + } + } + } + }, + "shipsTo": { + "type": "array", + "description": "List of countries that the item may be shipped to.", + "items": { + "type": "string", + "description": "Three letter country code." + } + }, + "itemId": { + "type": "string", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart." + }, + "deliveryChannels": { + "type": "array", + "description": "List of available delivery channels.", + "items": { + "description": "Delivery channel information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Delivery channel ID." + } + } + } + } + } + } + }, + "selectedAddresses": { + "type": "array", + "description": "Array with information on the selected addresses for the order.", + "items": { + "type": "object", + "description": "Selected address information.", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + } + }, + "availableAddresses": { + "type": "array", + "description": "Array with information on the available addresses for the order.", + "items": { + "description": "Address information.", + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + } + } + } + }, + "clientProfileData": { + "type": "object", + "description": "Customer's profile information.", + "nullable": true, + "properties": { + "email": { + "type": "string", + "description": "Email address.", + "nullable": true + }, + "firstName": { + "type": "string", + "description": "First name.", + "nullable": true + }, + "lastName": { + "type": "string", + "description": "Last name." + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer." + }, + "document": { + "type": "string", + "description": "Document informed by the customer." + }, + "phone": { + "type": "string", + "description": "Phone number." + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity.", + "nullable": true + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity.", + "nullable": true + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity.", + "nullable": true + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity.", + "nullable": true + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity.", + "nullable": true + }, + "isCorporate": { + "type": "boolean", + "description": "Indicates whether the customer is a legal entity." + }, + "profileCompleteOnLoading": { + "type": "boolean", + "description": "Indicates whether profile is complete on loading." + }, + "profileErrorOnLoading": { + "type": "boolean", + "description": "Indicates whether profile presents error on loading.", + "nullable": true + }, + "customerClass": { + "type": "string", + "description": "Customer class.", + "nullable": true + } + } + }, + "paymentData": { + "type": "object", + "description": "Information on the order's payment.", + "properties": { + "giftCards": { + "type": "array", + "description": "Gift card information, if it applies to the order.", + "items": { + "description": "Gift card information.", + "nullable": true, + "type": "object", + "properties": { + "redemptionCode": { + "type": "string", + "description": "Gift card redemption code." + }, + "value": { + "type": "integer", + "description": "Gift card value in cents." + }, + "balance": { + "type": "integer", + "description": "Gift card balance in cents." + }, + "name": { + "type": "string", + "description": "Gift card name." + }, + "id": { + "type": "string", + "description": "Gift card ID." + }, + "inUse": { + "type": "boolean", + "description": "Indicates whether gift card is in use." + }, + "isSpecialCard": { + "type": "boolean", + "description": "Indicates whether gift card is special." + } + } + } + }, + "transactions": { + "type": "array", + "description": "Information on each transaction pertinent to the order.", + "items": { + "description": "Transaction information.", + "nullable": true, + "type": "object", + "properties": { + "isActive": { + "type": "boolean", + "description": "Indicates whether transaction is active." + }, + "transactionId": { + "type": "string", + "description": "Transaction ID." + }, + "merchantName": { + "type": "string", + "description": "Merchant name." + }, + "payments": { + "type": "array", + "description": "Information on each payment.", + "items": { + "description": "Payment information.", + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID." + }, + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true + }, + "installments": { + "type": "integer", + "description": "Number of installments." + }, + "paymentSystem": { + "type": "integer", + "description": "Payment system." + }, + "referenceValue": { + "type": "integer", + "description": "Reference value for calculating interest rates, in case it applies. Displayed in cents." + }, + "value": { + "type": "integer", + "description": "Value including interest, in case it applies. Displayed in cents." + } + } + } + }, + "sharedTransaction": { + "type": "boolean", + "description": "Indicates whather transaction is shared." + } + } + } + } + } + }, + "marketingData": { + "type": "object", + "description": "Object containIng promotion data such as coupon tracking information and internal or external UTMs.", + "nullable": true, + "properties": { + "coupon": { + "type": "string", + "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.", + "example": "free-shipping" + }, + "utmSource": { + "type": "string", + "description": "UTM source.", + "example": "Facebook", + "nullable": true + }, + "utmMedium": { + "type": "string", + "description": "UTM medium.", + "example": "CPC", + "nullable": true + }, + "utmCampaign": { + "type": "string", + "description": "UTM campaign.", + "example": "Black friday", + "nullable": true + }, + "utmiPage": { + "type": "string", + "description": "utmi_page (internal utm).", + "example": "utmi_page-example", + "nullable": true + }, + "utmiPart": { + "type": "string", + "description": "utmi_part (internal utm).", + "example": "utmi_part-exmaple", + "nullable": true + }, + "utmiCampaign": { + "type": "string", + "description": "utmi_campaign (internal utm).", + "example": "utmi_campaign-exmaple", + "nullable": true + } + } + }, + "sellers": { + "type": "array", + "description": "Information on each seller.", + "items": { + "description": "Seller information.", + "nullable": true, + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Seller ID." + }, + "name": { + "type": "string", + "description": "Seller name." + }, + "logo": { + "type": "string", + "description": "Seller logo.", + "nullable": true + } + } + } + }, + "clientPreferencesData": { + "type": "object", + "description": "Object containing preferences from the client who placed the order.", + "properties": { + "locale": { + "type": "string", + "description": "Client's locale. Examples: `pt-BR` and `en-US`." + }, + "optinNewsLetter": { + "type": "boolean", + "description": "`true` if the client opted to receive newsletter from the store.", + "nullable": false + } + } + }, + "commercialConditionData": { + "type": "object", + "description": "Object containing commercial condition information.", + "nullable": true + }, + "storePreferencesData": { + "type": "object", + "description": "Object containing data from the store's configuration (stored in VTEX's License Manager)." + }, + "giftRegistryData": { + "type": "object", + "description": "Gift registry list information.", + "nullable": true + }, + "openTextField": { + "type": "string", + "description": "Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as `JSON`, even if escaped. For that purpose, see [Creating customizable fields](https://developers.vtex.com/docs/guides/customizable-fields-with-checkout-api).", + "example": "open-text-example", + "nullable": true + }, + "invoiceData": { + "type": "object", + "description": "Invoice data including billing address.", + "properties": { + "address": { + "type": "object", + "description": "Billing address.", + "properties": { + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City name." + }, + "state": { + "type": "string", + "description": "State name." + }, + "country": { + "type": "string", + "description": "Country." + }, + "street": { + "type": "string", + "description": "Street name." + }, + "number": { + "type": "string", + "description": "Street number." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood." + }, + "complement": { + "type": "string", + "description": "Address complement." + }, + "reference": { + "type": "string", + "description": "Reference for location." + }, + "geoCoordinates": { + "type": "array", + "description": "Geographic coordinates (latitude, longitude).", + "items": { + "type": "number", + "description": "Coordinate value." + } + } + } + } + } + }, + "customData": { + "type": "object", + "description": "Customer additional information.", + "nullable": true + }, + "itemMetadata": { + "type": "object", + "description": "Item metadata.", + "properties": { + "items": { + "type": "array", + "description": "List of objects containing metadata on each item in the order.", + "items": { + "description": "Item metadata.", + "nullable": true, + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Item ID." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "name": { + "type": "string", + "description": "Product name." + }, + "skuName": { + "type": "string", + "description": "SKU name." + }, + "productId": { + "type": "string", + "description": "Product ID." + }, + "refId": { + "type": "string", + "description": "Ref ID." + }, + "ean": { + "type": "string", + "description": "European Article Number.", + "nullable": true + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "detailUrl": { + "type": "string", + "description": "Detail URL." + } + } + } + } + } + }, + "hooksData": { + "type": "object", + "description": "Hooks information.", + "nullable": true + }, + "ratesAndBenefitsData": { + "type": "object", + "description": "Information on rates and benefits that apply to the order.", + "properties": { + "rateAndBenefitsIdentifiers": { + "type": "array", + "description": "List with rates and benefits identifiers.", + "items": { + "type": "string", + "description": "Benefit identifier." + } + }, + "teaser": { + "type": "array", + "description": "List with rates and benefits teasers.", + "items": { + "type": "string", + "description": "Benefit teaser." + } + } + } + }, + "subscriptionData": { + "type": "object", + "description": "Subscription information.", + "nullable": true + }, + "itemsOrdination": { + "type": "object", + "description": "Object containing information about the ordering of items within the orderForm.", + "properties": { + "criteria": { + "type": "string", + "description": "Criteria adopted to order the items in the list." + }, + "ascending": { + "type": "boolean", + "description": "Indicates whether the ordering is ascending." + } + } + } + } + }, + "example": { + "orderFormId": "ede846222cd44046ba6c638442c3505a", + "salesChannel": "1", + "loggedIn": false, + "isCheckedIn": false, + "storeId": "1", + "allowManualPrice": false, + "canEditData": true, + "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", + "profileProvider": "VTEX", + "availableAccounts": [], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "userType": "User type", + "ignoreProfileData": false, + "value": 34390, + "messages": [], + "items": [ + { + "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", + "id": "2", + "productId": "2", + "productRefId": "1", + "refId": "CBC30L", + "ean": null, + "name": "Chopp Brahma Claro 30L", + "skuName": "Chopp Brahma Claro 30L", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2022-07-13T18:30:46Z", + "tax": 0, + "price": 32890, + "listPrice": 49900, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 32890, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brahma", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Bebidas" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-brahma-claro-30l/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c" + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 32890, + "total": 32890, + "sellingPrices": [ + { + "value": 32890, + "quantity": 1 + } + ] + } + } + ], + "selectableGifts": [], + "totalizers": [ + { + "id": "Items", + "name": "Total Items", + "value": 32890 + } + ], + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "teste", + "slas": [ + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "10d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1500, + "listPrice": 1500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": null, + "transitTime": "3bd" + } + ], + "shipsTo": [ + "BRA", + "COL", + "USA" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "pickupPoints": [] + }, + "clientProfileData": { + "email": "clark.kent@example.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5521998765432", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "paymentData": { + "giftCards": [], + "transactions": [ + { + "isActive": true, + "transactionId": "296D6D245C17437E823EB77E403FC88D", + "merchantName": "MYSTORE", + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "sharedTransaction": false + } + ] + }, + "marketingData": { + "utmSource": null, + "utmMedium": null, + "utmCampaign": null, + "utmipage": null, + "utmiPart": null, + "utmiCampaign": null, + "coupon": "freeshipping", + "marketingTags": [] + }, + "sellers": [ + { + "id": "1", + "name": "lojadobreno", + "logo": "Logo" + } + ], + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": false + }, + "commercialConditionData": null, + "storePreferencesData": {}, + "giftRegistryData": null, + "openTextField": null, + "invoiceData": {}, + "customData": null, + "itemMetadata": { + "items": [ + { + "id": "2", + "seller": "1", + "name": "Chopp Brahma Claro 30L", + "skuName": "Chopp Brahma Claro 30L", + "productId": "2", + "refId": "CBC30L", + "ean": null, + "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-brahma-claro-30l/p", + "assemblyOptions": [] + } + ] + }, + "hooksData": null, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "subscriptionData": null, + "itemsOrdination": { + "criteria": "NAME", + "ascending": true + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/pickup-points": { + "get": { + "tags": [ + "Fulfillment" + ], + "summary": "List pickup points by location", + "description": "Retrieves information on pickup points close to a given location determined by geocoordinates or postal code.\n\r\n\rThe pickup points returned are not necessarily all active ones. Make sure to validate the information consumed by integrations.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "ListPickupPpointsByLocation", + "security": [], + "parameters": [ + { + "name": "geoCoordinates", + "in": "query", + "description": "Geocoordinates (first longitude, then latitude) around which to search for pickup points. If you use this type of search, do not pass postal and country codes.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "-47.924747467041016; -15.832582473754883", + "description": "Geocoordinate." + } + }, + { + "name": "postalCode", + "in": "query", + "description": "Postal code around which to search for pickup points. If you use this type of search, make sure to pass a `countryCode` and do not pass `geoCoordinates`.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "1234000" + } + }, + { + "name": "countryCode", + "in": "query", + "description": "Three letter country code refering to the `postalCode` field. Pass the country code only if you are searching pickup points by postal code.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "BRA" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "paging": { + "page": 1, + "pageSize": 30, + "total": 1, + "pages": 1 + }, + "items": [ + { + "distance": 0.8469786518616546, + "pickupPoint": { + "friendlyName": "physical-store-02", + "address": { + "addressType": "pickup", + "receiverName": "", + "addressId": "physical-store-02", + "isDisposable": true, + "postalCode": "23450-070", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "132", + "neighborhood": "Botafogo", + "complement": "Apto 101", + "reference": "", + "geoCoordinates": [ + -47, + -15 + ] + }, + "additionalInfo": "", + "id": "02_Physical", + "businessHours": [ + { + "DayOfWeek": 0, + "OpeningTime": "00:00:00", + "ClosingTime": "23:59:00" + }, + { + "DayOfWeek": 1, + "OpeningTime": "00:00:00", + "ClosingTime": "23:59:00" + }, + { + "DayOfWeek": 2, + "OpeningTime": "00:00:00", + "ClosingTime": "23:59:00" + }, + { + "DayOfWeek": 3, + "OpeningTime": "00:00:00", + "ClosingTime": "23:59:00" + }, + { + "DayOfWeek": 4, + "OpeningTime": "00:00:00", + "ClosingTime": "23:50:00" + }, + { + "DayOfWeek": 5, + "OpeningTime": "00:00:00", + "ClosingTime": "23:59:00" + }, + { + "DayOfWeek": 6, + "OpeningTime": "00:00:00", + "ClosingTime": "23:59:00" + } + ] + } + } + ] + }, + "schema": { + "type": "object", + "properties": { + "paging": { + "description": "Paging.", + "type": "object", + "properties": { + "page": { + "description": "Page number.", + "type": "integer" + }, + "pageSize": { + "description": "Page size.", + "type": "integer" + }, + "total": { + "description": "Total pages.", + "type": "integer" + }, + "pages": { + "description": "Pages.", + "type": "integer" + } + } + }, + "items": { + "description": "Items.", + "type": "array", + "items": { + "description": "Item information.", + "type": "object", + "properties": { + "distance": { + "description": "Distance.", + "type": "number" + }, + "pickupPoint": { + "description": "Pickup point.", + "type": "object", + "properties": { + "friendlyName": { + "description": "Friendly name.", + "type": "string" + }, + "address": { + "description": "Address.", + "type": "object", + "properties": { + "addressType": { + "description": "Address type.", + "type": "string" + }, + "receiverName": { + "description": "Receiver name.", + "type": "string" + }, + "addressId": { + "description": "Address ID.", + "type": "string", + "nullable": true + }, + "isDisposable": { + "description": "Is disposable.", + "type": "boolean" + }, + "postalCode": { + "description": "Postal code.", + "type": "string" + }, + "city": { + "description": "City.", + "type": "string" + }, + "state": { + "description": "State.", + "type": "string" + }, + "country": { + "description": "Country.", + "type": "string" + }, + "street": { + "description": "Street.", + "type": "string" + }, + "number": { + "description": "Number.", + "type": "string" + }, + "neighborhood": { + "description": "Neighborhood.", + "type": "string" + }, + "complement": { + "description": "Complement to the shipping address, in case it applies.", + "type": "string", + "nullable": true + }, + "reference": { + "description": "Racao.", + "type": "string" + }, + "geoCoordinates": { + "description": "Geo coordinates.", + "type": "array", + "items": { + "description": "Geo coordinate.", + "type": "integer" + } + } + } + }, + "additionalInfo": { + "description": "Additional info.", + "type": "string" + }, + "id": { + "description": "ID.", + "type": "string" + }, + "businessHours": { + "description": "Array with business hours.", + "type": "array", + "items": { + "description": "Business hours.", + "type": "object", + "properties": { + "DayOfWeek": { + "description": "Day of week.", + "type": "integer" + }, + "OpeningTime": { + "description": "Opening time.", + "type": "string" + }, + "ClosingTime": { + "description": "Closing time.", + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "/api/checkout/pub/postal-code/{countryCode}/{postalCode}": { + "get": { + "tags": [ + "Fulfillment" + ], + "summary": "Get address by postal code", + "description": "Retrieves address information for a given postal code and country.\r\n\r\nThis request can be used to implement auto complete functionality when a customer needs to fill in an address.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "GetAddressByPostalCode", + "security": [], + "parameters": [ + { + "name": "countryCode", + "in": "path", + "description": "Three letter country code refering to the `postalCode` field.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "BRA" + } + }, + { + "name": "postalCode", + "in": "path", + "description": "Postal code.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1234000" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": { + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "My street", + "number": "34", + "neighborhood": "My neighborhood", + "complement": "Apto 101", + "reference": "Reference", + "geoCoordinates": [] + }, + "schema": { + "description": "Address.", + "type": "object", + "properties": { + "postalCode": { + "description": "Postal code.", + "type": "string" + }, + "city": { + "description": "City.", + "type": "string" + }, + "state": { + "description": "State.", + "type": "string" + }, + "country": { + "description": "Country.", + "type": "string" + }, + "street": { + "description": "Street.", + "type": "string" + }, + "number": { + "description": "Number.", + "type": "string" + }, + "neighborhood": { + "description": "Neighborhood.", + "type": "string" + }, + "complement": { + "description": "Complement to the shipping address, in case it applies.", + "type": "string", + "nullable": true + }, + "reference": { + "description": "Reference.", + "type": "string" + }, + "geoCoordinates": { + "description": "Geo coordinates.", + "type": "array", + "items": { + "description": "Geo coordinate.", + "type": "integer" + } + } + } + } + } + } + } + } + } + }, + "/api/checkout/pub/orderForm/{orderFormId}/transaction": { + "post": { + "tags": [ + "Order placement" + ], + "summary": "Place order from an existing cart", + "description": "This endpoint places an order from an existing `orderForm` object, meaning an existing cart.\n\r\n\rAfter the creation of an order with this request, you have five minutes to send payment information and then request payment processing.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PlaceOrderFromExistingOrderForm", + "security": [], + "parameters": [ + { + "name": "orderFormId", + "in": "path", + "description": "ID of the `orderForm` corresponding to the cart from which to place the order.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ede846222cd44046ba6c638442c3505a" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "referenceId", + "value", + "referenceValue", + "interestValue" + ], + "properties": { + "referenceId": { + "title": "referenceId", + "type": "string", + "description": "ID of the `orderForm` corresponding to the cart from which to place the order. This is the same as the `orderFormId` parameter.", + "example": "41a22925298a4ddca95318131a25b000" + }, + "savePersonalData": { + "title": "savePersonalData", + "type": "boolean", + "description": "`true` if the shopper's data provided during checkout should be saved for future reference.", + "example": false + }, + "optinNewsLetter": { + "title": "optinNewsLetter", + "type": "boolean", + "description": "True if the shopper opted to receive the newsletter.", + "example": false, + "nullable": true + }, + "value": { + "type": "integer", + "description": "Total value of the order without separating cents. For example, $24.99 is represented `2499`.", + "example": 6800 + }, + "referenceValue": { + "type": "integer", + "description": "Reference value of the order for calculating interest if that is the case. Can be equal to the total value and does not separate cents. For example, $24.99 is represented `2499`.", + "example": 6800 + }, + "interestValue": { + "type": "integer", + "description": "Interest rate to be used in case it applies.", + "example": 0 + } + } + }, + "example": { + "referenceId": "41a22925298a4ddca95318131a25b000", + "savePersonalData": false, + "optinNewsLetter": false, + "value": 6800, + "referenceValue": 6800, + "interestValue": 0 + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderForm" + }, + "example": { + "orderForm": null, + "transactionData": { + "merchantTransactions": [ + { + "id": "STORE", + "transactionId": "62FEDE228E2144649CF67812C4E5ER79", + "merchantName": "STORE", + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "value": 15650, + "referenceValue": 15650, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ] + } + ], + "receiverUri": "https://store.vtexpayments.com.br/split/v976778amgh/payments", + "gatewayCallbackTemplatePath": "/checkout/gatewayCallback/v976778amgh/{messageCode}" + }, + "orders": [ + { + "orderId": "v976778amgh-01", + "orderGroup": "v976778amgh", + "state": "order-created", + "isCheckedIn": false, + "sellerOrderId": "00-v976778amgh-01", + "storeId": "1", + "value": 15650, + "items": [ + { + "uniqueId": "0F93E9C4926A4CD97FDD4C2599BDF9DB", + "id": "2000016", + "productId": "2000002", + "refId": "35-Preto", + "ean": null, + "name": "Produto Seleção SKU - Lista 35 - Preto", + "skuName": "35 - Preto", + "modalType": null, + "priceValidUntil": "2018-02-16T23:42:44.5467295Z", + "tax": 0, + "price": 15000, + "listPrice": 15000, + "manualPrice": null, + "sellingPrice": 15000, + "rewardValue": 1, + "isGift": false, + "additionalInfo": { + "brandName": "Marca Um", + "brandId": "1", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/12/28/", + "productCategories": { + "12": "Departamento 5", + "28": "Categoria 5-3" + }, + "defaultPicker": null, + "handlerSequence": 0, + "handling": false, + "quantity": 1, + "seller": "1", + "imageUrl": "http://store.vteximg.com.br/arquivos/ids/168463-55-55/imagem-modo-lista.png", + "detailUrl": "/produto-selecao-sku-lista/p", + "components": [], + "bundleItems": [], + "attachments": [], + "itemAttachment": { + "name": null, + "content": {} + }, + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c" + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1 + } + ], + "sellers": [ + { + "id": "1", + "name": "Store", + "logo": "Logo" + } + ], + "totals": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 15000 + }, + { + "id": "Discounts", + "name": "Total dos Descontos", + "value": 0 + }, + { + "id": "Shipping", + "name": "Total do Frete", + "value": 650 + }, + { + "id": "Tax", + "name": "Total da Taxa", + "value": 0 + } + ], + "clientProfileData": { + "email": "clark.kent@examplemail.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5500123456789", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "ratesAndBenefitsData": { + "attachmentId": "ratesAndBenefitsData", + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "shippingData": { + "attachmentId": "shippingData", + "address": { + "addressType": "residential", + "receiverName": "Marcelo", + "addressId": "49ad09e5fba8434a8ff1e0faa4b60ceb", + "postalCode": "28050987", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "slas": [ + { + "id": "n2_2", + "name": "n2_2", + "deliveryIds": [ + { + "courierId": "1de4790", + "warehouseId": "1_1", + "dockId": "N2", + "courierName": "N2_2", + "quantity": 1 + } + ], + "shippingEstimate": "6bd", + "shippingEstimateDate": null, + "lockTTL": "7d", + "availableDeliveryWindows": [ + { + "startDateUtc": "2024-03-27T00:00:00+00:00", + "endDateUtc": "2024-03-27T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + { + "startDateUtc": "2024-03-28T00:00:00+00:00", + "endDateUtc": "2024-03-28T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + ], + "deliveryWindow": null, + "price": 650, + "listPrice": 650, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + } + }, + { + "id": "Normal", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "2p1t", + "warehouseId": "1_1", + "dockId": "N2", + "courierName": "Post_Test_2", + "quantity": 1 + } + ], + "shippingEstimate": "6bd", + "shippingEstimateDate": null, + "lockTTL": "7d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 650, + "listPrice": 650, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + } + }, + { + "id": "P_T", + "name": "P_T", + "deliveryIds": [ + { + "courierId": "1p1t", + "warehouseId": "1_1", + "dockId": "N2", + "courierName": "Post_Teste", + "quantity": 1 + } + ], + "shippingEstimate": "6bd", + "shippingEstimateDate": null, + "lockTTL": "7d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1462, + "listPrice": 1462, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + } + }, + { + "id": "Econômica", + "name": "Econômica", + "deliveryIds": [ + { + "courierId": "2B9C2C7D-7A76-485D-94EF-701D041E448C", + "warehouseId": "1_1", + "dockId": "1_1_1", + "courierName": "Leve 30kg (De: 10000-000 Até: 25999-999) ", + "quantity": 1 + } + ], + "shippingEstimate": "20bd", + "shippingEstimateDate": null, + "lockTTL": "7d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 2265, + "listPrice": 2265, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + } + } + ], + "shipsTo": [ + "BRA" + ], + "itemId": "2000016" + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Marcelo", + "addressId": "49ad09e5fba8434a8ff1e0faa4b60ceb", + "postalCode": "28050642", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [] + } + ] + }, + "paymentData": { + "attachmentId": "paymentData", + "transactionId": "62FEDE228E2144649CF67812C4E5DD87", + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "giftCards": [], + "transactions": [ + { + "isActive": true, + "transactionId": "62FEDE228E2144649CF67812C4E5DD87", + "merchantName": "STORE", + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ] + } + ], + "merchantName": "STORE" + }, + "clientPreferencesData": { + "attachmentId": "clientPreferencesData", + "locale": "pt-BR", + "optinNewsLetter": true + }, + "giftRegistryData": null, + "marketingData": null, + "storePreferencesData": { + "countryCode": "BRA", + "checkToSavePersonDataByDefault": false, + "templateOptions": { + "toggleCorporate": false + }, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "openTextField": { + "attachmentId": "openTextField", + "value": null + }, + "changeData": null, + "salesChannel": "1", + "followUpEmail": "f1e7309d88dd4633825ce183d52a50a6@ct.vtex.com.br", + "creationDate": "2024-02-16T23:42:43.9605088Z", + "lastChange": "2024-02-16T23:42:47.62285Z", + "timeZoneCreationDate": "2024-02-16T21:42:43.9605088", + "timeZoneLastChange": "2024-02-16T21:42:47.62285", + "isCompleted": false, + "hostName": "ambienteqa", + "merchantName": null, + "userType": "User type", + "roundingError": 0 + } + ] + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orders": { + "put": { + "tags": [ + "Order placement" + ], + "summary": "Place order", + "description": "Places order without having any prior cart information. This means all information on items, client, payment and shipping must be sent in the body.\r\n\r\n>⚠️ The authentication of this endpoint is required if you are creating an order with an item that has an attachment that creates a Subscription. For more information, access [Subscriptions API](https://developers.vtex.com/docs/api-reference/subscriptions-api-v3).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PlaceOrder", + "parameters": [ + { + "name": "sc", + "in": "query", + "description": "Trade Policy (Sales Channel) identification. This query can be used to create an order for a specific sales channel.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items", + "clientProfileData", + "shippingData", + "paymentData" + ], + "properties": { + "items": { + "type": "array", + "description": "Array of objects containing information on each of the order's items.", + "items": { + "description": "Information on each of the order's items.", + "type": "object", + "required": [ + "id", + "quantity", + "seller" + ], + "properties": { + "id": { + "type": "string", + "description": "The SKU ID.", + "example": "123" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "The quantity of items of this specific SKU in the cart to be simulated.", + "example": 1 + }, + "seller": { + "type": "string", + "description": "The ID of the seller responsible for this SKU. This ID can be found in your VTEX Admin.", + "example": "1" + }, + "commission": { + "type": "integer", + "description": "Comission.", + "example": 10 + }, + "freightCommission": { + "type": "integer", + "description": "Freight comission.", + "example": 10 + }, + "price": { + "type": "integer", + "description": "Item price within the context of the order without separating cents. For example, $24.99 is represented `2499`.", + "example": 2499 + }, + "bundleItems": { + "type": "array", + "description": "Information on services sold along with the SKU. Example: a gift package.", + "items": { + "description": "Information on services sold along with the SKU. Example: a gift package.", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Service type.", + "example": "type-example" + }, + "id": { + "type": "string", + "description": "Service identifier.", + "example": "id-example" + }, + "name": { + "type": "string", + "description": "Service name.", + "example": "name-example" + }, + "price": { + "type": "integer", + "description": "Service price. The last two digits are the cents.", + "example": 199 + } + } + } + }, + "itemAttachment": { + "type": "object", + "description": "Item attachment.", + "properties": { + "name": { + "type": "string", + "description": "Attachment name.", + "example": "name-example" + }, + "content": { + "type": "string", + "description": "Content referring to the customization requested by the customer.", + "example": "content-example" + } + } + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "description": "Information on attachments.", + "type": "string" + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags, each of which, modifies the price in some way, like discounts or taxes that apply to the item in the context of the order.", + "items": { + "description": "Price tag information.", + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Promotion unique identifier.", + "nullable": true + }, + "isPercentual": { + "type": "boolean", + "description": "Indicates whether the `value` and `rawValue` of the price tag represent a percentage to be applied during checkout calculation. The default value is `false`. When set to `true`, the `value` and `rawValue` fields are interpreted as percentages, and the final price is calculated accordingly." + }, + "name": { + "type": "string", + "description": "Price tag name in the format: `{type}@{where}-{identifier}#{calculationId}`. Where:\r\n- `type` indicates whether the tag refers to a discount or tax.\r\n- `where` specifies the context, either price or shipping.\r\n- `identifier` is the promotion ID.\r\n- `calculationId` is a hash that may vary with each price calculation." + }, + "rawValue": { + "type": "number", + "description": "Raw price tag value with up to five decimals, sourced from the promotion configuration. This value is informational only and is not used in checkout calculations." + }, + "value": { + "type": "integer", + "description": "Price tag value representing either a promotion (value decrease) or a tax (value increase)." + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "SKU measurement unit.", + "example": "g" + }, + "unitMultiplier": { + "type": "integer", + "description": "SKU unit multiplier.", + "example": 1 + }, + "isGift": { + "type": "boolean", + "description": "Indicates whether the order is a gift.", + "example": false + } + }, + "example": { + "id": "123456789", + "quantity": 1, + "seller": "1" + } + } + }, + "clientProfileData": { + "type": "object", + "description": "Customer's profile information. The `email` functions as a customer's ID.\n\r\n\rFor customers already in your database, sending only the email address is enough to register the order to the shopper’s existing account.\n\r\n\r> If the shopper exists in you database but is not logged in, sending other profile information along with the email will cause the platform to fail placing the order. This happens because this action is interpreted as an attempt to edit profile data, which is not possible unless the customer is logged in to the store.", + "required": [ + "email" + ], + "nullable": true, + "properties": { + "email": { + "type": "string", + "description": "Customer's email address.", + "example": "customer@examplemail.com", + "nullable": true + }, + "firstName": { + "type": "string", + "description": "Customer's first name.", + "example": "first-name", + "nullable": true + }, + "lastName": { + "type": "string", + "description": "Customer's last name.", + "example": "last-name" + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer.", + "example": "cpf" + }, + "document": { + "type": "string", + "description": "Document number informed by the customer.", + "example": "123456789" + }, + "phone": { + "type": "string", + "description": "Customer's phone number.", + "example": "+55110988887777" + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity.", + "example": "company-name" + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity.", + "example": "trade-name" + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity.", + "example": "12345678000100" + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity.", + "example": "12345678" + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity.", + "example": "+551100988887777" + }, + "isCorporate": { + "type": "boolean", + "description": "`true` if the customer is a legal entity.", + "example": false + } + } + }, + "shippingData": { + "type": "object", + "description": "Shipping information.", + "nullable": true, + "properties": { + "address": { + "type": "object", + "description": "Shipping address.\n\r\n\rFor customers already in your data base, it is enough to send this object only with an `addressId`, which you may obtain from a [Cart simulation request](https://developers.vtex.com/vtex-rest-api/reference/shopping-cart#cartsimulation), for example.", + "nullable": true, + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`, among others.", + "example": "residential" + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order.", + "example": "receiver-name" + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "example": "Home", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal Code.", + "example": "12345-000" + }, + "city": { + "type": "string", + "description": "City of the shipping address.", + "example": "Rio de Janeiro" + }, + "state": { + "type": "string", + "description": "State of the shipping address.", + "example": "Rio de Janeiro" + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address.", + "example": "BRA" + }, + "street": { + "type": "string", + "description": "Street of the shipping address.", + "example": "Praia de Botafogo" + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address.", + "example": "300" + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address.", + "example": "Botafogo" + }, + "complement": { + "description": "Complement to the shipping address, in case it applies.", + "type": "string", + "nullable": true, + "example": "3rd floor" + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "example": "Grey building" + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "example": [ + -47.924747467041016, + -15.832582473754883 + ], + "items": { + "type": "number", + "example": -47.924747467041016, + "description": "Geocoordinates numbers." + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array of objects containing logistics information of each item.", + "items": { + "description": "Logistics information.", + "type": "object", + "required": [ + "itemIndex", + "selectedSla", + "price" + ], + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index of the item in the `items` array, starting from 0.", + "example": 0 + }, + "selectedSla": { + "type": "string", + "description": "Selected shipping option. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`.", + "example": "Express", + "nullable": true + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "String with the selected delivery channel. This field supports the following values: \n\n- `delivery`, \n\n- `pickup-in-point`.", + "example": "delivery", + "nullable": true + }, + "lockTTL": { + "type": "string", + "description": "Logistics reservation waiting time.", + "example": "8d", + "nullable": true + }, + "shippingEstimate": { + "type": "string", + "description": "Estimated time until delivery for the item.", + "example": "7d" + }, + "price": { + "type": "integer", + "description": "Shipping price for the item. Does not account for the whole order's shipping price.", + "example": 1099 + }, + "deliveryWindow": { + "type": "object", + "description": "In case of scheduled delivery, this object will contain information on the delivery window selected by the shopper.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting day and time in UTC.", + "example": "2021-07-13T00:00:00+00:00" + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending day and time in UTC.", + "example": "2021-07-13T23:59:59+00:00" + }, + "price": { + "type": "integer", + "description": "Delivery window price.", + "example": 0 + }, + "lisPrice": { + "type": "integer", + "description": "Delivery window list price.", + "example": 0 + }, + "tax": { + "type": "integer", + "description": "Delivery window tax.", + "example": 0 + } + } + } + } + } + }, + "updateStatus": { + "type": "string", + "description": "Indicate whether this object's information is up to date according to the order's items. An order can not be placed if `\"outdated\"`.", + "example": "updated" + } + } + }, + "paymentData": { + "type": "object", + "required": [ + "payments" + ], + "description": "Payment infomation.", + "properties": { + "giftCards": { + "type": "array", + "description": "Gift card information, if it applies to the order.", + "items": { + "description": "Gift card information.", + "type": "object", + "required": [ + "redemptionCode", + "value" + ], + "properties": { + "redemptionCode": { + "type": "string", + "description": "Gift card redemption code.", + "example": "HYUO-TEZZ-QFFT-HTFR" + }, + "value": { + "type": "integer", + "description": "Gift card value.", + "example": 500 + }, + "balance": { + "type": "integer", + "description": "Gift card balance.", + "example": 500 + }, + "name": { + "type": "string", + "description": "Gift card name.", + "example": "name-example" + }, + "id": { + "type": "string", + "description": "Gift card ID.", + "example": "1390324156495k195pmab4rall3di" + }, + "inUse": { + "type": "boolean", + "description": "Indicates whether gift card is in use.", + "example": true + }, + "isSpecialCard": { + "type": "boolean", + "description": "Indicates whether gift card is special.", + "example": false + } + } + } + }, + "giftCardMessages": { + "type": "array", + "description": "Array of gift card messages.", + "items": { + "example": "message-example", + "description": "Gift card message.", + "type": "string" + } + }, + "paymentSystems": { + "type": "array", + "description": "Information on payment systems.", + "items": { + "type": "object", + "description": "Payment system.", + "properties": { + "id": { + "type": "integer", + "description": "Payment system ID.", + "example": 2 + }, + "name": { + "type": "string", + "description": "Payment system name.", + "example": "Visa" + }, + "groupName": { + "type": "string", + "description": "Payment group name.", + "example": "creditCardPaymentGroup" + }, + "validator": { + "type": "object", + "description": "Payment system validator.", + "properties": { + "regex": { + "type": "string", + "description": "Payment system validator.", + "example": "^4" + }, + "mask": { + "type": "string", + "description": "Validator mask.", + "example": "9999 9999 9999 9999" + }, + "cardCodeRegex": { + "type": "string", + "description": "Card code regular expression.", + "example": "[^0-9]" + }, + "cardCodeMask": { + "type": "string", + "description": "Card code mask.", + "example": "999" + }, + "weights": { + "type": "array", + "description": "Weights.", + "items": { + "type": "integer", + "description": "Weights." + }, + "example": [ + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2, + 1, + 2 + ] + } + } + }, + "stringId": { + "type": "string", + "description": "String ID.", + "example": "12345abc" + }, + "template": { + "type": "string", + "description": "Template.", + "example": "creditCardPaymentGroup-template" + }, + "requiresDocument": { + "type": "boolean", + "description": "Indicates whether a document is required.", + "example": false + }, + "selected": { + "type": "boolean", + "description": "Indicates whether this payment system has been selected.", + "example": false + }, + "isCustom": { + "type": "boolean", + "description": "Indicates whether it is custom.", + "example": false + }, + "description": { + "type": "string", + "description": "Description.", + "example": "description-example" + } + } + } + }, + "payments": { + "type": "array", + "description": "Payment information.", + "items": { + "type": "object", + "required": [ + "paymentSystem", + "referenceValue", + "value", + "installments" + ], + "description": "Payment information.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID.", + "example": "accountID-example" + }, + "bin": { + "type": "string", + "description": "Payment bin.", + "example": "2", + "nullable": true + }, + "installments": { + "type": "integer", + "description": "Number of installments.", + "example": 2 + }, + "paymentSystem": { + "type": "integer", + "description": "Payment system.", + "example": 12 + }, + "referenceValue": { + "type": "integer", + "description": "Reference value for calculating interest rates, in case it applies.", + "example": 16175 + }, + "value": { + "type": "integer", + "description": "Value including interest, in case it applies.", + "example": 16175 + } + } + } + }, + "updateStatus": { + "type": "string", + "description": "Indicates whether this object's information is up to date according to the order's items. An order can not be placed if `\"outdated\"`.", + "example": "updated" + } + } + }, + "marketingData": { + "type": "object", + "description": "Coupon information.", + "nullable": true, + "properties": { + "coupon": { + "type": "string", + "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.", + "example": "free-shipping" + }, + "utmSource": { + "type": "string", + "description": "UTM source.", + "example": "Facebook" + }, + "utmMedium": { + "type": "string", + "description": "UTM medium.", + "example": "CPC" + }, + "utmCampaign": { + "type": "string", + "description": "UTM campaign.", + "example": "Black friday" + }, + "utmiPage": { + "type": "string", + "description": "utmi_page (internal utm).", + "example": "utmi_page-example" + }, + "utmiPart": { + "type": "string", + "description": "utmi_part (internal utm).", + "example": "utmi_part-exmaple" + }, + "utmiCampaign": { + "type": "string", + "description": "utmi_campaign (internal utm).", + "example": "utmi_campaign-exmaple" + } + } + }, + "openTextField": { + "type": "string", + "description": "Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as `JSON` even if escaped. For that purpose, see [Creating customizable fields](https://developers.vtex.com/docs/guides/customizable-fields-with-checkout-api).", + "example": "open-text-example" + }, + "salesAssociateData": { + "type": "object", + "description": "Sales Associate information.", + "properties": { + "salesAssociateId": { + "type": "string", + "description": "Sales Associate (Seller) identification code. All information should be registered by the merchant. Maximum of 100 characters.", + "example": "seller123" + } + } + } + } + }, + "example": { + "items": [ + { + "id": "123456789", + "quantity": 1, + "seller": "1", + "price": 2499, + "commission": 10, + "freightCommission": 5, + "measurementUnit": "g", + "unitMultiplier": 1, + "isGift": false, + "bundleItems": [ + { + "type": "gift-wrap", + "id": "gift-123", + "name": "Gift Wrapping", + "price": 199 + } + ], + "priceTags": [ + { + "identifier": "discount-123", + "isPercentual": false, + "name": "Promotional Discount", + "rawValue": -10, + "value": -1000 + } + ] + } + ], + "clientProfileData": { + "email": "customer@example.com", + "firstName": "John", + "lastName": "Doe", + "documentType": "cpf", + "document": "12345678900", + "phone": "+5511999999999", + "isCorporate": false + }, + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "John Doe", + "postalCode": "12345-000", + "city": "São Paulo", + "state": "SP", + "country": "BRA", + "street": "Avenida Paulista", + "number": "1000", + "neighborhood": "Bela Vista", + "complement": "Apt 101", + "reference": "Next to the park" + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Express", + "selectedDeliveryChannel": "delivery", + "shippingEstimate": "2d", + "price": 1099 + } + ], + "updateStatus": "updated" + }, + "paymentData": { + "payments": [ + { + "paymentSystem": 1, + "referenceValue": 2499, + "value": 2499, + "installments": 1 + } + ], + "giftCards": [ + { + "redemptionCode": "GIFT-1234-5678", + "value": 500, + "balance": 500, + "name": "Birthday Gift Card", + "id": "gift123", + "inUse": true, + "isSpecialCard": false + } + ], + "updateStatus": "updated" + }, + "marketingData": { + "coupon": "SUMMER10", + "utmSource": "Google", + "utmMedium": "CPC", + "utmCampaign": "Summer_Sale" + }, + "openTextField": "Please deliver after 5 PM.", + "salesAssociateData": { + "salesAssociateId": "seller123" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "orderForm": { + "type": "string", + "description": "This is `null` since this request does not depend on any previously existing orderForm information in the platform.", + "nullable": true + }, + "transactionData": { + "type": "object", + "description": "Information on each transaction pertinent to the order placed.", + "properties": { + "merchantTransactions": { + "type": "array", + "description": "Information on each merchant transaction.", + "items": { + "description": "Merchant transaction information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the seller." + }, + "transactionId": { + "type": "string", + "description": "ID of the transaction in the platform." + }, + "merchantName": { + "type": "string", + "description": "Name of the merchant responsible for the sale." + }, + "payments": { + "type": "array", + "description": "Information on each payment pertinent to the transaction.", + "items": { + "description": "Payment information.", + "type": "object", + "properties": { + "paymentSystem": { + "type": "integer", + "description": "Payment system." + }, + "bin": { + "type": "string", + "description": "Payment bin.", + "nullable": true + }, + "accountId": { + "type": "string", + "description": "Account ID.", + "nullable": true + }, + "tokenId": { + "type": "string", + "description": "Token ID.", + "nullable": true + }, + "value": { + "type": "integer", + "description": "Total value to be paid in this payment." + }, + "referenceValue": { + "type": "integer", + "description": "Reference value over which interests may be applied." + }, + "giftCardRedemptionCode": { + "type": "string", + "description": "Gift card redemption code.", + "nullable": true + }, + "giftCardProvider": { + "type": "string", + "description": "Gift card provider.", + "nullable": true + }, + "giftCardId": { + "type": "string", + "description": "Gift card ID.", + "nullable": true + } + } + } + } + } + } + }, + "receiverUri": { + "type": "string", + "description": "Receiver URI." + }, + "gatewayCallbackTemplatePath": { + "type": "string", + "description": "Template of the gateway callback path, which may later be used to send information about the transaction." + } + } + }, + "orders": { + "type": "array", + "description": "Information on each of the orders created.", + "items": { + "description": "Order information.", + "type": "object", + "properties": { + "orderId": { + "type": "string", + "description": "ID of the order in the Order Management System (OMS)." + }, + "orderGroup": { + "type": "string", + "description": "Order group. Orders that involve different sellers are split into different orders of a same order group." + }, + "state": { + "type": "string", + "description": "State.", + "nullable": true + }, + "isCheckedIn": { + "type": "boolean", + "description": "Indicates whether order is checked in.", + "example": false + }, + "sellerOrderId": { + "type": "string", + "description": "ID of the order in the seller.", + "nullable": true + }, + "storeId": { + "type": "string", + "description": "Store ID.", + "nullable": true + }, + "checkedInPickupPointId": { + "type": "string", + "description": "Checked in pickup point.", + "nullable": true + }, + "value": { + "type": "integer", + "description": "Value of the order." + }, + "items": { + "type": "array", + "description": "Information on each item in the order.", + "items": { + "description": "Item information.", + "type": "object", + "properties": { + "uniqueId": { + "type": "string", + "description": "Unique ID." + }, + "id": { + "type": "string", + "description": "ID of the item." + }, + "productId": { + "type": "string", + "description": "Product ID." + }, + "productRefId": { + "type": "string", + "description": "Product Ref ID." + }, + "refId": { + "type": "string", + "description": "Ref ID." + }, + "ean": { + "type": "string", + "description": "European Article Number.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Product name." + }, + "skuName": { + "type": "string", + "description": "SKU name." + }, + "modalType": { + "type": "string", + "description": "Modal type.", + "nullable": true + }, + "parentItemIndex": { + "type": "integer", + "description": "Parent item index.", + "nullable": true + }, + "parentAssemblyBinding": { + "type": "string", + "description": "Parent assembly binding.", + "nullable": true + }, + "priceValidUntil": { + "type": "string", + "description": "Price expiration date and time." + }, + "tax": { + "type": "integer", + "description": "Tax value in cents." + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "manualPrice": { + "type": "integer", + "description": "Manual price in cents.", + "nullable": true + }, + "manualPriceAppliedBy": { + "type": "string", + "description": "User that applied the manual price, if that is the case.", + "nullable": true + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." + }, + "rewardValue": { + "type": "integer", + "description": "Reward value in cents." + }, + "isGift": { + "type": "boolean", + "description": "Indicates whether item is a gift." + }, + "additionalInfo": { + "type": "object", + "description": "Additional information.", + "properties": { + "dimension": { + "type": "string", + "description": "Dimension.", + "nullable": true + }, + "brandName": { + "type": "string", + "description": "Brand name." + }, + "brandId": { + "type": "string", + "description": "Brand ID." + }, + "offeringInfo": { + "type": "string", + "description": "Offering information.", + "nullable": true + }, + "offeringType": { + "type": "string", + "description": "Offering type.", + "nullable": true + }, + "offeringTypeId": { + "type": "string", + "description": "Offering type ID.", + "nullable": true + } + } + }, + "preSaleDate": { + "type": "string", + "description": "Presale date.", + "nullable": true + }, + "productCategoryIds": { + "type": "string", + "description": "Product category IDs." + }, + "productCategories": { + "type": "object", + "description": "Object, where each field is an ID from `productCategoryIds`.", + "properties": { + "{ID}": { + "type": "string", + "description": "Product category corresponding to the ID in the field key." + } + } + }, + "quantity": { + "type": "integer", + "description": "Quantity." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "sellerChain": { + "type": "array", + "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/pt/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", + "items": { + "type": "string", + "description": "Seller." + } + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "detailUrl": { + "type": "string", + "description": "Detail URL." + }, + "bundleItems": { + "type": "array", + "description": "Information on services sold along with the SKU. Example: a gift package.", + "items": { + "description": "Service information.", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Service type." + }, + "id": { + "type": "integer", + "description": "Service identifier." + }, + "name": { + "type": "string", + "description": "Service name." + }, + "price": { + "type": "integer", + "description": "Service price in cents." + } + } + } + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "type": "string", + "description": "Attachment ID." + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags, each of which, modifies the price in some way, like discounts or taxes that apply to the item in the context of the order.", + "items": { + "description": "Price tag information.", + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Promotion unique identifier.", + "nullable": true + }, + "isPercentual": { + "type": "boolean", + "description": "Indicates whether the `value` and `rawValue` of the price tag represent a percentage to be applied during checkout calculation. The default value is `false`. When set to `true`, the `value` and `rawValue` fields are interpreted as percentages, and the final price is calculated accordingly." + }, + "name": { + "type": "string", + "description": "Price tag name in the format: `{type}@{where}-{identifier}#{calculationId}`. Where:\r\n- `type` indicates whether the tag refers to a discount or tax.\r\n- `where` specifies the context, either price or shipping.\r\n- `identifier` is the promotion ID.\r\n- `calculationId` is a hash that may vary with each price calculation." + }, + "rawValue": { + "type": "number", + "description": "Raw price tag value with up to five decimals, sourced from the promotion configuration. This value is informational only and is not used in checkout calculations." + }, + "value": { + "type": "integer", + "description": "Price tag value representing either a promotion (value decrease) or a tax (value increase)." + } + } + } + }, + "availability": { + "type": "string", + "description": "Availability." + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit." + }, + "unitMultiplier": { + "type": "integer", + "description": "Unit multiplier." + }, + "manufacturerCode": { + "type": "string", + "description": "Manufacturer code.", + "nullable": true + }, + "priceDefinition": { + "type": "object", + "description": "Price information for all units of a specific item.", + "properties": { + "calculatedSellingPrice": { + "type": "integer", + "description": "Item's calculated unitary selling price in cents." + }, + "total": { + "type": "integer", + "description": "Total value for all units of the item in cents." + }, + "sellingPrices": { + "type": "array", + "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", + "items": { + "description": "Rounding information.", + "type": "object", + "properties": { + "value": { + "type": "integer", + "description": "Value in cents for that specific rounding." + }, + "quantity": { + "type": "integer", + "description": "Rounding quantity, meaning how many items are rounded to this value." + } + } + } + } + } + } + } + } + }, + "sellers": { + "type": "array", + "description": "Information on each seller.", + "items": { + "description": "Seller information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Seller ID." + }, + "name": { + "type": "string", + "description": "Seller name." + }, + "logo": { + "type": "string", + "description": "Seller logo.", + "nullable": true + } + } + } + }, + "totals": { + "type": "array", + "description": "Information on order totals.", + "items": { + "description": "Order total information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Total ID." + }, + "name": { + "type": "string", + "description": "Total name." + }, + "value": { + "type": "integer", + "description": "Total value." + } + } + } + }, + "clientProfileData": { + "type": "object", + "description": "Customer's profile information.", + "nullable": true, + "properties": { + "email": { + "type": "string", + "description": "Email address.", + "nullable": true + }, + "firstName": { + "type": "string", + "description": "First name.", + "nullable": true + }, + "lastName": { + "type": "string", + "description": "Last name." + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer." + }, + "document": { + "type": "string", + "description": "Document informed by the customer." + }, + "phone": { + "type": "string", + "description": "Phone number." + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity.", + "nullable": true + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity.", + "nullable": true + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity.", + "nullable": true + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity.", + "nullable": true + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity.", + "nullable": true + }, + "isCorporate": { + "type": "boolean", + "description": "Indicates whether the customer is a legal entity." + }, + "profileCompleteOnLoading": { + "type": "boolean", + "description": "Indicates whether profile is complete on loading." + }, + "profileErrorOnLoading": { + "type": "boolean", + "description": "Indicates whether profile presents error on loading.", + "nullable": true + }, + "customerClass": { + "type": "string", + "description": "Customer class.", + "nullable": true + } + } + }, + "ratesAndBenefitsData": { + "type": "object", + "description": "Information on rates and benefits that apply to the order.", + "properties": { + "rateAndBenefitsIdentifiers": { + "type": "array", + "description": "List with rates and benefits identifiers.", + "items": { + "type": "string", + "description": "Rate and benefit identifier." + } + }, + "teaser": { + "type": "array", + "description": "List with rates and benefits teasers.", + "items": { + "type": "string", + "description": "Rate and benefit teaser." + } + } + } + }, + "shippingData": { + "type": "object", + "description": "Shipping information pertinent to the order.", + "properties": { + "address": { + "type": "object", + "description": "Address information.", + "nullable": true, + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array with logistics information. Each object in this array corresponds to an object in the `items` array, based on the respective `itemIndex`.", + "items": { + "description": "Logistics information.", + "type": "object", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index corresponding to the position of the object in the `items` array." + }, + "selectedSla": { + "type": "string", + "description": "SLA selected by the customer. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`.", + "nullable": true + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Delivery channel selected by the customer. For example, `\"delivery\"` or `\"pickup-in-point\"`.", + "nullable": true + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "slas": { + "type": "array", + "description": "Information on available SLAs.", + "items": { + "description": "SLA information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SLA ID. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`." + }, + "deliveryChannel": { + "type": "string", + "description": "Delivery channel." + }, + "name": { + "type": "string", + "description": "SLA name. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, the value of this field will show the specific delivery option name selected for this SLA, as the example `Delivery | BRA | Up to 30 hours`." + }, + "deliveryIds": { + "type": "array", + "description": "Information on each delivery ID.", + "items": { + "description": "Delivery ID information.", + "type": "object", + "properties": { + "courierId": { + "type": "string", + "description": "Courier ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "dockId": { + "type": "string", + "description": "Warehouse ID." + }, + "courierName": { + "type": "string", + "description": "Courier name." + }, + "quantity": { + "type": "integer", + "description": "Quantity." + } + } + } + }, + "shippingEstimate": { + "type": "string", + "description": "Shipping estimate. For instance, Three business days will be represented `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", + "nullable": true + }, + "useIndividualShippingEstimates": { + "type": "boolean", + "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`." + }, + "lockTTL": { + "type": "string", + "description": "Estimate date of delivery.", + "nullable": true + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "tax": { + "type": "integer", + "description": "Tax in cents." + }, + "pickupStoreInfo": { + "type": "object", + "description": "Information on the pickup store.", + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Indicates whether it is the pickup store." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Address information.", + "nullable": true, + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + }, + "additionalInfo": { + "type": "string", + "description": "Additional information.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "Corresponding dock ID.", + "nullable": true + } + } + }, + "pickupPointId": { + "type": "string", + "description": "Pickup point ID.", + "nullable": true + }, + "pickupDistance": { + "type": "integer", + "description": "Pickup point distance." + }, + "polygonName": { + "type": "string", + "description": "Polygon name.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Transit time. For instance, \"three business days\" is represented `3bd`." + } + } + } + }, + "shipsTo": { + "type": "array", + "description": "List of countries that the item may be shipped to.", + "items": { + "type": "string", + "description": "Three letter country code." + } + }, + "itemId": { + "type": "string", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart." + }, + "deliveryChannels": { + "type": "array", + "description": "List of available delivery channels.", + "items": { + "description": "Delivery channel information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Delivery channel ID." + } + } + } + } + } + } + }, + "selectedAddresses": { + "type": "array", + "description": "Array with information on the selected addresses for the order.", + "items": { + "description": "Selected address information.", + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "description": "Complement to the shipping address, in case it applies.", + "type": "string", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + } + }, + "availableAddresses": { + "type": "array", + "description": "Array with information on the available addresses for the order.", + "items": { + "description": "Available address information.", + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "description": "Complement to the shipping address, in case it applies.", + "type": "string", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "items": { + "type": "number", + "description": "Geocoordinates numbers." + } + } + } + } + } + } + }, + "paymentData": { + "type": "object", + "description": "Information on the order's payment.", + "properties": { + "giftCards": { + "type": "array", + "description": "Gift card information, if it applies to the order.", + "items": { + "description": "Gift card information.", + "type": "object", + "properties": { + "redemptionCode": { + "type": "string", + "description": "Gift card redemption code." + }, + "value": { + "type": "integer", + "description": "Gift card value in cents." + }, + "balance": { + "type": "integer", + "description": "Gift card balance in cents." + }, + "name": { + "type": "string", + "description": "Gift card name." + }, + "id": { + "type": "string", + "description": "Gift card ID." + }, + "inUse": { + "type": "boolean", + "description": "Indicates whether gift card is in use." + }, + "isSpecialCard": { + "type": "boolean", + "description": "Indicates whether gift card is special." + } + } + } + }, + "transactions": { + "type": "array", + "description": "Information on each transaction pertinent to the order.", + "items": { + "description": "Transaction information.", + "type": "object", + "properties": { + "isActive": { + "type": "boolean", + "description": "Indicates whether transaction is active." + }, + "transactionId": { + "type": "string", + "description": "Transaction ID." + }, + "merchantName": { + "type": "string", + "description": "Merchant name." + }, + "payments": { + "type": "array", + "description": "Information on each payment.", + "items": { + "description": "Payment information.", + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID." + }, + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true + }, + "installments": { + "type": "integer", + "description": "Number of installments." + }, + "paymentSystem": { + "type": "integer", + "description": "Payment system." + }, + "referenceValue": { + "type": "integer", + "description": "Reference value for calculating interest rates, in case it applies. Displayed in cents." + }, + "value": { + "type": "integer", + "description": "Value including interest, in case it applies. Displayed in cents." + } + } + } + }, + "sharedTransaction": { + "type": "boolean", + "description": "Indicates whather transaction is shared." + } + } + } + } + } + }, + "itemMetadata": { + "type": "object", + "description": "Item metadata.", + "properties": { + "items": { + "type": "array", + "description": "List of objects containing metadata on each item in the order.", + "items": { + "type": "object", + "description": "Item metadata.", + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "name": { + "type": "string", + "description": "Product name." + }, + "skuName": { + "type": "string", + "description": "SKU name." + }, + "productId": { + "type": "string", + "description": "Product ID." + }, + "refId": { + "type": "string", + "description": "Ref ID." + }, + "ean": { + "type": "string", + "description": "European Article Number.", + "nullable": true + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "detailUrl": { + "type": "string", + "description": "Detail URL." + } + } + } + } + } + }, + "salesChannel": { + "type": "string", + "description": "Sales channel." + }, + "followUpEmail": { + "type": "string", + "description": "Follow up email address." + }, + "creationDate": { + "type": "string", + "description": "Creation date." + }, + "lastChange": { + "type": "string", + "description": "Last change." + }, + "timeZoneCreationDate": { + "type": "string", + "description": "Time zone creation date." + }, + "timeZoneLastChange": { + "type": "string", + "description": "Time zone last change." + }, + "isCompleted": { + "type": "boolean", + "description": "Indicates whether order is completed." + }, + "hostName": { + "type": "string", + "description": "Host name." + }, + "merchantName": { + "type": "string", + "description": "Merchant name.", + "nullable": true + }, + "userType": { + "type": "string", + "description": "User type." + }, + "roundingError": { + "type": "integer", + "description": "Rounding error." + }, + "allowEdition": { + "type": "boolean", + "description": "Indicates whether edition is allowed." + }, + "allowCancelation": { + "type": "boolean", + "description": "Indicates whether cancelation is allowed." + }, + "allowChangeSeller": { + "type": "boolean", + "description": "Indicates whether seller changing is allowed." + }, + "isUserDataVisible": { + "type": "boolean", + "description": "Indicates whether user data is visible." + }, + "orderFormCreationDate": { + "type": "string", + "description": "`orderForm` creation date." + }, + "salesAssociateId": { + "type": "string", + "description": "Sales Associate (Seller) identification code." + } + } + } + } + } + }, + "example": { + "orderForm": null, + "transactionData": { + "merchantTransactions": [ + { + "id": "MYSTORE", + "transactionId": "296D6D245C17437E823EB77E403FC88D", + "merchantName": "MYSTORE", + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ] + } + ], + "receiverUri": "https://mystore.vtexpayments.com.br/split/1146512005522/payments", + "gatewayCallbackTemplatePath": "/checkout/gatewayCallback/1146512005522/{messageCode}" + }, + "orders": [ + { + "orderId": "1146512005522-01", + "orderGroup": "1146512005522", + "state": null, + "isCheckedIn": false, + "sellerOrderId": "00-1146512005522-01", + "storeId": "1", + "checkedInPickupPointId": "21", + "value": 34390, + "items": [ + { + "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", + "id": "2", + "productId": "2", + "productRefId": "1", + "refId": "CBC30L", + "ean": null, + "name": "Chopp Brahma Claro 30L", + "skuName": "Chopp Brahma Claro 30L", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": "2022-07-13T18:30:46Z", + "tax": 0, + "price": 32890, + "listPrice": 49900, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 32890, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": "Brahma", + "brandId": "2000000", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Bebidas" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-brahma-claro-30l/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + }, + { + "name": "vtex.subscription.daily", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + } + } + ], + "offerings": [], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c" + } + ], + "availability": "available", + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 32890, + "total": 32890, + "sellingPrices": [ + { + "value": 32890, + "quantity": 1 + } + ] + } + } + ], + "sellers": [ + { + "id": "1", + "name": "Tracking QA", + "logo": "Logo" + } + ], + "totals": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 32890 + }, + { + "id": "Discounts", + "name": "Total dos Descontos", + "value": 0 + }, + { + "id": "Shipping", + "name": "Total do Frete", + "value": 1500 + }, + { + "id": "Tax", + "name": "Total da Taxa", + "value": 0 + } + ], + "clientProfileData": { + "email": "clark.kent@example.com", + "firstName": "Clark", + "lastName": "Kent", + "document": "12345678900", + "documentType": "cpf", + "phone": "+5521998765432", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "551100988887777", + "isCorporate": false, + "profileCompleteOnLoading": false, + "profileErrorOnLoading": false, + "customerClass": null + }, + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [], + "teaser": [] + }, + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "70386000", + "city": "Brasília", + "state": "DF", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "selectedDeliveryChannel": "delivery", + "addressId": "teste", + "slas": [ + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "10d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 1500, + "listPrice": 1500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": null, + "transitTime": "3bd" + } + ], + "shipsTo": [ + "BRA", + "COL", + "USA" + ], + "itemId": "2", + "deliveryChannels": [ + { + "id": "delivery" + }, + { + "id": "pickup-in-point" + } + ] + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "availableAddresses": [ + { + "addressType": "residential", + "receiverName": "Clark Kent", + "addressId": "teste", + "isDisposable": true, + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Rua da minha casa", + "number": "123", + "neighborhood": "Copacabana", + "complement": "15º andar", + "reference": null, + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ] + } + ], + "pickupPoints": [] + }, + "paymentData": { + "giftCards": [], + "transactions": [ + { + "isActive": true, + "transactionId": "296D6D245C17437E823EB77E403FC88D", + "merchantName": "MYSTORE", + "payments": [ + { + "paymentSystem": 6, + "bin": null, + "accountId": "12", + "tokenId": null, + "value": 34390, + "referenceValue": 34390, + "giftCardRedemptionCode": null, + "giftCardProvider": null, + "giftCardId": null + } + ], + "sharedTransaction": false + } + ] + }, + "clientPreferencesData": null, + "commercialConditionData": null, + "giftRegistryData": null, + "marketingData": null, + "storePreferencesData": { + "countryCode": "BRA", + "saveUserData": false, + "timeZone": "E. South America Standard Time", + "currencyCode": "BRL", + "currencyLocale": 1046, + "currencySymbol": "R$", + "currencyFormatInfo": { + "currencyDecimalDigits": 2, + "currencyDecimalSeparator": ",", + "currencyGroupSeparator": ".", + "currencyGroupSize": 3, + "startsWithCurrencySymbol": true + } + }, + "openTextField": { + "value": null + }, + "invoiceData": {}, + "itemMetadata": { + "items": [ + { + "id": "2", + "seller": "1", + "name": "Chopp Brahma Claro 30L", + "skuName": "Chopp Brahma Claro 30L", + "productId": "2", + "refId": "CBC30L", + "ean": null, + "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", + "detailUrl": "/chopp-brahma-claro-30l/p", + "assemblyOptions": [] + } + ] + }, + "taxData": null, + "customData": null, + "hooksData": null, + "changeData": null, + "subscriptionData": null, + "salesChannel": "1", + "followUpEmail": "6c10d76b5170456d89823b38b7c8f6ac@ct.vtex.com.br", + "creationDate": "2021-07-13T18:33:25.3029443Z", + "lastChange": "2021-07-13T18:33:27.736557Z", + "timeZoneCreationDate": "2021-07-13T15:33:25.3029443", + "timeZoneLastChange": "2021-07-13T15:33:27.736557", + "isCompleted": false, + "hostName": "mystore", + "merchantName": null, + "userType": "User type", + "roundingError": 0, + "allowEdition": false, + "allowCancellation": false, + "isUserDataVisible": true, + "allowChangeSeller": false, + "orderFormCreationDate": "2021-07-13T18:33:25.1313373Z" + } + ], + "salesAssociateData": { + "salesAssociateId": "seller123" + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/gatewayCallback/{orderGroup}": { + "post": { + "tags": [ + "Order placement" + ], + "summary": "Process order", + "description": "Order processing callback request, which is made after an order's payment is approved.\n\r\n\r> This request has to be made within five minutes after the [Place order](https://developers.vtex.com/docs/api-reference/checkout-api#put-/api/checkout/pub/orders) or [Place order from existing cart](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/transaction) request has been made, or else, the order will not be processed.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save Order Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "ProcessOrder", + "security": [], + "parameters": [ + { + "name": "orderGroup", + "in": "path", + "description": "Order group. It is the part of the `orderId` that comes before the `-`. For example, the `orderGroup` of the order `123456789-01` is `123456789`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "123456789" + } + }, + { + "name": "Cookie", + "in": "header", + "description": "VTEX Chekout cookie associated with a specific order. Use the `Vtex_CHKO_Auth` and the `CheckoutDataAccess` cookies returned by the [Place order](https://developers.vtex.com/vtex-rest-api/reference/order-placement-1#placeorder) or [Place order from existing cart](https://developers.vtex.com/vtex-rest-api/reference/order-placement-1#placeorderfromexistingorderform) API requests, like a browser would.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "Vtex_CHKO_Auth=0e/RpYIEZu19BuwXB4tZ7eIGu9HT8vdUAHWQDHDpxMc=; CheckoutDataAccess=0e/PoiTEZu19BuwXB4tZ7eIGu9HT8vdUAHWQDHDpxMc=" + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "428": { + "description": "Precondition Required\r\n\r\nUsed to indicate that a payment redirection flow is required to complete the order.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "RedirectResponseCollection": { + "type": "array", + "description": "Redirect Payment information.", + "items": { + "description": "Redirect URL information.", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "Redirect URL information." + } + } + } + }, + "paymentAuthorizationAppCollection": { + "type": "array", + "description": "Payment authorization information.", + "items": { + "description": "Payment authorization information.", + "type": "object", + "properties": { + "appName": { + "type": "string", + "description": "Indicates which VTEX IO app that will handle the payment flow at Checkout." + }, + "appPayload": { + "type": "object", + "description": "App payload information.", + "properties": { + "code": { + "type": "string", + "description": "URL source of external payment flow." + }, + "expiresAt": { + "type": "string", + "description": "Payment flow expiration date in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format (`YYYY-MM-DDThh:mm:ss.fff`)." + }, + "paymentId": { + "type": "string", + "description": "Payment identifier at VTEX." + }, + "transactionId": { + "type": "string", + "description": "Transaction ID." + } + } + } + } + } + } + } + }, + "example": { + "RedirectResponseCollection": [ + { + "redirectUrl": "https://bacen.pix/pix/…" + } + ], + "paymentAuthorizationAppCollection": [ + { + "appName": "vtex.pix-payment", + "appPayload": { + "code": "https://bacen.pix/pix/…", + "expiresAt": "2023-07-12 14:18:11Z", + "paymentId": "7AA33BDE370746839F2F8C5F13FE1D84", + "transactionId": "7CEA6AD624D54F07825D37EDEAA746ED" + } + } + ] + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "operationId": { + "type": "string", + "description": "Operation ID." + }, + "error": { + "type": "object", + "description": "Information on the error.", + "properties": { + "code": { + "type": "string", + "description": "Error code." + }, + "message": { + "type": "string", + "description": "Error message." + }, + "exception": { + "type": "string", + "description": "Error exception.", + "nullable": true + } + } + } + } + }, + "example": { + "operationId": "a231ed11-255b-4ea0-96c3-1790e1b27f7e", + "error": { + "code": "001", + "message": "Seu pagamento não foi autorizado. Falha ao enviar os dados de pagamento. Favor entrar em contato com o SAC ou utilizar outra forma de pagamento. *** ", + "exception": null + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/regions/{regionId}": { + "get": { + "tags": [ + "Region" + ], + "summary": "Get sellers by region or address", + "description": "Retrieves a list of sellers that cater to a specific region or address, according to your setup of our [regionalization feature](https://help.vtex.com/en/tutorial/setting-up-price-and-availability-of-skus-by-region--12ne58BmvYsYuGsimmugoc#). Learn more about [Region v2](https://developers.vtex.com/docs/guides/region-v2-release).\n\r\n\rTo access the list of sellers, you must choose one of the following methods:\n\r\n\r1. Send the identification of the list of sellers (`regionId`) as a path parameter through the URL. Or;\n\r2. Send the `country` (3-digit ISO code) and at least one of the two values (`postal Code` or `geo Coordinates`) as query parameters through the URL. For this method, it is also allowed to send both values (`postalCode` or `geoCoordinates`) in the same request.\n\r\n\r> The `regionId` and `country` parameters are indicated as required in this documentation. However, only one of them should be sent in the request according to one of the methods mentioned above.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Shopping Cart Full Access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetSellersByRegion", + "security": [], + "parameters": [ + { + "name": "regionId", + "in": "path", + "description": "ID of the region corresponding to the shopper's location.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "v2.1BB18CE648B5111D0933734ED83EC783" + } + }, + { + "name": "country", + "in": "query", + "description": "Three letter country code refering to the `postalCode` field.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "BRA" + } + }, + { + "name": "postalCode", + "in": "query", + "description": "Postal code corresponding to the shopper's location.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "1234000" + } + }, + { + "name": "geoCoordinates", + "in": "query", + "description": "Geocoordinates (first longitude, semicolon, then latitude) corresponding to the shopper's location.", + "required": false, + "style": "form", + "schema": { + "type": "array", + "example": [ + -47.924747467041016, + -15.832582473754883 + ], + "items": { + "description": "Geocoordinates.", + "type": "number", + "example": -47.924747467041016 + } + } + }, + { + "$ref": "#/components/parameters/individualShippingEstimates" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Region ID." + }, + "sellers": { + "type": "array", + "description": "Array with information on each seller retrieved for the given region.", + "items": { + "description": "Seller information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Seller ID." + }, + "name": { + "type": "string", + "description": "Seller name." + }, + "logo": { + "type": "string", + "description": "Seller logo.", + "nullable": true + } + } + } + } + } + }, + "example": { + "id": "v2.1BB18CE648B5111D0933734ED83EC783", + "sellers": [ + { + "id": "abacaba", + "name": "Abacaba Store", + "logo": null + }, + { + "id": "abacaba2", + "name": "Abacaba VTEX Outlet", + "logo": null + }, + { + "id": "abacaba3", + "name": "Abacaba VTEX Mall", + "logo": null + } + ] + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "orderForm": { + "type": "object", + "description": "OrderForm object containing cart and order information.", + "properties": { + "orderFormId": { + "type": "string", + "description": "ID of the orderForm corresponding to a specific cart." + }, + "salesChannel": { + "type": "string", + "description": "Attribute created by the seller, in their VTEX store configuration." + }, + "loggedIn": { + "type": "boolean", + "description": "Indicates whether the user is logged into the store." + }, + "isCheckedIn": { + "type": "boolean", + "description": "Indicates whether order is checked in." + }, + "storeId": { + "type": "string", + "description": "ID of the store.", + "nullable": true + }, + "allowManualPrice": { + "type": "boolean", + "description": "Permission to modify item price manually." + }, + "canEditData": { + "type": "boolean", + "description": "Data can be edited." + }, + "userProfileId": { + "type": "string", + "description": "Unique ID associated with the customer profile." + }, + "profileProvider": { + "type": "string", + "description": "Profile provider." + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts.", + "items": { + "type": "string", + "description": "Account." + } + }, + "availableAddresses": { + "type": "array", + "description": "Information on each available address.", + "items": { + "description": "Address information.", + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Address type." + }, + "receiverName": { + "type": "string", + "description": "Name of the receiver." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "city": { + "type": "string", + "description": "City of the address." + }, + "state": { + "type": "string", + "description": "State of the address." + }, + "country": { + "type": "string", + "description": "Country of the address. ISO three-letter code." + }, + "street": { + "type": "string", + "description": "Street of the address." + }, + "number": { + "type": "string", + "description": "Number of the address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the address." + }, + "complement": { + "description": "Complement to the shipping address, in case it applies.", + "type": "string", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Reference that may help in the location of the address.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array with two strings that represent geocoordinates: first latitude, then longitude.", + "items": { + "type": "number", + "description": "Geocoordinates." + } + } + } + } + }, + "userType": { + "type": "string", + "description": "User type.", + "nullable": true + }, + "ignoreProfileData": { + "type": "boolean", + "description": "Ignore customer profile data." + }, + "value": { + "type": "integer", + "description": "Total value of the order without separating cents. For example, $24.99 is represented as `2499`." + }, + "messages": { + "type": "array", + "description": "Array containing an object for each message generated by our servers while processing the request.", + "items": { + "type": "string", + "description": "Message." + } + }, + "items": { + "type": "array", + "description": "Information on each item in the order.", + "items": { + "description": "Item information.", + "type": "object", + "properties": { + "uniqueId": { + "type": "string", + "description": "Unique ID." + }, + "id": { + "type": "string", + "description": "ID of the item." + }, + "productId": { + "type": "string", + "description": "Product ID." + }, + "productRefId": { + "type": "string", + "description": "Product Ref ID." + }, + "refId": { + "type": "string", + "description": "Ref ID." + }, + "ean": { + "type": "string", + "description": "European Article Number.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Product name." + }, + "skuName": { + "type": "string", + "description": "SKU name." + }, + "modalType": { + "type": "string", + "description": "Modal type.", + "nullable": true + }, + "parentItemIndex": { + "type": "integer", + "description": "Parent item index.", + "nullable": true + }, + "parentAssemblyBinding": { + "type": "string", + "description": "Parent assembly binding.", + "nullable": true + }, + "priceValidUntil": { + "type": "string", + "description": "Price expiration date and time." + }, + "tax": { + "type": "integer", + "description": "Tax value in cents." + }, + "taxCode": { + "type": "string", + "description": "A unique identifier code assigned to a tax within the VTEX Admin." + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "manualPrice": { + "type": "integer", + "description": "Manual price in cents.", + "nullable": true + }, + "manualPriceAppliedBy": { + "type": "string", + "description": "User that applied the manual price, if that is the case.", + "nullable": true + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." + }, + "rewardValue": { + "type": "integer", + "description": "Reward value in cents." + }, + "isGift": { + "type": "boolean", + "description": "Indicates whether item is a gift." + }, + "additionalInfo": { + "type": "object", + "description": "Additional information.", + "properties": { + "dimension": { + "type": "string", + "description": "Dimension.", + "nullable": true + }, + "brandName": { + "type": "string", + "description": "Brand name." + }, + "brandId": { + "type": "string", + "description": "Brand ID." + }, + "offeringInfo": { + "type": "string", + "description": "Offering information.", + "nullable": true + }, + "offeringType": { + "type": "string", + "description": "Offering type.", + "nullable": true + }, + "offeringTypeId": { + "type": "string", + "description": "Offering type ID.", + "nullable": true + } + } + }, + "preSaleDate": { + "type": "string", + "description": "Presale date.", + "nullable": true + }, + "productCategoryIds": { + "type": "string", + "description": "Product category IDs." + }, + "productCategories": { + "type": "object", + "description": "Object, where each field is an ID from `productCategoryIds`.", + "properties": { + "{ID}": { + "type": "string", + "description": "Product category corresponding to the ID in the field key." + } + } + }, + "quantity": { + "type": "integer", + "description": "Quantity." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "sellerChain": { + "type": "array", + "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", + "items": { + "type": "string", + "description": "Seller." + } + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "detailUrl": { + "type": "string", + "description": "Detail URL." + }, + "bundleItems": { + "type": "array", + "description": "Information on services sold along with the SKU. Example: a gift package.", + "items": { + "description": "Service information.", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Service type." + }, + "id": { + "type": "integer", + "description": "Service identifier." + }, + "name": { + "type": "string", + "description": "Service name." + }, + "price": { + "type": "integer", + "description": "Service price in cents." + } + } + } + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "type": "string", + "description": "Attachment." + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags, each of which, modifies the price in some way, like discounts or taxes that apply to the item in the context of the order.", + "items": { + "description": "Price tag information.", + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Promotion unique identifier.", + "nullable": true + }, + "isPercentual": { + "type": "boolean", + "description": "Indicates whether the `value` and `rawValue` of the price tag represent a percentage to be applied during checkout calculation. The default value is `false`. When set to `true`, the `value` and `rawValue` fields are interpreted as percentages, and the final price is calculated accordingly." + }, + "name": { + "type": "string", + "description": "Price tag name in the format: `{type}@{where}-{identifier}#{calculationId}`. Where:\r\n- `type` indicates whether the tag refers to a discount or tax.\r\n- `where` specifies the context, either price or shipping.\r\n- `identifier` is the promotion ID.\r\n- `calculationId` is a hash that may vary with each price calculation." + }, + "rawValue": { + "type": "number", + "description": "Raw price tag value with up to five decimals, sourced from the promotion configuration. This value is informational only and is not used in checkout calculations." + }, + "value": { + "type": "integer", + "description": "Price tag value representing either a promotion (value decrease) or a tax (value increase)." + } + } + } + }, + "availability": { + "type": "string", + "description": "Availability." + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit." + }, + "unitMultiplier": { + "type": "integer", + "description": "Unit multiplier." + }, + "manufacturerCode": { + "type": "string", + "description": "Manufacturer code.", + "nullable": true + }, + "priceDefinition": { + "type": "object", + "description": "Price information for all units of a specific item.", + "properties": { + "calculatedSellingPrice": { + "type": "integer", + "description": "Item's calculated unitary selling price in cents." + }, + "total": { + "type": "integer", + "description": "Total value for all units of the item in cents." + }, + "sellingPrices": { + "type": "array", + "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", + "items": { + "description": "Rounding information.", + "type": "object", + "properties": { + "value": { + "type": "integer", + "description": "Value in cents for that specific rounding." + }, + "quantity": { + "type": "integer", + "description": "Rounding quantity, meaning how many items are rounded to this value." + } + } + } + } + } + } + } + } + }, + "selectableGifts": { + "type": "array", + "description": "Array containing the data of the item selected as a gift.", + "items": { + "type": "string", + "description": "Gift." + } + }, + "totalizers": { + "type": "array", + "description": "Array containing an object for each totalizer for the purchase. Totalizers contain the sum of values for a specific part of the order (e.g. Total item value, Total shipping value).", + "items": { + "type": "object", + "description": "Totalizer of purchases." + } + }, + "shippingData": { + "type": "object", + "description": "Shipping information pertinent to the order.", + "nullable": true, + "properties": { + "address": { + "type": "object", + "description": "Address information.", + "nullable": true, + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array with two strings that represent geocoordinates: first latitude, then longitude.", + "items": { + "type": "number", + "description": "Geocoordinates." + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array with logistics information. Each object in this array corresponds to an object in the `items` array, based on the respective `itemIndex`.", + "items": { + "description": "Logistics information.", + "type": "object", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index corresponding to the position of the object in the `items` array." + }, + "selectedSla": { + "type": "string", + "description": "SLA selected by the customer. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`.", + "nullable": true + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Delivery channel selected by the customer.", + "nullable": true + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "slas": { + "type": "array", + "description": "Information on available SLAs.", + "items": { + "description": "SLA information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SLA ID. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, this field returns the delivery option ID selected for this SLA, as the example `1223d5b4-52a4-442f-ab23-01345b60be48`." + }, + "deliveryChannel": { + "type": "string", + "description": "Delivery channel." + }, + "name": { + "type": "string", + "description": "SLA name. If the store uses the [Delivery Option](https://help.vtex.com/en/docs/tutorials/delivery-options-beta) feature, the value of this field will show the specific delivery option name selected for this SLA, as the example `Delivery | BRA | Up to 30 hours`." + }, + "deliveryIds": { + "type": "array", + "description": "Information on each delivery ID.", + "items": { + "description": "Delivery ID information.", + "type": "object", + "properties": { + "courierId": { + "type": "string", + "description": "Courier ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "dockId": { + "type": "string", + "description": "Warehouse ID." + }, + "courierName": { + "type": "string", + "description": "Courier name." + }, + "quantity": { + "type": "integer", + "description": "Quantity." + } + } + } + }, + "attachmentOfferings": { + "type": "array", + "description": "List of attachments details.", + "nullable": true, + "items": { + "description": "Attachment details.", + "type": "object", + "required": [ + "name", + "required", + "schema" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the attachment.", + "nullable": true + }, + "required": { + "type": "boolean", + "description": "Defines if the attachment is required (`true`) or not (`false`).", + "nullable": true + }, + "schema": { + "type": "object", + "description": "Custom values [created into attachment](https://help.vtex.com/en/tutorial/adding-an-attachment--7zHMUpuoQE4cAskqEUWScU).", + "nullable": true + } + } + } + }, + "shippingEstimate": { + "type": "string", + "description": "Shipping estimate. For instance, \"three business days\" will be represented as `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", + "nullable": true + }, + "useIndividualShippingEstimates": { + "type": "boolean", + "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`." + }, + "lockTTL": { + "type": "string", + "description": "Estimate date of delivery.", + "nullable": true + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "tax": { + "type": "integer", + "description": "Tax in cents." + }, + "pickupStoreInfo": { + "type": "object", + "description": "Information on the pickup store.", + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Indicates whether it is the pickup store." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Address information.", + "nullable": true, + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array with two strings that repesent geocoordinates: first latitude, then longitude.", + "items": { + "type": "number", + "description": "Geocoordinates." + } + } + } + }, + "additionalInfo": { + "type": "string", + "description": "Additional information.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "Corresponding dock ID.", + "nullable": true + } + } + }, + "pickupPointId": { + "type": "string", + "description": "Pickup point ID.", + "nullable": true + }, + "pickupDistance": { + "type": "integer", + "description": "Pickup point distance." + }, + "polygonName": { + "type": "string", + "description": "Polygon name.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Transit time. For instance, \"three business days\" is represented as `3bd`." + } + } + } + }, + "shipsTo": { + "type": "array", + "description": "List of countries that the item may be shipped to.", + "items": { + "type": "string", + "description": "Three letter country code." + } + }, + "itemId": { + "type": "string", + "description": "Unique ID of the item in the cart. This ID is generated by VTEX and is used to identify the item in the cart." + }, + "deliveryChannels": { + "type": "array", + "description": "List of available delivery channels.", + "items": { + "description": "Delivery channel information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Delivery channel ID." + } + } + } + } + } + } + }, + "selectedAddresses": { + "type": "array", + "description": "Array with information on the selected addresses for the order.", + "items": { + "description": "Selected address information.", + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array with two strings that represent geocoordinates: first latitude, then longitude.", + "items": { + "type": "number", + "description": "Geocoordinates." + } + } + } + } + }, + "availableAddresses": { + "type": "array", + "description": "Array with information on the available addresses for the order.", + "items": { + "description": "Available address information.", + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "isDisposable": { + "type": "boolean", + "description": "Indicates whether address is disposable." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address, in case it applies.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Array with two strings that represent geocoordinates: first latitude, then longitude.", + "items": { + "type": "number", + "description": "Geocoordinates." + } + } + } + } + } + } + }, + "clientProfileData": { + "type": "object", + "description": "Customer's profile information.", + "nullable": true, + "properties": { + "email": { + "type": "string", + "description": "Email address.", + "nullable": true + }, + "firstName": { + "type": "string", + "description": "First name.", + "nullable": true + }, + "lastName": { + "type": "string", + "description": "Last name." + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer." + }, + "document": { + "type": "string", + "description": "Document informed by the customer." + }, + "phone": { + "type": "string", + "description": "Phone number." + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity.", + "nullable": true + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity.", + "nullable": true + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity.", + "nullable": true + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity.", + "nullable": true + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity.", + "nullable": true + }, + "isCorporate": { + "type": "boolean", + "description": "Indicates whether the customer is a legal entity." + }, + "profileCompleteOnLoading": { + "type": "boolean", + "description": "Indicates whether profile is complete on loading." + }, + "profileErrorOnLoading": { + "type": "boolean", + "description": "Indicates whether profile presents error on loading.", + "nullable": true + }, + "customerClass": { + "type": "string", + "description": "Customer class.", + "nullable": true + } + } + }, + "paymentData": { + "type": "object", + "description": "Information on the order's payment.", + "properties": { + "giftCards": { + "type": "array", + "description": "Gift card information, if it applies to the order.", + "items": { + "description": "Gift card information.", + "type": "object", + "properties": { + "redemptionCode": { + "type": "string", + "description": "Gift card redemption code." + }, + "value": { + "type": "integer", + "description": "Gift card value in cents." + }, + "balance": { + "type": "integer", + "description": "Gift card balance in cents." + }, + "name": { + "type": "string", + "description": "Gift card name." + }, + "id": { + "type": "string", + "description": "Gift card ID." + }, + "inUse": { + "type": "boolean", + "description": "Indicates whether gift card is in use." + }, + "isSpecialCard": { + "type": "boolean", + "description": "Indicates whether gift card is special." + } + } + } + }, + "transactions": { + "type": "array", + "description": "Information on each transaction pertinent to the order.", + "items": { + "description": "Transaction information.", + "nullable": true, + "type": "object", + "properties": { + "isActive": { + "type": "boolean", + "description": "Indicates whether transaction is active." + }, + "transactionId": { + "type": "string", + "description": "Transaction ID." + }, + "merchantName": { + "type": "string", + "description": "Merchant name." + }, + "payments": { + "type": "array", + "description": "Information on each payment.", + "items": { + "description": "Payment information.", + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID." + }, + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true + }, + "installments": { + "type": "integer", + "description": "Number of installments." + }, + "paymentSystem": { + "type": "string", + "description": "Payment system." + }, + "referenceValue": { + "type": "integer", + "description": "Reference value for calculating interest rates, in case it applies. Displayed in cents." + }, + "value": { + "type": "integer", + "description": "Value including interest, in case it applies. Displayed in cents." + } + } + } + }, + "sharedTransaction": { + "type": "boolean", + "description": "Indicates whather transaction is shared." + } + } + } + } + } + }, + "marketingData": { + "type": "object", + "nullable": true, + "description": "Object containing promotion data such as coupon tracking information and internal or external UTMs.", + "properties": { + "coupon": { + "type": "string", + "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.", + "example": "free-shipping" + }, + "utmSource": { + "type": "string", + "description": "UTM source.", + "example": "Facebook" + }, + "utmMedium": { + "type": "string", + "description": "UTM medium.", + "example": "CPC" + }, + "utmCampaign": { + "type": "string", + "description": "UTM campaign.", + "example": "Black friday" + }, + "utmiPage": { + "type": "string", + "description": "utmi_page (internal utm).", + "example": "utmi_page-example", + "nullable": true + }, + "utmiPart": { + "type": "string", + "description": "utmi_part (internal utm).", + "example": "utmi_part-example", + "nullable": true + }, + "utmiCampaign": { + "type": "string", + "description": "utmi_campaign (internal utm).", + "example": "utmi_campaign-example", + "nullable": true + } + } + }, + "sellers": { + "type": "array", + "description": "Information on each seller.", + "items": { + "description": "Seller information.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Seller ID." + }, + "name": { + "type": "string", + "description": "Seller name." + }, + "logo": { + "type": "string", + "description": "Seller logo.", + "nullable": true + } + } + } + }, + "clientPreferencesData": { + "type": "object", + "description": "Object containing preferences from the client who placed the order.", + "properties": { + "locale": { + "type": "string", + "description": "Client's locale. Examples: `pt-BR` and `en-US`." + }, + "optinNewsLetter": { + "type": "boolean", + "description": "`true` if the client opted to receive newsletter from the store.", + "example": false, + "nullable": true + } + } + }, + "commercialConditionData": { + "type": "object", + "description": "Object containing commercial condition information.", + "nullable": true + }, + "storePreferencesData": { + "type": "object", + "description": "Object containing data from the store's configuration (stored in VTEX's License Manager)." + }, + "giftRegistryData": { + "type": "object", + "description": "Gift registry list information.", + "nullable": true + }, + "openTextField": { + "type": "string", + "description": "Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as `JSON` even if escaped. For that purpose, see [Creating customizable fields](https://developers.vtex.com/vtex-rest-api/docs/creating-customizable-fields-in-the-cart-with-checkout-api-1).", + "example": "open-text-example", + "nullable": true + }, + "invoiceData": { + "type": "object", + "nullable": true, + "description": "Invoice data including billing address.", + "properties": { + "address": { + "type": "object", + "description": "Billing address.", + "properties": { + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "city": { + "type": "string", + "description": "City name." + }, + "state": { + "type": "string", + "description": "State name." + }, + "country": { + "type": "string", + "description": "Country." + }, + "street": { + "type": "string", + "description": "Street name." + }, + "number": { + "type": "string", + "description": "Street number." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood." + }, + "complement": { + "type": "string", + "description": "Address complement." + }, + "reference": { + "type": "string", + "description": "Reference for location." + }, + "geoCoordinates": { + "type": "array", + "description": "Geographic coordinates (latitude, longitude).", + "items": { + "type": "number", + "description": "Coordinate value." + } + } + } + } + } + }, + "customData": { + "type": "object", + "description": "Customer additional information.", + "nullable": true, + "properties": { + "customApps": { + "type": "array", + "description": "Customizable apps created by the store.", + "nullable": true, + "items": { + "type": "object", + "description": "Customizable apps details.", + "nullable": true + } + }, + "customFields": { + "type": "array", + "description": "Customizable fields created by the store.", + "nullable": true, + "items": { + "type": "object", + "description": "Customizable fields details.", + "nullable": true, + "properties": { + "linkedEntity": { + "type": "object", + "description": "Linked entity.", + "properties": { + "type": { + "type": "string", + "description": "Linked entity type.", + "enum": [ + "order", + "item", + "address" + ] + }, + "id": { + "type": "string", + "description": "Linked entity ID." + } + } + }, + "fields": { + "type": "array", + "description": "Custom fields.", + "items": { + "type": "object", + "description": "Custom fields details.", + "properties": { + "name": { + "type": "string", + "description": "Custom field name." + }, + "value": { + "type": "string", + "description": "Custom field value." + }, + "refId": { + "type": "string", + "description": "Custom field reference ID." + } + } + } + } + } + } + } + } + }, + "itemMetadata": { + "type": "object", + "description": "Item metadata.", + "properties": { + "items": { + "type": "array", + "description": "List of objects containing metadata on each item in the order.", + "items": { + "description": "Item metadata.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Item ID." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "name": { + "type": "string", + "description": "Product name." + }, + "skuName": { + "type": "string", + "description": "SKU name." + }, + "productId": { + "type": "string", + "description": "Product ID." + }, + "refId": { + "type": "string", + "description": "Ref ID." + }, + "ean": { + "type": "string", + "description": "European Article Number.", + "nullable": true + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "detailUrl": { + "type": "string", + "description": "Detail URL." + } + } + } + } + } + }, + "hooksData": { + "type": "object", + "description": "Hooks information.", + "nullable": true + }, + "ratesAndBenefitsData": { + "type": "object", + "description": "Information on rates and benefits that apply to the order.", + "properties": { + "rateAndBenefitsIdentifiers": { + "type": "array", + "description": "List with rates and benefits identifiers.", + "items": { + "type": "string", + "description": "Benefit identifier." + } + }, + "teaser": { + "type": "array", + "description": "List with rates and benefits teasers.", + "items": { + "type": "string", + "description": "Benefit teaser." + } + } + } + }, + "subscriptionData": { + "type": "object", + "description": "Subscription information.", + "nullable": true + }, + "itemsOrdination": { + "type": "object", + "description": "Object containing information about the ordering of items within the `orderForm`.", + "properties": { + "criteria": { + "type": "string", + "description": "Criteria adopted to order the items in the list." + }, + "ascending": { + "type": "boolean", + "description": "Indicates whether the ordering is ascending." + } + } + } + } + }, + "PriceChangeRequest": { + "required": [ + "price" + ], + "type": "object", + "description": "Request body for changing item price.", + "properties": { + "price": { + "type": "integer", + "format": "int32", + "description": "The new price of the item." + } + }, + "example": { + "price": 10000 + } + }, + "SetsinglecustomfieldvalueRequest": { + "required": [ + "value" + ], + "type": "object", + "description": "Request body for setting a single custom field value.", + "properties": { + "value": { + "type": "string", + "description": "The value you want to set to the specified field." + } + } + }, + "UpdateorderFormconfigurationRequest": { + "type": "object", + "description": "Request body for updating order form configuration.", + "required": [ + "paymentConfiguration", + "taxConfiguration", + "minimumQuantityAccumulatedForItems", + "decimalDigitsPrecision", + "minimumValueAccumulated", + "apps", + "allowMultipleDeliveries", + "allowManualPrice" + ], + "properties": { + "paymentConfiguration": { + "$ref": "#/components/schemas/PaymentConfiguration" + }, + "taxConfiguration": { + "type": "object", + "description": "External tax service configuration.", + "nullable": true, + "properties": { + "url": { + "type": "string", + "nullable": true, + "description": "Endpoint URL." + }, + "authorizationHeader": { + "type": "string", + "description": "Authorization header.", + "nullable": true + }, + "appId": { + "type": "string", + "description": "Custom data ID sent to the tax system.", + "example": "12345" + }, + "isMarketplaceResponsibleForTaxes": { + "description": "Indicates whether the marketplace is responsible for the products taxes." + } + } + }, + "minimumQuantityAccumulatedForItems": { + "type": "integer", + "format": "int32", + "description": "Minimum SKU quantity by cart." + }, + "decimalDigitsPrecision": { + "type": "integer", + "format": "int32", + "description": "Number of price digits." + }, + "minimumValueAccumulated": { + "type": "integer", + "nullable": true, + "description": "Minimum cart value." + }, + "apps": { + "type": "array", + "nullable": true, + "description": "Array of objects containing Apps configuration information.", + "items": { + "type": "object", + "description": "App configuration information.", + "properties": { + "id": { + "type": "string", + "description": "App ID.", + "example": "birthdayApp" + }, + "fields": { + "type": "array", + "description": "Array of fields available to the app.", + "items": { + "type": "string", + "example": "birthdayField", + "description": "Available field." + } + }, + "major": { + "type": "integer", + "description": "App major version.", + "example": 1 + } + } + } + }, + "allowMultipleDeliveries": { + "type": "boolean", + "nullable": true, + "description": "On the same purchase, allows the selection of items from multiple delivery channels." + }, + "allowManualPrice": { + "type": "boolean", + "nullable": true, + "description": "Allows the editing of SKU prices right in the cart." + }, + "maxNumberOfWhiteLabelSellers": { + "type": "integer", + "description": "Allows the input of a limit of white label sellers involved on the cart." + }, + "maskFirstPurchaseData": { + "type": "boolean", + "description": "Allows, on a first purchase, masking client's data. It could be useful when a shared cart is used and the client doesn't want to share its data." + }, + "maskStateOnAddress": { + "type": "boolean", + "description": "If the response body is masked, on a first purchase, this flag causes the state (UF) to be masked. The default behavior is to be masked.", + "default": true + }, + "recaptchaValidation": { + "type": "string", + "nullable": true, + "description": "Configures reCAPTCHA validation for the account, defining in which situations the shopper will be prompted to validate a purchase with reCAPTCHA. Learn more about [reCAPTCHA validation for VTEX stores](https://help.vtex.com/tutorial/recaptcha-no-checkout--18Te3oDd7f4qcjKu9jhNzP)\r\n\r\nPossible values are:\r\n\r\n- `\"never\"`: no purchases are validated with reCAPTCHA.\r\n- `null`: no purchases are validated with reCAPTCHA. The same as `never`.\r\n- `\"always\"`: every purchase is validated with reCAPTCHA.\r\n- `\"vtexCriteria\"`: only some purchases are validated with reCAPTCHA in order to minimize friction and improve shopping experience. VTEX’s algorithm determines which sessions are trustworthy and which should be validated with reCAPTCHA. This is the recommended option.", + "example": "vtexCriteria" + }, + "paymentSystemToCheckFirstInstallment": { + "type": "string", + "description": "If you want to apply a first installment discount to a particular payment system, set this field to that payment system's ID. Learn more: [Configuring a discount for orders prepaid in full](https://help.vtex.com/en/tutorial/configurar-desconto-de-preco-a-vista--7Lfcj9Wb5dpYfA2gKkACIt).", + "example": "6" + } + }, + "example": { + "paymentConfiguration": { + "requiresAuthenticationForPreAuthorizedPaymentOption": false + }, + "taxConfiguration": null, + "minimumQuantityAccumulatedForItems": 1, + "decimalDigitsPrecision": 2, + "minimumValueAccumulated": null, + "apps": null, + "allowMultipleDeliveries": null, + "allowManualPrice": null + } + }, + "PaymentConfiguration": { + "title": "PaymentConfiguration", + "description": "Payment Configuration object.", + "required": [ + "requiresAuthenticationForPreAuthorizedPaymentOption" + ], + "type": "object", + "properties": { + "requiresAuthenticationForPreAuthorizedPaymentOption": { + "type": "boolean", + "description": "Determines whether pre-authorized payments require authentication." + }, + "allowInstallmentsMerge": { + "type": "boolean", + "description": "By default (when `false`), on a multi-seller purchase is on the run, a simple intersection with installments options configured by every seller will be available. When `true`, this option allows a more complex but flexible installment option, since it considers max installments of every seller configuration, even if those don't match. Installment values ​​may not be equal in this case." + }, + "blockPaymentSession": { + "type": "boolean", + "description": "Indicates whether shoppers can add credit cards in your store's `My Account` section." + } + }, + "example": { + "requiresAuthenticationForPreAuthorizedPaymentOption": false, + "allowInstallmentsMerge": false, + "blockPaymentSession": false + } + }, + "WaitingTime": { + "type": "object", + "description": "Object containing the days after order cancelation by a seller.", + "required": [ + "waitingTime" + ], + "properties": { + "waitingTime": { + "type": "integer", + "description": "Number of days after order cancelation by a seller, during which another seller may be assigned to fulfill the order." + } + } + } + }, + "parameters": { + "individualShippingEstimates": { + "name": "individualShippingEstimates", + "in": "query", + "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`.", + "required": false, + "style": "form", + "schema": { + "type": "boolean", + "example": true + } + } + } + }, + "tags": [ + { + "name": "Shopping cart" + }, + { + "name": "Cart attachments" + }, + { + "name": "Custom data" + }, + { + "name": "Configuration" + }, + { + "name": "Fulfillment" + }, + { + "name": "Order placement" + }, + { + "name": "Region" + } + ], + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ] +} diff --git a/clients/manitou/output/customer-credit.json b/clients/manitou/output/customer-credit.json new file mode 100644 index 0000000000..2194054be5 --- /dev/null +++ b/clients/manitou/output/customer-credit.json @@ -0,0 +1,3311 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Customer Credit API", + "description": "With Customer Credit your store can enable **credit payments** through the checkout. You can also control **invoices** and the **credit limits** of your clients.\r\n\r\nLearn more about Customer Credit in our [Help Center article](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/36grlQ69NK6OCuioeekyCs).\r\n\r\nAdditionally, you can find more information on installment payments for an order in the `customData` field found in the [Get Order](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-) endpoint of the Orders API. This includes the number of installments, amount and due dates.\r\n\r\nAll requests need an authorization header. This API allows two kinds of authorization:\r\n\r\n1. Authorization header containing the VTEX ID authentication token.\r\n2. VTEX Appkey and Apptoken headers.\r\n\r\nRead [Authentication](https://developers.vtex.com/docs/guides/authentication) for more information about authentication options.\r\n\r\n## Customer Credit API Index\r\n\r\n### Invoices\r\n\r\n- `GET` [Search all invoices](https://developers.vtex.com/docs/api-reference/customer-credit-api#get-/api/creditcontrol/invoices)\r\n- `GET` [Retrieve Invoice by Id](https://developers.vtex.com/docs/api-reference/customer-credit-api#get-/api/creditcontrol/accounts/-creditAccountId-/invoices/-invoiceId-)\r\n- `PUT` [Change Invoice](https://developers.vtex.com/docs/api-reference/customer-credit-api#put-/api/creditcontrol/accounts/-creditAccountId-/invoices/-invoiceId-)\r\n- `DELETE` [Cancel Invoice](https://developers.vtex.com/docs/api-reference/customer-credit-api#delete-/api/creditcontrol/accounts/-creditAccountId-/invoices/-invoiceId-)\r\n- `GET` [Retrieve invoices by Customer Credit account ID](https://developers.vtex.com/docs/api-reference/customer-credit-api#get-/api/creditcontrol/accounts/-creditAccountId-/invoices)\r\n- `POST` [Mark an invoice as Paid](https://developers.vtex.com/docs/api-reference/customer-credit-api#post-/api/creditcontrol/accounts/-creditAccountId-/invoices/-invoiceId-/payments)\r\n- `PUT` [Postpone an invoice](https://developers.vtex.com/docs/api-reference/customer-credit-api#put-/api/creditcontrol/accounts/-creditAccountId-/invoices/-invoiceId-/postponement)\r\n\r\n### Account\r\n\r\n- `GET` [Search all accounts](https://developers.vtex.com/docs/api-reference/customer-credit-api#get-/api/creditcontrol/accounts)\r\n- `POST` [Open an account](https://developers.vtex.com/docs/api-reference/customer-credit-api#post-/api/creditcontrol/accounts)\r\n- `GET` [Retrieve an account by Id](https://developers.vtex.com/docs/api-reference/customer-credit-api#get-/api/creditcontrol/accounts/-creditAccountId-)\r\n- `DELETE` [Close an account](https://developers.vtex.com/docs/api-reference/customer-credit-api#delete-/api/creditcontrol/accounts/-creditAccountId-)\r\n- `PUT` [Update account information](https://developers.vtex.com/docs/api-reference/customer-credit-api#put-/api/creditcontrol/accounts/-creditAccountId-)\r\n- `GET` [Account statements](https://developers.vtex.com/docs/api-reference/customer-credit-api#get-/api/creditcontrol/accounts/-creditAccountId-/statements)\r\n- `PUT` [Change credit limit of an account](https://developers.vtex.com/docs/api-reference/customer-credit-api#put-/api/creditcontrol/accounts/-creditAccountId-/creditlimit)\r\n- `PUT` [Decrease balance of an account](https://developers.vtex.com/docs/api-reference/customer-credit-api#put-/api/creditcontrol/accounts/-creditAccountId-/statements/-statementId-)\r\n- `PUT` [Create or Update Settlement](https://developers.vtex.com/docs/api-reference/customer-credit-api#put-/api/creditcontrol/accounts/-creditAccountId-/transactions/-transactionId-/settlement)\r\n- `POST` [Create a Pre-Authorization](https://developers.vtex.com/docs/api-reference/customer-credit-api#post-/api/creditcontrol/accounts/-creditAccountId-/transactions)\r\n- `PUT` [Update a Pre-Authorization](https://developers.vtex.com/docs/api-reference/customer-credit-api#put-/api/creditcontrol/accounts/-creditAccountId-/transactions/-transactionId-)\r\n- `DELETE` [Cancel a Pre-Authorization](https://developers.vtex.com/docs/api-reference/customer-credit-api#delete-/api/creditcontrol/accounts/-creditAccountId-/transactions/-transactionId-)\r\n- `POST` [Add an account Holder](https://developers.vtex.com/docs/api-reference/customer-credit-api#post-/api/creditcontrol/accounts/-creditAccountId-/holders)\r\n- `DELETE` [Delete an account holder](https://developers.vtex.com/docs/api-reference/customer-credit-api#delete-/api/creditcontrol/accounts/-creditAccountId-/holders/-holderId-)\r\n- `PUT` [Change tolerance of an account](https://developers.vtex.com/docs/api-reference/customer-credit-api#put-/api/creditcontrol/accounts/-creditAccountId-/tolerance)\r\n- `POST` [Partial or Total Refund a Settlement](https://developers.vtex.com/docs/api-reference/customer-credit-api#post-/api/creditcontrol/accounts/-creditAccountId-/transactions/-transactionId-/refunds)\r\n\r\n### Store Configuration\r\n\r\n- `GET` [Retrieve store configuration](https://developers.vtex.com/docs/api-reference/customer-credit-api#get-/api/creditcontrol/storeconfig)\r\n- `PUT` [Create or change store configuration](https://developers.vtex.com/docs/api-reference/customer-credit-api#put-/api/creditcontrol/storeconfig)\r\n", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/creditcontrol/invoices": { + "get": { + "tags": [ + "Invoices" + ], + "summary": "Search all invoices", + "description": "Returns a list of invoices related to payment orders created through [customer credit accounts](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU).\r\n\r\n>ℹ️ Query parameters can be used individually or combined to filter invoice results.\r\n\r\n### Queries to filter results\r\n\r\n- **By the location of the invoices in the list (quantity of invoices)**: `?from={int}&to={int}`\r\n- **By creation date**: `?createdDateFrom={dateISO8601}&createDateTo={dateISO8601}`. The dates should be in ISO8601 format.\r\n- **By due date**: `?dueDateFrom={dateISO8601}&dueDateTo={dateISO8601}`. The dates should be in ISO8601 format.\r\n- **By value**: `?value={decimal}`\r\n- **By status**: `?status={string}`\r\n- **By Id**: `?friendlyId={string}`\r\n- **By observation**: `?observation={string}`\r\n- **By creditAccountId**: `?creditAccountId={creditAcountId}`\r\n\r\n### Combining filters\r\n\r\nYou can use the `op` query parameter to specify if filters will be evaluated as `AND` or `OR` for the query. The default behavior when there is more than one query parameter is `AND`.\r\n\r\nExample:\r\n\r\nFor the query `?value=100&status=Paid`, the criteria will build **value = 100 AND status = Paid**.\r\n\r\nFor the same query, adding the `op` parameter (`?value=100&status=Paid&op=or`), the criteria will build **value = 100 OR status = Paid**.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Invoices | **Read Invoices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Searchallinvoices", + "parameters": [ + { + "name": "from", + "in": "query", + "description": "Indicates the starting position of the invoice to be searched in the invoice list. For example, the value `1` indicates that the first invoice in the list will be returned.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "to", + "in": "query", + "description": "Indicates the final position of the invoice to be searched in the invoice list. For example, if the value of `from` is equal to `1` and `to` is `300`, information from 300 invoices will be displayed in the response body of the request.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "300" + } + }, + { + "name": "createdDateFrom", + "in": "query", + "description": "Indicates the initial creation date of invoices that should be searched in the invoice list based on their creation date. The dates should be in ISO8601 format.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "2023-01-20" + } + }, + { + "name": "createdDateTo", + "in": "query", + "description": "Indicates the final creation date of invoices that should be searched in the invoice list based on their creation date. The dates should be in ISO8601 format.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "2023-01-25" + } + }, + { + "name": "dueDateFrom", + "in": "query", + "description": "Indicates the initial due date of invoices that should be searched in the invoice list based on their creation date. The dates should be in ISO8601 format.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "2023-01-20" + } + }, + { + "name": "dueDateTo", + "in": "query", + "description": "Indicates the final due date of invoices that should be searched in the invoice list based on their creation date. The dates should be in ISO8601 format.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "2023-01-25" + } + }, + { + "name": "value", + "in": "query", + "description": "Indicates the value of the invoices to be searched for. It must be completed with a decimal value.", + "required": false, + "style": "form", + "schema": { + "type": "number", + "example": 101.22 + } + }, + { + "name": "status", + "in": "query", + "description": "Indicates the status of the invoices to be searched for.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "enum": [ + "Opened", + "Paid", + "Cancelled" + ], + "example": "Paid" + } + }, + { + "$ref": "#/components/parameters/friendlyId" + }, + { + "name": "observation", + "in": "query", + "description": "Observation notes about the invoice.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "Some observation about the invoice" + } + }, + { + "name": "creditAccountId", + "in": "query", + "description": "Credit account identification.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "01bce461-9g03-12ds-8217-b3d39271e15b" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "data", + "summary" + ], + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Data information.", + "items": { + "required": [ + "id", + "friendlyId", + "status", + "value", + "accountId", + "creditValue", + "createdAt", + "updatedAt", + "originalDueDate", + "dueDate", + "installment", + "orderId", + "transactionId", + "numberOfInstallments", + "creditAccountId" + ], + "type": "object", + "description": "Object with information about each invoice.", + "properties": { + "id": { + "type": "string", + "description": "Invoice identification." + }, + "friendlyId": { + "type": "string", + "description": "Simplified identification of an invoice. This code is created automatically, always associated with an existing invoice. It consists of an 8-digit random ID (of numbers and letters) and the installment." + }, + "status": { + "type": "string", + "description": "Invoice status.", + "enum": [ + "Opened", + "Paid", + "Cancelled" + ] + }, + "value": { + "type": "number", + "description": "Invoice value." + }, + "accountId": { + "type": "string", + "description": "Account identification. It is the same `creditAccountId` parameter used in other Customer Credit API endpoints." + }, + "creditValue": { + "type": "number", + "description": "Credit value." + }, + "createdAt": { + "type": "string", + "description": "Invoice creation date." + }, + "resolvedAt": { + "type": "string", + "description": "Invoice closing date.", + "nullable": true + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the invoice." + }, + "paymentLink": { + "type": "string", + "description": "Link (URL) created to direct the customer to an invoice payment environment (optional).", + "nullable": true + }, + "originalDueDate": { + "type": "string", + "description": "Original invoice expiration date." + }, + "dueDate": { + "type": "string", + "description": "Modified invoice expiration date." + }, + "installment": { + "type": "number", + "description": "Identification of installment number." + }, + "orderId": { + "type": "string", + "description": "Identification of the order that generated the invoice." + }, + "observation": { + "type": "string", + "description": "Observation notes about the invoice.", + "nullable": true + }, + "transactionId": { + "type": "string", + "description": "Identification of the invoice transaction. This is the same number as the `id` field, removing the last three characters." + }, + "numberOfInstallments": { + "type": "number", + "description": "Number of installments." + }, + "creditAccountId": { + "type": "string", + "description": "Credit account identification. It is the same `accountId` parameter used in other Customer Credit API endpoints." + } + } + } + }, + "summary": { + "required": [ + "total", + "count" + ], + "type": "object", + "description": "Summary information.", + "properties": { + "total": { + "type": "number", + "description": "Total amount payable (sum of invoices listed with status `Open`)." + }, + "count": { + "type": "integer", + "description": "Number of invoices listed." + }, + "totalPaid": { + "type": "number", + "description": "Total amount paid (sum of invoices listed with status `Paid`)." + }, + "totalCancelled": { + "type": "number", + "description": "Total amount canceled (sum of invoices listed with status `Cancelled`)." + } + } + } + } + }, + "example": { + "data": [ + { + "id": "A424887D0F2D45028FE5C96E9B0E1A2D-01", + "friendlyId": "u8KFsGDk-1", + "status": "Paid", + "value": 5.01, + "accountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b", + "creditValue": 0, + "createdAt": "2023-11-09T18:26:43.2112234Z", + "resolvedAt": "2023-11-13T19:12:17.2778233Z", + "updatedAt": "2023-11-13T19:12:17.3403115Z", + "paymentLink": "https://www.teste.com.br", + "originalDueDate": "2023-12-09T18:26:43.2112234Z", + "dueDate": "2023-12-09T18:26:43.2112234Z", + "installment": 1, + "orderId": "1375060513100-01", + "observation": "Open test", + "transactionId": "A424887D0F2D45028FE5C96E9B0E1A2D", + "numberOfInstallments": 1, + "creditAccountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b" + }, + { + "id": "742F1758D81F4E93BC2A3F8A382D44A8-01", + "friendlyId": "8UfrLSCc-1", + "status": "Opened", + "value": 0.91, + "accountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b", + "creditValue": 0, + "createdAt": "2023-11-10T19:46:50.551354Z", + "updatedAt": "2023-11-14T12:07:21.9823956Z", + "originalDueDate": "2023-12-10T19:46:50.551354Z", + "dueDate": "2023-12-18T19:46:50.551354Z", + "installment": 1, + "orderId": "1375070513102-01", + "transactionId": "742F1758D81F4E93BC2A3F8A382D44A8", + "numberOfInstallments": 1, + "creditAccountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b" + }, + { + "id": "742235D7E5E840798EC28A02EBA9E855-01", + "friendlyId": "mvOEfmdk-1", + "status": "Cancelled", + "value": 1.21, + "accountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b", + "creditValue": 0, + "createdAt": "2023-11-13T18:05:39.1334296Z", + "resolvedAt": "2023-11-13T19:25:22.1919688Z", + "updatedAt": "2023-11-13T19:25:22.3326219Z", + "originalDueDate": "2023-12-13T18:05:39.1334296Z", + "dueDate": "2023-12-13T18:05:39.1334296Z", + "installment": 1, + "orderId": "1376020513104-01", + "transactionId": "742235D7E5E840798EC28A02EBA9E855", + "numberOfInstallments": 1, + "creditAccountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b" + } + ], + "summary": { + "total": 0.91, + "count": 3, + "totalPaid": 5.01, + "totalCancelled": 1.21 + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/invoices/{invoiceId}": { + "get": { + "tags": [ + "Invoices" + ], + "summary": "Retrieve invoice by ID", + "description": "Returns data from a specific invoice using `invoiceId`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Invoices | **Read Invoices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "RetrieveInvoicebyId", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "$ref": "#/components/parameters/invoiceId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "friendlyId", + "status", + "value", + "accountId", + "creditValue", + "createdAt", + "updatedAt", + "originalDueDate", + "dueDate", + "installment", + "orderId", + "transactionId", + "numberOfInstallments", + "creditAccountId" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Invoice identification." + }, + "friendlyId": { + "type": "string", + "description": "Simplified identification of an invoice. This code is created automatically, always associated with an existing invoice. It consists of an 8-digit random ID (of numbers and letters) and the installment." + }, + "status": { + "type": "string", + "description": "Invoice status.", + "enum": [ + "Opened", + "Paid", + "Cancelled" + ] + }, + "value": { + "type": "number", + "description": "Invoice value." + }, + "accountId": { + "type": "string", + "description": "Account identification. It is the same `checkingAccountId` parameter used in other Customer Credit API endpoints." + }, + "creditValue": { + "type": "number", + "description": "Credit value." + }, + "createdAt": { + "type": "string", + "description": "Invoice creation date." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the invoice." + }, + "originalDueDate": { + "type": "string", + "description": "Original invoice expiration date." + }, + "dueDate": { + "type": "string", + "description": "Modified invoice expiration date." + }, + "installment": { + "type": "number", + "description": "Identification of installment number." + }, + "orderId": { + "type": "string", + "description": "Identification of the order that generated the invoice." + }, + "transactionId": { + "type": "string", + "description": "Identification of the invoice transaction. This is the same number as the `id` field, removing the last three characters." + }, + "numberOfInstallments": { + "type": "number", + "description": "Number of installments." + }, + "creditAccountId": { + "type": "string", + "description": "Credit account identification. It is the same `accountId` parameter used in other Customer Credit API endpoints." + } + } + }, + "example": { + "id": "A424887D0F2D45028FE5C96E9B0E1A2D-01", + "friendlyId": "u8KFsGDk-1", + "status": "Opened", + "value": 50.01, + "accountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b", + "creditValue": 0, + "createdAt": "2023-11-09T18:26:43.2112234Z", + "updatedAt": "2023-11-09T18:26:43.289316Z", + "originalDueDate": "2023-12-09T18:26:43.2112234Z", + "dueDate": "2023-12-09T18:26:43.2112234Z", + "installment": 1, + "orderId": "1375060513100-01", + "transactionId": "A424887D0F2D45028FE5C96E9B0E1A2D", + "numberOfInstallments": 1, + "creditAccountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b" + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Invoices" + ], + "summary": "Change invoice", + "description": "Updates invoice's `status`, `observation` and `paymentLink` attributes.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Invoices | **Create Invoices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "ChangeInvoice", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "$ref": "#/components/parameters/invoiceId" + }, + { + "$ref": "#/components/parameters/friendlyId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "status" + ], + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Invoice status.", + "enum": [ + "Opened", + "Paid", + "Cancelled" + ], + "example": "Paid" + }, + "observation": { + "type": "string", + "description": "Observation notes about the invoice.", + "example": "BF 2023 customer invoice.", + "nullable": true + }, + "paymentLink": { + "type": "string", + "description": "Link (URL) created to direct the customer to an invoice payment environment (optional).", + "example": "https://paymentlink.com", + "nullable": true + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK. This endpoint does not return any data in the response body." + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Invoices" + ], + "summary": "Cancel invoice", + "description": "Changes the status of a specific invoice (`invoiceId`) to `Cancelled`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Invoices | **Create Invoices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "CancelInvoice", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "$ref": "#/components/parameters/invoiceId" + } + ], + "responses": { + "200": { + "description": "OK. This endpoint does not return any data in the response body." + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/invoices": { + "get": { + "tags": [ + "Invoices" + ], + "summary": "Retrieve invoices by Customer Credit account ID", + "description": "Returns associated invoices given a specific `creditAccountId`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Invoices | **Read Invoices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "SearchallinvoicesofaAccount", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "data", + "summary" + ], + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Data information.", + "items": { + "required": [ + "id", + "friendlyId", + "status", + "value", + "accountId", + "creditValue", + "createdAt", + "updatedAt", + "originalDueDate", + "dueDate", + "installment", + "orderId", + "transactionId", + "numberOfInstallments", + "creditAccountId" + ], + "type": "object", + "description": "Object with information about each invoice.", + "properties": { + "id": { + "type": "string", + "description": "Invoice identification." + }, + "friendlyId": { + "type": "string", + "description": "Simplified identification of an invoice. This code is created automatically, always associated with an existing invoice. It consists of an 8-digit random ID (of numbers and letters) and the installment." + }, + "status": { + "type": "string", + "description": "Invoice status.", + "enum": [ + "Opened", + "Paid", + "Cancelled" + ] + }, + "value": { + "type": "number", + "description": "Invoice value." + }, + "accountId": { + "type": "string", + "description": "Account identification. It is the same `checkingAccountId` parameter used in other Customer Credit API endpoints." + }, + "creditValue": { + "type": "number", + "description": "Credit value." + }, + "createdAt": { + "type": "string", + "description": "Invoice creation date." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the invoice." + }, + "originalDueDate": { + "type": "string", + "description": "Original invoice expiration date." + }, + "dueDate": { + "type": "string", + "description": "Modified invoice expiration date." + }, + "installment": { + "type": "number", + "description": "Identification of installment number." + }, + "orderId": { + "type": "string", + "description": "Identification of the order that generated the invoice." + }, + "transactionId": { + "type": "string", + "description": "Identification of the invoice transaction. This is the same number as the `id` field, removing the last three characters." + }, + "numberOfInstallments": { + "type": "number", + "description": "Number of installments." + }, + "creditAccountId": { + "type": "string", + "description": "Credit account identification. It is the same `accountId` parameter used in other Customer Credit API endpoints." + } + } + } + }, + "summary": { + "required": [ + "total", + "count" + ], + "type": "object", + "description": "Summary information.", + "properties": { + "total": { + "type": "number", + "description": "Total amount payable (sum of invoices listed with status `Open`)." + }, + "count": { + "type": "integer", + "description": "Number of invoices listed." + }, + "totalPaid": { + "type": "integer", + "description": "Total amount paid (sum of invoices listed with status `Paid`)." + }, + "totalCancelled": { + "type": "integer", + "description": "Total amount canceled (sum of invoices listed with status `Cancelled`)." + } + } + } + } + }, + "example": { + "data": [ + { + "id": "A424887D0F2D45028FE5C96E9B0E1A2D-01", + "friendlyId": "u8KFsGDk-1", + "status": "Opened", + "value": 5.01, + "accountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b", + "creditValue": 0, + "createdAt": "2023-11-09T18:26:43.2112234Z", + "updatedAt": "2023-11-09T18:26:43.289316Z", + "originalDueDate": "2023-12-09T18:26:43.2112234Z", + "dueDate": "2023-12-09T18:26:43.2112234Z", + "installment": 1, + "orderId": "1375060513100-01", + "transactionId": "A424887D0F2D45028FE5C96E9B0E1A2D", + "numberOfInstallments": 1, + "creditAccountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b" + }, + { + "id": "742F1758D81F4E93BC2A3F8A382D44A8-01", + "friendlyId": "8UfrLSCc-1", + "status": "Opened", + "value": 0.91, + "accountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b", + "creditValue": 0, + "createdAt": "2023-11-10T19:46:50.551354Z", + "updatedAt": "2023-11-10T19:46:50.6295313Z", + "originalDueDate": "2023-12-10T19:46:50.551354Z", + "dueDate": "2023-12-10T19:46:50.551354Z", + "installment": 1, + "orderId": "1375070513102-01", + "transactionId": "742F1758D81F4E93BC2A3F8A382D44A8", + "numberOfInstallments": 1, + "creditAccountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b" + } + ], + "summary": { + "total": 5.92, + "count": 2, + "totalPaid": 0, + "totalCancelled": 0 + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/invoices/{invoiceId}/payments": { + "post": { + "tags": [ + "Invoices" + ], + "summary": "Mark an invoice as paid", + "description": "Records the payment of an invoice.\r\n\r\nThis operation causes a balance restore with the invoice value to the checking account.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Invoices | **Pay Invoice** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "MarkaninvoiceasPaid", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "$ref": "#/components/parameters/invoiceId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "friendlyId", + "status", + "value", + "accountId", + "creditValue", + "createdAt", + "updatedAt", + "originalDueDate", + "dueDate", + "installment", + "orderId", + "transactionId", + "numberOfInstallments", + "creditAccountId" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Invoice identification." + }, + "friendlyId": { + "type": "string", + "description": "Simplified identification of an invoice. This code is created automatically, always associated with an existing invoice. It consists of an 8-digit random ID (of numbers and letters) and the installment." + }, + "status": { + "type": "string", + "description": "Invoice status.", + "enum": [ + "Opened", + "Paid", + "Cancelled" + ] + }, + "value": { + "type": "number", + "description": "Invoice value." + }, + "accountId": { + "type": "string", + "description": "Account identification. It is the same `checkingAccountId` parameter used in other Customer Credit API endpoints." + }, + "creditValue": { + "type": "number", + "description": "Credit value." + }, + "createdAt": { + "type": "string", + "description": "Invoice creation date." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the invoice." + }, + "originalDueDate": { + "type": "string", + "description": "Original invoice expiration date." + }, + "dueDate": { + "type": "string", + "description": "Modified invoice expiration date." + }, + "installment": { + "type": "number", + "description": "Identification of installment number." + }, + "orderId": { + "type": "string", + "description": "Identification of the order that generated the invoice." + }, + "transactionId": { + "type": "string", + "description": "Identification of the invoice transaction. This is the same number as the `id` field, removing the last three characters." + }, + "numberOfInstallments": { + "type": "number", + "description": "Number of installments." + }, + "creditAccountId": { + "type": "string", + "description": "Credit account identification. It is the same `accountId` parameter used in other Customer Credit API endpoints." + } + } + }, + "example": { + "id": "A424887D0F2D45028FE5C96E9B0E1A2D-01", + "friendlyId": "u8KFsGDk-1", + "status": "Paid", + "value": 5.01, + "accountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b", + "creditValue": 0, + "createdAt": "2023-11-09T18:26:43.2112234Z", + "updatedAt": "2023-11-09T18:26:43.289316Z", + "originalDueDate": "2023-12-09T18:26:43.2112234Z", + "dueDate": "2023-12-09T18:26:43.2112234Z", + "installment": 1, + "orderId": "1375060513100-01", + "transactionId": "A424887D0F2D45028FE5C96E9B0E1A2D", + "numberOfInstallments": 1, + "creditAccountId": "fcba59e0-7f26-11ee-ba3c-511336e1518b" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/invoices/{invoiceId}/postponement": { + "put": { + "tags": [ + "Invoices" + ], + "summary": "Postpone an invoice", + "description": "Postpones an invoice by the amount of time defined on the `dueDays` field (number of days for the invoice to be postponed by).\r\n\r\nThis operation updates the invoice field `dueDate`.\r\n\r\n>⚠️ Before making this request, access the endpoint [Retrieve store configuration](https://developers.vtex.com/docs/api-reference/customer-credit-api#get-/api/creditcontrol/storeconfig) to check whether the option to postpone invoice is enabled in the store (`invoicePostponementLimit: value greater than 0` and `postponementEnabled: true`).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Invoices | **Create Invoices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Postponeaninvoice", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "$ref": "#/components/parameters/invoiceId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "dueDays" + ], + "type": "object", + "properties": { + "dueDays": { + "type": "number", + "description": "Number of days to postpone the invoice.", + "example": 10 + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK. This endpoint does not return any data in the response body." + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts": { + "get": { + "tags": [ + "Account" + ], + "summary": "Search all accounts", + "description": "Retrieves a list of all [customer credit accounts](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU) in the store.\r\n\r\n>ℹ️ You can use the queries below (individually or combined) to obtain a more accurate search result. If your store has more than 20 customer credit accounts and you do not use any queries in the call, only the first 20 account records will appear in the response body.\r\n\r\n>ℹ️ Query params can be used individually or combined.\r\n\r\n### Queries to filter results\r\n\r\n- **By the location of the accounts in the list (quantity of accounts)**: `?from={int}&to={int}`\r\n- **By status**: `?status={Open, Closed or Cancelled}`\r\n- **By email**: `?email={string}`\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Checking Accounts | **Read Checking Accounts** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Searchallaccounts", + "parameters": [ + { + "name": "from", + "in": "query", + "description": "Indicates the starting position of the credit customer account to be searched in the account list. Example, value `1` indicates that the first account in the list will be returned.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "to", + "in": "query", + "description": "Indicates the final position of the credit customer account to be searched in the account list. Example, if the value of `from` is equal to `1` and `to` is `40`, information from 40 accounts will be displayed in the response body of the request.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "40" + } + }, + { + "name": "status", + "in": "query", + "description": "Indicates the status of the accounts to be searched for.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "enum": [ + "Opened", + "Paid", + "Cancelled" + ], + "example": "Paid" + } + }, + { + "name": "email", + "in": "query", + "description": "Indicates the email registered to the account to be searched.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "test@test.com" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "data", + "summary" + ], + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Data information.", + "items": { + "type": "object", + "description": "Object with information about each account.", + "required": [ + "id", + "balance", + "document", + "status", + "documentType", + "creditLimit", + "updatedAt", + "createdAt", + "availableCredit", + "preAuthorizedCredit", + "email", + "tolerance", + "availableBalance" + ], + "properties": { + "id": { + "type": "string", + "description": "Credit customer account identification." + }, + "balance": { + "type": "number", + "description": "Account balance value. If this number is negative, it means that the account has a debit instead of a credit to be used." + }, + "document": { + "type": "string", + "description": "Account owner document." + }, + "status": { + "type": "string", + "description": "Credit customer account status. This value will always come as `Open`. If an account is closed (`Closed`), it will not be displayed in the response body of this endpoint.", + "enum": [ + "Open", + "Closed" + ] + }, + "documentType": { + "type": "string", + "description": "Document type.", + "enum": [ + "CPF", + "CNPJ", + "Other" + ] + }, + "creditLimit": { + "type": "number", + "description": "Maximum credit amount on the account." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the account." + }, + "createdAt": { + "type": "string", + "description": "Account creation date." + }, + "description": { + "type": "string", + "description": "This field is deprecated." + }, + "availableCredit": { + "type": "number", + "description": "Credit amount available on the account." + }, + "preAuthorizedCredit": { + "type": "number", + "description": "Credit value that can only be used by the account owner after the merchant releases a specific purchase transaction." + }, + "email": { + "type": "string", + "description": "Account owner email." + }, + "tolerance": { + "type": "number", + "description": "Account credit tolerance (in decimals). This value represents the increase in credit on an account. For example, a value of `0.30` indicates that the account owner can use up to 30% above the account's original maximum credit amount." + }, + "availableBalance": { + "type": "number", + "description": "Balance available for use on the account." + } + } + } + }, + "summary": { + "required": [ + "count" + ], + "type": "object", + "description": "Summary information.", + "properties": { + "count": { + "type": "integer", + "description": "Number of customer credit accounts in the store." + } + } + } + } + }, + "example": { + "data": [ + { + "id": "39f5f920-149f-11ha-b5b0-2vb896d3212f", + "balance": 0, + "document": "4354353453454", + "status": "Open", + "documentType": "CPF", + "creditLimit": 2000, + "updatedAt": "2020-01-02T15:26:40.3425717Z", + "createdAt": "2019-12-04T14:06:02.7905117Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 2000, + "preAuthorizedCredit": 0, + "email": "wtest@gmail.com", + "tolerance": 20, + "availableBalance": 2000 + }, + { + "id": "71d3f4e5-9164-11ea-918f-93b2a93cb9ba", + "balance": 0, + "document": "10120312", + "status": "Open", + "documentType": "CPF", + "creditLimit": 1, + "updatedAt": "2020-05-08T19:16:40.7202156Z", + "createdAt": "2020-05-08T19:16:40.5951631Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 1, + "preAuthorizedCredit": 0, + "email": "etest@yahoo.com", + "tolerance": 0, + "availableBalance": 1 + }, + { + "id": "111111111_CPF", + "balance": 0, + "document": "111111111", + "status": "Open", + "documentType": "CPF", + "creditLimit": 500, + "updatedAt": "2020-06-30T18:35:25.5793275Z", + "createdAt": "2020-06-30T18:35:25.5011788Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 500, + "preAuthorizedCredit": 0, + "email": "atest@test.com", + "tolerance": 1, + "availableBalance": 500 + }, + { + "id": "2222222222_CPF", + "balance": 0, + "document": "2222222222", + "status": "Open", + "documentType": "CPF", + "creditLimit": 100, + "updatedAt": "2020-07-07T21:08:07.1796362Z", + "createdAt": "2020-06-30T19:57:50.4832597Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 100, + "preAuthorizedCredit": 0, + "email": "dtest@hotmail.com", + "tolerance": 0, + "availableBalance": 100 + }, + { + "id": "91d1f2e5-8169-11ea-728f-53b2a03cb8bc", + "balance": 0, + "document": "0000000000", + "status": "Open", + "documentType": "CPF", + "creditLimit": 5000, + "updatedAt": "2020-07-28T18:50:46.7315579Z", + "createdAt": "2020-06-30T18:49:35.424369Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 5000, + "preAuthorizedCredit": 0, + "email": "test@test.com", + "tolerance": 0, + "availableBalance": 5000 + } + ], + "summary": { + "count": 5 + } + } + } + } + } + }, + "deprecated": false + }, + "post": { + "tags": [ + "Account" + ], + "summary": "Open an account", + "description": "Opens a [customer credit account](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU) on your store.\r\n\r\n>⚠️ This request should only be used if you do not have an account yet registered. If you already have an account (open or closed) and want to create or modify an account, go to [Update account information](https://developers.vtex.com/docs/api-reference/customer-credit-api#put-/api/creditcontrol/accounts/-creditAccountId-) endpoint.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Checking Accounts | **Create Checking Accounts** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "OpenanAccount", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "document", + "documentType", + "email", + "creditLimit", + "description", + "tolerance" + ], + "type": "object", + "properties": { + "document": { + "type": "string", + "description": "Account owner document.", + "example": "11111111111" + }, + "documentType": { + "type": "string", + "description": "Document type.", + "enum": [ + "CPF", + "CNPJ", + "Other" + ], + "example": "CPF" + }, + "email": { + "type": "string", + "description": "Account owner email.", + "example": "test@test.com" + }, + "creditLimit": { + "type": "string", + "description": "Maximum credit amount on the account.", + "example": "1100" + }, + "description": { + "type": "string", + "description": "This field is deprecated.", + "example": "Not applicable.", + "deprecated": true + }, + "tolerance": { + "type": "string", + "description": "Account credit tolerance (in decimals). This value represents the increase in credit on an account. For example, a value of `0.30` indicates that the account owner can use up to 30% above the account's original maximum credit amount.", + "example": "0.2" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "balance", + "document", + "status", + "documentType", + "creditLimit", + "updatedAt", + "createdAt", + "availableCredit", + "preAuthorizedCredit", + "email", + "tolerance", + "availableBalance" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Credit customer account identification." + }, + "balance": { + "type": "number", + "description": "Account balance value. If this number is negative, it means that the account has a debit instead of a credit to be used." + }, + "document": { + "type": "string", + "description": "Account owner document." + }, + "status": { + "type": "string", + "description": "Credit customer account status." + }, + "documentType": { + "type": "string", + "description": "Document type. Possible values: `CPF`, `CNPJ` or `Other`." + }, + "creditLimit": { + "type": "number", + "description": "Maximum credit amount on the account." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the account." + }, + "createdAt": { + "type": "string", + "description": "Account creation date." + }, + "description": { + "type": "string", + "description": "This field is deprecated." + }, + "availableCredit": { + "type": "number", + "description": "Credit amount available on the account." + }, + "preAuthorizedCredit": { + "type": "number", + "description": "Credit value that can only be used by the account owner after the merchant releases a specific purchase transaction." + }, + "email": { + "type": "string", + "description": "Account owner email." + }, + "tolerance": { + "type": "number", + "description": "Account credit tolerance (in decimals). This value represents the increase in credit on an account. For example, a value of `0.30` indicates that the account owner can use up to 30% above the account's original maximum credit amount." + }, + "availableBalance": { + "type": "number", + "description": "Balance available for use on the account." + } + } + }, + "example": { + "id": "11111111111_CPF", + "balance": 0, + "document": "11111111111", + "status": "Open", + "documentType": "CPF", + "creditLimit": 1100, + "updatedAt": "2023-11-09T13:29:01.2505088Z", + "createdAt": "2023-11-09T13:29:01.1567887Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 1100, + "preAuthorizedCredit": 0, + "email": "ricardo@teste.com.br", + "tolerance": 0.2, + "availableBalance": 1100 + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}": { + "get": { + "tags": [ + "Account" + ], + "summary": "Retrieve an account by ID", + "description": "Retrieves a [customer credit account](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU) by the credit account identification.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Checking Accounts | **Read Checking Accounts** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "RetrieveaAccountbyId", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "balance", + "document", + "status", + "documentType", + "creditLimit", + "updatedAt", + "createdAt", + "availableCredit", + "preAuthorizedCredit", + "email", + "tolerance", + "availableBalance" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Credit customer account identification." + }, + "balance": { + "type": "number", + "description": "Account balance value. If this number is negative, it means that the account has a debit instead of a credit to be used." + }, + "document": { + "type": "string", + "description": "Account owner document." + }, + "status": { + "type": "string", + "description": "Credit customer account status." + }, + "documentType": { + "type": "string", + "description": "Document type. Possible values: `CPF`, `CNPJ` or `Other`." + }, + "creditLimit": { + "type": "number", + "description": "Maximum credit amount on the account." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the account." + }, + "createdAt": { + "type": "string", + "description": "Account creation date." + }, + "description": { + "type": "string", + "description": "This field is deprecated." + }, + "availableCredit": { + "type": "number", + "description": "Credit amount available on the account." + }, + "preAuthorizedCredit": { + "type": "number", + "description": "Credit value that can only be used by the account owner after the merchant releases a specific purchase transaction." + }, + "email": { + "type": "string", + "description": "Account owner email." + }, + "tolerance": { + "type": "number", + "description": "Account credit tolerance (in decimals). This value represents the increase in credit on an account. For example, a value of `0.30` indicates that the account owner can use up to 30% above the account's original maximum credit amount." + }, + "availableBalance": { + "type": "number", + "description": "Balance available for use on the account." + } + } + }, + "example": { + "id": "11111111111_CPF", + "balance": 0, + "document": "11111111111", + "status": "Open", + "documentType": "CPF", + "creditLimit": 1100, + "updatedAt": "2023-11-09T13:29:01.2505088Z", + "createdAt": "2023-11-09T13:29:01.1567887Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 1100, + "preAuthorizedCredit": 0, + "email": "ricardo@teste.com.br", + "tolerance": 0.2, + "availableBalance": 1100 + } + } + } + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Account" + ], + "summary": "Close an account", + "description": "Closes a [customer credit account](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Checking Accounts | **Create Checking Accounts** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "CloseanAccount", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "document": { + "type": "string", + "description": "Account owner document.", + "example": "32222222222" + }, + "documentType": { + "type": "string", + "description": "Document type.", + "enum": [ + "CPF", + "CNPJ", + "Other" + ], + "example": "CPF" + }, + "email": { + "type": "string", + "description": "Account owner email.", + "example": "email@domain.com" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "balance", + "document", + "status", + "documentType", + "creditLimit", + "updatedAt", + "createdAt", + "availableCredit", + "preAuthorizedCredit", + "email", + "tolerance", + "availableBalance" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Credit customer account identification." + }, + "balance": { + "type": "number", + "description": "Account balance value. If this number is negative, it means that the account has a debit instead of a credit to be used." + }, + "document": { + "type": "string", + "description": "Account owner document." + }, + "status": { + "type": "string", + "description": "Credit customer account status." + }, + "documentType": { + "type": "string", + "description": "Document type.", + "enum": [ + "CPF", + "CNPJ", + "Other" + ] + }, + "creditLimit": { + "type": "number", + "description": "Maximum credit amount on the account." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the account." + }, + "createdAt": { + "type": "string", + "description": "Account creation date." + }, + "description": { + "type": "string", + "description": "This field is deprecated.", + "deprecated": true + }, + "availableCredit": { + "type": "number", + "description": "Credit amount available on the account." + }, + "preAuthorizedCredit": { + "type": "number", + "description": "Credit value that can only be used by the account owner after the merchant releases a specific purchase transaction." + }, + "email": { + "type": "string", + "description": "Account owner email." + }, + "tolerance": { + "type": "number", + "description": "Account credit tolerance (in decimals). This value represents the increase in credit on an account. For example, a value of `0.30` indicates that the account owner can use up to 30% above the account's original maximum credit amount." + }, + "availableBalance": { + "type": "number", + "description": "Balance available for use on the account." + } + } + }, + "example": { + "id": "32222222222_CPF", + "balance": 0, + "document": "32222222222", + "status": "Closed", + "documentType": "CPF", + "creditLimit": 500, + "updatedAt": "2023-11-09T14:36:09.0201326Z", + "createdAt": "2023-11-09T14:31:27.0775349Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 500, + "preAuthorizedCredit": 0, + "email": "test3@teste.com", + "tolerance": 1, + "availableBalance": 500 + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Account" + ], + "summary": "Update account information", + "description": "Updates information on a [customer credit account](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Checking Accounts | **Create Checking Accounts** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Updateemailanddescriptionofaaccount", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "email", + "document", + "documentType" + ], + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Account owner email.", + "example": "test1@test.com" + }, + "document": { + "type": "string", + "description": "Account owner document.", + "example": "111111111111" + }, + "documentType": { + "type": "string", + "description": "Document type.", + "enum": [ + "CPF", + "CNPJ", + "Other" + ], + "example": "CPF" + }, + "creditLimit": { + "type": "number", + "description": "Maximum credit amount on the account.", + "example": 3400 + }, + "tolerance": { + "type": "number", + "description": "Account credit tolerance (in decimals). This value represents the increase in credit on an account. For example, a value of `0.30` indicates that the account owner can use up to 30% above the account's original maximum credit amount.", + "example": 0.25 + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "balance", + "status", + "creditLimit", + "updatedAt", + "createdAt", + "availableCredit", + "preAuthorizedCredit", + "email", + "tolerance", + "availableBalance" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Credit customer account identification." + }, + "balance": { + "type": "number", + "description": "Account balance value. If this number is negative, it means that the account has a debit instead of a credit to be used." + }, + "document": { + "type": "string", + "description": "Account owner document." + }, + "status": { + "type": "string", + "description": "Credit customer account status." + }, + "documentType": { + "type": "string", + "description": "Document type.", + "enum": [ + "CPF", + "CNPJ", + "Other" + ] + }, + "creditLimit": { + "type": "number", + "description": "Maximum credit amount on the account." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the account." + }, + "createdAt": { + "type": "string", + "description": "Account creation date." + }, + "description": { + "type": "string", + "description": "This field is deprecated." + }, + "availableCredit": { + "type": "number", + "description": "Credit amount available on the account." + }, + "preAuthorizedCredit": { + "type": "number", + "description": "Credit value that can only be used by the account owner after the merchant releases a specific purchase transaction." + }, + "email": { + "type": "string", + "description": "Account owner email." + }, + "tolerance": { + "type": "number", + "description": "Account credit tolerance (in decimals). This value represents the increase in credit on an account. For example, a value of `0.30` indicates that the account owner can use up to 30% above the account's original maximum credit amount." + }, + "availableBalance": { + "type": "number", + "description": "Balance available for use on the account." + } + } + }, + "example": { + "id": "30c59e60-895f-11ee-917a-1117db360d00", + "balance": 0, + "document": "111111111111", + "status": "Open", + "documentType": "CPF", + "creditLimit": 3400, + "updatedAt": "2023-11-22T19:06:07.4014762Z", + "createdAt": "2023-11-22T17:47:22.9450309Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 3400, + "preAuthorizedCredit": 0, + "email": "test1@test.com", + "tolerance": 0.25, + "availableBalance": 3400 + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/statements": { + "get": { + "tags": [ + "Account" + ], + "summary": "Get account statements", + "description": "Retrieves the [customer credit account](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU) statements.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Statements | **Read Statements** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Accountstatements", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "statements", + "currentBalance", + "intervalBalance", + "previousBalance" + ], + "type": "object", + "properties": { + "statements": { + "type": "array", + "description": "Statements information.", + "items": { + "required": [ + "value", + "date", + "origin" + ], + "type": "object", + "description": "Object with information about each statement.", + "properties": { + "value": { + "type": "number", + "description": "Operation value." + }, + "date": { + "type": "string", + "description": "Operation date." + }, + "doneby": { + "type": "string", + "description": "Email of the person responsible for the operation." + }, + "origin": { + "type": "string", + "description": "Operation origin.", + "enum": [ + "Credit", + "Invoice", + "Payment", + "Statement" + ] + }, + "metadata": { + "type": "object", + "description": "Metadata information.", + "properties": { + "transactionId": { + "type": "string", + "description": "Transaction identification." + }, + "numberOfInstallments": { + "type": "number", + "description": "Number of installments." + } + } + } + } + } + }, + "currentBalance": { + "type": "number", + "description": "Current balance value." + }, + "intervalBalance": { + "type": "number", + "description": "Interval balance. Indicates the balance between debits and credits made since the account was opened. Negative values ​​indicate that there were more debits than new credits in the account." + }, + "previousBalance": { + "type": "number", + "description": "Current balance value." + } + } + }, + "example": { + "statements": [ + { + "value": -5.01, + "date": "2023-11-09T18:26:43.3361896Z", + "origin": "Invoice", + "metadata": { + "transactionId": "A424887D0F2D45028FE5C96E9B0E1A2D", + "numberOfInstallments": 1 + } + }, + { + "value": -15, + "date": "2023-11-09T18:48:32.1436064Z", + "doneBy": "ricardo.silva@vtex.com.br", + "origin": "Statement" + }, + { + "value": -500, + "date": "2023-11-09T19:38:04.3798157Z", + "origin": "Credit" + }, + { + "value": -200, + "date": "2023-11-09T19:40:08.9716204Z", + "origin": "Credit" + }, + { + "value": 200, + "date": "2023-11-09T19:40:14.5497445Z", + "origin": "Credit" + }, + { + "value": 5.01, + "date": "2023-11-17T19:33:32.6653898Z", + "origin": "Payment", + "metadata": { + "transactionId": "A424887D0F2D45028FE5C96E9B0E1A2D", + "installment": 1 + } + } + ], + "currentBalance": -15, + "intervalBalance": -1110.9, + "previousBalance": 0 + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/creditlimit": { + "put": { + "tags": [ + "Account" + ], + "summary": "Change credit limit of an account", + "description": "Increases or decreases the credit limit of a [customer credit account](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Checking Accounts | **Edit credits** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "ChangecreditlimitofanAccount", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Credit limit value.", + "example": 5500 + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "balance", + "status", + "creditLimit", + "updatedAt", + "createdAt", + "availableCredit", + "preAuthorizedCredit", + "email", + "tolerance", + "availableBalance" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Credit customer account identification." + }, + "balance": { + "type": "number", + "description": "Account balance value. If this number is negative, it means that the account has a debit instead of a credit to be used." + }, + "status": { + "type": "string", + "description": "Credit customer account status." + }, + "creditLimit": { + "type": "number", + "description": "Maximum credit amount on the account." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the account." + }, + "createdAt": { + "type": "string", + "description": "Account creation date." + }, + "description": { + "type": "string", + "description": "This field is deprecated." + }, + "availableCredit": { + "type": "number", + "description": "Credit amount available on the account." + }, + "preAuthorizedCredit": { + "type": "number", + "description": "Credit value that can only be used by the account owner after the merchant releases a specific purchase transaction." + }, + "email": { + "type": "string", + "description": "Account owner email." + }, + "tolerance": { + "type": "number", + "description": "Account credit tolerance (in decimals). This value represents the increase in credit on an account. For example, a value of `0.30` indicates that the account owner can use up to 30% above the account's original maximum credit amount." + }, + "availableBalance": { + "type": "number", + "description": "Balance available for use on the account." + } + } + }, + "example": { + "id": "fcba59e0-7f26-11ee-ba3c-511336e1518b", + "balance": -15, + "status": "Open", + "creditLimit": 5500, + "updatedAt": "2023-11-22T19:35:40.0047136Z", + "createdAt": "2023-11-09T17:39:52.151897Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 5500, + "preAuthorizedCredit": 0, + "email": "test@test.com", + "tolerance": 0.3, + "availableBalance": 5500 + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/statements/{statementId}": { + "put": { + "tags": [ + "Account" + ], + "summary": "Decrease balance of an account", + "description": "Creates a debit value updating the account balance.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Checking Accounts | **Edit credits** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Decreasebalanceofanaccount", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "name": "statementId", + "in": "path", + "description": "Statement identification. This is the same `transactionId` value obtained from the [Account statements](https://developers.vtex.com/docs/api-reference/customer-credit-api#get-/api/creditcontrol/accounts/-creditAccountId-) endpoint response body.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "451924c579a6759cf6e112a" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Value to be debited from the account balance.", + "example": "-15" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Value debited from the account balance." + } + } + }, + "example": { + "value": "-15.0" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/transactions/{transactionId}/settlement": { + "put": { + "tags": [ + "Account" + ], + "summary": "Create or update settlement", + "description": "Creates an invoice or update its value for an order placed in the store that used customer credit as a payment method.\r\n\r\n>ℹ️ If payment for the order is made in installments, you can create an invoice for each installment. The first invoice will be due in 30 days, and subsequent invoices will be due 30 days after the previous invoice.\r\n\r\n.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Statements | **Create Statements** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateorUpdateSettlement", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "$ref": "#/components/parameters/transactionId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Value to be settled in the invoice.", + "example": 49.95 + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "value", + "id" + ], + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Invoice value." + }, + "id": { + "type": "string", + "description": "Identification of the pre-authorization generated when creating the order. This number plus the information `-01` indicates the number of the invoice created." + } + } + }, + "example": { + "value": 49.95, + "id": "B2E754DCD7304D22866CB6F221CF0FEB" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/transactions": { + "post": { + "tags": [ + "Account" + ], + "summary": "Create a pre-authorization", + "description": "Creates a Pre-Authorization. Also known as authorization hold, card authorization or pre-auth, pre-authorization is the practice of holding this balance as unavailable until either the merchant clears the transaction, also called settlement, or the hold *falls off*.\r\n\r\nThis operation does not appear in statements, but the available balance will be updated.\r\n\r\nThe result of this operation is generating a `transactionId` (pre-authorization identification) to use in a settlement.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Statements | **Create Statements** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateaPreAuthorization", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "value", + "settle", + "installments" + ], + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Pre-Authorization value.", + "example": 49.7 + }, + "settle": { + "type": "boolean", + "description": "Indicates whether pre-authorization should be available to be settled. This means that the `transactionId` created in this request can be used to be associated with an order within a maximum period of 30 days.", + "example": true + }, + "installments": { + "type": "number", + "description": "Number of installments.", + "example": 1 + }, + "expirationDate": { + "type": "string", + "description": "Pre-Authorization expiration date. This field should only be sent if the `settle` field is sent as `false`.", + "example": "2023-11-25" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "value", + "installments" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Pre-Authorization identification." + }, + "value": { + "type": "number", + "description": "Pre-Authorization value." + }, + "expirationDate": { + "type": "string", + "description": "Pre-Authorization expiration date." + }, + "installments": { + "type": "number", + "description": "Number of installments." + } + } + }, + "example": { + "id": "5d96bcdf0fbc46e1866a05f721f31623", + "value": 49.7, + "expirationDate": "2023-11-25T00:00:00", + "installments": 1 + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/transactions/{transactionId}": { + "put": { + "tags": [ + "Account" + ], + "summary": "Update a pre-authorization", + "description": "Updates information for a specific pre-authorization request.\r\n\r\n>⚠️ This call can only be used for pre-authorizations that have not yet been captured or canceled.\r\n\r\nAlso known as authorization hold, card authorization or pre-auth, pre-authorization is the practice of holding this balance as unavailable until either the merchant clears the transaction, also called settlement, or the hold *falls off*.\r\n\r\nThis operation does not appear in statements but the available balance will be updated.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Statements | **Create Statements** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateaPreAuthorization(usingid)", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "$ref": "#/components/parameters/transactionId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "value", + "settle", + "installments" + ], + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Pre-Authorization value.", + "example": 55 + }, + "settle": { + "type": "boolean", + "description": "Indicates whether pre-authorization should be available to be settled. This means that the `transactionId` can be used to be associated with an order within a maximum period of 30 days.", + "example": true + }, + "installments": { + "type": "number", + "description": "Number of installments.", + "example": 1 + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "value", + "installments" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Pre-Authorization identification." + }, + "value": { + "type": "number", + "description": "Pre-Authorization value." + }, + "installments": { + "type": "number", + "description": "Number of installments." + } + } + }, + "example": { + "id": "d86454d23a624417b90af3876a31b981", + "value": 55, + "installments": 1 + } + } + } + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Account" + ], + "summary": "Cancel a pre-authorization", + "description": "Cancels a pre-authorization created by the [Create a Pre-Authorization](https://developers.vtex.com/docs/api-reference/customer-credit-api#post-/api/creditcontrol/accounts/-creditAccountId-/transactions) endpoint. \r\n\r\n>⚠️ The pre-authorization can only be deleted by this endpoint if it was created with the `settled` field set to `false` previously.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Statements | **Create Statements** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "CancelaPreAuthorization", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "$ref": "#/components/parameters/transactionId" + } + ], + "responses": { + "200": { + "description": "OK. This endpoint does not return any data in the response body." + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/holders": { + "post": { + "tags": [ + "Account" + ], + "summary": "Add an account holder", + "description": "Adds a new account holder to the [customer credit account](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU). This new user can share the account's credit limit with users already registered on the account.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Checking Accounts | **Create Checking Accounts** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AddanaccountHolder", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "claims" + ], + "type": "object", + "properties": { + "claims": { + "required": [ + "email" + ], + "type": "object", + "description": "Holder information.", + "properties": { + "email": { + "type": "string", + "description": "Holder email.", + "example": "email@domain.com" + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "level", + "claims", + "id", + "createdAt" + ], + "type": "object", + "properties": { + "level": { + "type": "number", + "description": "Holder hierarchy. The value `2` indicates that the holder is a dependent of the account's main holder." + }, + "claims": { + "required": [ + "email" + ], + "type": "object", + "description": "New holder information.", + "properties": { + "email": { + "type": "string", + "description": "Holder email." + } + } + }, + "id": { + "type": "string", + "description": "Holder identification." + }, + "createdAt": { + "type": "string", + "description": "Date of appointment of the holder." + } + } + }, + "example": { + "level": 2, + "claims": { + "email": "holdertest@holder.com.br" + }, + "id": "054a67b342164018a0f291636c1669f1", + "createdAt": "2023-11-10T18:33:58.402627Z" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/holders/{holderId}": { + "delete": { + "tags": [ + "Account" + ], + "summary": "Delete an account holder", + "description": "Deletes an account holder from the [customer credit account](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Checking Accounts | **Create Checking Accounts** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Deleteanaccountholder", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "name": "holderId", + "in": "path", + "description": "Holder identification.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "524bc947d2b37a1a759ba3d174b58f9b" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Identification of the holder deleted from the account." + } + } + }, + "example": { + "id": "054a67b342164018a0f291636c1669f1" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/tolerance": { + "put": { + "tags": [ + "Account" + ], + "summary": "Change tolerance of an account", + "description": "Modifies the credit tolerance amount to increase the credit limit on a [customer credit account](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Checking Accounts | **Create Checking Accounts** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Changetoleranceofanaccount", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "This value represents the increase in credit on an account. For example, a value of `0.30` indicates that the account owner can use up to 30% above the account's original maximum credit amount.", + "example": 0.3 + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "balance", + "status", + "creditLimit", + "updatedAt", + "createdAt", + "availableCredit", + "preAuthorizedCredit", + "email", + "tolerance", + "availableBalance" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Credit customer account identification." + }, + "balance": { + "type": "number", + "description": "Account balance value. If this number is negative, it means that the account has a debit instead of a credit to be used." + }, + "status": { + "type": "string", + "description": "Credit customer account status." + }, + "creditLimit": { + "type": "number", + "description": "Maximum credit amount on the account." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update made to the account." + }, + "createdAt": { + "type": "string", + "description": "Account creation date." + }, + "description": { + "type": "string", + "description": "This field is deprecated.", + "deprecated": true + }, + "availableCredit": { + "type": "number", + "description": "Credit amount available on the account." + }, + "preAuthorizedCredit": { + "type": "number", + "description": "Credit value that can only be used by the account owner after the merchant releases a specific purchase transaction." + }, + "email": { + "type": "string", + "description": "Account owner email." + }, + "tolerance": { + "type": "number", + "description": "Account credit tolerance (in decimals). This value represents the increase in credit on an account. For example, a value of `0.30` indicates that the account owner can use up to 30% above the account's original maximum credit amount." + }, + "availableBalance": { + "type": "number", + "description": "Balance available for use on the account." + } + } + }, + "example": { + "id": "fcba59e0-7f26-11ee-ba3c-511336e1518b", + "balance": -15, + "status": "Open", + "creditLimit": 12500, + "updatedAt": "2023-11-10T18:49:50.8074778Z", + "createdAt": "2023-11-09T17:39:52.151897Z", + "description": "This field is deprecated and is returned as an empty string.", + "availableCredit": 12444.99, + "preAuthorizedCredit": 55.92, + "email": "test@test.com.br", + "tolerance": 0.3, + "availableBalance": 12444.99 + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/accounts/{creditAccountId}/transactions/{transactionId}/refunds": { + "post": { + "tags": [ + "Account" + ], + "summary": "Partially or totally refund a settlement", + "description": "Refunds a value from an already settled transaction.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Statements | **Create Statements** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PartialorTotalRefundaSettlement", + "parameters": [ + { + "$ref": "#/components/parameters/creditAccountId" + }, + { + "$ref": "#/components/parameters/transactionId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Refund amount. This number must always be less than or equal to the value of the captured transaction.", + "example": 30 + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Refunded amount." + } + } + }, + "example": { + "value": 30 + } + } + } + } + }, + "deprecated": false + } + }, + "/api/creditcontrol/storeconfig": { + "get": { + "tags": [ + "Store Configuration" + ], + "summary": "Retrieve store configuration", + "description": "Gets store configuration data related to [customer credit accounts](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Store Configuration | **Read Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Retrievestoreconfiguration", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "dailyInterestRate", + "invoicePostponementLimit", + "taxRate", + "maxPostponementDays", + "defaultCreditValue", + "postponementEnabled", + "automaticCheckingAccountCreationEnabled", + "toleranceEnabled", + "myCreditsEnabled", + "maxPreAuthorizationGrowthRate" + ], + "type": "object", + "properties": { + "dailyInterestRate": { + "type": "number", + "description": "Daily interest rate (percent 0.1 = 10%)." + }, + "invoicePostponementLimit": { + "type": "number", + "description": "Maximum number of postponements allowed." + }, + "taxRate": { + "type": "number", + "description": "Tax rate value (percent 0.1 = 10%)." + }, + "maxPostponementDays": { + "type": "number", + "description": "Maximum number of days of postponement." + }, + "defaultCreditValue": { + "type": "number", + "description": "Default credit amount." + }, + "postponementEnabled": { + "type": "boolean", + "description": "Postponement option activated.", + "default": false + }, + "automaticCheckingAccountCreationEnabled": { + "type": "boolean", + "description": "Allows users who have not previously received credit to complete an order.", + "default": false + }, + "toleranceEnabled": { + "type": "boolean", + "description": "Allows orders to be placed even if they exceed X % of the account's credit limit.", + "default": false + }, + "myCreditsEnabled": { + "type": "boolean", + "description": "Show the [My Credits](https://help.vtex.com/en/tutorial/customer-credit-overview--1uIqTjWxIIIEW0COMg4uE0#my-credits) page on storefront.", + "default": false + }, + "maxPreAuthorizationGrowthRate": { + "type": "number", + "description": "Pre-authorization growth-rate value (percent 0.1 = 10%)." + }, + "notificationsSettings": { + "type": "object", + "description": "Notification settings information.", + "properties": { + "daysPrior": { + "type": "array", + "description": "Notification information sent before invoice payment date.", + "items": { + "required": [ + "days", + "timeOfDay" + ], + "type": "object", + "description": "Object with information about the moment when the notification is sent.", + "properties": { + "days": { + "type": "integer", + "description": "How many days before the invoice payment date is the notification sent." + }, + "timeOfDay": { + "type": "string", + "description": "Notification sending time." + } + } + } + }, + "daysAfter": { + "type": "array", + "description": "Notification information sent after invoice payment date.", + "items": { + "required": [ + "days", + "timeOfDay" + ], + "type": "object", + "description": "Object with information about the moment when the notification is sent.", + "properties": { + "days": { + "type": "integer", + "description": "How many days after the invoice payment date is the notification sent." + }, + "timeOfDay": { + "type": "string", + "description": "Notification sending time." + } + } + } + } + } + } + } + }, + "example": { + "dailyInterestRate": 0, + "invoicePostponementLimit": 0, + "taxRate": 0, + "maxPostponementDays": 0, + "defaultCreditValue": 2000, + "postponementEnabled": false, + "automaticCheckingAccountCreationEnabled": false, + "toleranceEnabled": false, + "myCreditsEnabled": false, + "maxPreAuthorizationGrowthRate": 0, + "notificationsSettings": { + "daysPrior": [ + { + "days": 5, + "timeOfDay": "12:00:00" + }, + { + "days": 1, + "timeOfDay": "12:00:00" + }, + { + "days": 0, + "timeOfDay": "12:00:00" + } + ], + "daysAfter": [ + { + "days": 3, + "timeOfDay": "12:00:00" + } + ] + } + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Store Configuration" + ], + "summary": "Create or change store configuration", + "description": "Creates or changes store configuration data related to [customer credit accounts](https://help.vtex.com/en/tracks/customer-credit-getting-started--1hCRg21lXYy2seOKgqQ2CC/7FHLd0cmxqqGeEUuc8uioU).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Credit Control | Main | **Main Access** |\r\n| Credit Control | Store Configuration | **Edit Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createorchangestoreconfiguration", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "dailyInterestRate", + "invoicePostponementLimit", + "taxRate", + "maxPostponementDays", + "defaultCreditValue", + "maxPreAuthorizationGrowthRate", + "myCreditsEnabled", + "toleranceEnabled", + "automaticCheckingAccountCreationEnabled", + "postponementEnabled" + ], + "type": "object", + "properties": { + "dailyInterestRate": { + "type": "number", + "description": "Daily interest rate (percent 0.1 = 10%).", + "example": 0.01 + }, + "invoicePostponementLimit": { + "type": "number", + "description": "Maximum number of postponements allowed.", + "example": 2 + }, + "taxRate": { + "type": "number", + "description": "Tax rate value (percent 0.1 = 10%).", + "example": 0.4 + }, + "maxPostponementDays": { + "type": "number", + "description": "Maximum number of days of postponement.", + "example": 3 + }, + "defaultCreditValue": { + "type": "number", + "description": "Default credit amount.", + "example": 150 + }, + "maxPreAuthorizationGrowthRate": { + "type": "number", + "description": "Pre-authorization growth rate value (percent 0.1 = 10%).", + "example": 0.1 + }, + "myCreditsEnabled": { + "type": "boolean", + "description": "Show the [My Credits](https://help.vtex.com/en/tutorial/customer-credit-overview--1uIqTjWxIIIEW0COMg4uE0#my-credits) page on storefront.", + "example": true + }, + "toleranceEnabled": { + "type": "boolean", + "description": "Allows orders to be placed even if they exceed X % of the account's credit limit.", + "example": true + }, + "automaticCheckingAccountCreationEnabled": { + "type": "boolean", + "description": "Allows users who have not previously received credit to complete an order.", + "example": true + }, + "postponementEnabled": { + "type": "boolean", + "description": "Postponement option activated.", + "example": true + }, + "notificationsSettings": { + "type": "object", + "description": "Notification settings information.", + "properties": { + "daysPrior": { + "type": "array", + "description": "Notification information sent before invoice payment date.", + "items": { + "required": [ + "days", + "timeOfDay" + ], + "type": "object", + "description": "Object with information about the moment when the notification is sent.", + "properties": { + "days": { + "type": "integer", + "description": "How many days before the invoice payment date is the notification sent.", + "example": 1 + }, + "timeOfDay": { + "type": "string", + "description": "Notification sending time.", + "example": "16:00:00" + } + } + } + }, + "daysAfter": { + "type": "array", + "description": "Notification information sent after invoice payment date.", + "items": { + "required": [ + "days", + "timeOfDay" + ], + "type": "object", + "description": "Object with information about the moment when the notification is sent.", + "properties": { + "days": { + "type": "integer", + "description": "How many days after the invoice payment date is the notification sent.", + "example": 0 + }, + "timeOfDay": { + "type": "string", + "description": "Notification sending time.", + "example": "12:00:00" + } + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "dailyInterestRate", + "invoicePostponementLimit", + "taxRate", + "maxPostponementDays", + "defaultCreditValue", + "postponementEnabled", + "automaticCheckingAccountCreationEnabled", + "toleranceEnabled", + "myCreditsEnabled", + "maxPreAuthorizationGrowthRate" + ], + "type": "object", + "properties": { + "dailyInterestRate": { + "type": "number", + "description": "Daily interest rate (percent 0.1 = 10%)." + }, + "invoicePostponementLimit": { + "type": "number", + "description": "Maximum number of postponements allowed." + }, + "taxRate": { + "type": "number", + "description": "Tax rate value (percent 0.1 = 10%)." + }, + "maxPostponementDays": { + "type": "number", + "description": "Maximum number of days of postponement." + }, + "defaultCreditValue": { + "type": "number", + "description": "Default credit amount." + }, + "postponementEnabled": { + "type": "boolean", + "description": "Postponement option activated.", + "default": false + }, + "automaticCheckingAccountCreationEnabled": { + "type": "boolean", + "description": "Allows users who have not previously received credit to complete an order.", + "default": false + }, + "toleranceEnabled": { + "type": "boolean", + "description": "Allows orders to be placed even if they exceed X % of the account's credit limit.", + "default": false + }, + "myCreditsEnabled": { + "type": "boolean", + "description": "Show the [My Credits](https://help.vtex.com/en/tutorial/customer-credit-overview--1uIqTjWxIIIEW0COMg4uE0#my-credits) page on storefront.", + "default": false + }, + "maxPreAuthorizationGrowthRate": { + "type": "number", + "description": "Pre-authorization growth rate value (percent 0.1 = 10%)." + }, + "notificationsSettings": { + "type": "object", + "description": "Notification settings information.", + "properties": { + "daysPrior": { + "type": "array", + "description": "Notification information sent before invoice payment date.", + "items": { + "required": [ + "days", + "timeOfDay" + ], + "type": "object", + "description": "Object with information about the moment when the notification is sent.", + "properties": { + "days": { + "type": "integer", + "description": "How many days before the invoice payment date is the notification sent." + }, + "timeOfDay": { + "type": "string", + "description": "Notification sending time." + } + } + } + }, + "daysAfter": { + "type": "array", + "description": "Notification information sent after invoice payment date.", + "items": { + "required": [ + "days", + "timeOfDay" + ], + "type": "object", + "description": "Object with information about the moment when the notification is sent.", + "properties": { + "days": { + "type": "integer", + "description": "How many days after the invoice payment date is the notification sent." + }, + "timeOfDay": { + "type": "string", + "description": "Notification sending time." + } + } + } + } + } + } + } + }, + "example": { + "dailyInterestRate": 0.01, + "invoicePostponementLimit": 2, + "taxRate": 0.4, + "maxPostponementDays": 3, + "defaultCreditValue": 150, + "postponementEnabled": false, + "automaticCheckingAccountCreationEnabled": false, + "toleranceEnabled": false, + "myCreditsEnabled": false, + "maxPreAuthorizationGrowthRate": 0.1, + "notificationsSettings": { + "daysPrior": [ + { + "days": 5, + "timeOfDay": "12:00:00" + }, + { + "days": 1, + "timeOfDay": "12:00:00" + }, + { + "days": 0, + "timeOfDay": "12:00:00" + } + ], + "daysAfter": [ + { + "days": 3, + "timeOfDay": "12:00:00" + } + ] + } + } + } + } + } + }, + "deprecated": false + } + } + }, + "components": { + "parameters": { + "creditAccountId": { + "name": "creditAccountId", + "in": "path", + "description": "Credit account identification.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "01bce461-9g03-12ds-8217-b3d39271e15b" + } + }, + "invoiceId": { + "name": "invoiceId", + "in": "path", + "description": "Invoice identification.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "A424887D0F2D45028FE5C96E9B0E1A2D-01" + } + }, + "friendlyId": { + "name": "friendlyId", + "in": "query", + "description": "Simplified identification of an invoice. This code is created automatically, always associated with an existing invoice. It consists of an 8-digit random ID (of numbers and letters) and the installment.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "u8KFsGDk-1" + } + }, + "transactionId": { + "name": "transactionId", + "in": "path", + "description": "Pre-authorization identification.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "B2E754DCD7304D22866CB6F221CF0FEB" + } + } + } + }, + "tags": [ + { + "name": "Invoices" + }, + { + "name": "Account" + }, + { + "name": "Store Configuration" + } + ], + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ] +} diff --git a/clients/manitou/output/logistics.json b/clients/manitou/output/logistics.json new file mode 100644 index 0000000000..23584b6bce --- /dev/null +++ b/clients/manitou/output/logistics.json @@ -0,0 +1,8677 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Logistics API", + "description": "[Logistics or fulfillment](https://help.vtex.com/en/tutorial/logistics--53udnvI5eBy8DKo8FOjMoP) is the process of planning and executing the transportation, storage of merchandise, and shipping orders to customers. You can accomplish all of this with the VTEX platform, which allows you to manage your inventory, shipping rates, pickup points and more.\r\n\r\n## Logistics API Index\r\n\r\n### Shipping Policies\r\n\r\n- `GET` [Retrieve shipping policy by ID](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/shipping-policies/-id-)\r\n- `DELETE` [Delete shipping policies by ID](https://developers.vtex.com/docs/api-reference/logistics-api#delete-/api/logistics/pvt/shipping-policies/-id-)\r\n- `PUT` [Update shipping policy](https://developers.vtex.com/docs/api-reference/logistics-api#put-/api/logistics/pvt/shipping-policies/-id-)\r\n- `GET` [List shipping policies](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/shipping-policies)\r\n- `POST` [Create shipping policy](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/shipping-policies)\r\n\r\n### Freight Values\r\n\r\n- `POST` [Create/update freight values](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/configuration/freights/-carrierId-/values/update)\r\n- `GET` [List freight values](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/freights/-carrierId-/-cep-/values)\r\n\r\n### Scheduled Delivery\r\n\r\n- `GET` [Retrieve blocked delivery windows](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/carriers/-carrierId-/getdayofweekblocked)\r\n- `POST` [Add blocked delivery windows](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/configuration/carriers/-carrierId-/adddayofweekblocked)\r\n- `POST` [Remove blocked delivery windows](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/configuration/carriers/-carrierId-/removedayofweekblocked)\r\n- `GET` [Search capacity reservations in time range](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics-capacity/resources/carrier@-capacityType-@-shippingPolicyId-/time-frames)\r\n- `GET` [Get capacity reservation usage by window](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics-capacity/resources/carrier@-capacityType-@-shippingPolicyId-/time-frames/-windowDay-F-windowStartTime-T-windowEndTime-)\r\n\r\n### Docks\r\n\r\n- `POST` [Create/update dock](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/configuration/docks)\r\n- `GET` [List all docks](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/docks)\r\n- `GET` [List dock by ID](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/docks/-dockId-)\r\n- `DELETE` [Delete dock](https://developers.vtex.com/docs/api-reference/logistics-api#delete-/api/logistics/pvt/configuration/docks/-dockId-)\r\n- `POST` [Activate dock](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/configuration/docks/-dockId-/activation)\r\n- `POST` [Deactivate dock](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/configuration/docks/-dockId-/deactivation)\r\n\r\n### Warehouses\r\n\r\n- `POST` [Create/update warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/configuration/warehouses)\r\n- `GET` [List all warehouses](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/warehouses)\r\n- `GET` [List warehouse by ID](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/warehouses/-warehouseId-)\r\n- `DELETE` [Remove warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#delete-/api/logistics/pvt/configuration/warehouses/-warehouseId-)\r\n- `POST` [Activate warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/configuration/warehouses/-warehouseId-/activation)\r\n- `POST` [Deactivate warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/configuration/warehouses/-warehouseId-/deactivation)\r\n\r\n### Inventory\r\n\r\n- `GET` [List inventory by SKU](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/inventory/skus/-skuId-)\r\n- `GET` [List inventory per warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/inventory/items/-skuId-/warehouses/-warehouseId-)\r\n- `PUT` [Update inventory by SKU and warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#put-/api/logistics/pvt/inventory/skus/-skuId-/warehouses/-warehouseId-)\r\n- `PATCH` [Update inventory quantity by SKU and warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#patch-/api/logistics/pvt/inventory/skus/-skuId-/warehouses/-warehouseId-/quantity)\r\n- `PATCH` [Update inventory lead time by SKU and warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#patch-/api/logistics/pvt/inventory/skus/-skuId-/warehouses/-warehouseId-/lead-time)\r\n- `GET` [List inventory per dock](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/inventory/items/-skuId-/docks/-dockId-)\r\n- `GET` [List inventory per dock and warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/inventory/items/-skuId-/docks/-dockId-/warehouses/-warehouseId-)\r\n- `GET` [List inventory with dispatched reservations](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/inventory/items/-itemId-/warehouses/-warehouseId-/dispatched)\r\n- `GET` [List supply lots](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/inventory/items/-skuId-/warehouses/-warehouseId-/supplyLots)\r\n- `PUT` [Save supply lot](https://developers.vtex.com/docs/api-reference/logistics-api#put-/api/logistics/pvt/inventory/items/-skuId-/warehouses/-warehouseId-/supplyLots/-supplyLotId-)\r\n- `POST` [Transfer supply lot](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/inventory/items/-skuId-/warehouses/-warehouseId-/supplyLots/-supplyLotId-/transfer)\r\n\r\n### Holidays\r\n\r\n- `PUT` [Create/update holiday](https://developers.vtex.com/docs/api-reference/logistics-api#put-/api/logistics/pvt/configuration/holidays/-holidayId-)\r\n- `GET` [List holiday by ID](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/holidays/-holidayId-)\r\n- `DELETE` [Delete holiday](https://developers.vtex.com/docs/api-reference/logistics-api#delete-/api/logistics/pvt/configuration/holidays/-holidayId-)\r\n- `GET` [List all holidays](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/holidays)\r\n\r\n### Reservations\r\n\r\n- `POST` [Create reservation](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/inventory/reservations)\r\n- `GET` [List reservation by ID](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/inventory/reservations/-reservationId-)\r\n- `POST` [Confirm reservation](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/inventory/reservations/-reservationId-/confirm)\r\n- `POST` [Acknowledgment reservation](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/inventory/reservations/-reservationId-/acknowledge)\r\n- `POST` [Cancel reservation](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/inventory/reservations/-reservationId-/cancel)\r\n- `GET` [List reservation by warehouse and SKU](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/inventory/reservations/-warehouseId-/-skuId-)\r\n\r\n### SLA\r\n\r\n- `POST` [Calculate SLA](https://developers.vtex.com/docs/api-reference/logistics-api#post-/api/logistics/pvt/shipping/calculate)\r\n\r\n### Pickup points\r\n\r\n- `GET` [List pickup points](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/pickuppoints)\r\n- `PUT` [Create/Update Pickup Point](https://developers.vtex.com/docs/api-reference/logistics-api#put-/api/logistics/pvt/configuration/pickuppoints/-pickupPointId-)\r\n- `GET` [List Pickup Point By ID](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/pickuppoints/-pickupPointId-)\r\n- `DELETE` [Delete Pickup Point](https://developers.vtex.com/docs/api-reference/logistics-api#delete-/api/logistics/pvt/configuration/pickuppoints/-pickupPointId-)\r\n- `GET` [List paged Pickup Points](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/pickuppoints/_search)\r\n\r\n### Polygons\r\n\r\n- `GET` [List paged polygons](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/geoshape)\r\n- `PUT` [Create/update polygon](https://developers.vtex.com/docs/api-reference/logistics-api#put-/api/logistics/pvt/configuration/geoshape)\r\n- `GET` [List polygon by ID](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/geoshape/-polygonName-)\r\n- `DELETE` [Delete polygon](https://developers.vtex.com/docs/api-reference/logistics-api#delete-/api/logistics/pvt/configuration/geoshape/-polygonName-) \r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| :---: | :--- | :--- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/logistics/pvt/shipping-policies/{id}": { + "get": { + "tags": [ + "Shipping policies" + ], + "summary": "Retrieve shipping policy by ID", + "description": "Retrieves information from a [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) from your store, searching by shipping policy ID.\r\n\r\n>⚠️ While most endpoints return time fields in UTC format, this endpoint returns **Scheduled Delivery** related time fields adjusted to the time zone configured for the VTEX account.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "[Shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) ID.", + "schema": { + "type": "string", + "example": "sp12" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ShippingPolicy" + }, + "example": { + "id": "store-sp-01", + "name": "store-sp-01", + "shippingMethod": "normal delivery", + "weekendAndHolidays": { + "saturday": true, + "sunday": true, + "holiday": true + }, + "maxDimension": { + "largestMeasure": 0, + "maxMeasureSum": 1100 + }, + "numberOfItemsPerShipment": 1, + "minimumValueAceptable": 0, + "maximumValueAceptable": 0, + "additionalTime": "00:00:00", + "additionalPrice": { + "method": 0, + "value": 0 + }, + "deliveryScheduleSettings": { + "useDeliverySchedule": true, + "dayOfWeekForDelivery": [ + { + "dayOfWeek": 1, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 2, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 3, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 4, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 5, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 6, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 0, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + } + ], + "maxRangeDelivery": 1, + "dayOfWeekBlockeds": [ + "2024-02-13T09:00:00", + "2024-06-09T09:00:00" + ] + }, + "carrierSchedule": [ + { + "dayOfWeek": 0, + "timeLimit": "time_limit" + } + ], + "cubicWeightSettings": { + "volumetricFactor": 0.2, + "minimunAcceptableVolumetricWeight": 0 + }, + "modalSettings": { + "modals": [ + "LIQUID" + ], + "useOnlyItemsWithDefinedModal": false + }, + "businessHourSettings": { + "carrierBusinessHours": [ + { + "dayOfWeek": 1, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 2, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 3, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 4, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 5, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 6, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 0, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + } + ], + "isOpenOutsideBusinessHours": true + }, + "pickupPointsSettings": { + "pickupPointIds": [ + "Id1", + "Id2" + ], + "pickupPointTags": [ + "Tag1", + "Tag2" + ], + "sellers": [ + "Seller1" + ] + }, + "processingStatus": { + "status": 1, + "errorMessage": null, + "errorsMetadata": null + }, + "deliveryChannel": "delivery", + "calculationType": 0, + "isActive": true, + "lastIndexedAt": "2024-05-30T14:13:34.158121+00:00", + "shippingHoursSettings": { + "shippingHours": [ + { + "dayOfWeek": 1, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 2, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 3, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 4, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 5, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 6, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 0, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + } + ], + "acceptOrdersOutsideShippingHours": true + }, + "carrierInfo": { + "carrierAccountName": "vtexcorreios", + "deliveryAgreementId": "d91dee11-6afb-4835-99bc-5r671a578076", + "linkedDocks": [ + { + "id": "2656", + "name": "CORREIOS 2656" + } + ], + "readyToUse": true + } + } + } + } + } + }, + "operationId": "get_api_logistics_pvt_shippingPolicies_ById" + }, + "delete": { + "tags": [ + "Shipping policies" + ], + "summary": "Delete shipping policy by ID", + "description": "Deletes a [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) of your store, searching by shipping policy ID. \r\n\r\n>⚠️ While most endpoints return time fields in UTC format, this endpoint returns **Scheduled Delivery** related time fields adjusted to the time zone configured for the VTEX account. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "ID of the shipping policy.", + "schema": { + "type": "string", + "example": "id" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "delete_api_logistics_pvt_shippingPolicies_ById" + }, + "put": { + "tags": [ + "Shipping policies" + ], + "summary": "Update shipping policy by ID", + "description": "Updates information about a [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) of your store, searching by shipping policy ID. \r\n\r\n>⚠️ While most endpoints return time fields in UTC format, this endpoint returns **Scheduled Delivery** related time fields adjusted to the time zone configured for the VTEX account. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "Shipping policy ID.", + "schema": { + "type": "string", + "example": "shippingpolicyid1" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "name", + "shippingMethod", + "deliveryOnWeekends", + "maxDimension", + "isActive" + ], + "properties": { + "name": { + "type": "string", + "description": "[Shipping policy]((https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) name.", + "example": "Correios PAC" + }, + "shippingMethod": { + "type": "string", + "description": "Type of shipping available for this shipping policy (carrier). Options are shown on [shipping simulation](https://help.vtex.com/en/tutorial/shipping-simulation--tutorials_144).", + "example": "Normal" + }, + "deliveryOnWeekends": { + "type": "boolean", + "description": "Defines if the delivery on weekends configuration is active (`true`) or not (`false`).", + "example": false + }, + "maxDimension": { + "type": "object", + "description": "Object containing attributes of maximum dimension permitted by the shipping policy (carrier).", + "example": { + "largestMeasure": 10, + "maxMeasureSum": 30 + }, + "required": [ + "largestMeasure", + "maxMeasureSum" + ], + "properties": { + "largestMeasure": { + "type": "number", + "description": "Largest measure acceptable of the package.", + "example": 0 + }, + "maxMeasureSum": { + "type": "number", + "description": "Sum of all maximum measures of the package.", + "example": 0 + } + } + }, + "cubicWeightSettings": { + "type": "object", + "description": "Settings for the cubic weight of a package, which accounts for the [package's volume](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128), and not only weight.", + "properties": { + "volumetricFactor": { + "type": "number", + "description": "Factor that will be used on the cubic weight calculation, usually given by the carrier.", + "example": 0.2 + }, + "minimunAcceptableVolumetricWeight": { + "type": "number", + "description": "Packages' minimum acceptable [volumetric weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128).", + "example": 0 + } + } + }, + "modalSettings": { + "type": "object", + "description": "Configurations for the [modal](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125), which is the attachement of a specific product to a carrier specialized in delivering that type of product.", + "properties": { + "modals": { + "type": "array", + "description": "Type of special freight.", + "items": { + "type": "string", + "enum": [ + "CHEMICALS", + "ELECTRONICS", + "FURNITURE", + "GLASS", + "LIQUID", + "MATTRESSES", + "REFRIGERATED", + "TIRES", + "WHITE_GOODS", + "FIREARMS" + ], + "description": "Modal values assigned to the special freight.", + "example": "LIQUID" + } + }, + "useOnlyItemsWithDefinedModal": { + "type": "boolean", + "description": "When set as `true`, the modal's configurations will apply only for items with a defined modal, when `false`, the modal configuration will not be set.", + "example": false + } + } + }, + "isActive": { + "type": "boolean", + "description": "Defines if the shipping policy is active (`true`) or inactive (`false`).", + "example": true + }, + "deliveryScheduleSettings": { + "type": "object", + "description": "[Scheduled delivery](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) settings.", + "required": [ + "useDeliverySchedule", + "dayOfWeekForDelivery", + "maxRangeDelivery" + ], + "properties": { + "useDeliverySchedule": { + "type": "boolean", + "description": "Defines if the scheduled delivery configuration is active (`true`) or inactive (`false`).", + "example": true + }, + "maxRangeDelivery": { + "type": "number", + "description": "Range of days available within a delivery window, for the customer to choose the scheduled delivery. For example, if the configured maxRangeDelivery is equal 7, and the customer buys something on a Tuesday, the options for scheduled delivery will be shown until the following Tuesday (7 days from the purchase day). If no options are available within the maxRangeDelivery set, this shipping policy won't be shown on the checkout.", + "example": 0 + }, + "dayOfWeekForDelivery": { + "type": "array", + "description": "Select the chosen days of the week for delivery, from `0` (sunday) to `6` (saturday). Make sure to add the available hours, as shown in the example.", + "items": { + "type": "object", + "description": "Configuration for delivery for a single day of the week.", + "required": [ + "dayOfWeek", + "deliveryRanges" + ], + "properties": { + "dayOfWeek": { + "type": "integer", + "description": "Day of the week, from `0` (Sunday) to `6` (Saturday).", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "example": 2 + }, + "deliveryRanges": { + "type": "array", + "description": "Reservation windows for scheduled delivery.", + "items": { + "type": "object", + "description": "Delivery ranges object.", + "required": [ + "startTime", + "endTime", + "listPrice" + ], + "properties": { + "startTime": { + "type": "string", + "description": "Start time for day of the week.", + "example": "11:00:00" + }, + "endTime": { + "type": "string", + "description": "End time for day of the week.", + "example": "12:30:00" + }, + "listPrice": { + "type": "number", + "description": "List price for day of the week.", + "example": 0 + }, + "deliveryCapacity": { + "type": "array", + "description": "Sets maximum delivery capacity for a given reservation window for scheduled delivery.", + "items": { + "type": "object", + "description": "Delivery capacity object.", + "required": [ + "capacityType", + "maxValue" + ], + "properties": { + "capacityType": { + "type": "string", + "description": "Defines how the delivery capacity is measured for this reservation window, by maximum number of orders (`\"ORDERS_QUANTITY\"`) or SKUs (`\"SKUS_QUANTITY\"`).", + "example": "ORDERS_QUANTITY" + }, + "maxValue": { + "type": "number", + "description": "Maximum number of orders or SKUs that the store is capable of fulfilling.", + "example": 0 + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "operationId": "put_api_logistics_pvt_shippingPolicies_ById" + } + }, + "/api/logistics/pvt/shipping-policies": { + "get": { + "tags": [ + "Shipping policies" + ], + "summary": "List shipping policies", + "description": "Lists all [shipping policies](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) from your store.\r\n\r\n>⚠️ While most endpoints return time fields in UTC format, this endpoint returns **Scheduled Delivery** related time fields adjusted to the time zone configured for the VTEX account.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "parameters": [ + { + "name": "page", + "in": "query", + "required": false, + "description": "Number of the starting page of the response. When no value is sent, it starts in page `1`.", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "perPage", + "in": "query", + "required": false, + "description": "Desired number of items per page, to retrieve information from your shipping policies.", + "schema": { + "type": "integer", + "example": 15 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Paged shipping policies list.", + "properties": { + "items": { + "type": "array", + "description": "List of shipping policies related to the account.", + "items": { + "$ref": "#/components/schemas/ShippingPolicy" + } + }, + "paging": { + "type": "object", + "description": "Pagination information.", + "properties": { + "page": { + "type": "integer", + "description": "Number of the current page of the response. By default, it returns page `1`." + }, + "perPage": { + "type": "integer", + "description": "Number of shipping policies per page." + }, + "total": { + "type": "integer", + "description": "Total number of existing shipping policies." + }, + "pages": { + "type": "integer", + "description": "Total number of pages, considering all shipping policies." + } + } + } + } + }, + "example": { + "items": [ + { + "id": "store-sp-01", + "name": "store-sp-01", + "shippingMethod": "normal delivery", + "weekendAndHolidays": { + "saturday": true, + "sunday": true, + "holiday": true + }, + "maxDimension": { + "largestMeasure": 0, + "maxMeasureSum": 1100 + }, + "numberOfItemsPerShipment": 1, + "minimumValueAceptable": 0, + "maximumValueAceptable": 0, + "additionalTime": "00:00:00", + "additionalPrice": { + "method": 0, + "value": 0 + }, + "deliveryScheduleSettings": { + "useDeliverySchedule": true, + "dayOfWeekForDelivery": [ + { + "dayOfWeek": 1, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 2, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 3, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 4, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 5, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 6, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + }, + { + "dayOfWeek": 0, + "deliveryRanges": [ + { + "startTime": "00:00:00", + "endTime": "23:59:59", + "listPrice": 0, + "deliveryCapacity": null + } + ] + } + ], + "maxRangeDelivery": 1, + "dayOfWeekBlockeds": [ + "2024-02-13T09:00:00", + "2024-06-09T09:00:00" + ] + }, + "carrierSchedule": [ + { + "dayOfWeek": 0, + "timeLimit": "time_limit" + } + ], + "cubicWeightSettings": { + "volumetricFactor": 0.2, + "minimunAcceptableVolumetricWeight": 0 + }, + "modalSettings": { + "modals": [ + "LIQUID" + ], + "useOnlyItemsWithDefinedModal": false + }, + "businessHourSettings": { + "carrierBusinessHours": [ + { + "dayOfWeek": 1, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 2, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 3, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 4, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 5, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 6, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 0, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + } + ], + "isOpenOutsideBusinessHours": true + }, + "pickupPointsSettings": { + "pickupPointIds": [ + "Id1", + "Id2" + ], + "pickupPointTags": [ + "Tag1", + "Tag2" + ], + "sellers": [ + "Seller1" + ] + }, + "processingStatus": { + "status": 1, + "errorMessage": null, + "errorsMetadata": null + }, + "deliveryChannel": "delivery", + "calculationType": 0, + "isActive": true, + "lastIndexedAt": "2024-05-30T14:13:34.158121+00:00", + "shippingHoursSettings": { + "shippingHours": [ + { + "dayOfWeek": 1, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 2, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 3, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 4, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 5, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 6, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 0, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + } + ], + "acceptOrdersOutsideShippingHours": true + }, + "carrierInfo": { + "carrierAccountName": "vtexcorreios", + "deliveryAgreementId": "d91dee11-6afb-4835-99bc-5r671a578076", + "linkedDocks": [ + { + "id": "2656", + "name": "CORREIOS 2656" + } + ], + "readyToUse": true + } + } + ], + "paging": { + "page": 1, + "perPage": 15, + "total": 43, + "pages": 3 + } + } + } + } + } + }, + "operationId": "get_api_logistics_pvt_shippingPolicies" + }, + "post": { + "tags": [ + "Shipping policies" + ], + "summary": "Create shipping policy", + "description": "Configure a new [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) for your store. \r\n\r\n>⚠️ While most endpoints return time fields in UTC format, this endpoint returns **Scheduled Delivery** related time fields adjusted to the time zone configured for the VTEX account. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "responses": { + "200": { + "description": "OK" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "id", + "name", + "shippingMethod", + "weekendAndHolidays", + "maxDimension", + "numberOfItemsPerShipment", + "minimumValueAceptable", + "maximumValueAceptable", + "deliveryScheduleSettings", + "cubicWeightSettings", + "modalSettings", + "businessHourSettings", + "pickupPointsSettings", + "isActive" + ], + "properties": { + "id": { + "type": "string", + "description": "ID of the shipping policy.", + "example": "123" + }, + "name": { + "type": "string", + "description": "Name of the shipping policy.", + "example": "Normal" + }, + "shippingMethod": { + "type": "string", + "description": "Type of shipping available for this shipping policy (carrier). Options shown on freight simulation.", + "example": "Normal" + }, + "weekendAndHolidays": { + "type": "object", + "description": "If the shipping policy includes deliveries on weekends and holidays.", + "example": { + "saturday": false, + "sunday": false, + "holiday": false + }, + "required": [ + "saturday", + "sunday", + "holiday" + ], + "properties": { + "saturday": { + "type": "boolean", + "description": "Defines if the shipping policy allows deliveries on Saturdays (`true`), or not (`false`).", + "example": false + }, + "sunday": { + "type": "boolean", + "description": "Defines if the shipping policy allows deliveries on Sundays (`true`), or not (`false`).", + "example": false + }, + "holiday": { + "type": "boolean", + "description": "Defines if the shipping policy allows deliveries on holidays (`true`), or not (`false`).", + "example": false + } + } + }, + "maxDimension": { + "type": "object", + "description": "Object containing attributes of maximum dimension permitted by the shipping policy (carrier).", + "example": { + "largestMeasure": 15, + "maxMeasureSum": 25 + }, + "required": [ + "largestMeasure", + "maxMeasureSum" + ], + "properties": { + "largestMeasure": { + "type": "number", + "description": "Largest measure of the package.", + "example": 0 + }, + "maxMeasureSum": { + "type": "number", + "description": "Sum of all maximum measures of the package.", + "example": 0 + } + } + }, + "numberOfItemsPerShipment": { + "type": "integer", + "description": "Capacity of your store's logistics of shipment, determines number of items permitted per shipment.", + "example": 5 + }, + "minimumValueAceptable": { + "type": "number", + "description": "Minimum value accepted by the carrier, to realize the shipping.", + "example": 0 + }, + "maximumValueAceptable": { + "type": "number", + "description": "Maximum value accepted by the carrier, to realize the shipping.", + "example": 0 + }, + "deliveryScheduleSettings": { + "type": "object", + "description": "Settings for the Scheduled Delivery feature.", + "required": [ + "useDeliverySchedule", + "dayOfWeekForDelivery", + "maxRangeDelivery" + ], + "properties": { + "useDeliverySchedule": { + "type": "boolean", + "description": "Select the Scheduled Delivery configuration.", + "example": true + }, + "maxRangeDelivery": { + "type": "number", + "description": "Range of days available within a delivery window, for the customer to choose the scheduled delivery. For example, if the configured maxRangeDelivery is equal 7, and the customer buys something on a Tuesday, the options for scheduled delivery will be shown until the following Tuesday (7 days from the purchase day). If no options are available within the maxRangeDelivery set, this shipping policy won't be shown on the checkout.", + "example": 0 + }, + "dayOfWeekForDelivery": { + "type": "array", + "description": "Select the chosen days for delivery. Values for each day of the week are: `0` = Sunday, `1` = Monday, `2` = Tuesday, `3` = Wednesday, `4` = Thursday, `5` = Friday, `6` = Saturday. Make sure to add the available hours for the chosen days, following the example.", + "items": { + "type": "object", + "description": "Day of the week for delivery object.", + "required": [ + "dayOfWeek", + "deliveryRanges" + ], + "properties": { + "dayOfWeek": { + "type": "integer", + "description": "Day of the week, from `0` (sunday) to `6` (saturday).", + "example": 2 + }, + "deliveryRanges": { + "type": "array", + "description": "Reservation windows for scheduled delivery.", + "items": { + "type": "object", + "description": "Delivery ranges object.", + "required": [ + "startTime", + "endTime", + "listPrice" + ], + "properties": { + "startTime": { + "type": "string", + "description": "Start time for day of the week.", + "example": "11:00:00" + }, + "endTime": { + "type": "string", + "description": "End time for day of the week.", + "example": "12:30:00" + }, + "listPrice": { + "type": "number", + "description": "List price for day of the week.", + "example": 0 + }, + "deliveryCapacity": { + "type": "array", + "description": "Sets maximum delivery capacity for a given reservation window for scheduled delivery.", + "items": { + "type": "object", + "description": "Delivery capacity object.", + "required": [ + "capacityType", + "maxValue" + ], + "properties": { + "capacityType": { + "type": "string", + "description": "Defines how the delivery capacity is measured for this reservation window, by maximum number of orders (`\"ORDERS_QUANTITY\"`) or SKUs (`\"SKUS_QUANTITY\"`).", + "example": "ORDERS_QUANTITY" + }, + "maxValue": { + "type": "number", + "description": "Maximum number of orders or SKUs that the store is capable of fulfilling.", + "example": 55 + } + } + } + } + } + } + } + } + } + } + } + }, + "carrierSchedule": { + "type": "array", + "description": "Schedule sent by the carrier to configure the shipping policy.", + "items": { + "type": "object", + "description": "Carrier schedule object.", + "properties": { + "dayOfWeek": { + "type": "integer", + "description": "Day of the week, from `0` (sunday) to `6` (saturday).", + "example": 0 + }, + "timeLimit": { + "type": "string", + "description": "Time limit.", + "example": "time_limit" + } + } + } + }, + "cubicWeightSettings": { + "type": "object", + "description": "Measure including the [package's volume](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128), and not only weight.", + "required": [ + "volumetricFactor", + "minimunAcceptableVolumetricWeight" + ], + "properties": { + "volumetricFactor": { + "type": "number", + "description": "Factor that will be used on the cubic weight calculation.", + "example": 3 + }, + "minimunAcceptableVolumetricWeight": { + "type": "number", + "description": "Packages' minimum acceptable [volumetric weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128).", + "example": 5 + } + } + }, + "modalSettings": { + "type": "object", + "description": "Configurations for the [modal](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125), which is the attachement of a specific product to a carrier specialized in delivering that type of product.", + "required": [ + "modals", + "useOnlyItemsWithDefinedModal" + ], + "properties": { + "modals": { + "type": "array", + "description": "Type of special freight.", + "items": { + "type": "string", + "enum": [ + "CHEMICALS", + "ELECTRONICS", + "FURNITURE", + "GLASS", + "LIQUID", + "MATTRESSES", + "REFRIGERATED", + "TIRES", + "WHITE_GOODS", + "FIREARMS" + ], + "description": "Modal values assigned to the special freight.", + "example": "ELECTRONICS" + } + }, + "useOnlyItemsWithDefinedModal": { + "type": "boolean", + "description": "Defines if the modal's configurations will apply only for items with a defined modal (`true`) or not (`false`).", + "example": false + } + } + }, + "businessHourSettings": { + "type": "object", + "description": "Business hours configurations.", + "required": [ + "carrierBusinessHours", + "isOpenOutsideBusinessHours" + ], + "properties": { + "carrierBusinessHours": { + "type": "array", + "description": "Carrier business hours configurations for the week.", + "items": { + "type": "object", + "description": "Carrier business hours configurations for a day of the week.", + "required": [ + "openingTime", + "closingTime", + "dayOfWeek" + ], + "properties": { + "openingTime": { + "type": "string", + "description": "Opening time.", + "example": "00:00:00" + }, + "closingTime": { + "type": "string", + "description": "Closing time.", + "example": "23:59:59" + }, + "dayOfWeek": { + "type": "integer", + "description": "Day of the week, from `0` (Sunday) to `6` (Saturday).", + "example": 1 + } + } + } + }, + "isOpenOutsideBusinessHours": { + "type": "boolean", + "description": "Select whether the shipping policy allows deliveries outside business hours (`true`) or not (`false`).", + "example": true + } + } + }, + "pickupPointsSettings": { + "type": "object", + "description": "Configuration for Pickup Points.", + "nullable": true, + "required": [ + "pickupPointIds", + "pickupPointTags", + "sellers" + ], + "properties": { + "pickupPointIds": { + "type": "array", + "description": "Insert the IDs for pickup points previously configured in your store.", + "items": { + "type": "string", + "description": "Pickup point IDs.", + "example": "Id1" + } + }, + "pickupPointTags": { + "type": "array", + "description": "Insert the tags for pickup points previously configured in your store.", + "example": [ + "Tag1", + "Tag2" + ], + "items": { + "type": "string", + "description": "Tag IDs.", + "example": "Tag1" + } + }, + "sellers": { + "type": "array", + "description": "Sellers that will be associated with the [pickup points](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) of the shipping policy being created.", + "items": { + "type": "string", + "description": "Seller names.", + "example": "Seller1" + } + } + } + }, + "isActive": { + "type": "boolean", + "description": "Defines if the shipping policy is active (`true`) or not (`false`).", + "example": false + } + } + } + } + } + }, + "operationId": "post_api_logistics_pvt_shippingPolicies" + } + }, + "/api/logistics/pvt/configuration/freights/{carrierId}/values/update": { + "post": { + "tags": [ + "Freight values" + ], + "summary": "Create or update freight values", + "description": "Creates or updates freight values for your store's carriers. Learn more in [Shipping rate template](https://help.vtex.com/en/tutorial/shipping-rate-template--tutorials_127).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Create/UpdateFreightValues", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "Carrier ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "carrier123" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array of objects, each containing information on a specific freight interval.", + "items": { + "required": [ + "absoluteMoneyCost", + "country", + "maxVolume", + "operationType", + "pricePercent", + "pricePercentByWeight", + "timeCost", + "weightEnd", + "weightStart", + "zipCodeEnd", + "zipCodeStart", + "polygon" + ], + "type": "object", + "description": "Freight interval object.", + "properties": { + "absoluteMoneyCost": { + "type": "string", + "description": "Fixed shipping cost to be charged in a decimal number.", + "example": "1.00" + }, + "country": { + "type": "string", + "description": "Three letter ISO code for the country where the delivery will take place.", + "example": "BRA" + }, + "maxVolume": { + "type": "integer", + "description": "Maximum volume that can be transported by the carrier in cm³.", + "example": 1000000000 + }, + "operationType": { + "type": "integer", + "description": "Indicates desired action for the object. Possible values are `1` (Insert), `2` (Update) or `3`(Delete).", + "example": 1 + }, + "pricePercent": { + "type": "integer", + "description": "[Price-based additional shipping charge](https://help.vtex.com/en/tutorial/additional-shipping-costs--2vqGwMn0LabkOHY6zSHYNV), calculated based on the total price of the order, in decimal number. You must fill in this field with a percentage value. For example, for an additional charge of 10%, fill in the table with 10.", + "example": 10 + }, + "pricePercentByWeight": { + "type": "integer", + "description": "[Weight-based additional shipping charge](https://help.vtex.com/en/tutorial/additional-shipping-costs--2vqGwMn0LabkOHY6zSHYNV), calculated based on the total weight of the order.", + "example": 0 + }, + "timeCost": { + "type": "string", + "description": "Delivery time frame informed by the carrier, in the format `DD.HH:MM:SS`.", + "example": "2.00:00:00" + }, + "weightEnd": { + "type": "integer", + "description": "Maximum weight allowed.", + "example": 1000 + }, + "weightStart": { + "type": "integer", + "description": "Minimum weight allowed.", + "example": 1 + }, + "zipCodeEnd": { + "type": "string", + "description": "End of postal code interval.", + "example": "1234500" + }, + "zipCodeStart": { + "type": "string", + "description": "Start of postal code interval.", + "example": "1000000" + }, + "polygon": { + "type": "string", + "description": "Polygon ID, according to the [geolocation](https://help.vtex.com/en/tutorial/registering-geolocation/) feature.", + "example": "polygon2" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/logistics/pvt/configuration/freights/{carrierId}/{cep}/values": { + "get": { + "tags": [ + "Freight values" + ], + "summary": "List freight values", + "description": "Lists freight values appointed to your store's carriers, searching by carrier ID and postal code (`cep`). The information is retrieved from your [shipping rate template](https://help.vtex.com/en/tutorial/shipping-rate-template--tutorials_127) configurations.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "FreightValues", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "Carrier ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "carrier-123" + } + }, + { + "name": "cep", + "in": "path", + "description": "Postal code of the area in which you wish to retrieve freight values for a given carrier, according to your [shipping rate template](https://help.vtex.com/en/tutorial/shipping-rate-template--tutorials_127) configurations.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "12345000" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of freight values.", + "items": { + "required": [ + "zipCodeStart", + "zipCodeEnd", + "weightStart", + "weightEnd", + "absoluteMoneyCost", + "pricePercent", + "pricePercentByWeight", + "maxVolume", + "timeCost", + "country", + "operationType", + "restrictedFreights", + "polygon", + "minimumValueInsurance" + ], + "type": "object", + "description": "Freight values object.", + "properties": { + "zipCodeStart": { + "type": "string", + "description": "Postal code interval starting point." + }, + "zipCodeEnd": { + "type": "string", + "description": "Postal code interval ending point." + }, + "weightStart": { + "type": "number", + "description": "Minimum weight allowed." + }, + "weightEnd": { + "type": "number", + "description": "Maximum weight allowed." + }, + "absoluteMoneyCost": { + "type": "number", + "description": "Fixed shipping cost to be charged, in a decimal number." + }, + "pricePercent": { + "type": "number", + "description": "[Price-based additional shipping charge](https://help.vtex.com/en/tutorial/additional-shipping-costs--2vqGwMn0LabkOHY6zSHYNV), calculated based on the total price of the order, in decimal number. You must fill in this field with a percentage value. For example, for an additional charge of 10%, fill in the table with `10`." + }, + "pricePercentByWeight": { + "type": "number", + "description": "[Weight-based additional shipping charge](https://help.vtex.com/en/tutorial/additional-shipping-costs--2vqGwMn0LabkOHY6zSHYNV), calculated based on the total weight of the order." + }, + "maxVolume": { + "type": "number", + "description": "Maximum volume that can be transported by the carrier in cm³." + }, + "timeCost": { + "type": "string", + "description": "Delivery time frame informed by the carrier, in the format `DD.HH:MM:SS`." + }, + "country": { + "type": "string", + "description": "Three letter ISO code for the country for the given postal code." + }, + "operationType": { + "type": "integer", + "description": "Indicates the operation type, which can be `1` (Insert), `2` (Update) or `3`(Delete)." + }, + "restrictedFreights": { + "type": "array", + "items": { + "type": "string", + "description": "Restricted freight postal codes." + }, + "description": "List of postal codes where the delivery is restricted for the given carrier.", + "nullable": true + }, + "polygon": { + "type": "string", + "description": "Polygon ID, according to the [geolocation](https://help.vtex.com/en/tutorial/registering-geolocation/) feature." + }, + "minimumValueInsurance": { + "type": "number", + "description": "Insurance minimum value." + } + } + } + }, + "example": [ + { + "zipCodeStart": "01000001", + "zipCodeEnd": "05999999", + "weightStart": 250.001, + "weightEnd": 300, + "absoluteMoneyCost": 329.9, + "pricePercent": 0, + "pricePercentByWeight": 0, + "maxVolume": 100000000, + "timeCost": "2.00:00:00", + "country": "BRA", + "operationType": 0, + "restrictedFreights": [ + "01056051" + ], + "polygon": "central_RJ", + "minimumValueInsurance": 0 + }, + { + "zipCodeStart": "01230020", + "zipCodeEnd": "06959949", + "weightStart": 1001.001, + "weightEnd": 10000, + "absoluteMoneyCost": 15, + "pricePercent": 0, + "pricePercentByWeight": 0, + "maxVolume": 900000000, + "timeCost": "1.00:00:00", + "country": "BRA", + "operationType": 0, + "restrictedFreights": [], + "polygon": "zone_RJ", + "minimumValueInsurance": 0 + } + ] + } + } + } + } + } + }, + "/api/logistics/pvt/configuration/carriers/{carrierId}/getdayofweekblocked": { + "get": { + "tags": [ + "Scheduled delivery" + ], + "summary": "Retrieve blocked delivery windows", + "description": "Lists all blocked delivery windows of your store's shipping policies, searching by carrier ID.\n\r\n\r>⚠️ While most of our API endpoints return time fields in UTC format, this endpoint returns **Scheduled Delivery** related time fields adjusted to the configured time zone of the account.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "RetrieveBlockedDeliveryWindows", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "[Shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) ID (carrier ID).", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "carrier-123" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of blocked delivery windows date and time.", + "items": { + "type": "string", + "description": "Blocked delivery windows date and time in the format `YYYY-MM-DDTHH:MM:SS`. The time zone is set according to the store account." + } + }, + "example": [ + "2024-12-09T08:00:00", + "2025-12-09T08:00:00" + ] + } + } + } + } + } + }, + "/api/logistics/pvt/configuration/carriers/{carrierId}/adddayofweekblocked": { + "post": { + "tags": [ + "Scheduled delivery" + ], + "summary": "Add blocked delivery windows", + "description": "Adds blocked delivery windows for your store's shipping policies.\n\r\n\r>⚠️ While most of our API endpoints return time fields in UTC format, this endpoint returns time adjusted to the configured time zone of the account.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AddBlockedDeliveryWindows", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "[Shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) ID (carrier ID).", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "carrier-123" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "string", + "description": "Delivery window block starting date and time in the format `YYYY-MM-DDTHH:MM:SS`. The time zone is set according to the store account. Requests with incorrect values will be disconsidered by the system (for example, a date in the past), regardless of a successful response.", + "example": "2025-12-09T08:00:00" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean", + "description": "Successful requests return the message `true`." + }, + "example": true + } + } + } + } + } + }, + "/api/logistics/pvt/configuration/carriers/{carrierId}/removedayofweekblocked": { + "post": { + "tags": [ + "Scheduled delivery" + ], + "summary": "Remove blocked delivery windows", + "description": "Removes blocked delivery windows configured for a shipping policy of your [shipping strategy](https://help.vtex.com/en/tutorial/shipping-strategy--58vLBDbjYVQzJ6rRc5QNz3).\n\r\n\r>⚠️ While most of our endpoints return time values in UTC format, this endpoint returns time adjusted to the time zone set for the account.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "RemoveBlockedDeliveryWindows", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "[Shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) ID (carrier ID).", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "carrier-123" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "string", + "description": "Date and time of the delivery window block being removed, in the format `YYYY-MM-DDTHH:MM:SS`. The time zone is set according to the store account.", + "example": "2024-12-09T08:00:00" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean", + "description": "Successful requests return the message `true`." + }, + "example": true + } + } + } + } + } + }, + "/api/logistics/pvt/configuration/docks": { + "post": { + "tags": [ + "Docks" + ], + "summary": "Create or update dock", + "description": "Creates a new [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) or updates an existing one for your store's [shipping strategy](https://help.vtex.com/en/tutorial/shipping-strategy--58vLBDbjYVQzJ6rRc5QNz3).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Create/UpdateDock", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "name", + "priority", + "dockTimeFake", + "timeFakeOverhead", + "salesChannels", + "salesChannel", + "freightTableIds", + "wmsEndPoint", + "address" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID.", + "example": "1a8bce3" + }, + "name": { + "type": "string", + "description": "Loading dock name.", + "example": "Catete dock_3" + }, + "priority": { + "type": "integer", + "description": "Value used as a tie-breaking rule when selecting a loading dock.", + "example": 0 + }, + "dockTimeFake": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) processing time in the format `D.HH:MM:SS`. When not configured, it returns `00:00:00`.", + "example": "00:00:00" + }, + "timeFakeOverhead": { + "type": "string", + "description": "Time frame used to choose a loading dock when there is more than one loading dock with the same processing time. The lower the value entered in this field, the greater the possibility of the loading dock being chosen. \r\n>ℹ️ This field is not considered when calculating the delivery time.", + "example": "00:00:00" + }, + "salesChannels": { + "type": "array", + "items": { + "type": "string", + "description": "Sales channel (trade policy) numbers.", + "example": "3" + }, + "description": "Sales channels ([trade policies](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) to associate with the loading dock." + }, + "salesChannel": { + "type": "string", + "description": "Main sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) to associate with the loading dock.", + "example": "1" + }, + "freightTableIds": { + "type": "array", + "description": "List with freight table IDs.", + "items": { + "type": "string", + "description": "Freight table IDs.", + "example": "11cc4b6" + } + }, + "wmsEndPoint": { + "type": "string", + "description": "Warehouse Management System (WMS) fulfillment endpoint.", + "example": null, + "nullable": true + }, + "address": { + "type": "object", + "description": "Dock address object.", + "required": [ + "postalCode", + "country", + "city", + "state", + "neighborhood", + "street", + "number", + "complement", + "coordinates" + ], + "properties": { + "postalCode": { + "type": "string", + "description": "Dock address postal code.", + "example": "02220070" + }, + "country": { + "required": [ + "acronym", + "name" + ], + "type": "object", + "description": "Dock address country object.", + "properties": { + "acronym": { + "type": "string", + "description": "Three letter ISO code for the dock address country.", + "example": "BRA" + }, + "name": { + "type": "string", + "description": "Dock address country name.", + "example": "Brazil" + } + } + }, + "city": { + "type": "string", + "description": "Dock address city.", + "example": "Rio de Janeiro" + }, + "state": { + "type": "string", + "description": "Dock address state.", + "example": "RJ" + }, + "neighborhood": { + "type": "string", + "description": "Dock address neighborhood.", + "example": "Catete" + }, + "street": { + "type": "string", + "description": "Dock address street.", + "example": "Artur Bernardes Street" + }, + "number": { + "type": "string", + "description": "Dock address number.", + "example": "100" + }, + "complement": { + "type": "string", + "description": "Dock address complement.", + "example": "apartment" + }, + "coordinates": { + "type": "array", + "description": "Dock address geolocation coordinates.", + "items": { + "type": "array", + "description": "Geolocation coordinates, first longitude then latitude.", + "example": [ + -34.82939147949219, + -7.115228652954102 + ], + "items": { + "type": "number", + "description": "Longitude or latitude.", + "example": -34.82939147949219 + } + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean", + "description": "Successful requests return the message `true`." + }, + "example": true + } + } + } + } + }, + "get": { + "tags": [ + "Docks" + ], + "summary": "List all docks", + "description": "Retrieves information about all [loading docks](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) of your store's [shipping strategy](https://help.vtex.com/en/tutorial/shipping-strategy--58vLBDbjYVQzJ6rRc5QNz3).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "AllDocks", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List with docks information.", + "items": { + "$ref": "#/components/schemas/ListDocksById" + } + }, + "example": [ + { + "pickupStoreInfo": { + "isPickupStore": false, + "storeId": null, + "friendlyName": null, + "address": { + "postalCode": "01001-000", + "country": { + "acronym": "BRA", + "name": "Brasil" + }, + "city": "São Paulo", + "state": "SP", + "neighborhood": "Sé", + "street": "Praça da Sé", + "number": "100", + "complement": null, + "reference": "Next to the pink building", + "location": { + "latitude": -46.6342009, + "longitude": -23.5503099 + } + }, + "additionalInfo": null, + "dockId": null, + "distance": null, + "businessHours": null, + "pickupHolidays": null, + "sellerId": null, + "isThirdPartyPickup": false + }, + "storeId": null, + "pickupInStoreInfo": { + "isActice": false, + "additionalInfo": null + }, + "deliveryFromStoreInfo": { + "isActice": false, + "deliveryRadius": 0, + "deliveryFee": 0, + "deliveryTime": "00:00:00", + "maximumWeight": 0 + }, + "address": { + "postalCode": "01001-000", + "country": { + "acronym": "BRA", + "name": "Brasil" + }, + "city": "São Paulo", + "state": "SP", + "neighborhood": "Sé", + "street": "Praça da Sé", + "number": "", + "complement": null, + "reference": null, + "location": { + "latitude": -46.6342009, + "longitude": -23.5503099 + } + }, + "location": null, + "shippingRatesProviders": [], + "deliveryAgreementsIds": [], + "id": "1aa131g", + "name": "Dock Pac", + "priority": 0, + "dockTimeFake": "00:00:00", + "timeFakeOverhead": "00:00:00", + "salesChannels": [ + "1", + "2", + "3" + ], + "freightTableIds": [ + "1602051" + ], + "wmsEndPoint": null, + "isActive": true + }, + { + "pickupStoreInfo": { + "isPickupStore": false, + "storeId": null, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null, + "distance": null, + "businessHours": null, + "pickupHolidays": null, + "sellerId": null, + "isThirdPartyPickup": false + }, + "storeId": null, + "pickupInStoreInfo": { + "isActice": false, + "additionalInfo": null + }, + "deliveryFromStoreInfo": { + "isActice": false, + "deliveryRadius": 0, + "deliveryFee": 0, + "deliveryTime": "00:00:00", + "maximumWeight": 0 + }, + "address": { + "postalCode": "22220070", + "country": { + "acronym": "BRA", + "name": "Brazil" + }, + "city": "Rio de Janeiro", + "state": "RJ", + "neighborhood": "Catete", + "street": "Artur Bernardes Street", + "number": "100", + "complement": "apartment", + "coordinates": [ + -34.82939147949219, + -7.115228652954102 + ] + }, + "location": { + "zipCode": "22220070", + "country": "BRA", + "inStore": { + "IsCheckedIn": false, + "StoreId": null + } + }, + "shippingRatesProviders": [], + "deliveryAgreementsIds": [], + "id": "doc_dockTest", + "name": "Central dock", + "priority": 0, + "dockTimeFake": "00:00:00", + "timeFakeOverhead": "00:00:00", + "salesChannels": [ + "1" + ], + "salesChannel": "1", + "freightTableIds": [ + "andreia-sp-01" + ], + "wmsEndPoint": null, + "isActive": true + } + ] + } + } + } + } + } + }, + "/api/logistics/pvt/configuration/docks/{dockId}": { + "get": { + "tags": [ + "Docks" + ], + "summary": "List dock by ID", + "description": "Retrieves information about a [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) of your store's [shipping strategy](https://help.vtex.com/en/tutorial/shipping-strategy--58vLBDbjYVQzJ6rRc5QNz3), searching by dock ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "DockById", + "parameters": [ + { + "name": "dockId", + "in": "path", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "dock_1f95" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListDocksById" + }, + "example": { + "pickupStoreInfo": { + "isPickupStore": false, + "storeId": null, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null, + "distance": null, + "businessHours": null, + "pickupHolidays": null, + "sellerId": null, + "isThirdPartyPickup": false + }, + "storeId": null, + "pickupInStoreInfo": { + "isActice": false, + "additionalInfo": null + }, + "deliveryFromStoreInfo": { + "isActice": false, + "deliveryRadius": 0, + "deliveryFee": 0, + "deliveryTime": "00:00:00", + "maximumWeight": 0 + }, + "address": { + "postalCode": "22220070", + "country": { + "acronym": "BRA", + "name": "Brazil" + }, + "city": "Rio de Janeiro", + "state": "RJ", + "neighborhood": "Catete", + "street": "Artur Bernardes Street", + "number": "100", + "complement": "apartment", + "reference": "Next to the pink building", + "location": { + "latitude": -34.82939147949219, + "longitude": -7.115228652954102 + } + }, + "location": { + "zipCode": "22220070", + "country": "BRA", + "inStore": { + "IsCheckedIn": false, + "StoreId": null + } + }, + "shippingRatesProviders": [], + "deliveryAgreementsIds": [], + "id": "doc_dockTest", + "name": "Central dock", + "priority": 0, + "dockTimeFake": "00:00:00", + "timeFakeOverhead": "00:00:00", + "salesChannels": [ + "1" + ], + "salesChannel": "1", + "freightTableIds": [ + "andreia-sp-01" + ], + "wmsEndPoint": null, + "isActive": true + } + } + } + } + } + }, + "delete": { + "tags": [ + "Docks" + ], + "summary": "Delete dock", + "description": "Deletes a [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj), searching by dock ID.\r\n\r\nSuccessful requests receive a `200 OK` status code with `true` in the response body.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "Dock", + "parameters": [ + { + "name": "dockId", + "in": "path", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "dock_1f95" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean", + "description": "Successful requests return the message `true`." + }, + "example": true + } + } + } + } + } + }, + "/api/logistics/pvt/configuration/docks/{dockId}/activation": { + "post": { + "tags": [ + "Docks" + ], + "summary": "Activate dock", + "description": "Activates a [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) of your store's [shipping strategy](https://help.vtex.com/en/tutorial/shipping-strategy--58vLBDbjYVQzJ6rRc5QNz3), searching by dock ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "ActivateDock", + "parameters": [ + { + "name": "dockId", + "in": "path", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "dock_1f95" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/logistics/pvt/configuration/docks/{dockId}/deactivation": { + "post": { + "tags": [ + "Docks" + ], + "summary": "Deactivate dock", + "description": "Deactivates a [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) of your store's [shipping strategy](https://help.vtex.com/en/tutorial/shipping-strategy--58vLBDbjYVQzJ6rRc5QNz3), searching by dock ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "DeactivateDock", + "parameters": [ + { + "name": "dockId", + "in": "path", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "dock_1f95" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/logistics/pvt/configuration/warehouses": { + "post": { + "tags": [ + "Warehouses" + ], + "summary": "Create or update warehouse", + "description": "Creates or updates a [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Create/UpdateWarehouse", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "name", + "warehouseDocks" + ], + "type": "object", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) to be created or updated.", + "properties": { + "id": { + "type": "string", + "description": "Warehouse ID.", + "example": "15bfc76" + }, + "name": { + "type": "string", + "description": "Warehouse name.", + "example": "Main warehouse" + }, + "warehouseDocks": { + "type": "array", + "description": "List of [loading docks](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) to associate with the warehouse.", + "items": { + "type": "object", + "description": "Loading dock details.", + "required": [ + "dockId", + "name", + "time", + "cost", + "translateDays", + "costToDisplay" + ], + "properties": { + "dockId": { + "type": "string", + "description": "Loading dock ID.", + "example": "1a8bce3" + }, + "name": { + "type": "string", + "description": "Loading dock name.", + "example": "Central dock" + }, + "time": { + "type": "string", + "description": "Loading dock processing time in the format `D.HH:MM:SS`. When it was not configured, it returns `00:00:00`.", + "example": "3.00:00:00" + }, + "cost": { + "type": "string", + "description": "Extra charges added to the shipping rate when **Additional shipping costs** are configured.", + "example": "5.00" + }, + "translateDays": { + "type": "string", + "description": "Translate days.", + "example": "days" + }, + "costToDisplay": { + "type": "string", + "description": "Cost to display.", + "example": "5,00" + } + } + } + }, + "priority": { + "type": "integer", + "description": "Optional configuration of the warehouse priority. When no priority was set, it corresponds to `0`.", + "example": 0 + }, + "isActive": { + "type": "boolean", + "description": "Defines if the warehous is active (`true`) or not (`false`).", + "example": true + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "get": { + "tags": [ + "Warehouses" + ], + "summary": "List all warehouses", + "description": "Lists all [warehouses](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) set up in your store.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "AllWarehouses", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Each object contains details about a [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).", + "properties": { + "id": { + "type": "string", + "description": "Warehouse ID." + }, + "name": { + "type": "string", + "description": "Warehouse name." + }, + "warehouseDocks": { + "type": "array", + "description": "List of [loading docks](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) related to the warehouse.", + "items": { + "type": "object", + "description": "Loading dock information.", + "properties": { + "dockId": { + "type": "string", + "description": "Loading dock ID." + }, + "time": { + "type": "string", + "description": "Loading dock processing time in the format `D.HH:MM:SS`. When it was not configured, it returns `00:00:00`." + }, + "cost": { + "type": "number", + "description": "Extra charges added to the shipping rate when **Additional shipping costs** are configured." + } + } + } + }, + "pickupPointIds": { + "type": "array", + "description": "List of [pickup points](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) associated with the warehouse.", + "items": { + "type": "string", + "description": "Pickup point ID." + } + }, + "priority": { + "type": "integer", + "description": "Warehouse priority. When no priority was set, it corresponds to `0`." + }, + "isActive": { + "type": "boolean", + "description": "Shows if the warehouse is active (`true`) or inactive (`false`)." + } + } + } + }, + "example": [ + { + "id": "1937054", + "name": "Main warehouse", + "warehouseDocks": [ + { + "dockId": "1_1_1", + "time": "1.00:00:00", + "cost": 0 + } + ], + "pickupPointIds": [ + "345", + "136", + "189" + ], + "priority": 0, + "isActive": true + }, + { + "id": "140ac66", + "name": "Warehouse B", + "warehouseDocks": [ + { + "dockId": "139270d", + "time": "00:00:00", + "cost": 0 + } + ], + "pickupPointIds": [ + "145", + "412", + "221" + ], + "priority": 0, + "isActive": true + } + ] + } + } + } + } + } + }, + "/api/logistics/pvt/configuration/warehouses/{warehouseId}": { + "get": { + "tags": [ + "Warehouses" + ], + "summary": "List warehouse by ID", + "description": "Retrieves information of a [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb), searching by warehouse ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "WarehouseById", + "parameters": [ + { + "name": "warehouseId", + "in": "path", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "warehouse_68d7" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID." + }, + "name": { + "type": "string", + "description": "Warehouse name." + }, + "warehouseDocks": { + "type": "array", + "description": "List of [loading docks](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) related to the warehouse.", + "items": { + "type": "object", + "description": "Loading dock information.", + "properties": { + "dockId": { + "type": "string", + "description": "Loading dock ID." + }, + "time": { + "type": "string", + "description": "Loading dock processing time in the format `D.HH:MM:SS`. When it was not configured, it returns `00:00:00`." + }, + "cost": { + "type": "number", + "description": "Extra charges added to the shipping rate when **Additional shipping costs** are configured." + } + } + } + }, + "pickupPointIds": { + "type": "array", + "description": "List of [pickup points](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) associated with the warehouse.", + "items": { + "type": "string", + "description": "Pickup point ID." + } + }, + "priority": { + "type": "integer", + "description": "Warehouse priority. When no priority was set, it corresponds to `0`." + }, + "isActive": { + "type": "boolean", + "description": "Shows if the warehouse is active (`true`) or inactive (`false`)." + } + } + }, + "example": { + "id": "15bfc76", + "name": "Main warehouse", + "warehouseDocks": [ + { + "dockId": "1a8bce3", + "time": "3.00:00:00", + "cost": 5 + } + ], + "pickupPointIds": [ + "345", + "136", + "189" + ], + "priority": 0, + "isActive": true + } + } + } + } + } + }, + "delete": { + "tags": [ + "Warehouses" + ], + "summary": "Remove warehouse", + "description": "Deletes a [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb), searching by warehouse ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "RemoveWarehouse", + "parameters": [ + { + "name": "warehouseId", + "in": "path", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "warehouse_68d7" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/logistics/pvt/configuration/warehouses/{warehouseId}/activation": { + "post": { + "tags": [ + "Warehouses" + ], + "summary": "Activate warehouse", + "description": "Activates a [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb), searching by warehouse ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "ActivateWarehouse", + "parameters": [ + { + "name": "warehouseId", + "in": "path", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "warehouse_68d7" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/logistics/pvt/configuration/warehouses/{warehouseId}/deactivation": { + "post": { + "tags": [ + "Warehouses" + ], + "summary": "Deactivate warehouse", + "description": "Deactivates a [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb), searching by warehouse ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "DeactivateWarehouse", + "parameters": [ + { + "name": "warehouseId", + "in": "path", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "warehouse_68d7" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/logistics/pvt/inventory/skus/{skuId}": { + "get": { + "tags": [ + "Inventory" + ], + "summary": "List inventory by SKU", + "description": "Lists [inventory](https://help.vtex.com/en/tutorial/inventory-management--tutorials_139) information, searching by SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n| Logistics | Logistics access | **Logistics inventory read only** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n| Logistics - Full access | Logistics inventory read only |\r\n| Logistics - Read only | Logistics inventory read only |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "InventoryBySku", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "Every SKU has a unique identifier called SKU ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "36" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "skuId": { + "type": "string", + "description": "SKU ID." + }, + "balance": { + "type": "array", + "description": "List with warehouses' inventory details.", + "items": { + "type": "object", + "description": "Warehouse inventory details.", + "properties": { + "warehouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID." + }, + "warehouseName": { + "type": "string", + "description": "Warehouse name." + }, + "totalQuantity": { + "type": "integer", + "format": "int32", + "description": "Total quantity of items of the given SKU." + }, + "reservedQuantity": { + "type": "integer", + "format": "int32", + "description": "SKU reserved quantity." + }, + "hasUnlimitedQuantity": { + "type": "boolean", + "description": "When set as `false`, every sold unit decreases the item's available quantity. When set as `true`, the SKU from the warehouse is always available for sale. No matter how many units are sold, the SKU available quantity never decreases, and the SKU is never out of stock." + }, + "timeToRefill": { + "type": "string", + "description": "Time to refill.", + "nullable": true + }, + "dateOfSupplyUtc": { + "type": "string", + "description": "Supply date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`.", + "nullable": true + }, + "leadTime": { + "type": "string", + "description": "[Lead time](https://help.vtex.com/en/tutorial/lead-time-shipping-time-at-sku-level--16yv5Mkj6bTyWR1hCN2f4B) is an optional time configuration you can make for a SKU in a warehouse. It can be handling time, fabrication or how long it takes for the item to be available to be shipped to customers. The lead time is a part of the total shipping time and will be considered for shipping date calculation. The format is `DD.HH:MM:SS`." + } + } + } + } + } + }, + "example": { + "skuId": "10", + "balance": [ + { + "warehouseId": "1fabf84", + "warehouseName": "Main Warehouse", + "totalQuantity": 0, + "reservedQuantity": 0, + "hasUnlimitedQuantity": false, + "timeToRefill": null, + "dateOfSupplyUtc": null, + "leadTime": "00:00:00" + }, + { + "warehouseId": "14e3fcc", + "warehouseName": "Warehouse dew56", + "totalQuantity": 0, + "reservedQuantity": 0, + "hasUnlimitedQuantity": false, + "timeToRefill": null, + "dateOfSupplyUtc": null, + "leadTime": "1.00:00:00" + }, + { + "warehouseId": "102e53e", + "warehouseName": "wh-03", + "totalQuantity": 0, + "reservedQuantity": 0, + "hasUnlimitedQuantity": false, + "timeToRefill": null, + "dateOfSupplyUtc": null, + "leadTime": "00:00:00" + } + ] + } + } + } + } + } + } + }, + "/api/logistics/pvt/inventory/items/{skuId}/warehouses/{warehouseId}": { + "get": { + "tags": [ + "Inventory" + ], + "summary": "List inventory per warehouse", + "description": "Lists [inventory](https://help.vtex.com/en/tutorial/inventory-management--tutorials_139) information, searching by [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n| Logistics | Logistics access | **Logistics inventory read only** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n| Logistics - Full access | Logistics inventory read only |\r\n| Logistics - Read only | Logistics inventory read only |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "Inventoryperwarehouse", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "SKU unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "36" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "Warehouse ID is the unique identifier of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "whs15hs6c" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Inventory information for a given warehouse.", + "properties": { + "skuId": { + "type": "string", + "description": "SKU ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "dockId": { + "type": "string", + "description": "Dock ID." + }, + "totalQuantity": { + "type": "integer", + "description": "Total quantity of SKU." + }, + "reservedQuantity": { + "type": "integer", + "description": "Reserved quantity of the SKU." + }, + "availableQuantity": { + "type": "integer", + "description": "Amount of items available for sale. Difference between total quantity and reserved quantity." + }, + "isUnlimited": { + "type": "boolean", + "description": "Indicates whether the SKU's availability is unlimited (\"unlimited inventory\")." + }, + "salesChannel": { + "type": "array", + "description": "List of sales channels ([trade policies](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV) associated.", + "items": { + "type": "string", + "description": "Sales channel (trade policy) ID." + } + }, + "deliveryChannel": { + "type": "array", + "description": "List of delivery channels available.", + "items": { + "type": "string", + "description": "Delivery channel type available." + } + }, + "timeToRefill": { + "type": "string", + "description": "Time to refill.", + "deprecated": true + }, + "dateOfSupplyUtc": { + "type": "string", + "description": "Date of supply lot in UTC." + }, + "keepSellingAfterExpiration": { + "type": "boolean", + "description": "Indicates whether SKU can continue to be sold after the available quantity gets to 0." + }, + "transfer": { + "type": "string", + "description": "Transfer." + } + } + } + }, + "example": [ + { + "skuId": "1", + "warehouseId": "1", + "dockId": "1", + "totalQuantity": 1000000, + "reservedQuantity": 0, + "availableQuantity": 1000000, + "isUnlimited": true, + "salesChannel": [ + "1" + ], + "deliveryChannels": [ + "delivery" + ], + "timeToRefill": "1", + "dateOfSupplyUtc": "12020-04-05T00:00:00+00:00", + "supplyLotId": "05-05-22", + "keepSellingAfterExpiration": false, + "transfer": "Transfer 1" + } + ] + } + } + } + } + } + }, + "/api/logistics/pvt/inventory/skus/{skuId}/warehouses/{warehouseId}": { + "put": { + "tags": [ + "Inventory" + ], + "summary": "Update inventory by SKU and warehouse", + "description": "Updates [inventory](https://help.vtex.com/en/tutorial/inventory-management--tutorials_139) quantity and [lead time](https://help.vtex.com/en/tutorial/lead-time-shipping-time-at-sku-level--16yv5Mkj6bTyWR1hCN2f4B) for a given SKU in a warehouse.\r\n\r\n>ℹ️ If you wish to configure lead time exclusively, use the [Update inventory lead time by SKU and warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#patch-/api/logistics/pvt/inventory/skus/-skuId-/warehouses/-warehouseId-/lead-time) endpoint, and if the quantity only, use the [Update inventory quantity by SKU and warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#patch-/api/logistics/pvt/inventory/skus/-skuId-/warehouses/-warehouseId-/quantity) endpoint. \r\n\r\nThis endpoint allows you to: \r\n\r\n- **Define a quantity:** Indicate a specific number of items of a SKU from a warehouse, and it will decrease whenever an item is sold. When the last item is sold, the SKU will run out of stock. \r\n\r\n- **Set an unlimited inventory:** Always have items of a SKU from a warehouse considered available for sale. When this configuration is active, the SKU never goes out of stock. \r\n\r\n- **Configure lead time:** Set the [lead time](https://help.vtex.com/en/tutorial/lead-time-shipping-time-at-sku-level--16yv5Mkj6bTyWR1hCN2f4B) for a given SKU from a warehouse, and this period will be added to the order total shipping time. This configuration is optional and by default it is set to `0` days. \r\n\r\nSuccessful requests receive a `200 OK` status code with `true` in the response body, and unsuccessful requests receive a `400 Bad Request` error code. \r\n\r\n>❗ Requests made with an incomplete response body can be successful and receive a `200 OK` message. However, sending the request body without the `leadTime` field sets the SKU [lead time](https://help.vtex.com/en/tutorial/lead-time-shipping-time-at-sku-level--16yv5Mkj6bTyWR1hCN2f4B) to `0`. The same is valid for the `quantity` field, which, if not sent, makes the SKU count equal to `0`. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateInventoryBySkuandWarehouse", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "Unique identifier of the SKU you wish to update.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "25" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "Unique identifier of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) of the SKU you wish to update.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "store-warehouse" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "quantity", + "unlimitedQuantity", + "leadTime" + ], + "type": "object", + "properties": { + "quantity": { + "type": "integer", + "format": "int32", + "description": "Quantity of SKU units you wish to update the [inventory](https://help.vtex.com/tutorial/inventory-management--tutorials_139) in the given [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb). Note that:\r\n\r\n- Sending it as `null` sets the quantity to `0`.\r\n\r\n- Not sending it sets the quantity to `0`.\r\n\r\n- Sending `unlimitedQuantity` as `true` overrules the `quantity`.", + "example": 202 + }, + "unlimitedQuantity": { + "type": "boolean", + "description": "When set as `true`, you make the SKU from the given warehouse permanently available for sales. No matter how many units are sold, the default quantity of `1000000` units does not decrease, and the store never runs out of stock. When set as `false`, every sold unit will decrease your inventory quantity. Note that:\r\n\r\n- Sending this field as `null` sets the value to `false`.\r\n\r\n- Not sending this field sets the value to `false`.\r\n\r\n- Sending this field as `true` overrules the `quantity` field.", + "example": false + }, + "dateUtcOnBalanceSystem": { + "type": "string", + "description": "Defines the date and time of the warehouse when the SKU was updated. This can be useful for liberating handling order [reservations](https://help.vtex.com/en/tutorial/how-the-reservation-works--tutorials_92), for example. The format is [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`. \r\nWhen the value is `null` or empty, the default will be the date and time of the request being made.", + "example": "2024-06-13T00:52:16" + }, + "leadTime": { + "type": "string", + "description": "Defines the [lead time](https://help.vtex.com/en/tutorial/lead-time-shipping-time-at-sku-level--16yv5Mkj6bTyWR1hCN2f4B), which is an optional time configuration you can make for a SKU in a warehouse. It can be handling time, fabrication or how long it takes for the item to be available to be shipped to customers.\r\n\r\nThe lead time is a part of the total shipping time and will be considered for shipping date calculation.\r\n\r\nThe format is `dd.hh:mm:ss` (days.hours:minutes:seconds). Note that:\r\n\r\n- Sending this field as `null` sets the value to `0`.\r\n\r\n- Not sending this field sets the value to `0`.", + "example": "10.10:00:00" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request" + }, + "423": { + "description": "Locked", + "content": { + "text/plain": { + "schema": { + "type": "string", + "description": "When too many inventory update requests are made within milliseconds for the same SKU, warehouse, and seller, you can receive a status code response `423 Locked`, meaning only the first request was accepted by the platform, and the others were discarded. You must wait a few seconds before making another request. This platform constraint objective is to increase merchants' control and precision and prevent errors." + }, + "example": "Unable to acquire lock for key: {{accountName}}_item_logistics_{{skuId}}_{{warehouseId}}." + } + } + } + } + } + }, + "/api/logistics/pvt/inventory/skus/{skuId}/warehouses/{warehouseId}/quantity": { + "patch": { + "tags": [ + "Inventory" + ], + "summary": "Update inventory quantity by SKU and warehouse", + "description": "Updates [inventory](https://help.vtex.com/en/tutorial/inventory-management--tutorials_139) with a SKU count and availability for a given [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb). You can do it in two ways: \r\n\r\n- **Define a quantity:** Indicate a specific number of items of a SKU from a warehouse, and it will decrease whenever an item is sold. When the last item is sold, the SKU will run out of stock. \r\n\r\n- **Set an unlimited inventory:** Always have items of a SKU from a warehouse considered available for sales. When this configuration is active, the SKU never runs out of stock. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "Unique identifier of the SKU you wish to update.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "25" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "Unique identifier of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) of the SKU you wish to update.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "storeWarehouse" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "quantity", + "unlimitedQuantity" + ], + "type": "object", + "properties": { + "quantity": { + "type": "integer", + "description": "Number of items you wish to update in your [inventory](https://help.vtex.com/en/tutorial/inventory-management--tutorials_139) for a SKU from a given warehouse. \r\n\r\nNote that sending the field `unlimitedQuantity` as `true` overrules the `quantity`.", + "example": 201 + }, + "unlimitedQuantity": { + "type": "boolean", + "description": "When set as `false`, every sold unit decreases the item's available quantity. When set as `true`, the SKU from the warehouse is always available for sale. No matter how many units are sold, the SKU available quantity never decreases, and the SKU is never out of stock. \r\n\r\nNote that sending this field as `true` overrules the `quantity`.", + "example": false + }, + "dateUtcOnBalanceSystem": { + "type": "string", + "description": "Defines the date and time of the warehouse when the SKU was updated. This can be useful for liberating handling order [reservations](https://help.vtex.com/en/tutorial/how-the-reservation-works--tutorials_92), for example. \r\n\r\nThe format is [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`. When the value is `null` or empty, the default will be the date and time of the when the request being made.", + "example": "2024-01-31T19:12:01.025662+00:00" + } + } + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Bad Request" + } + }, + "operationId": "patch_api_logistics_pvt_inventory_skus_BySkuId_warehouses_ByWarehouseId_quantity" + } + }, + "/api/logistics/pvt/inventory/skus/{skuId}/warehouses/{warehouseId}/lead-time": { + "patch": { + "tags": [ + "Inventory" + ], + "summary": "Update inventory lead time by SKU and warehouse", + "description": "Configures the [lead time](https://help.vtex.com/en/tutorial/lead-time-shipping-time-at-sku-level--16yv5Mkj6bTyWR1hCN2f4B) for a SKU of a warehouse, and the period is added to the order's total shipping time.\r\n\r\nAmong other [main use cases](https://help.vtex.com/en/tutorial/lead-time-shipping-time-at-sku-level--16yv5Mkj6bTyWR1hCN2f4B#main-use-cases), lead time can represent an item's manufacturing time or scenarios where there are third-party suppliers, for example.\r\n\r\nLead time is an optional configuration and by default is set to `0` days.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "Unique identifier of the SKU you wish to update.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "25" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "Unique identifier of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) of the SKU you wish to update.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "storeWarehouse" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "leadTime" + ], + "type": "object", + "properties": { + "leadTime": { + "type": "string", + "description": "Defines the [lead time](https://help.vtex.com/en/tutorial/lead-time-shipping-time-at-sku-level--16yv5Mkj6bTyWR1hCN2f4B), a configuration for shipping time at SKU level. You can set a shipping period for a warehouse SKU, and this time will be added to the order's total shipping time. Note that: \r\n\r\n- The format is `DD.HH:MM:SS`, or `DD`. The endpoint allows configuring hours and minutes, but the UI only shows days. \r\n\r\n- If you mistake hours for days, the system will accept the value as days. For example, sending `78:00:00` updates the lead time to 78 days. \r\n\r\n- Sending an empty field or a value in an incorrect format will result in a `400 Bad Request`.", + "example": "8.00:00:00" + } + } + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Bad Request" + } + }, + "operationId": "patch_api_logistics_pvt_inventory_skus_BySkuId_warehouses_ByWarehouseId_leadTime" + } + }, + "/api/logistics/pvt/inventory/items/{skuId}/docks/{dockId}": { + "get": { + "tags": [ + "Inventory" + ], + "summary": "List inventory per dock", + "description": "Lists inventory information, searching by [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n| Logistics | Logistics access | **Logistics inventory read only** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n| Logistics - Full access | Logistics inventory read only |\r\n| Logistics - Read only | Logistics inventory read only |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "Inventoryperdock", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "SKU unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "36" + } + }, + { + "name": "dockId", + "in": "path", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "dock13a" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Loading dock inventory information.", + "properties": { + "skuId": { + "type": "string", + "description": "SKU ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "dockId": { + "type": "string", + "description": "Dock ID." + }, + "totalQuantity": { + "type": "integer", + "description": "Total quantity of SKU." + }, + "reservedQuantity": { + "type": "integer", + "description": "Reserved quantity of the SKU." + }, + "availableQuantity": { + "type": "integer", + "description": "Amount of items available for sales. Difference between total quantity and reserved quantity." + }, + "isUnlimited": { + "type": "boolean", + "description": "Indicates whether the SKU's availability is unlimited (\"unlimited inventory\")." + }, + "salesChannel": { + "type": "array", + "description": "List of sales channels ([trade policies](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV) associated.", + "items": { + "type": "string", + "description": "Sales channel ID." + } + }, + "deliveryChannel": { + "type": "array", + "description": "List of delivery channels available.", + "items": { + "type": "string", + "description": "Delivery channel type available." + } + }, + "timeToRefill": { + "type": "string", + "description": "Time to refill.", + "deprecated": true + }, + "dateOfSupplyUtc": { + "type": "string", + "description": "Date of supply lot in UTC." + }, + "keepSellingAfterExpiration": { + "type": "boolean", + "description": "Indicates whether SKU can continue to be sold after the available quantity gets to 0." + }, + "transfer": { + "type": "string", + "description": "Transfer supply lot." + } + } + } + }, + "example": [ + { + "skuId": "1", + "warehouseId": "1", + "dockId": "1", + "totalQuantity": 1000000, + "reservedQuantity": 0, + "availableQuantity": 1000000, + "isUnlimited": true, + "salesChannel": [ + "1" + ], + "deliveryChannels": [ + "delivery" + ], + "timeToRefill": "01:50:00", + "dateOfSupplyUtc": "2020-04-05T00:00:00+00:00", + "supplyLotId": null, + "keepSellingAfterExpiration": false, + "transfer": "transfer1" + }, + { + "skuId": "1", + "warehouseId": "1_1", + "dockId": "1", + "totalQuantity": 1000117, + "reservedQuantity": 117, + "availableQuantity": 1000000, + "isUnlimited": true, + "salesChannel": [ + "1" + ], + "deliveryChannels": [ + "delivery" + ], + "timeToRefill": "01:50:00", + "dateOfSupplyUtc": "2020-04-05T00:00:00+00:00", + "supplyLotId": null, + "keepSellingAfterExpiration": false, + "transfer": "transfer2" + } + ] + } + } + } + } + } + }, + "/api/logistics/pvt/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId}": { + "get": { + "tags": [ + "Inventory" + ], + "summary": "List inventory per dock and warehouse", + "description": "Lists inventory information from the combination of a given [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) and a [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n| Logistics | Logistics access | **Logistics inventory read only** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n| Logistics - Full access | Logistics inventory read only |\r\n| Logistics - Read only | Logistics inventory read only |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "Inventoryperdockandwarehouse", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "SKU unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "36" + } + }, + { + "name": "dockId", + "in": "path", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "dock13a" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "whs15hs6c" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Inventory information for the given dock and warehouse.", + "properties": { + "skuId": { + "type": "string", + "description": "SKU ID." + }, + "warehouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID." + }, + "dockId": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID." + }, + "totalQuantity": { + "type": "integer", + "description": "Total quantity of SKU." + }, + "reservedQuantity": { + "type": "integer", + "description": "Reserved quantity of the SKU." + }, + "availableQuantity": { + "type": "integer", + "description": "Amount of items available for sales. Difference between total quantity and reserved quantity." + }, + "isUnlimited": { + "type": "boolean", + "description": "Indicates if the unlimited inventory is activated so the SKU's availability is unlimited (`true`) or not (`false`)." + }, + "salesChannel": { + "type": "array", + "description": "List of sales channels ([trade policies](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV) associated.", + "items": { + "type": "string", + "description": "Sales channel ID." + } + }, + "deliveryChannel": { + "type": "array", + "description": "List of delivery channels available.", + "items": { + "type": "string", + "description": "Delivey channel type." + } + }, + "timeToRefill": { + "type": "string", + "description": "Time to refill (deprecated)." + }, + "dateOfSupplyUtc": { + "type": "string", + "description": "Date of supply lot in UTC." + }, + "keepSellingAfterExpiration": { + "type": "boolean", + "description": "Indicates whether SKU can continue to be sold after the available quantity gets to 0." + }, + "transfer": { + "type": "string", + "description": "Transfer." + } + } + } + }, + "example": [ + { + "skuId": "1", + "warehouseId": "1", + "dockId": "1", + "totalQuantity": 1000000, + "reservedQuantity": 0, + "availableQuantity": 1000000, + "isUnlimited": true, + "salesChannel": [ + "1" + ], + "deliveryChannels": [ + "delivery" + ], + "timeToRefill": "12:50:00", + "dateOfSupplyUtc": "2020-04-05T00:00:00+00:00", + "supplyLotId": null, + "keepSellingAfterExpiration": false, + "transfer": "Tranfer1" + } + ] + } + } + } + } + } + }, + "/api/logistics/pvt/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched": { + "get": { + "tags": [ + "Inventory" + ], + "summary": "List inventory with dispatched reservations", + "description": "[Reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) is the VTEX solution that prevents stores from selling the same item more than once. Adding products to the shopping cart does not create a reservation, this only happens after the shopper completes the purchase.\r\n\r\nThis endpoint lists your [inventory](https://help.vtex.com/en/tutorial/inventory-management--tutorials_139) information about dispatched reservations from a given warehouse. A reservation is considered dispatched after the order has passed the `authorize-fulfillment` status in the [order flow](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196) and is not canceled.\r\n\r\n**Response 400 Bad Request:** When the store has more than 2.000 active reservations, you receive a `400 Bad Request` error with the message: _Too many active reservations_.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n| Logistics | Logistics access | **Logistics inventory read only** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n| Logistics - Full access | Logistics inventory read only |\r\n| Logistics - Read only | Logistics inventory read only |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "Getinventorywithdispatchedreservations", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "SKU unique identifier called SKU ID. This field is an equivalent to `skuId`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "89" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "Warehouse ID is the unique identifier of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "warehouse-1-StoreName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Inventory information.", + "properties": { + "skuId": { + "type": "string", + "description": "SKU ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "quantity": { + "type": "integer", + "description": "SKU quantity." + }, + "isUnlimitedQuantity": { + "type": "boolean", + "description": "Indicates whether the SKU's availability is unlimited (\"unlimited inventory\")." + }, + "totalReservedQuantity": { + "type": "integer", + "description": "Total reserved quantity of the SKU." + }, + "dispatchedReservationsQuantity": { + "type": "integer", + "description": "Dispatched reservations quantity." + }, + "availableQuantity": { + "type": "integer", + "description": "Available quantity." + } + } + } + }, + "example": [ + { + "skuId": "1", + "warehouseId": "1", + "quantity": 2147483647, + "isUnlimitedQuantity": true, + "totalReservedQuantity": 0, + "dispatchedReservationsQuantity": 0, + "availableQuantity": 2147483647 + } + ] + } + } + } + } + } + }, + "/api/logistics/pvt/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots": { + "get": { + "tags": [ + "Inventory" + ], + "summary": "List supply lots", + "description": "Lists supply lots of a SKU in a given [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n| Logistics | Logistics access | **Logistics inventory read only** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n| Logistics - Full access | Logistics inventory read only |\r\n| Logistics - Read only | Logistics inventory read only |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "GetSupplyLots", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "SKU ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "36" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "ID of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) where the SKU is located.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "whs15hs6c" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Supply lot details.", + "properties": { + "skuId": { + "type": "string", + "description": "SKU ID related to the supply lot." + }, + "warehouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID where the SKU supply lot will arrive." + }, + "dockId": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID." + }, + "totalQuantity": { + "type": "integer", + "description": "Total quantity scheduled for the SKU in the supply lot." + }, + "reservedQuantity": { + "type": "integer", + "description": "Total [reserved quantity](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) scheduled for the SKU in the supply lot." + }, + "availableQuantity": { + "type": "integer", + "description": "Available quantity scheduled for the SKU in the supply lot." + }, + "isUnlimited": { + "type": "boolean", + "description": "Indicates if the unlimited inventory is activated so the SKU availability for sales is unlimited (`true`), or not (`false`)." + }, + "salesChannel": { + "type": "array", + "description": "List of sales channels ([trade policies](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV) associated with the supply lot.", + "items": { + "type": "string", + "description": "Sales channel (trade policy) ID." + } + }, + "deliveryChannels": { + "type": "array", + "description": "List of delivery channels type associated with the supply lot.", + "items": { + "type": "string", + "description": "Delivery channel type.", + "enum": [ + "delivery", + "pickup" + ] + } + }, + "timeToRefill": { + "type": "string", + "description": "Time to refill in the format `HH:MM:SS`.", + "nullable": true + }, + "dateOfSupplyUtc": { + "type": "string", + "description": "Date and time scheduled for the SKU from the warehouse to have quantity and availability for sales again. The format is [ISO 8601 time zone offset](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "supplyLotId": { + "type": "string", + "description": "Supply lot ID." + }, + "keepSellingAfterExpiration": { + "type": "boolean", + "description": "Defines if the SKU from the warehouse should be available for sales after running _out-of-stock_ (`true`), or not (`false`)." + }, + "transfer": { + "type": "string", + "description": "Transfer system.", + "nullable": true + }, + "leadTime": { + "type": "string", + "description": "[Lead time](https://help.vtex.com/en/tutorial/lead-time-shipping-time-at-sku-level--16yv5Mkj6bTyWR1hCN2f4B) is an optional time configuration for a SKU in a warehouse. It can be handling time, fabrication or how long it takes for the item to be available to be shipped to customers. The lead time is a part of the total shipping time and is considered for shipping date calculation. The format is `DD.HH:MM:SS`.", + "nullable": true + } + } + } + }, + "example": [ + { + "skuId": "12", + "warehouseId": "124816", + "dockId": "1839", + "totalQuantity": 0, + "reservedQuantity": 0, + "availableQuantity": 0, + "isUnlimited": false, + "salesChannel": [ + "1" + ], + "deliveryChannels": [ + "delivery" + ], + "timeToRefill": "12:50:00", + "dateOfSupplyUtc": "2025-10-18T00:00:00+00:00", + "supplyLotId": "supplyId1", + "keepSellingAfterExpiration": true, + "transfer": null, + "leadTime": "10.00:00:00" + } + ] + } + } + } + } + } + }, + "/api/logistics/pvt/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}": { + "put": { + "tags": [ + "Inventory" + ], + "summary": "Save supply lot", + "description": "Creates a new supply lot, which allows you to sell a SKU that is currently _out-of-stock_ in your [inventory](https://help.vtex.com/en/tutorial/inventory-management--tutorials_139) and unavailable for sales. Creating a supply lot is useful when you know the date of when the SKU will have quantity and availability for sales again.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SaveSupplyLot", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "SKU ID being scheduled for availability for sales.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "36" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "ID of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) where the SKU will arrive.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "whs15hs6c" + } + }, + { + "name": "supplyLotId", + "in": "path", + "description": "ID of the supply lot of the SKU availability scheduling.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "7100-1023-04" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "quantity", + "dateOfSupplyUtc" + ], + "type": "object", + "properties": { + "quantity": { + "type": "integer", + "description": "Supply lot quantity for a SKU from a [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).", + "example": 1200 + }, + "dateOfSupplyUtc": { + "type": "string", + "description": "Date and time of when the SKU from the warehouse will have quantity and availability for sales again. The format is [ISO 8601 time zone offset](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`. Since it is a prevision, this field must be a future date.", + "example": "2025-02-25T09:00:00+00:00" + }, + "keepSellingAfterExpiration": { + "type": "boolean", + "description": "Defines if the SKU from the warehouse should be available for sales after running _out-of-stock_ (`true`), or not (`false`).", + "example": true + } + } + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/logistics/pvt/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}/transfer": { + "post": { + "tags": [ + "Inventory" + ], + "summary": "Transfer supply lot", + "description": "Transfers a SKU from a supply lot to the currently available inventory.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics inventory full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics inventory full access |\r\n| OMS - Full access | Logistics inventory full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "TransferSupplyLot", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "ID of the SKU.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "36" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "ID of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) where the SKU is located.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "whs15hs6c" + } + }, + { + "name": "supplyLotId", + "in": "path", + "description": "ID of the supply lot in which the SKU is currently located and from where it will be transfered.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "7100-1023-04" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/logistics/pvt/configuration/holidays/{holidayId}": { + "put": { + "tags": [ + "Holidays" + ], + "summary": "Create or update holiday", + "description": "Creates or updates a [holiday](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk), searching by holiday ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Create/UpdateHoliday", + "parameters": [ + { + "name": "holidayId", + "in": "path", + "description": "[Holiday](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "christmas2025" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "name", + "startDate" + ], + "type": "object", + "description": "Holiday information.", + "properties": { + "name": { + "type": "string", + "description": "[Holiday](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk) ID.", + "example": "Christmas" + }, + "startDate": { + "type": "string", + "description": "Holiday starting date, in the format `YYYY-MM-DD`.", + "example": "2024-12-25" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "get": { + "tags": [ + "Holidays" + ], + "summary": "List holiday by ID", + "description": "Lists information about a [holiday](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk), searching by holiday ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "HolidayById", + "parameters": [ + { + "name": "holidayId", + "in": "path", + "description": "[Holiday](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "christmas2025" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "Holidays" + ], + "summary": "Delete holiday", + "description": "Deletes a [holiday](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk) set up in your store, searching by holiday ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "Holiday", + "parameters": [ + { + "name": "holidayId", + "in": "path", + "description": "[Holiday](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "christmas2025" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/logistics/pvt/configuration/holidays": { + "get": { + "tags": [ + "Holidays" + ], + "summary": "List all holidays", + "description": "Lists information about all [holidays](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk) configured on your store.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "AllHolidays", + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/logistics/pvt/inventory/reservations": { + "post": { + "tags": [ + "Reservations" + ], + "summary": "Create reservation", + "description": "Creates a [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateReservation", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "salesChannel", + "lockId", + "autorizationExpirationTTL", + "deliveryItemOptions" + ], + "type": "object", + "description": "Reservation sales channel information.", + "properties": { + "salesChannel": { + "type": "string", + "description": "Sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) valid for the reservation.", + "example": "1" + }, + "lockId": { + "type": "string", + "description": "[Reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) ID.", + "example": null, + "nullable": true + }, + "autorizationExpirationTTL": { + "type": "string", + "description": "Duration before expiring the reservation, in the format `DD.HH:MM:SS`.", + "example": "10.00:00:00" + }, + "deliveryItemOptions": { + "type": "array", + "description": "Array with information about reserved items.", + "items": { + "required": [ + "item", + "slaType", + "slaTypeName", + "listPrice", + "promotionalPrice", + "transitTime", + "dockTime", + "timeToDockPlusDockTime", + "aditionalTimeBlockedDays", + "totalTime", + "deliveryWindows", + "wareHouseId", + "dockId", + "location" + ], + "type": "object", + "description": "Reserved items information.", + "properties": { + "item": { + "required": [ + "id", + "quantity", + "kitItem", + "price", + "additionalHandlingTime", + "dimension" + ], + "type": "object", + "description": "Reserved item object.", + "properties": { + "id": { + "type": "string", + "description": "SKU ID.", + "example": "29" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Quantity of items.", + "example": 1 + }, + "kitItem": { + "type": "array", + "items": { + "type": "string", + "description": "Kit SKU ID.", + "example": null, + "nullable": true + }, + "description": "[Kit](https://help.vtex.com/en/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28) items information, when applicable." + }, + "price": { + "type": "number", + "description": "Item price.", + "example": 14128.9 + }, + "modal": { + "type": "string", + "description": "Type of [modal](https://help.vtex.com/en/tutorial/how-the-modal-works--tutorials_125), a special freight.", + "enum": [ + "CHEMICALS", + "ELECTRONICS", + "FURNITURE", + "GLASS", + "LIQUID", + "MATTRESSES", + "REFRIGERATED", + "TIRES", + "WHITE_GOODS", + "FIREARMS" + ], + "example": "FURNITURE", + "nullable": true + }, + "additionalHandlingTime": { + "type": "string", + "description": "Additional handling time in the format `DD.HH:MM:SS`.", + "example": "00:00:00" + }, + "dimension": { + "required": [ + "weight", + "height", + "width", + "length" + ], + "type": "object", + "description": "Item dimensions.", + "properties": { + "weight": { + "type": "number", + "description": "Item weight.", + "example": 186.37 + }, + "height": { + "type": "number", + "description": "Item height.", + "example": 23.5 + }, + "width": { + "type": "number", + "description": "Item width.", + "example": 165 + }, + "length": { + "type": "number", + "description": "Item length.", + "example": 67.5 + } + } + } + } + }, + "slaType": { + "type": "string", + "description": "SLA (Service Level Agreement) type.", + "example": "delivery" + }, + "slaTypeName": { + "type": "string", + "description": "SLA name.", + "example": "Normal delivery" + }, + "listPrice": { + "type": "number", + "description": "List price.", + "example": 10.5 + }, + "promotionalPrice": { + "type": "number", + "description": "Promotion price.", + "example": 10.5 + }, + "transitTime": { + "type": "string", + "description": "Transit time in the format `DD.HH:MM:SS`.", + "example": "2.00:00:00" + }, + "dockTime": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) processing time in the format `D.HH:MM:SS`. When it was not configured, it returns `00:00:00`.", + "example": "00:00:00" + }, + "timeToDockPlusDockTime": { + "type": "string", + "description": "Time spent in loading dock plus `dockTime` in the format `D.HH:MM:SS`.", + "example": "1.00:00:00" + }, + "aditionalTimeBlockedDays": { + "type": "string", + "description": "Additional time blocked in the format `DD.HH:MM:SS`.", + "example": "1.00:00:00" + }, + "totalTime": { + "type": "string", + "description": "SLA total time in the format `DD.HH:MM:SS`.", + "example": "3.00:00:00" + }, + "deliveryWindows": { + "type": "array", + "items": { + "type": "object", + "description": "Delivery window details.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting date and time, in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`.", + "example": "2024-02-25T09:00:00+00:00" + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending date and time, in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`.", + "example": "2024-02-25T12:00:00+00:00" + }, + "listPrice": { + "type": "string", + "description": "List price.", + "example": "0.0" + } + } + }, + "description": "[Delivery windows](https://help.vtex.com/en/tutorial/managing-delivery-capacity--2y217FQZCjD0I1n62yxVcz).", + "nullable": true + }, + "wareHouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID.", + "example": "1937054", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "Loading dock ID.", + "example": "1a8bce3" + }, + "location": { + "required": [ + "zipCode", + "country", + "inStore" + ], + "type": "object", + "description": "Shipping location details.", + "properties": { + "zipCode": { + "type": "string", + "description": "Shipping address postal code.", + "example": "22220070" + }, + "country": { + "type": "string", + "description": "Three-digit country code of the shipping address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format.", + "example": "BRA" + }, + "inStore": { + "required": [ + "IsCheckedIn", + "StoreId" + ], + "type": "object", + "description": "Information related to [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc).", + "properties": { + "IsCheckedIn": { + "type": "boolean", + "description": "This field is set as `true` when the order was placed via [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc) and `false` when it was not.", + "example": false + }, + "StoreId": { + "type": "string", + "description": "ID of purchases made in the GoCommerce context.", + "example": "180082", + "nullable": true + } + } + } + } + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "LastUpdateDateUtc": { + "type": "string", + "description": "Last update date and time in the format [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "SalesChannel": { + "type": "string", + "description": "Sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) valid for the reservation." + }, + "LockId": { + "type": "string", + "description": "Reservation ID." + }, + "ReservationDateUtc": { + "type": "string", + "description": "Reservation date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "MaximumConfirmationDateUtc": { + "type": "string", + "description": "Maximum confirmation date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "Status": { + "type": "integer", + "format": "int32", + "description": "Reservation status, meaning:\r\n\r\n- `0`: `NotCommitted`\r\n\r\n- `1`: `Authorized`\r\n\r\n- `2`: `Confirmed`\r\n\r\n- `3`: `Canceled_AbortedCommitted`\r\n\r\n- `4`: `Canceled_AuthorizationExpired`\r\n\r\n- `5`: `Canceled_Manually`" + }, + "SlaRequest": { + "type": "array", + "description": "SLA (Service Level Agreement) request information.", + "items": { + "type": "object", + "description": "SLA details.", + "properties": { + "item": { + "type": "object", + "description": "Information about the reserved item.", + "properties": { + "id": { + "type": "string", + "description": "SKU ID." + }, + "groupItemId": { + "type": "string", + "description": "Group item ID.", + "nullable": true + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Item quantity." + }, + "price": { + "type": "number", + "description": "Item price." + }, + "modal": { + "type": "string", + "description": "Type of [modal](https://help.vtex.com/en/tutorial/how-the-modal-works--tutorials_125), a special freight.", + "enum": [ + "CHEMICALS", + "ELECTRONICS", + "FURNITURE", + "GLASS", + "LIQUID", + "MATTRESSES", + "REFRIGERATED", + "TIRES", + "WHITE_GOODS", + "FIREARMS" + ], + "nullable": true + }, + "additionalHandlingTime": { + "type": "string", + "description": "Additional handling time in the format `DD.HH:MM:SS`." + }, + "dimension": { + "type": "object", + "description": "Item dimensions.", + "properties": { + "weight": { + "type": "number", + "description": "Item weight." + }, + "height": { + "type": "number", + "description": "Item height." + }, + "width": { + "type": "number", + "description": "Item width." + }, + "length": { + "type": "number", + "description": "Item length." + }, + "maxSumDimension": { + "type": "number", + "description": "Maximum sum of dimensions." + } + } + }, + "kitItem": { + "type": "array", + "nullable": true, + "items": { + "type": "string", + "description": "SKU ID." + }, + "description": "[Kit](https://help.vtex.com/en/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28) item information." + }, + "unlimitedQuantity": { + "type": "boolean", + "description": "When set as `false`, every sold unit decreases the item's available quantity. When set as `true`, the SKU from the warehouse is always available for sale. No matter how many units are sold, the SKU available quantity never decreases, and the SKU is never out of stock." + } + } + }, + "slaType": { + "type": "string", + "description": "SLA (Service Level Agreement) type." + }, + "slaTypeName": { + "type": "string", + "description": "SLA name." + }, + "freightTableName": { + "type": "string", + "description": "[Shipping rate template](https://help.vtex.com/en/tutorial/shipping-rate-template--tutorials_127) name." + }, + "freightTableId": { + "type": "string", + "description": "Shipping rate template ID." + }, + "listPrice": { + "type": "number", + "description": "List price." + }, + "promotionalPrice": { + "type": "number", + "description": "Promotion price." + }, + "transitTime": { + "type": "string", + "description": "Transit time in the format `DD.HH:MM:SS`." + }, + "dockTime": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) processing time in the format `D.HH:MM:SS`. When it was not configured, it returns `00:00:00`." + }, + "timeToDockPlusDockTime": { + "type": "string", + "description": "Time spent in loading dock plus `dockTime` in the format `D.HH:MM:SS`." + }, + "totalTime": { + "type": "string", + "description": "SLA total time in the format `DD.HH:MM:SS`." + }, + "deliveryWindows": { + "type": "object", + "items": { + "type": "object", + "description": "Delivery window details.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting date and time, in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending date and time, in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "listPrice": { + "type": "number", + "description": "List price." + } + } + }, + "description": "[Delivery windows](https://help.vtex.com/en/tutorial/managing-delivery-capacity--2y217FQZCjD0I1n62yxVcz).", + "nullable": true + }, + "wareHouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID." + }, + "dockId": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID." + }, + "wmsEndPoint": { + "type": "string", + "description": "Warehouse Management System (WMS) fulfillment endpoint.", + "nullable": true + }, + "location": { + "type": "object", + "description": "Shipping location information.", + "properties": { + "zipCode": { + "type": "string", + "description": "Shipping address postal code." + }, + "country": { + "type": "string", + "description": "Three-digit country code of the shipping address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "deliveryPointId": { + "type": "string", + "description": "Delivery point ID.", + "nullable": true + }, + "point": { + "type": "array", + "description": "Location delivery point coordinates.", + "items": { + "type": "number", + "description": "Location coordinates, first longitude, then latitude." + }, + "nullable": true + }, + "inStore": { + "type": "object", + "description": "Information related to [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc).", + "properties": { + "IsCheckedIn": { + "type": "boolean", + "description": "This field is set as `true` when the order was placed via [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc) and `false` when it was not." + }, + "StoreId": { + "type": "string", + "description": "ID of purchases made in the GoCommerce context.", + "nullable": true + } + } + } + } + }, + "pickupStoreInfo": { + "type": "string", + "description": "Detailed information about a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "nullable": true + } + } + } + }, + "PickupPointItemOptions": { + "type": "string", + "description": "(Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) item options.", + "nullable": true + }, + "CanceledDateUtc": { + "type": "string", + "description": "Reservation canceled date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "AuthorizedDateUtc": { + "type": "string", + "description": "Authorized date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "ConfirmedDateUtc": { + "type": "string", + "description": "Confirmed date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "Errors": { + "type": "array", + "description": "Errors details, if there are any.", + "items": { + "type": "string", + "description": "Error message.", + "nullable": true + }, + "nullable": true + }, + "IsSucess": { + "type": "boolean", + "description": "Defines if the reservation was successful (`true`) or not (`false`)." + } + } + }, + "example": { + "LastUpdateDateUtc": "2024-04-15T19:59:20.0397988+00:00", + "SalesChannel": "1", + "LockId": "3bfe679d-c0a8-475a-b315-706f84a9deb4", + "ReservationDateUtc": "2024-04-15T19:59:20.0397988+00:00", + "MaximumConfirmationDateUtc": "2024-04-15T20:09:20.0397988+00:00", + "Status": 1, + "SlaRequest": [ + { + "item": { + "id": "29", + "groupItemId": null, + "quantity": 1, + "price": 0, + "modal": "FURNITURE", + "additionalHandlingTime": "00:00:00", + "dimension": { + "weight": 186.37, + "height": 23.5, + "width": 165, + "length": 67.5, + "maxSumDimension": 300 + }, + "kitItem": [], + "unlimitedQuantity": false + }, + "slaType": "delivery", + "slaTypeName": "Normal delivery", + "freightTableName": "Correios PAC", + "freightTableId": "11cc4b6", + "listPrice": 10.5, + "promotionalPrice": 10.5, + "transitTime": "2.00:00:00", + "dockTime": "00:00:00", + "timeToDockPlusDockTime": "1.00:00:00", + "totalTime": "3.00:00:00", + "deliveryWindows": { + "startDateUtc": "2024-02-25T09:00:00+00:00", + "endDateUtc": "2024-02-25T12:00:00+00:00", + "listPrice": 0 + }, + "wareHouseId": "1937054", + "dockId": "1a8bce3", + "wmsEndPoint": null, + "location": { + "zipCode": "22220070", + "country": "BRA", + "deliveryPointId": null, + "point": null, + "inStore": { + "IsCheckedIn": false, + "StoreId": "180082" + } + }, + "pickupStoreInfo": null + } + ], + "PickupPointItemOptions": null, + "CanceledDateUtc": "0001-01-01T00:00:00+00:00", + "AuthorizedDateUtc": "2024-04-15T19:59:20.0397988+00:00", + "ConfirmedDateUtc": "0001-01-01T00:00:00+00:00", + "Errors": [], + "IsSucess": true + } + } + } + } + } + } + }, + "/api/logistics/pvt/inventory/reservations/{reservationId}": { + "get": { + "tags": [ + "Reservations" + ], + "summary": "List reservation by ID", + "description": "Lists information about a [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92), searching by reservation ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "ReservationById", + "parameters": [ + { + "name": "reservationId", + "in": "path", + "description": "[Reservation](https://help.vtex.com/en/tutorial/how-the-reservation-works--tutorials_92) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "00-1336411707838-01" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "LastUpdateDateUtc": { + "type": "string", + "description": "Last update date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "SalesChannel": { + "type": "string", + "description": "Sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) valid for the reservation." + }, + "LockId": { + "type": "string", + "description": "Reservation ID." + }, + "ReservationDateUtc": { + "type": "string", + "description": "Reservation date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "MaximumConfirmationDateUtc": { + "type": "string", + "description": "Maximum confirmation date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "Status": { + "type": "integer", + "format": "int32", + "description": "Reservation status, meaning:\r\n\r\n- `0`: `NotCommitted`\r\n\r\n- `1`: `Authorized`\r\n\r\n- `2`: `Confirmed`\r\n\r\n- `3`: `Canceled_AbortedCommitted`\r\n\r\n- `4`: `Canceled_AuthorizationExpired`\r\n\r\n- `5`: `Canceled_Manually`" + }, + "SlaRequest": { + "type": "array", + "description": "SLA (Service Level Agreement) request information.", + "items": { + "type": "object", + "description": "SLA details.", + "properties": { + "item": { + "type": "object", + "description": "Information about the reserved item.", + "properties": { + "id": { + "type": "string", + "description": "SKU ID." + }, + "groupItemId": { + "type": "string", + "description": "Group item ID.", + "nullable": true + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Item quantity." + }, + "price": { + "type": "number", + "description": "Item price." + }, + "modal": { + "type": "string", + "description": "Type of [modal](https://help.vtex.com/en/tutorial/how-the-modal-works--tutorials_125), a special freight.", + "enum": [ + "CHEMICALS", + "ELECTRONICS", + "FURNITURE", + "GLASS", + "LIQUID", + "MATTRESSES", + "REFRIGERATED", + "TIRES", + "WHITE_GOODS", + "FIREARMS" + ], + "nullable": true + }, + "additionalHandlingTime": { + "type": "string", + "description": "Additional handling time in the format `DD.HH:MM:SS`." + }, + "dimension": { + "type": "object", + "description": "Item dimensions.", + "properties": { + "weight": { + "type": "number", + "description": "Item weight." + }, + "height": { + "type": "number", + "description": "Item height." + }, + "width": { + "type": "number", + "description": "Item width." + }, + "length": { + "type": "number", + "description": "Item length." + }, + "maxSumDimension": { + "type": "number", + "description": "Maximum sum of dimensions." + } + } + }, + "kitItem": { + "type": "array", + "nullable": true, + "items": { + "type": "string", + "description": "Kit SKU ID." + }, + "description": "[Kit](https://help.vtex.com/en/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28) item information." + }, + "unlimitedQuantity": { + "type": "boolean", + "description": "When set as `false`, every sold unit decreases the item's available quantity. When set as `true`, the SKU from the warehouse is always available for sale — no matter how many units are sold, the SKU available quantity never decreases, and the SKU is never out of stock." + }, + "dockId": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID." + }, + "wareHouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID." + }, + "provider": { + "type": "string", + "description": "SLA request provider.", + "nullable": true + } + } + }, + "slaType": { + "type": "string", + "description": "SLA (Service Level Agreement) type." + }, + "slaTypeName": { + "type": "string", + "description": "SLA name." + }, + "freightTableName": { + "type": "string", + "description": "[Shipping rate template](https://help.vtex.com/en/tutorial/shipping-rate-template--tutorials_127) name." + }, + "freightTableId": { + "type": "string", + "description": "Shipping rate template ID." + }, + "listPrice": { + "type": "number", + "description": "List price." + }, + "promotionalPrice": { + "type": "number", + "description": "Promotion price." + }, + "timeToPresale": { + "type": "string", + "description": "Time to presale in the format `D.HH:MM:SS`." + }, + "transitTime": { + "type": "string", + "description": "Transit time in the format `DD.HH:MM:SS`." + }, + "dockTime": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) processing time in the format `D.HH:MM:SS`. When it was not configured, it returns `00:00:00`." + }, + "timeToDockPlusDockTime": { + "type": "string", + "description": "Time spent in loading dock plus `dockTime` in the format `D.HH:MM:SS`." + }, + "totalTime": { + "type": "string", + "description": "SLA total time in the format `DD.HH:MM:SS`." + }, + "deliveryWindows": { + "type": "object", + "items": { + "type": "object", + "description": "Delivery window details.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting date and time, in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending date and time, in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "listPrice": { + "type": "number", + "description": "List price." + } + } + }, + "description": "[Delivery windows](https://help.vtex.com/en/tutorial/managing-delivery-capacity--2y217FQZCjD0I1n62yxVcz).", + "nullable": true + }, + "wareHouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID." + }, + "kitReservation": { + "type": "string", + "description": "Kit reservation.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID." + }, + "wmsEndPoint": { + "type": "string", + "description": "Warehouse Management System (WMS) fulfillment endpoint.", + "nullable": true + }, + "location": { + "type": "object", + "description": "Shipping location information.", + "properties": { + "zipCode": { + "type": "string", + "description": "Shipping address postal code." + }, + "country": { + "type": "string", + "description": "Three-digit country code of the shipping address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "point": { + "type": "array", + "description": "Location delivery point coordinates.", + "items": { + "type": "number", + "description": "Location coordinates, first longitude, then latitude." + }, + "nullable": true + }, + "inStore": { + "type": "object", + "description": "Information related to [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc).", + "properties": { + "IsCheckedIn": { + "type": "boolean", + "description": "This field is set as `true` when the order was placed via [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc) and `false` when it was not." + }, + "StoreId": { + "type": "string", + "description": "ID of purchases made in the GoCommerce context.", + "nullable": true + } + } + } + } + }, + "pickupStoreInfo": { + "type": "string", + "description": "Detailed information about a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "nullable": true + }, + "deliveryOnWeekends": { + "type": "boolean", + "description": "Defines if the delivery on weekends configuration is active (`true`) or not (`false`).", + "nullable": true + }, + "weekendAndHolidays": { + "type": "object", + "description": "Delivery on weekends and holidays information.", + "properties": { + "saturday": { + "type": "boolean", + "description": "Defines if the delivery on Saturday configuration is active (`true`) or not (`false`)." + }, + "sunday": { + "type": "boolean", + "description": "Defines if the delivery on Sunday configuration is active (`true`) or not (`false`)." + }, + "holiday": { + "type": "boolean", + "description": "Defines if the delivery on [holiday](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk) configuration is active (`true`) or not (`false`)." + } + } + }, + "estimateDate": { + "type": "string", + "description": "Delivery estimate date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "deliveryChannel": { + "type": "string", + "description": "Delivery channel." + }, + "totalTimePlusCarrierSchedule": { + "type": "string", + "description": "Total shipping time plus carrier schedule, in the format `DD.HH:MM:SS`." + }, + "polygonName": { + "type": "string", + "description": "[Polygon](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) name." + }, + "distanceLevel": { + "type": "string", + "description": "SLA distance level.", + "nullable": true + }, + "accountCarrier": { + "type": "string", + "description": "Account carrier." + }, + "dateOfSupplyUtc": { + "type": "string", + "description": "Supply date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`.", + "nullable": true + }, + "supplyLotId": { + "type": "string", + "description": "Supply lot ID.", + "nullable": true + }, + "isExternal": { + "type": "boolean", + "description": "Defines if the SLA request is external (`true`) or not (`false`)." + } + } + } + }, + "CanceledDateUtc": { + "type": "string", + "description": "Reservation canceled date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "AuthorizedDateUtc": { + "type": "string", + "description": "Authorized date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "ConfirmedDateUtc": { + "type": "string", + "description": "Confirmed date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "Errors": { + "type": "array", + "description": "Error details, if there are any.", + "items": { + "type": "string", + "description": "Error message.", + "nullable": true + }, + "nullable": true + }, + "IsSucess": { + "type": "boolean", + "description": "Defines if the reservation was successful (`true`) or not (`false`)." + } + } + }, + "example": { + "LastUpdateDateUtc": "2024-05-01T17:14:51.5898912+00:00", + "SalesChannel": "1", + "LockId": "00-1336411707838-01", + "ReservationDateUtc": "2024-05-01T17:14:40.4900134+00:00", + "MaximumConfirmationDateUtc": "2024-06-13T17:14:40.4900134+00:00", + "Status": 2, + "SlaRequest": [ + { + "item": { + "id": "229", + "groupItemId": null, + "quantity": 1, + "price": 5, + "modal": "FURNITURE", + "additionalHandlingTime": "00:00:00", + "dimension": { + "weight": 186.37, + "height": 23.5, + "width": 165, + "length": 67.5, + "maxSumDimension": 300 + }, + "kitItem": [], + "unlimitedQuantity": false, + "dockId": "dk_temp", + "warehouseId": "wh_temp", + "provider": null + }, + "slaType": "delivery", + "slaTypeName": "Normal delivery", + "freightTableName": "Correios PAC", + "freightTableId": "11cc4b6", + "listPrice": 10.35, + "promotionalPrice": 10.35, + "timeToPresale": "00:00:00", + "transitTime": "1.00:00:00", + "dockTime": "00:00:00", + "timeToDockPlusDockTime": "00:00:00", + "totalTime": "1.00:00:00", + "deliveryWindows": { + "startDateUtc": "2024-02-25T09:00:00+00:00", + "endDateUtc": "2024-02-25T12:00:00+00:00", + "listPrice": 0 + }, + "wareHouseId": "wh_temp", + "kitReservation": null, + "dockId": "dk_temp", + "wmsEndPoint": null, + "location": { + "zipCode": "58039210", + "country": "BRA", + "point": [ + -34.82939147949219, + -7.115228652954102 + ], + "inStore": { + "isCheckedIn": false, + "storeId": "180082" + } + }, + "pickupStoreInfo": null, + "deliveryOnWeekends": true, + "weekendAndHolidays": { + "saturday": true, + "sunday": true, + "holiday": true + }, + "estimateDate": "2024-05-02T17:14:51.5742729+00:00", + "deliveryChannel": "delivery", + "totalTimePlusCarrierSchedule": "1.00:00:00", + "polygonName": "centerlRio", + "distanceLevel": null, + "accountCarrier": "recorrenciaqa", + "dateOfSupplyUtc": null, + "supplyLotId": null, + "isExternal": false + } + ], + "CanceledDateUtc": "0001-01-01T00:00:00+00:00", + "AuthorizedDateUtc": "2024-05-01T17:14:40.4900134+00:00", + "ConfirmedDateUtc": "2024-05-01T17:14:51.5898912+00:00", + "Errors": [], + "IsSucess": true + } + } + } + } + } + } + }, + "/api/logistics/pvt/inventory/reservations/{reservationId}/confirm": { + "post": { + "tags": [ + "Reservations" + ], + "summary": "Confirm reservation", + "description": "Confirms a [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92), searching by reservation ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "ConfirmReservation", + "parameters": [ + { + "name": "reservationId", + "in": "path", + "description": "[Reservation](https://help.vtex.com/en/tutorial/how-the-reservation-works--tutorials_92) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "00-1336411707838-01" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/logistics/pvt/inventory/reservations/{reservationId}/acknowledge": { + "post": { + "tags": [ + "Reservations" + ], + "summary": "Acknowledgment reservation", + "description": "Acknowledges a [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92), searching by reservation ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "AcknowledgmentReservation", + "parameters": [ + { + "name": "reservationId", + "in": "path", + "description": "[Reservation](https://help.vtex.com/en/tutorial/how-the-reservation-works--tutorials_92) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "00-1336411707838-01" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/logistics/pvt/inventory/reservations/{reservationId}/cancel": { + "post": { + "tags": [ + "Reservations" + ], + "summary": "Cancel reservation", + "description": "Cancels a [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92), searching by reservation ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "CancelReservation", + "parameters": [ + { + "name": "reservationId", + "in": "path", + "description": "[Reservation](https://help.vtex.com/en/tutorial/how-the-reservation-works--tutorials_92) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "00-1336411707838-01" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/logistics/pvt/inventory/reservations/{warehouseId}/{skuId}": { + "get": { + "tags": [ + "Reservations" + ], + "summary": "List reservation by warehouse and SKU", + "description": "Lists information about [reservations](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92), searching by a given [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID and SKU ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "ReservationbyWarehouseandSku", + "parameters": [ + { + "name": "warehouseId", + "in": "path", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "whs15hs6c" + } + }, + { + "name": "skuId", + "in": "path", + "description": "SKU ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "36" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/logistics/pvt/shipping/calculate": { + "post": { + "tags": [ + "SLA" + ], + "summary": "Calculate SLA", + "description": "Checkout uses this endpoint to calculate a Service Level Agreement (SLA), a contract between the store and a customer about their order fulfillment conditions, such as the shipping estimated date.\r\n\r\nThe calculation of the estimated date considers the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) and [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) related to the order.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CalculateSLA", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Shipping conditions to calculate the Service Level Agreement (SLA).", + "required": [ + "items", + "location" + ], + "properties": { + "items": { + "type": "array", + "description": "Items' shipping conditions to calculate the Service Level Agreement (SLA).", + "items": { + "type": "object", + "description": "Item's information.", + "required": [ + "id", + "quantity", + "dimension" + ], + "properties": { + "id": { + "type": "string", + "description": "SKU ID.", + "example": "1" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "SKU quantity.", + "example": 1 + }, + "price": { + "type": "number", + "description": "Item price.", + "example": 14128.9, + "nullable": true + }, + "modal": { + "type": "string", + "description": "[Modal](https://help.vtex.com/en/tutorial/how-the-modal-works--tutorials_125) is a special freight.", + "enum": [ + "CHEMICALS", + "ELECTRONICS", + "FURNITURE", + "GLASS", + "LIQUID", + "MATTRESSES", + "REFRIGERATED", + "TIRES", + "WHITE_GOODS", + "FIREARMS" + ], + "example": "FURNITURE", + "nullable": true + }, + "additionalHandlingTime": { + "type": "string", + "description": "Additional handling time in the format `DD.HH:MM:SS`.", + "example": "00:00:00" + }, + "dimension": { + "type": "object", + "description": "Item dimensions.", + "properties": { + "weight": { + "type": "number", + "description": "Item weight.", + "example": 86.37 + }, + "height": { + "type": "number", + "description": "Item height.", + "example": 23.5 + }, + "width": { + "type": "number", + "description": "Item width.", + "example": 65 + }, + "length": { + "type": "number", + "description": "Item length.", + "example": 67.5 + }, + "maxSumDimension": { + "type": "number", + "description": "Maximum sum of dimensions.", + "example": 243.9 + } + } + }, + "kitItem": { + "type": "array", + "description": "[Kit](https://help.vtex.com/en/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28) item information.", + "items": { + "type": "object", + "description": "Kit item object.", + "required": [ + "id", + "quantity", + "dimension" + ], + "properties": { + "id": { + "type": "string", + "description": "Kit SKU ID.", + "example": "2" + }, + "groupItemId": { + "type": "string", + "description": "Kit group item ID.", + "example": null, + "nullable": true + }, + "kitItem": { + "type": "array", + "description": "Kit item list.", + "items": { + "type": "string", + "description": "Kit items' IDs.", + "example": "1" + }, + "nullable": true + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Kit SKU quantity.", + "example": 1 + }, + "price": { + "type": "number", + "description": "Kit SKU price.", + "example": 1 + }, + "additionalHandlingTime": { + "type": "string", + "description": "Kit item additional handling time in the format `DD.HH:MM:SS`.", + "example": "00:00:00" + }, + "dimension": { + "type": "object", + "description": "Kit item dimensions.", + "properties": { + "weight": { + "type": "number", + "description": "Kit item weight.", + "example": 1 + }, + "height": { + "type": "number", + "description": "Kit item height.", + "example": 1 + }, + "width": { + "type": "number", + "description": "Kit item width.", + "example": 1 + }, + "length": { + "type": "number", + "description": "Kit item length.", + "example": 1 + }, + "maxSumDimension": { + "type": "number", + "description": "Maximum sum of dimensions.", + "example": 5 + } + } + } + } + }, + "nullable": true + }, + "dockId": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID.", + "example": "1a8bce3", + "nullable": true + }, + "wareHouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID.", + "example": "1937054", + "nullable": true + } + } + } + }, + "location": { + "type": "object", + "description": "Shipping location information.", + "required": [ + "zipCode", + "country" + ], + "properties": { + "zipCode": { + "type": "string", + "description": "Shipping adress postal code.", + "example": "22780084" + }, + "country": { + "type": "string", + "description": "Three-digit country code of the shipping address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format.", + "example": "BRA" + }, + "point": { + "type": "array", + "description": "Shipping address coordinates, first longitude then latitude.", + "items": { + "type": "number", + "description": "Longitude or latitude.", + "example": -43.23171615600586 + }, + "example": [ + -43.23171615600586, + -22.990713500405295 + ] + }, + "inStore": { + "type": "object", + "description": "Information related to [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc).", + "properties": { + "IsCheckedIn": { + "type": "boolean", + "description": "This field is set as `true` when the order is placed via [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc) and `false` when it is not.", + "example": false + }, + "StoreId": { + "type": "string", + "description": "ID of purchases made in the GoCommerce context.", + "example": "180082", + "nullable": true + } + } + } + } + }, + "salesChannel": { + "type": "string", + "description": "Sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) valid for the SLA calculation.", + "example": "1" + }, + "deliveryChannel": { + "type": "string", + "description": "Defines if the shipping type is `delivery` or `pickup`.", + "example": "delivery", + "nullable": true + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "array", + "description": "List of Service Level Agreements (SLA).", + "items": { + "type": "object", + "description": "Service Level Agreements (SLA) conditions.", + "properties": { + "itemId": { + "type": "string", + "description": "SKU ID." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "SKU quantity." + }, + "kitItem": { + "type": "array", + "description": "[Kit](https://help.vtex.com/en/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28) items' information.", + "items": { + "type": "object", + "description": "Kit item object.", + "properties": { + "id": { + "type": "string", + "description": "Kit SKU ID." + }, + "quantity": { + "type": "integer", + "description": "Kit SKU quantity." + }, + "warehouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID where the kit SKU is stored." + }, + "supplyLotId": { + "type": "string", + "description": "Kit SKU supply lot ID.", + "nullable": true + } + } + } + }, + "availabilityQuantity": { + "type": "integer", + "format": "int32", + "description": "SKU quantity available for sales. [Reserved](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) items do not count." + }, + "salesChannel": { + "type": "string", + "description": "Sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) valid for the SLA calculation." + }, + "slaType": { + "type": "string", + "description": "Service Level Agreement (SLA) type." + }, + "slaTypeName": { + "type": "string", + "description": "Service Level Agreement (SLA) name." + }, + "freightTableName": { + "type": "string", + "description": "[Shipping rate template](https://help.vtex.com/en/tutorial/shipping-rate-template--tutorials_127) name." + }, + "freightTableId": { + "type": "string", + "description": "Shipping rate template ID." + }, + "listPrice": { + "type": "number", + "description": "SKU list price." + }, + "transitTime": { + "type": "string", + "description": "Transit time in the format `DD.HH:MM:SS`." + }, + "dockTime": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) processing time in the format `D.HH:MM:SS`. When it was not configured, it returns `00:00:00`." + }, + "timeToDockPlusDockTime": { + "type": "string", + "description": "Time spent in loading dock plus `dockTime` in the format `D.HH:MM:SS`." + }, + "aditionalTimeBlockedDays": { + "type": "string", + "description": "Additional time blocked in the format `DD.HH:MM:SS`." + }, + "leadTime": { + "type": "string", + "description": "[Lead time](https://help.vtex.com/en/tutorial/lead-time-shipping-time-at-sku-level--16yv5Mkj6bTyWR1hCN2f4B) is an optional time configuration for a SKU in a warehouse. It can be handling time, fabrication or how long it takes for the item to be available to be shipped to customers. The lead time is a part of the total shipping time and is considered for shipping date calculation. The format is `DD.HH:MM:SS`." + }, + "totalTime": { + "type": "string", + "description": "SLA total time in the format `DD.HH:MM:SS`." + }, + "deliveryWindows": { + "type": "array", + "description": "[Delivery windows](https://help.vtex.com/en/tutorial/managing-delivery-capacity--2y217FQZCjD0I1n62yxVcz) configurations.", + "items": { + "type": "object", + "description": "Delivery window details.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting date and time, in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending date and time, in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "listPrice": { + "type": "number", + "description": "List price." + } + } + } + }, + "wareHouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID." + }, + "dockId": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID." + }, + "location": { + "type": "object", + "description": "Shipping location information.", + "properties": { + "zipCode": { + "type": "string", + "description": "Shipping adress postal code." + }, + "country": { + "type": "string", + "description": "Three-digit country code of the shipping address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "point": { + "type": "array", + "description": "Shipping address coordinates, first longitude then latitude.", + "items": { + "type": "number", + "description": "Longitude or latitude." + }, + "nullable": true + }, + "inStore": { + "type": "object", + "description": "Information related to [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc).", + "properties": { + "isCheckedIn": { + "type": "boolean", + "description": "This field is set as `true` when the order is placed via [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc) and `false` when it is not." + }, + "storeId": { + "type": "string", + "description": "ID of purchases made in the GoCommerce context.", + "nullable": true + } + } + } + } + }, + "deliveryOnWeekends": { + "type": "boolean", + "description": "Defines if the delivery on weekends configuration is active (`true`) or inactive (`false`)." + }, + "weekendAndHolidays": { + "type": "object", + "description": "Delivery on weekends and holidays information.", + "properties": { + "saturday": { + "type": "boolean", + "description": "Defines if the delivery on Saturday configuration is active (`true`) or inactive (`false`)." + }, + "sunday": { + "type": "boolean", + "description": "Defines if the delivery on Sunday configuration is active (`true`) or inactive (`false`)." + }, + "holiday": { + "type": "boolean", + "description": "Defines if the delivery on [holiday](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk) configuration is active (`true`) or inactive (`false`)." + } + }, + "nullable": true + }, + "carrierSchedule": { + "type": "array", + "description": "Schedule sent by the carrier.", + "items": { + "type": "object", + "description": "Carrier schedule object.", + "properties": { + "dayOfWeek": { + "type": "integer", + "description": "Day of the week, from `0` (Sunday) to `6` (Saturday).", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + "timeLimit": { + "type": "string", + "description": "Time limit." + } + } + } + }, + "totalTimePlusCarrierSchedule": { + "type": "string", + "description": "Total shipping time plus carrier schedule, in the format `DD.HH:MM:SS`." + }, + "restrictedFreight": { + "type": "array", + "description": "List of postal codes where the delivery is restricted for the carrier.", + "items": { + "type": "string", + "description": "Restricted freight postal code.", + "nullable": true + }, + "nullable": true + }, + "coordinates": { + "type": "array", + "description": "Shipping address geolocation coordinates, first longitude then latitude.", + "nullable": true, + "items": { + "type": "number", + "description": "Longitude or latitude.", + "nullable": true + } + }, + "pickupStoreInfo": { + "type": "object", + "description": "Information about a loading dock that was transformed into a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "deprecated": true, + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Defines if the shipping type was pickup (`true`) or not (`false`).", + "nullable": true, + "deprecated": true + }, + "storeId": { + "type": "string", + "description": "Store ID for stores that acted as pickup points.", + "nullable": true, + "deprecated": true + }, + "friendlyName": { + "type": "string", + "description": "Name of the pickup point displayed at checkout.", + "nullable": true, + "deprecated": true + }, + "address": { + "type": "object", + "description": "Pickup point address information.", + "nullable": true, + "deprecated": true, + "properties": { + "postalCode": { + "type": "string", + "description": "Pickup point address postal code.", + "deprecated": true + }, + "country": { + "type": "object", + "description": "Information about the pickup point address country.", + "deprecated": true, + "properties": { + "acronym": { + "type": "string", + "description": "Three-digit country code of the pickup point address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format.", + "deprecated": true + }, + "name": { + "type": "string", + "description": "Country name of the pickup point address.", + "deprecated": true + } + } + }, + "city": { + "type": "string", + "description": "Pickup point address city.", + "deprecated": true + }, + "state": { + "type": "string", + "description": "Pickup point address state.", + "deprecated": true + }, + "neighborhood": { + "type": "string", + "description": "Pickup point address neighborhood.", + "deprecated": true + }, + "street": { + "type": "string", + "description": "Pickup point address street.", + "deprecated": true + }, + "number": { + "type": "string", + "description": "Pickup point address number.", + "deprecated": true + }, + "complement": { + "type": "string", + "description": "Pickup point address complement.", + "deprecated": true, + "nullable": true + }, + "reference": { + "type": "string", + "description": "Pickup point address reference point.", + "deprecated": true, + "nullable": true + }, + "location": { + "type": "object", + "description": "Pickup point address geolocation coordinates.", + "deprecated": true, + "properties": { + "latitude": { + "type": "number", + "description": "Latitude coordinate.", + "deprecated": true + }, + "longitude": { + "type": "number", + "description": "Longitude coordinate.", + "deprecated": true + } + } + } + } + }, + "additionalInfo": { + "type": "string", + "description": "Additional information about the delivery or the pickup point.", + "nullable": true, + "deprecated": true + }, + "dockId": { + "type": "string", + "description": "ID of the [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj related to the delivery or the pickup point ID.", + "nullable": true, + "deprecated": true + }, + "distance": { + "type": "number", + "description": "Distance in kilometers between the pickup point and the customer's address, measured as a straight line.", + "nullable": true, + "deprecated": true + }, + "businessHours": { + "type": "string", + "description": "Pickup point business hours configurations.", + "nullable": true, + "deprecated": true + }, + "pickupHolidays": { + "type": "string", + "description": "Holiday's configurations applicable to the pickup point.", + "nullable": true, + "deprecated": true + }, + "sellerId": { + "type": "string", + "description": "Seller ID.", + "nullable": true, + "deprecated": true + }, + "isThirdPartyPickup": { + "type": "boolean", + "description": "Defines if the pickup was third party (`true`) or not (`false`).", + "deprecated": true + } + } + }, + "timeToPresale": { + "type": "string", + "description": "Time to presale in the format `DD.HH:MM:SS`." + }, + "deliveryChannel": { + "type": "string", + "description": "Defines if the shipping type is `delivery` or `pickup`." + }, + "availabilityQuantityByDeliveryChannel": { + "type": "integer", + "description": "Availability and quantity by the given delivery channel." + }, + "polygonName": { + "type": "string", + "description": "[Polygon](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) ID (same as the polygon name)." + }, + "distanceLevel": { + "type": "string", + "description": "SLA distance level." + }, + "accountCarrier": { + "type": "string", + "description": "Account carrier." + }, + "carrierBusinessHours": { + "type": "array", + "description": "Carrier business hours configurations for the week.", + "items": { + "type": "object", + "description": "Carrier business hours configurations for a day of the week.", + "properties": { + "openingTime": { + "type": "string", + "description": "Carrier opening time in `HH:MM:SS` format." + }, + "closingTime": { + "type": "string", + "description": "Carrier closing time in `HH:MM:SS` format." + }, + "dayOfWeek": { + "type": "integer", + "description": "Day of the week, from `0` (Sunday) to `6` (Saturday).", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + } + } + } + }, + "provider": { + "type": "string", + "description": "Provider system.", + "nullable": true + }, + "dateOfSupplyUtc": { + "type": "string", + "description": "Supply date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`.", + "nullable": true + }, + "estimateDate": { + "type": "string", + "description": "Delivery estimate date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "supplyLotId": { + "type": "string", + "description": "Supply lot ID.", + "nullable": true + }, + "isExternal": { + "type": "boolean", + "description": "Defines if the SLA request is external (`true`) or not (`false`)." + } + } + } + } + }, + "example": [ + [ + { + "itemId": "1", + "quantity": 2, + "kitItem": [ + { + "id": "1", + "quantity": 1, + "warehouseId": "wh-01", + "supplyLotId": "05-05-22" + } + ], + "availabilityQuantity": 3062340, + "salesChannel": "1", + "slaType": "Normal delivery", + "slaTypeName": "Normal delivery", + "freightTableName": "ft-01", + "freightTableId": "ft-01", + "listPrice": 12.12, + "transitTime": "2.00:00:00", + "dockTime": "00:00:00", + "timeToDockPlusDockTime": "7.00:00:00", + "aditionalTimeBlockedDays": "00:00:00", + "leadTime": "00:00:00", + "totalTime": "9.00:00:00", + "deliveryWindows": [ + { + "startDateUtc": "2024-07-25T00:00:00+00:00", + "endDateUtc": "2024-07-25T23:59:59+00:00", + "listPrice": 0 + } + ], + "wareHouseId": "wh-01", + "dockId": "dock-01", + "location": { + "zipCode": "01239000", + "country": "BRA", + "point": null, + "inStore": { + "isCheckedIn": false, + "storeId": null + } + }, + "deliveryOnWeekends": true, + "weekendAndHolidays": null, + "carrierSchedule": [], + "totalTimePlusCarrierSchedule": "9.00:00:00", + "restrictedFreight": null, + "coordinates": null, + "pickupStoreInfo": { + "isPickupStore": false, + "storeId": null, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null, + "distance": 0, + "businessHours": null, + "pickupHolidays": null, + "sellerId": "storefashion", + "isThirdPartyPickup": false + }, + "timeToPresale": "00:00:00", + "deliveryChannel": "delivery", + "availabilityQuantityByDeliveryChannel": 1012337, + "polygonName": "ipanema_leblon", + "distanceLevel": "", + "accountCarrier": "storefashion", + "carrierBusinessHours": [ + { + "dayOfWeek": 1, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 2, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 3, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 4, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 5, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 6, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 0, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + } + ], + "provider": null, + "dateOfSupplyUtc": null, + "estimateDate": "2024-07-24T15:39:00-03:00", + "supplyLotId": "05-05-22", + "isExternal": false + }, + { + "itemId": "1", + "quantity": 2, + "kitItem": [ + { + "id": "1", + "quantity": 1, + "warehouseId": "wh8735n", + "supplyLotId": null + } + ], + "availabilityQuantity": 3062340, + "salesChannel": "1", + "slaType": "Capacity", + "slaTypeName": "Capacity", + "freightTableName": "Delivery Capacity11", + "freightTableId": "168e017", + "listPrice": 2.02, + "transitTime": "00:01:00", + "dockTime": "00:00:00", + "timeToDockPlusDockTime": "00:00:00", + "aditionalTimeBlockedDays": "00:00:00", + "leadTime": "00:00:00", + "totalTime": "00:01:00", + "deliveryWindows": [ + { + "startDateUtc": "2024-07-16T00:00:00+00:00", + "endDateUtc": "2024-07-16T23:59:59+00:00", + "listPrice": 0 + }, + { + "startDateUtc": "2024-07-16T09:00:00+00:00", + "endDateUtc": "2024-07-16T10:59:59+00:00", + "listPrice": 0 + }, + { + "startDateUtc": "2024-07-17T00:00:00+00:00", + "endDateUtc": "2024-07-17T23:59:59+00:00", + "listPrice": 0 + }, + { + "startDateUtc": "2024-07-17T09:00:00+00:00", + "endDateUtc": "2024-07-17T10:59:59+00:00", + "listPrice": 0 + }, + { + "startDateUtc": "2024-07-18T00:00:00+00:00", + "endDateUtc": "2024-07-18T23:59:59+00:00", + "listPrice": 0 + }, + { + "startDateUtc": "2024-07-18T09:00:00+00:00", + "endDateUtc": "2024-07-18T10:59:59+00:00", + "listPrice": 0 + } + ], + "wareHouseId": "wh8735n", + "dockId": "d89vnwe", + "location": { + "zipCode": "01239000", + "country": "BRA", + "point": null, + "inStore": { + "isCheckedIn": false, + "storeId": null + } + }, + "deliveryOnWeekends": true, + "weekendAndHolidays": null, + "carrierSchedule": [], + "totalTimePlusCarrierSchedule": "00:01:00", + "restrictedFreight": null, + "coordinates": null, + "pickupStoreInfo": { + "isPickupStore": false, + "storeId": null, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null, + "distance": 0, + "businessHours": null, + "pickupHolidays": null, + "sellerId": "logisticsqa", + "isThirdPartyPickup": false + }, + "timeToPresale": "00:00:00", + "deliveryChannel": "delivery", + "availabilityQuantityByDeliveryChannel": 1012337, + "polygonName": "central_rio", + "distanceLevel": "", + "accountCarrier": "logisticsqa", + "carrierBusinessHours": [ + { + "dayOfWeek": 1, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 2, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 3, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 4, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 5, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 6, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + }, + { + "dayOfWeek": 0, + "openingTime": "00:00:00", + "closingTime": "23:59:59" + } + ], + "provider": null, + "dateOfSupplyUtc": null, + "estimateDate": "2024-07-15T15:40:00-03:00", + "supplyLotId": null, + "isExternal": false + } + ] + ] + } + } + } + } + } + }, + "/api/logistics/pvt/configuration/pickuppoints": { + "get": { + "tags": [ + "Pickup points" + ], + "summary": "List pickup points", + "description": "Retrieves information about your store [pickup points](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).\r\n\r\n>⚠️ The response is limited to 1.000 pickup points. If you need more results, you can use the [List paged pickup points](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/pickuppoints/_search) endpoint.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "ListAllPickupPpoints", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of pickup points, limited to 1.000 pickup points. If you need more than 1000 results, you can use the [List paged pickup points](https://developers.vtex.com/docs/api-reference/logistics-api#get-/api/logistics/pvt/configuration/pickuppoints/_search) endpoint.", + "items": { + "$ref": "#/components/schemas/PickupPoint" + } + }, + "example": [ + { + "id": "b8e7ca56", + "name": "Pickup Shopping Center", + "description": "Shopping Center from Barra", + "instructions": "You have to present a document to collect your package", + "formatted_address": "undefined", + "address": { + "postalCode": "22250040", + "country": { + "acronym": "BRA", + "name": "Brazil" + }, + "city": "Rio de Janeiro", + "state": "RJ", + "neighborhood": "Botafogo", + "street": "Botafogo beach", + "number": "300", + "complement": "Shopping Center", + "reference": "Third floor", + "location": { + "latitude": -22.906847, + "longitude": -43.172897 + } + }, + "isActive": true, + "distance": 0, + "seller": "Fashion Skirts", + "_sort": [ + 1574240390000 + ], + "businessHours": [ + { + "dayOfWeek": 1, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 2, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 3, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 4, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 5, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + } + ], + "tagsLabel": [ + "w67", + "p34" + ], + "pickupHolidays": [ + { + "date": "2024-12-28T03:00:00Z", + "hourBegin": "09:00", + "hourEnd": "13:00" + }, + { + "date": "2024-11-17T03:00:00Z", + "hourBegin": "00:00", + "hourEnd": "00:00" + } + ], + "isThirdPartyPickup": false, + "accountOwnerName": "Fashion Store", + "accountOwnerId": "1b4018ec-48bf-4a59-9eae-547403e11afc", + "parentAccountName": "Fashion Store", + "originalId": null + }, + { + "id": "792893547449051", + "name": "Bleu PUP", + "description": "Bleu Store", + "instructions": "You must present a document to collect your order", + "formatted_address": "undefined", + "address": { + "postalCode": "18550-000", + "country": { + "acronym": "BRA", + "name": "Brasil" + }, + "city": "Boituva", + "state": "SP", + "neighborhood": "Tancredo Neves", + "street": "BTV-250", + "number": "01", + "complement": "Second floor", + "reference": "Next to the city hall", + "location": { + "latitude": -23.2863329, + "longitude": -47.6783742 + } + }, + "isActive": true, + "distance": 1574240387072, + "seller": "Recurrency", + "_sort": [ + 1574240390000 + ], + "businessHours": [ + { + "dayOfWeek": 1, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 2, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 3, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 4, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 5, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + } + ], + "tagsLabel": [ + "kr47", + "yk15" + ], + "pickupHolidays": [ + { + "date": "2024-12-28T03:00:00Z", + "hourBegin": "09:00", + "hourEnd": "13:00" + } + ], + "isThirdPartyPickup": false, + "accountOwnerName": "sportsstore", + "accountOwnerId": "9ddcfba5-3855-49ec-b61e-b2847b9314cc", + "parentAccountName": "sportsstore", + "originalId": "b8e7ca56" + } + ] + } + } + } + } + } + }, + "/api/logistics/pvt/configuration/pickuppoints/{pickupPointId}": { + "put": { + "tags": [ + "Pickup points" + ], + "summary": "Create or update pickup point", + "description": "Creates or updates a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) of your store, searching by pickup point ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateUpdatePickupPoint", + "parameters": [ + { + "name": "pickupPointId", + "in": "path", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) ID. Cannot contain spaces.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "b8e7ca56" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "name", + "description", + "instructions", + "formatted_address", + "address", + "isActive", + "businessHours", + "tagsLabel" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) ID. Cannot contain spaces.", + "example": "b8e7ca56" + }, + "name": { + "type": "string", + "description": "Pickup point name displayed to customers at checkout.", + "example": "Pickup store." + }, + "description": { + "type": "string", + "description": "Pickup point description.", + "example": "Pickup your items in our store." + }, + "instructions": { + "type": "string", + "description": "Pickup point instructions.", + "example": "Bring your ID in order to pickup your order." + }, + "formatted_address": { + "type": "string", + "description": "Formatted address.", + "example": "undefined" + }, + "address": { + "required": [ + "postalCode", + "country", + "city", + "state", + "neighborhood", + "street", + "number", + "complement", + "reference", + "location" + ], + "type": "object", + "description": "Pickup point address information.", + "properties": { + "postalCode": { + "type": "string", + "description": "Pickup point address postal code.", + "example": "22070002" + }, + "country": { + "required": [ + "acronym", + "name" + ], + "type": "object", + "description": "Information about the pickup point address country.", + "properties": { + "acronym": { + "type": "string", + "description": "Three-digit country code of the pickup point address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format.", + "example": "BRA" + }, + "name": { + "type": "string", + "description": "Country name of the pickup point address.", + "example": "Brazil" + } + } + }, + "city": { + "type": "string", + "description": "Pickup point address city.", + "example": "Rio de Janeiro" + }, + "state": { + "type": "string", + "description": "Pickup point address state.", + "example": "RJ" + }, + "neighborhood": { + "type": "string", + "description": "Pickup point address neighborhood.", + "example": "Botafogo" + }, + "street": { + "type": "string", + "description": "Pickup point address street.", + "example": "Praia de botafogo." + }, + "number": { + "type": "string", + "description": "Pickup point address number.", + "example": "200" + }, + "complement": { + "type": "string", + "description": "Pickup point address complement.", + "example": "3rd floor" + }, + "reference": { + "type": "string", + "description": "Reference point to help the customer find the pickup point.", + "example": "Grey building" + }, + "location": { + "required": [ + "latitude", + "longitude" + ], + "type": "object", + "description": "Pickup point address geolocation coordinates.", + "properties": { + "latitude": { + "type": "number", + "description": "Latitude coordinate.", + "example": -22.974477767944336 + }, + "longitude": { + "type": "number", + "description": "Longitude coordinate.", + "example": -43.18672561645508 + } + } + } + } + }, + "isActive": { + "type": "boolean", + "description": "Defines if the pickup point is active (`true`) or inactive (`false`).", + "example": true + }, + "businessHours": { + "type": "array", + "items": { + "required": [ + "dayOfWeek", + "openingTime", + "closingTime" + ], + "type": "object", + "description": "Business hours configurations from Monday to Friday.", + "properties": { + "dayOfWeek": { + "type": "integer", + "format": "int32", + "description": "Day of the week identification, as in `1` = Monday, `2` = Tuesday, `3` = Wednesday, `4` = Thursday, and `5` = Friday.", + "example": 1, + "enum": [ + 1, + 2, + 3, + 4, + 5 + ] + }, + "openingTime": { + "type": "string", + "description": "Opening time in `HH:MM:SS` format.", + "example": "08:00:00" + }, + "closingTime": { + "type": "string", + "description": "Closing time in `HH:MM:SS` format.", + "example": "20:00:00" + } + } + }, + "description": "Pickup point business hours configurations." + }, + "tagsLabel": { + "type": "array", + "items": { + "type": "string", + "description": "Pickup point tag label.", + "example": "w67" + }, + "description": "Tags that identify a group of pickup points.", + "example": [ + "w67", + "p34" + ] + }, + "isThirdPartyPickup": { + "type": "boolean", + "description": "Defines if the pickup point is third-party (`true`) or not (`false`).", + "example": false + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PickupPoint" + }, + "example": { + "id": "b8e7ca56", + "name": "Pickup Shopping Center", + "description": "Shopping Center from Barra", + "instructions": "You have to present a document to collect your package", + "formatted_address": "undefined", + "address": { + "postalCode": "22250040", + "country": { + "acronym": "BRA", + "name": "Brazil" + }, + "city": "Rio de Janeiro", + "state": "RJ", + "neighborhood": "Botafogo", + "street": "Botafogo beach", + "number": "300", + "complement": "Shopping Center", + "reference": "Third floor", + "location": { + "latitude": -22.906847, + "longitude": -43.172897 + } + }, + "isActive": true, + "distance": 0, + "seller": "Fashion Skirts", + "_sort": [ + 1574240390000 + ], + "businessHours": [ + { + "dayOfWeek": 1, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 2, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 3, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 4, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 5, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + } + ], + "tagsLabel": [ + "w67", + "p34" + ], + "pickupHolidays": [ + { + "date": "2024-12-28T03:00:00Z", + "hourBegin": "09:00", + "hourEnd": "13:00" + }, + { + "date": "2024-11-17T03:00:00Z", + "hourBegin": "00:00", + "hourEnd": "00:00" + } + ], + "isThirdPartyPickup": false, + "accountOwnerName": "fashionstore", + "accountOwnerId": "1b4018ec-48bf-4a59-9eae-547403e11afc", + "parentAccountName": "fashionstore", + "originalId": "b8e7ca56" + } + } + } + } + } + }, + "get": { + "tags": [ + "Pickup points" + ], + "summary": "List pickup point by ID", + "description": "Retrieves information about a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R), searching by pickup point ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "GetById", + "parameters": [ + { + "name": "pickupPointId", + "in": "path", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "b8e7ca56" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PickupPoint" + }, + "example": { + "id": "b8e7ca56", + "name": "Pickup Shopping Center", + "description": "Shopping Center from Barra", + "instructions": "You have to present a document to collect your package", + "formatted_address": "undefined", + "address": { + "postalCode": "22250040", + "country": { + "acronym": "BRA", + "name": "Brazil" + }, + "city": "Rio de Janeiro", + "state": "RJ", + "neighborhood": "Botafogo", + "street": "Botafogo beach", + "number": "300", + "complement": "Shopping Center", + "reference": "Third floor", + "location": { + "latitude": -22.906847, + "longitude": -43.172897 + } + }, + "isActive": true, + "distance": 0, + "seller": "Fashion Skirts", + "_sort": [ + 1574240390000 + ], + "businessHours": [ + { + "dayOfWeek": 1, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 2, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 3, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 4, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 5, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + } + ], + "tagsLabel": [ + "w67", + "p34" + ], + "pickupHolidays": [ + { + "date": "2024-12-28T03:00:00Z", + "hourBegin": "09:00", + "hourEnd": "13:00" + }, + { + "date": "2024-11-17T03:00:00Z", + "hourBegin": "00:00", + "hourEnd": "00:00" + } + ], + "isThirdPartyPickup": false, + "accountOwnerName": "fashionstore", + "accountOwnerId": "1b4018ec-48bf-4a59-9eae-547403e11afc", + "parentAccountName": "fashionstore", + "originalId": "b8e7ca56" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Pickup points" + ], + "summary": "Delete pickup point", + "description": "Deletes a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) of your store, searching by pickup point ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "Delete", + "parameters": [ + { + "name": "pickupPointId", + "in": "path", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "b8e7ca56" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/logistics/pvt/configuration/pickuppoints/_search": { + "get": { + "tags": [ + "Pickup points" + ], + "summary": "List paged pickup points", + "description": "Lists paged [pickup points](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) of your store.\r\n\r\n>⚠️ The response is limited to 100 pages.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "Getpaged", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Number of the page of the response. When not informed, the default page returned is `1`, but you can use this parameter to retrieve a specific page. The response is limited to 100 pages.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 2 + } + }, + { + "name": "pageSize", + "in": "query", + "description": "Number of [pickup points](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 15, + "maximum": 100 + } + }, + { + "name": "keyword", + "in": "query", + "description": "Search pickup points by using a keyword.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "Rio" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Paged pickup points list.", + "properties": { + "items": { + "type": "array", + "description": "List of pickup points.", + "items": { + "$ref": "#/components/schemas/PickupPoint" + } + }, + "paging": { + "type": "object", + "description": "Pagination information.", + "properties": { + "page": { + "type": "integer", + "description": "Number of the current page of the response. By default, it returns page `1`, unless a different value is informed in the `page` query parameter." + }, + "perPage": { + "type": "integer", + "description": "Number of pickup points per page." + }, + "total": { + "type": "integer", + "description": "Total number of existing pickup points." + }, + "pages": { + "type": "integer", + "description": "Total number of pages, considering the total number of pickup points. Even though there might be other results, the maximum value of this field will be `100`, because the response is limited to 100 pages." + } + } + } + } + }, + "example": { + "items": [ + { + "id": "b8e7ca56", + "name": "Pickup Shopping Center", + "description": "Shopping Center from Barra", + "instructions": "You have to present a document to collect your package", + "formatted_address": "undefined", + "address": { + "postalCode": "22250040", + "country": { + "acronym": "BRA", + "name": "Brazil" + }, + "city": "Rio de Janeiro", + "state": "RJ", + "neighborhood": "Botafogo", + "street": "Botafogo beach", + "number": "300", + "complement": "Shopping Center", + "reference": "Third floor", + "location": { + "latitude": -22.906847, + "longitude": -43.172897 + } + }, + "isActive": true, + "distance": 0, + "seller": "Fashion Skirts", + "_sort": [ + 1574240390000 + ], + "businessHours": [ + { + "dayOfWeek": 1, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 2, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 3, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 4, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 5, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + } + ], + "tagsLabel": [ + "w67", + "p34" + ], + "pickupHolidays": [ + { + "date": "2024-12-28T03:00:00Z", + "hourBegin": "09:00", + "hourEnd": "13:00" + }, + { + "date": "2024-11-17T03:00:00Z", + "hourBegin": "00:00", + "hourEnd": "00:00" + } + ], + "isThirdPartyPickup": false, + "accountOwnerName": "Fashion Store", + "accountOwnerId": "1b4018ec-48bf-4a59-9eae-547403e11afc", + "parentAccountName": "Fashion Store", + "originalId": null + }, + { + "id": "792893547449051", + "name": "Bleu PUP", + "description": "Bleu Store", + "instructions": "You must present a document to collect your order", + "formatted_address": "undefined", + "address": { + "postalCode": "18550-000", + "country": { + "acronym": "BRA", + "name": "Brasil" + }, + "city": "Boituva", + "state": "SP", + "neighborhood": "Tancredo Neves", + "street": "BTV-250", + "number": "01", + "complement": "Second floor", + "reference": "Next to the city hall", + "location": { + "latitude": -23.2863329, + "longitude": -47.6783742 + } + }, + "isActive": true, + "distance": 1574240387072, + "seller": "Recurrency", + "_sort": [ + 1574240390000 + ], + "businessHours": [ + { + "dayOfWeek": 1, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 2, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 3, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 4, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + }, + { + "dayOfWeek": 5, + "openingTime": "09:00:00", + "closingTime": "18:00:00" + } + ], + "tagsLabel": [ + "kr47", + "yk15" + ], + "pickupHolidays": [ + { + "date": "2024-12-28T03:00:00Z", + "hourBegin": "09:00", + "hourEnd": "13:00" + } + ], + "isThirdPartyPickup": false, + "accountOwnerName": "sportsstore", + "accountOwnerId": "9ddcfba5-3855-49ec-b61e-b2847b9314cc", + "parentAccountName": "sportsstore", + "originalId": "b8e7ca56" + } + ], + "paging": { + "page": 1, + "perPage": 15, + "total": 29, + "pages": 2 + } + } + } + } + } + } + } + }, + "/api/logistics/pvt/configuration/geoshape": { + "get": { + "tags": [ + "Polygons" + ], + "summary": "List paged polygons", + "description": "Lists paged [polygons](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) of your store.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "PagedPolygons", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Number of the page of the response.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 2 + } + }, + { + "name": "perPage", + "in": "query", + "description": "Number of [polygons](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 15 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "Polygons list.", + "items": { + "type": "string", + "description": "Polygon name." + } + }, + "paging": { + "type": "object", + "description": "Pagination information.", + "properties": { + "page": { + "type": "integer", + "description": "Number of the current page of the response. By default, it returns page `1`." + }, + "perPage": { + "type": "integer", + "description": "Number of polygons per page." + }, + "total": { + "type": "integer", + "description": "Total number of existing polygons." + }, + "pages": { + "type": "integer", + "description": "Total number of pages, considering the total number of polygons." + } + } + } + } + }, + "example": { + "items": [ + "ipanema_leblon", + "SP", + "south_brazil" + ], + "paging": { + "page": 1, + "perPage": 15, + "total": 22, + "pages": 2 + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Polygons" + ], + "summary": "Create or update polygon", + "description": "Creates or updates a [polygon](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) of your store, using geolocation coordinates.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateUpdatePolygon", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "name", + "geoShape" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) being created or updated.", + "example": "ipanema_leblon" + }, + "geoShape": { + "type": "object", + "description": "Polygon geolocation coordinates.", + "required": [ + "coordinates" + ], + "properties": { + "coordinates": { + "type": "array", + "description": "List of geolocation coordinates that make part of the polygon.", + "items": { + "type": "array", + "description": "Polygon geolocation coordinates. The first and the last pair of coordinates must be equal.", + "items": { + "type": "array", + "description": "Polygon geolocation coordinates, first longitude then latitude.", + "items": { + "type": "number", + "description": "Longitude or latitude.", + "example": -43.23171615600586 + } + } + }, + "example": [ + [ + [ + -43.23171615600586, + -22.990713500405295 + ], + [ + -43.182621002197266, + -22.990713500405295 + ], + [ + -43.182621002197266, + -22.977043559707305 + ], + [ + -43.23171615600586, + -22.977043559707305 + ], + [ + -43.23171615600586, + -22.990713500405295 + ] + ] + ] + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "string", + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) created or updated." + }, + "example": "ipanema_leblon" + } + } + }, + "400": { + "description": "Bad Request" + } + } + } + }, + "/api/logistics/pvt/configuration/geoshape/{polygonName}": { + "get": { + "tags": [ + "Polygons" + ], + "summary": "List polygon by ID", + "description": "Retrieves information about a [polygon](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) of your store, searching by polygon ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "PolygonbyId", + "parameters": [ + { + "name": "polygonName", + "in": "path", + "description": "[Polygon](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) ID (same as the polygon name).", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ipanema_leblon" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "isActive": { + "type": "boolean", + "description": "Defines if the polygon is active (`true`) or inactive (`false`)." + }, + "name": { + "type": "string", + "description": "[Polygon](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) ID, which is the same as the polygon name." + }, + "geoShape": { + "type": "object", + "description": "Polygon geolocation coordinates.", + "properties": { + "coordinates": { + "type": "array", + "description": "List of geolocation coordinates that make part of the polygon.", + "items": { + "type": "array", + "description": "Polygon geolocation coordinates. The first and the last pair of coordinates must be equal.", + "items": { + "type": "array", + "description": "Polygon geolocation coordinates, first longitude then latitude.", + "items": { + "type": "number", + "description": "Longitude or latitude." + } + } + } + }, + "type": { + "type": "string", + "description": "Polygon identification." + } + } + } + } + }, + "example": { + "isActive": true, + "name": "ipanema_leblon", + "geoShape": { + "coordinates": [ + [ + [ + -43.23171615600586, + -22.990713500405295 + ], + [ + -43.182621002197266, + -22.990713500405295 + ], + [ + -43.182621002197266, + -22.977043559707305 + ], + [ + -43.23171615600586, + -22.977043559707305 + ], + [ + -43.23171615600586, + -22.990713500405295 + ] + ] + ], + "type": "polygon" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Polygons" + ], + "summary": "Delete polygon", + "description": "Deletes a [polygon](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) of your store, searching by polygon ID.\r\n\r\nSuccessful requests receive a `200 OK` status code with `true` in the response body.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "DeletePolygon", + "parameters": [ + { + "name": "polygonName", + "in": "path", + "description": "[Polygon](https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138) ID (same as the polygon name).", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "ipanema_leblon" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean", + "description": "Successful requests return the message `true`." + }, + "example": true + } + } + } + } + } + }, + "/api/logistics-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames": { + "get": { + "tags": [ + "Scheduled delivery" + ], + "summary": "Search capacity reservations in time range", + "description": "Retrieves information of all [capacity reservations](https://help.vtex.com/en/tutorial/managing-delivery-capacity--2y217FQZCjD0I1n62yxVcz) made to scheduled delivery windows in a given time range.\r\n\r\n>⚠️ While most of our API endpoints return time fields in UTC format, this endpoint returns time adjusted to the configured time zone of the VTEX account.\n\r\n\r> Note that the combined string `carrier@{capacityType}@{shippingPolicyId}` can be referred to as a `resource` in request messages.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "parameters": [ + { + "name": "capacityType", + "in": "path", + "description": "Defines how the [delivery capacity](https://help.vtex.com/en/tutorial/managing-delivery-capacity--2y217FQZCjD0I1n62yxVcz) is set in the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140), which can be by maximum number of orders (`orders_quantity`) or items (`skus_quantity`).", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "orders_quantity" + } + }, + { + "name": "shippingPolicyId", + "in": "path", + "description": "ID of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) being searched for capacity reservation.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "168e017" + } + }, + { + "name": "rangeStart", + "in": "query", + "description": "Starting date range in the format `YYYY-MM-DD`.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "2024-07-19" + } + }, + { + "name": "rangeEnd", + "in": "query", + "description": "Ending date range in the format `YYYY-MM-DD`.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "2024-07-26" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeliveryCapacity" + }, + "example": { + "id": "2024-07-19F1300T1700", + "resourceId": "carrier@skus_quantity@168e017", + "startDate": "2024-07-19T13:00:00+00:00", + "endDate": "2024-07-26T17:00:59+00:00", + "ownMaxCapacity": 10, + "resourceMaxCapacity": 16, + "reservedValue": 6, + "reservations": [ + { + "id": "SLR-1379840726134-01", + "value": 4 + }, + { + "id": "SLR-1379840726341-01", + "value": 2 + } + ], + "log": [ + { + "when": "2024-07-20T15:56:09.1732357+00:00", + "who": "Daniel Thompson", + "why": "Reservation `SLR-1379840726134-01` with 4.0 units.", + "what": "Unblocked" + }, + { + "when": "2024-07-22T17:29:11.9250354+00:00", + "who": "Daniel Thompson", + "why": "Reservation `SLR-1379840726341-01` with 2.0 units.", + "what": "Unblocked" + } + ] + } + } + } + } + }, + "operationId": "get_api_logisticsCapacity_resources_carrierCapacitytypeShippingpolicyid_timeFrames" + } + }, + "/api/logistics-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames/{windowDay}F{windowStartTime}T{windowEndTime}": { + "get": { + "tags": [ + "Scheduled delivery" + ], + "summary": "Get capacity reservation usage by window", + "description": "Retrieves capacity usage of a specific [scheduled delivery](https://help.vtex.com/en/tutorial/entrega-agendada--22g3HAVCGLFiU7xugShOBi) reservation window.\n\r\n\r>⚠️ While most API endpoints return time fields in UTC format, this endpoint returns time adjusted to the configured time zone of the VTEX account.\n\r\n\r> Note that the combined string `carrier@{capacityType}@{shippingPolicyId}` can be referred to as a \"resource\" in the API's messages.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Logistics viewer** |\r\n| Logistics | Logistics access | **Logistics full access** |\r\n| Logistics | Logistics access | **Logistics shipping full access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Logistics - Full access | Logistics viewer |\r\n| Logistics - Read only | Logistics viewer |\r\n| Logistics - Full access | Logistics full access |\r\n| OMS - Full access | Logistics full access |\r\n| Logistics - Full access | Logistics shipping full access |\r\n| OMS - Full access | Logistics shipping full access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "parameters": [ + { + "name": "capacityType", + "in": "path", + "description": "Defines how the [delivery capacity](https://help.vtex.com/en/tutorial/managing-delivery-capacity--2y217FQZCjD0I1n62yxVcz) is set in the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140), which can be by maximum number of orders (`orders_quantity`) or items (`skus_quantity`).", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "orders_quantity" + } + }, + { + "name": "shippingPolicyId", + "in": "path", + "description": "ID of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) being searched for capacity reservation.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "168e017" + } + }, + { + "name": "windowDay", + "in": "path", + "description": "Date of the [scheduled delivery window](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) being consulted for reservations. The format is `YYYY-MM-DD`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "2024-07-19" + } + }, + { + "name": "windowStartTime", + "in": "path", + "description": "Starting time of the scheduled delivery window being consulted for reservations. The format is `HHMM`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1030" + } + }, + { + "name": "windowEndTime", + "in": "path", + "description": "Ending time of the scheduled delivery window being consulted for reservations. The format is `HHMM`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1159" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeliveryCapacity" + }, + "example": { + "id": "2024-07-19F1300T1700", + "resourceId": "carrier@skus_quantity@168e017", + "startDate": "2024-07-19T13:00:00+00:00", + "endDate": "2024-07-26T17:00:59+00:00", + "ownMaxCapacity": 10, + "resourceMaxCapacity": 16, + "reservedValue": 6, + "reservations": [ + { + "id": "SLR-1379840726134-01", + "value": 4 + }, + { + "id": "SLR-1379840726341-01", + "value": 2 + } + ], + "log": [ + { + "when": "2024-07-20T15:56:09.1732357+00:00", + "who": "Daniel Thompson", + "why": "Reservation `SLR-1379840726134-01` with 4.0 units.", + "what": "Unblocked" + }, + { + "when": "2024-07-22T17:29:11.9250354+00:00", + "who": "Daniel Thompson", + "why": "Reservation `SLR-1379840726341-01` with 2.0 units.", + "what": "Unblocked" + } + ] + } + } + } + } + }, + "operationId": "get_api_logisticsCapacity_resources_carrierCapacitytypeShippingpolicyid_timeFrames_ByWindowDay}F{windowStartTime}T{windowEndTime" + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "schemas": { + "PickupPoint": { + "type": "object", + "description": "Pickup point information.", + "properties": { + "id": { + "type": "string", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) ID." + }, + "name": { + "type": "string", + "description": "Pickup point name displayed to customers at checkout." + }, + "description": { + "type": "string", + "description": "Pickup point description displayed to customers at checkout." + }, + "instructions": { + "type": "string", + "description": "Instructions for customers when collecting their package." + }, + "formatted_address": { + "type": "string", + "description": "Formatted address.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Pickup point address information.", + "properties": { + "postalCode": { + "type": "string", + "description": "Pickup point address postal code." + }, + "country": { + "type": "object", + "description": "Information about the pickup point address country.", + "properties": { + "acronym": { + "type": "string", + "description": "Three-digit country code of the pickup point address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "name": { + "type": "string", + "description": "Country name of the pickup point address." + } + } + }, + "city": { + "type": "string", + "description": "Pickup point address city." + }, + "state": { + "type": "string", + "description": "Pickup point address state." + }, + "neighborhood": { + "type": "string", + "description": "Pickup point address neighborhood." + }, + "street": { + "type": "string", + "description": "Pickup point address street." + }, + "number": { + "type": "string", + "description": "Pickup point address number." + }, + "complement": { + "type": "string", + "description": "Pickup point address complement." + }, + "reference": { + "type": "string", + "description": "Reference point to help the customer find the pickup point." + }, + "location": { + "type": "object", + "description": "Pickup point address geolocation coordinates.", + "properties": { + "latitude": { + "type": "number", + "description": "Latitude coordinate." + }, + "longitude": { + "type": "number", + "description": "Longitude coordinate." + } + } + } + } + }, + "isActive": { + "type": "boolean", + "description": "Defines if the pickup point is active (`true`) or inactive (`false`)." + }, + "distance": { + "type": "number", + "description": "Pickup point configured distance." + }, + "seller": { + "type": "string", + "description": "Seller that corresponds to the pickup point." + }, + "_sort": { + "type": "array", + "description": "Sort array.", + "items": { + "type": "number", + "description": "Pickup point sort information." + } + }, + "businessHours": { + "type": "array", + "description": "Pickup point business hours configurations.", + "items": { + "type": "object", + "description": "Business hours configurations from Monday to Friday.", + "properties": { + "dayOfWeek": { + "type": "integer", + "description": "Day of the week identification, as in `1` = Monday, `2` = Tuesday, `3` = Wednesday, `4` = Thursday, and `5` = Friday." + }, + "openingTime": { + "type": "string", + "description": "Opening time in `HH:MM:SS` format." + }, + "closingTime": { + "type": "string", + "description": "Closing time in `HH:MM:SS` format." + } + } + } + }, + "tagsLabel": { + "type": "array", + "description": "Tags that identify a group of pickup points.", + "items": { + "type": "string", + "description": "Pickup point tag label." + } + }, + "pickupHolidays": { + "type": "array", + "description": "[Holidays](https://help.vtex.com/en/tutorial/registering-holidays--2ItOthSEAoyAmcwsuiO6Yk) configured for the pickup point.", + "items": { + "type": "object", + "description": "Holiday information.", + "properties": { + "date": { + "type": "string", + "description": "Holiday date and time, in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss.ssZ`." + }, + "hourBegin": { + "type": "string", + "description": "Holiday beginning time in `HH:MM` format." + }, + "hourEnd": { + "type": "string", + "description": "Holiday ending time in `HH:MM` format." + } + } + } + }, + "isThirdPartyPickup": { + "type": "boolean", + "description": "Defines if the pickup point is third-party (`true`) or not (`false`)." + }, + "accountOwnerName": { + "type": "string", + "description": "Account owner name." + }, + "accountOwnerId": { + "type": "string", + "description": "Account owner ID." + }, + "parentAccountName": { + "type": "string", + "description": "Parent account name." + }, + "originalId": { + "type": "string", + "description": "Original ID.", + "nullable": true + } + } + }, + "ListDocksById": { + "type": "object", + "description": "Loading dock information.", + "properties": { + "pickupStoreInfo": { + "type": "object", + "description": "Information about a loading dock that was transformed into a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "deprecated": true, + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Defines if the shipping type was pickup (`true`) or not (`false`).", + "nullable": true, + "deprecated": true + }, + "storeId": { + "type": "string", + "description": "Store ID for stores that acted as pickup points.", + "nullable": true, + "deprecated": true + }, + "friendlyName": { + "type": "string", + "description": "Name of the pickup point displayed at checkout.", + "nullable": true, + "deprecated": true + }, + "address": { + "type": "object", + "description": "Pickup point address information.", + "nullable": true, + "deprecated": true, + "properties": { + "postalCode": { + "type": "string", + "description": "Pickup point address postal code.", + "deprecated": true + }, + "country": { + "type": "object", + "description": "Information about the pickup point address country.", + "deprecated": true, + "properties": { + "acronym": { + "type": "string", + "description": "Three-digit country code of the pickup point address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format.", + "deprecated": true + }, + "name": { + "type": "string", + "description": "Country name of the pickup point address.", + "deprecated": true + } + } + }, + "city": { + "type": "string", + "description": "Pickup point address city.", + "deprecated": true + }, + "state": { + "type": "string", + "description": "Pickup point address state.", + "deprecated": true + }, + "neighborhood": { + "type": "string", + "description": "Pickup point address neighborhood.", + "deprecated": true + }, + "street": { + "type": "string", + "description": "Pickup point address street.", + "deprecated": true + }, + "number": { + "type": "string", + "description": "Pickup point address number.", + "deprecated": true + }, + "complement": { + "type": "string", + "description": "Pickup point address complement.", + "deprecated": true, + "nullable": true + }, + "reference": { + "type": "string", + "description": "Pickup point address reference point.", + "deprecated": true, + "nullable": true + }, + "location": { + "type": "object", + "description": "Pickup point address geolocation coordinates.", + "deprecated": true, + "properties": { + "latitude": { + "type": "number", + "description": "Latitude coordinate.", + "deprecated": true + }, + "longitude": { + "type": "number", + "description": "Longitude coordinate.", + "deprecated": true + } + } + } + } + }, + "additionalInfo": { + "type": "string", + "description": "Additional information about the delivery or the pickup point.", + "nullable": true, + "deprecated": true + }, + "dockId": { + "type": "string", + "description": "ID of the [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj related to the delivery or the pickup point ID.", + "nullable": true, + "deprecated": true + }, + "distance": { + "type": "number", + "description": "Distance in kilometers between the pickup point and the customer's address, measured as a straight line.", + "nullable": true, + "deprecated": true + }, + "businessHours": { + "type": "string", + "description": "Pickup point business hours configurations.", + "nullable": true, + "deprecated": true + }, + "pickupHolidays": { + "type": "string", + "description": "Holiday's configurations applicable to the pickup point.", + "nullable": true, + "deprecated": true + }, + "sellerId": { + "type": "string", + "description": "Seller ID.", + "nullable": true, + "deprecated": true + }, + "isThirdPartyPickup": { + "type": "boolean", + "description": "Defines if the pickup was third party (`true`) or not (`false`).", + "deprecated": true + } + } + }, + "storeId": { + "type": "string", + "description": "Store ID.", + "nullable": true + }, + "pickupInStoreInfo": { + "type": "object", + "description": "Information about the physical store as a pickup point.", + "properties": { + "isActice": { + "type": "boolean", + "description": "Defines if the physical store is a pickup point (`true`) or not (`false`)." + }, + "additionalInfo": { + "type": "string", + "description": "Additional information of the store as a pickup point.", + "nullable": true + } + } + }, + "deliveryFromStoreInfo": { + "type": "object", + "description": "Settings for delivery from a physical store.", + "properties": { + "isActice": { + "type": "boolean", + "description": "Defines if the settings for delivery from physical stores are active (`true`) or inactive (`false`)." + }, + "deliveryRadius": { + "type": "number", + "description": "Delivery radius." + }, + "deliveryFee": { + "type": "number", + "description": "Delivery fee." + }, + "deliveryTime": { + "type": "string", + "description": "Delivery time in the format `DD.HH:MM:SS`." + }, + "maximumWeight": { + "type": "number", + "description": "Delivery maximum weight." + } + } + }, + "address": { + "type": "object", + "description": "Loading dock address.", + "properties": { + "postalCode": { + "type": "string", + "description": "Loading dock address postal code." + }, + "country": { + "type": "object", + "description": "Information about the loading dock address country.", + "properties": { + "acronym": { + "type": "string", + "description": "Three-digit country code of the loading dock address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "name": { + "type": "string", + "description": "Country name of the loading dock address." + } + } + }, + "city": { + "type": "string", + "description": "Loading dock address city." + }, + "state": { + "type": "string", + "description": "Loading dock address state." + }, + "neighborhood": { + "type": "string", + "description": "Loading dock address neighborhood." + }, + "street": { + "type": "string", + "description": "Loading dock address street." + }, + "number": { + "type": "string", + "description": "Loading dock address number." + }, + "complement": { + "type": "string", + "description": "Loading dock address complement.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Loading dock address reference point.", + "nullable": true + }, + "location": { + "type": "object", + "description": "Loading dock address geolocation coordinates.", + "properties": { + "latitude": { + "type": "number", + "description": "Latitude coordinate." + }, + "longitude": { + "type": "number", + "description": "Longitude coordinate." + } + } + } + } + }, + "location": { + "type": "object", + "description": "Loading dock location details.", + "nullable": true, + "properties": { + "zipCode": { + "type": "string", + "description": "Loading dock address postal code." + }, + "country": { + "type": "string", + "description": "Three-digit country code of the loading dock address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "inStore": { + "type": "object", + "description": "Information related to orders made via [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc).", + "properties": { + "IsCheckedIn": { + "type": "boolean", + "description": "Defines if orders can be placed via [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc) (`true`) or not (`false`)." + }, + "StoreId": { + "type": "string", + "description": "ID of purchases made in the GoCommerce context.", + "nullable": true + } + } + } + } + }, + "shippingRatesProviders": { + "type": "array", + "description": "Shipping rates providers information.", + "items": { + "type": "string", + "description": "Shipping rates." + }, + "nullable": true + }, + "deliveryAgreementsIds": { + "type": "array", + "description": "Delivery agreements IDs information.", + "items": { + "type": "string", + "description": "Delivery agreements IDs." + }, + "nullable": true + }, + "id": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID." + }, + "name": { + "type": "string", + "description": "Loading dock name." + }, + "priority": { + "type": "integer", + "description": "Value from `0` to `10` used as a tie-breaking rule for loading dock selecting. The greater the priority, the greater the possibility of the loading dock being chosen in [shipping calculation](https://help.vtex.com/en/tutorial/how-shipping-calculation-works--tutorials_116). When no priority was set, it corresponds to `0`." + }, + "dockTimeFake": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) processing time in the format `D.HH:MM:SS`. When not configured, it returns `00:00:00`." + }, + "timeFakeOverhead": { + "type": "string", + "description": "Time frame used to choose a loading dock when there is more than one loading dock with the same processing time. The lower the value entered in this field, the greater the possibility of the loading dock being chosen. \r\n>ℹ️ This field is not considered when calculating the delivery time." + }, + "salesChannels": { + "type": "array", + "description": "Sales channels ([trade policies](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) associated with the loading dock.", + "items": { + "type": "string", + "description": "Sales channel ID." + } + }, + "salesChannel": { + "type": "string", + "description": "Main sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) associated with the loading dock." + }, + "freightTableIds": { + "type": "array", + "description": "List with freight table IDs associated with the loading dock.", + "items": { + "type": "string", + "description": "Freight table ID." + } + }, + "wmsEndPoint": { + "type": "string", + "description": "Endpoint for integrating an external Warehouse Management System (WMS).", + "nullable": true + }, + "isActive": { + "type": "boolean", + "description": "Defines if the loading dock is active (`true`) or inactive (`false`)." + } + } + }, + "DeliveryCapacity": { + "type": "object", + "description": "Information about the [capacity reservation](https://help.vtex.com/en/tutorial/managing-delivery-capacity--2y217FQZCjD0I1n62yxVcz) of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140).", + "properties": { + "id": { + "type": "string", + "description": "Capacity reservation ID generated by the request." + }, + "resourceId": { + "type": "string", + "description": "Combined string `carrier@{capacityType}@{shippingPolicyId}` used in the request." + }, + "startDate": { + "type": "string", + "description": "Starting date and time of the period considered for the request, in the format `YYYY-MM-DDTHH:MM:SSZ`. The time zone is set according to the store account." + }, + "endDate": { + "type": "string", + "description": "Ending date and time of the period considered for the request, in the format `YYYY-MM-DDTHH:MM:SSZ`. The time zone is set according to the store account." + }, + "ownMaxCapacity": { + "type": "number", + "description": "Delivery capacity available, which is the total capacity minus the reserved orders or items, according to the capacity type set." + }, + "resourceMaxCapacity": { + "type": "number", + "description": "Maximum delivery capacity of orders or items." + }, + "reservedValue": { + "type": "number", + "description": "Orders or items reserved from the delivery capacity." + }, + "reservations": { + "type": "array", + "description": "List of [reservations](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92).", + "items": { + "type": "object", + "description": "Reservation details.", + "properties": { + "id": { + "type": "string", + "description": "Reservation ID." + }, + "value": { + "type": "number", + "description": "Reservation number of items or orders, according to the capacity type set." + } + } + } + }, + "log": { + "type": "array", + "description": "System processing information.", + "items": { + "type": "object", + "description": "Log information.", + "properties": { + "when": { + "type": "string", + "description": "Delivery capacity alteration date and time, in the format `YYYY-MM-DDTHH:MM:SSZ`. The time zone is set according to the store account." + }, + "who": { + "type": "string", + "description": "Who altered the delivery capacity." + }, + "why": { + "type": "string", + "description": "Reason for the alteration." + }, + "what": { + "type": "string", + "description": "Situation of the corresponding [delivery window](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi#delivery-window), which can be `Blocked` or `Unblocked`." + } + } + } + } + } + }, + "ShippingPolicy": { + "type": "object", + "description": "Details about a given shipping policy.", + "properties": { + "id": { + "type": "string", + "description": "[Shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) ID." + }, + "name": { + "type": "string", + "description": "[Shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) name." + }, + "shippingMethod": { + "type": "string", + "description": "Type of shipping available for this shipping policy (carrier). Options are shown on [shipping simulation](https://help.vtex.com/en/tutorial/shipping-simulation--tutorials_144)." + }, + "weekendAndHolidays": { + "type": "object", + "description": "If the shipping policy includes deliveries on weekends and holidays.", + "properties": { + "saturday": { + "type": "boolean", + "description": "Defines if shipping on Saturdays is valid (`true`) or not (`false`)." + }, + "sunday": { + "type": "boolean", + "description": "Defines if shipping on Sundays is valid (`true`) or not (`false`)." + }, + "holiday": { + "type": "boolean", + "description": "Defines if shipping on holidays is valid (`true`) or not (`false`)." + } + } + }, + "maxDimension": { + "type": "object", + "description": "Object containing attributes of maximum dimension permitted by the shipping policy (carrier).", + "properties": { + "largestMeasure": { + "type": "number", + "description": "Largest measure acceptable of the package." + }, + "maxMeasureSum": { + "type": "number", + "description": "Limit for the sum of all maximum measures of the package." + } + } + }, + "numberOfItemsPerShipment": { + "type": "integer", + "description": "Determines the number of items allowed per shipment." + }, + "minimumValueAceptable": { + "type": "number", + "description": "Minimum value accepted by the carrier for delivering." + }, + "maximumValueAceptable": { + "type": "number", + "description": "Maximum value accepted by the carrier for delivering." + }, + "additionalTime": { + "type": "string", + "description": "Additional time configured in `HH:MM:SS` format.", + "deprecated": true + }, + "additionalPrice": { + "type": "object", + "description": "Additional price object.", + "properties": { + "method": { + "type": "integer", + "description": "Additional price method.", + "deprecated": true + }, + "value": { + "type": "number", + "description": "Payment value.", + "deprecated": true + } + }, + "deprecated": true + }, + "deliveryScheduleSettings": { + "type": "object", + "description": "[Scheduled delivery](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) settings.", + "properties": { + "useDeliverySchedule": { + "type": "boolean", + "description": "Defines if the scheduled delivery configuration is active (`true`) or not (`false`)." + }, + "maxRangeDelivery": { + "type": "number", + "description": "Range of days available within a delivery window, for the customer to choose the scheduled delivery. For example, if the configured `maxRangeDelivery` is equal `7`, and the customer buys something on a Tuesday, the options for scheduled delivery will be shown until the following Tuesday (7 days from the purchase day). If no options are available within the `maxRangeDelivery` set, the shipping policy will not be shown on the checkout." + }, + "dayOfWeekForDelivery": { + "type": "array", + "description": "Selected days for delivery, from `0` (Sunday) to `6` (Saturday).", + "items": { + "type": "object", + "description": "Selected days for delivery objects.", + "properties": { + "dayOfWeek": { + "type": "integer", + "description": "Day of the week, from `0` (Sunday) to `6` (Saturday)." + }, + "deliveryRanges": { + "type": "array", + "description": "Reservation window for scheduled delivery.", + "items": { + "type": "object", + "description": "Reservation window for scheduled delivery object.", + "properties": { + "startTime": { + "type": "string", + "description": "Start time for day of the week in `hh:mm:ss` format." + }, + "endTime": { + "type": "string", + "description": "End time for day of the week in `hh:mm:ss` format." + }, + "listPrice": { + "type": "number", + "description": "List price for day of the week." + }, + "deliveryCapacity": { + "type": "array", + "description": "Sets maximum [delivery capacity](https://help.vtex.com/en/tutorial/managing-delivery-capacity--2y217FQZCjD0I1n62yxVcz) for a given reservation window for scheduled delivery.", + "nullable": true, + "items": { + "type": "object", + "description": "Object with the maximum delivery capacity for a reservation window.", + "properties": { + "capacityType": { + "type": "string", + "description": "Defines how the delivery capacity is measured for this reservation window, by maximum number of orders (`ORDERS_QUANTITY`) or items (`SKUS_QUANTITY`)." + }, + "maxValue": { + "type": "number", + "description": "Maximum number of orders or SKUs that the store is capable of fulfilling." + } + } + } + } + } + } + } + } + } + }, + "dayOfWeekBlockeds": { + "type": "array", + "description": "Defines if there are any days of the week that are blocked.", + "items": { + "type": "string", + "description": "Date and time of the blocked day in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ss`." + }, + "nullable": true, + "deprecated": true + } + } + }, + "carrierSchedule": { + "type": "array", + "description": "Schedule sent by the carrier to configure the shipping policy.", + "items": { + "type": "object", + "description": "Carrier schedule for configuring the shipping policy object.", + "properties": { + "dayOfWeek": { + "type": "integer", + "description": "Day of the week from `0` (Sunday) to `6` (Saturday)." + }, + "timeLimit": { + "type": "string", + "description": "Time limit in `HH:MM:SS` format." + } + } + } + }, + "cubicWeightSettings": { + "type": "object", + "description": "Settings for the cubic weight of a package, which accounts for the [package's volume](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128), and not only weight.", + "properties": { + "volumetricFactor": { + "type": "number", + "description": "Factor that will be used on the cubic weight calculation, usually given by the carrier." + }, + "minimunAcceptableVolumetricWeight": { + "type": "number", + "description": "Packages' minimum acceptable [volumetric weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128)." + } + } + }, + "modalSettings": { + "type": "object", + "description": "Configurations for the [modal](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125), which is the attachement of a specific product to a carrier specialized in delivering that type of product.", + "properties": { + "modals": { + "type": "array", + "description": "Type of special freight.", + "items": { + "type": "string", + "enum": [ + "CHEMICALS", + "ELECTRONICS", + "FURNITURE", + "GLASS", + "LIQUID", + "MATTRESSES", + "REFRIGERATED", + "TIRES", + "WHITE_GOODS", + "FIREARMS" + ], + "description": "Modal values assigned to the special freight." + } + }, + "useOnlyItemsWithDefinedModal": { + "type": "boolean", + "description": "When set as `true`, the modal's configurations will apply only for items with a defined modal, when `false`, the modal configuration will not be set." + } + } + }, + "businessHourSettings": { + "type": "object", + "description": "Business hours configurations.", + "properties": { + "carrierBusinessHours": { + "type": "array", + "description": "Business hours configurations array for the days of the week.", + "items": { + "type": "object", + "description": "Business hours configurations for a single day of the week.", + "properties": { + "openingTime": { + "type": "string", + "description": "Opening time in `HH:MM:SS` format." + }, + "closingTime": { + "type": "string", + "description": "Closing time in `HH:MM:SS` format." + }, + "dayOfWeek": { + "type": "integer", + "description": "Day of the week from `0` (Sunday) to `6` (Saturday).", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + } + } + } + }, + "isOpenOutsideBusinessHours": { + "type": "boolean", + "description": "Defines if deliveries outside business hours are allowed (`true`) or not (`false`)." + } + } + }, + "pickupPointsSettings": { + "type": "object", + "description": "[Pickup points](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) configurations of the shipping policy.", + "properties": { + "pickupPointIds": { + "type": "array", + "description": "Pickup point IDs configured for the shipping policy.", + "items": { + "type": "string", + "description": "Pickup point ID." + } + }, + "pickupPointTags": { + "type": "array", + "description": "Pickup points tags configured for the shipping policy.", + "items": { + "type": "string", + "description": "Tag identification." + } + }, + "sellers": { + "type": "array", + "description": "Sellers associated with [pickup points](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) related to the shipping policy.", + "items": { + "type": "string", + "description": "Sellers IDS." + } + } + } + }, + "processingStatus": { + "type": "object", + "description": "Shipping policy processing status.", + "properties": { + "status": { + "type": "integer", + "format": "int32", + "description": "Shipping policy processing status code." + }, + "errorMessage": { + "type": "string", + "description": "Error message, when applicable.", + "nullable": true + }, + "errorsMetadata": { + "type": "string", + "description": "Error metadata, when applicable.", + "nullable": true + } + } + }, + "deliveryChannel": { + "type": "string", + "description": "Defines if the shipping type is `delivery` or `pickup`." + }, + "calculationType": { + "type": "integer", + "description": "Shipping policy calculation type." + }, + "isActive": { + "type": "boolean", + "description": "Defines if the shipping policy is active (`true`) or not (`false`)." + }, + "lastIndexedAt": { + "type": "string", + "description": "Date and time since the last [indexing](https://help.vtex.com/en/tutorial/understanding-how-indexation-works--tutorials_256), in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DD hh:mm:ss[.nnnnnnn]+hh:mm`.", + "nullable": true + }, + "shippingHoursSettings": { + "type": "object", + "description": "Shipping hours settings configurations.", + "properties": { + "shippingHours": { + "type": "array", + "description": "Shipping hours settings array.", + "items": { + "type": "object", + "description": "Object with details on shipping hours settings.", + "properties": { + "dayOfWeek": { + "type": "integer", + "description": "Day of the week from `0` (Sunday) to `6` (Saturday)." + }, + "openingTime": { + "type": "string", + "description": "Opening time in `hh:mm:ss` format." + }, + "closingTime": { + "type": "string", + "description": "Closing time in `hh:mm:ss` format." + } + } + } + }, + "acceptOrdersOutsideShippingHours": { + "type": "boolean", + "description": "Defines if the configuration that allows accepting orders outside shipping hours is active (`true`) or not (`false`)." + } + } + }, + "carrierInfo": { + "type": "object", + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) information.", + "properties": { + "carrierAccountName": { + "type": "string", + "description": "VTEX store account name related to the shipping policy." + }, + "deliveryAgreementId": { + "type": "string", + "description": "Delivery agreement ID.", + "nullable": true + }, + "linkedDocks": { + "type": "array", + "description": "Shipping policy [loading docks](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) valid for the carrier.", + "items": { + "type": "object", + "description": "Loading dock object.", + "properties": { + "id": { + "type": "string", + "description": "Loading dock ID." + }, + "name": { + "type": "string", + "description": "Loading dock name." + } + } + } + }, + "readyToUse": { + "type": "boolean", + "description": "Defines if shipping configurations related to the carrier make them ready for shipping (`true`) or not (`false`)." + } + } + } + } + } + } + }, + "tags": [ + { + "name": "Scheduled delivery" + }, + { + "name": "Shipping policies" + }, + { + "name": "Docks" + }, + { + "name": "Warehouses" + }, + { + "name": "Inventory" + }, + { + "name": "Holidays" + }, + { + "name": "Reservations" + }, + { + "name": "SLA" + }, + { + "name": "Pickup points" + }, + { + "name": "Polygons" + }, + { + "name": "Freight values" + } + ] +} diff --git a/clients/manitou/output/marketplace-protocol-marketplace-orders.json b/clients/manitou/output/marketplace-protocol-marketplace-orders.json new file mode 100644 index 0000000000..b6033ccd4c --- /dev/null +++ b/clients/manitou/output/marketplace-protocol-marketplace-orders.json @@ -0,0 +1,3955 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Marketplace Protocol", + "description": "The _Marketplace Protocol_ is a set of API requests and definitions to help you integrate external sellers into a VTEX marketplace as well as external marketplaces into VTEX sellers.\r\n\r\n## External Seller\r\n\r\nHere you will find the endpoints involved in the integration between a VTEX marketplace and an external seller. Note that some of these requests are typically sent by the seller while others are received.\r\n\r\n| **Request** | **From** | **To** |\r\n|-|-|-|\r\n| [Fulfillment simulation](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orderForms/simulation) | Marketplace | Seller |\r\n| [Order placement](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orders) | Marketplace | Seller |\r\n| [Authorize fulfillment](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orders/-sellerOrderId-/fulfill) | Marketplace | Seller |\r\n| [Marketplace order cancellation](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orders/-orderId-/cancel) | Marketplace | Seller |\r\n| [Send invoice](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/invoice) | Seller | Marketplace |\r\n| [Send tracking information](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/invoice/-invoiceNumber-) | Seller | Marketplace |\r\n| [Update tracking status](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/invoice/-invoiceNumber-/tracking) | Seller | Marketplace |\r\n| [Cancel order in marketplace](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/cancel) | Seller | Marketplace |\r\n\r\nFor a detailed explanation of the steps required to develop a custom connector to sell products from an external seller in your storefront, check out our complete [External Seller Integration Guide](https://developers.vtex.com/docs/guides/external-seller-integration-guide).\r\n\r\n\r\n## External Marketplace\r\n\r\nIn this section, you will find the endpoints involved in the VTEX integration between an external marketplace and a VTEX seller.\r\n\r\n\r\n| **Request** | **From** | **To** |\r\n|-|-|-|\r\n| [VTEX Mapper Registration](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-mapper#post-/api/mkp-category-mapper/connector/register) | External marketplace | VTEX system |\r\n| [Send Category Mapping to VTEX Mapper](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-mapper#post-/api/mkp-category-mapper/categories/marketplace/-id-) | External marketplace | VTEX system |\r\n| [New Order Integration](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/order-integration/orders) | External marketplace | VTEX system |\r\n| [Update Order Status](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#put-/api/order-integration/orders/status) | External marketplace | VTEX system |\r\n| [Fulfillment simulation - External Marketplace](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/checkout/pub/orderForms/simulation) | External marketplace | VTEX system |\r\n| [Place fulfillment order](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/fulfillment/pvt/orders) | External marketplace | VTEX Seller |\r\n| [Authorize dispatch for fulfillment order](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/fulfillment/pvt/orders/-orderId-/fulfill) | External marketplace | VTEX Seller |\r\n\r\n\r\nFor a detailed explanation of the steps required to develop a custom connector to become an external marketplace for VTEX sellers, check out our complete [External Marketplace Integration Guide](https://developers.vtex.com/docs/guides/external-marketplace-integration-guide).", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX Server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/fulfillment/pvt/orders": { + "post": { + "tags": [ + "External Marketplace" + ], + "summary": "Place fulfillment order", + "description": "Creates fulfillment order, meaning that it is an order for the seller's side in a sale made through a marketplace. This order assumes the transaction itself has already happened on the marketplace's side and, therfore, cares only about the fulfillment side.\n\r\n\r> If you plan to integrate external orders with possible [Price divergence](https://help.vtex.com/en/tutorial/price-divergence-rule--6RlFLhD1rIRRshl83KnCjW#) be mindful of the `isCreatedAsync` request body field. \n\nFor a detailed explanation of the steps required to develop a custom connector to become an external marketplace for VTEX sellers, check out our complete [External Marketplace Integration Guide](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-guide). \r\n## Permissions\r\n\r\nCheck with your service provider to know what permissions are needed.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PlaceFulfillmentOrder", + "parameters": [ + { + "name": "sc", + "in": "query", + "description": "Sales channel.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "affiliateId", + "in": "query", + "description": "ID identifying the marketplace where the order originates. This ID is configured in the seller's VTEX account, and should be informed to the marketplace.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "MKP" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/placeFulfillmentOrderRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/placeFulfillmentOrderResponse" + }, + "example": { + "orderId": "1234567890", + "status": "success", + "message": "Order placed successfully", + "orderData": { + "marketplaceOrderId": "123456789", + "marketplaceServicesEndpoint": "https://exampleseller.marketplaceservices.com", + "marketplacePaymentValue": 100, + "isCreatedAsync": false, + "items": [ + { + "id": "123456789", + "quantity": 1, + "seller": "1", + "commission": 10, + "freightCommission": 10, + "price": 2499, + "bundleItems": [], + "itemAttachment": { + "name": "name-example", + "content": "content-example" + }, + "attachments": [], + "priceTags": [], + "measurementUnit": "g", + "unitMultiplier": 1, + "isGift": false + } + ], + "clientProfileData": { + "email": "customer@examplemail.com", + "firstName": "first-name", + "lastName": "last-name", + "documentType": "cpf", + "document": "123456789", + "phone": "+55110988887777", + "corporateName": "company-name", + "tradeName": "trade-name", + "corporateDocument": "12345678000100", + "stateInscription": "12345678", + "corporatePhone": "+551100988887777", + "isCorporate": false + }, + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "receiver-name", + "addressId": "Home", + "postalCode": "12345000", + "city": "Rio de Janeiro", + "state": "Rio de Janeiro", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "3rd floor", + "reference": "Grey building", + "geoCoordinates": [ + "00.00000", + "00.00000" + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Express", + "lockTTL": "8d", + "shippingEstimate": "7d", + "price": 1099, + "deliveryWindow": { + "startDateUtc": "2023-01-01 00:00:00", + "endDateUtc": "2023-01-02 00:00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + } + } + ], + "updateStatus": "updated" + }, + "paymentData": "credit card", + "marketingData": { + "utmSource": "Facebook", + "utmMedium": "CPC", + "utmCampaign": "Black friday", + "utmiPage": "utmi_page-example", + "utmiPart": "utmi_part-example", + "utmiCampaign": "utmi_campaign-example" + }, + "openTextField": "open-text-example" + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/fulfillment/pvt/orders/{orderId}/fulfill": { + "post": { + "tags": [ + "External Marketplace" + ], + "summary": "Authorize dispatch for fulfillment order", + "description": "Creates fulfillment order, meaning that it is an order for the seller's side in a sale made through a marketplace. This order assumes the transaction itself has already happened on the marketplace's side and, therfore, cares only about the fulfillment side. \n\nFor a detailed explanation of the steps required to develop a custom connector to become an external marketplace for VTEX sellers, check out our complete [External Marketplace Integration Guide](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-guide).\r\n## Permissions\r\n\r\nCheck with your service provider to know what permissions are needed.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AuthorizeDispatchForFulfillmentOrder", + "parameters": [ + { + "name": "orderId", + "in": "path", + "required": true, + "description": "ID of the order that is to be authorized. It is composed of the `afilliateId` and the `marketplaceOrderId` joined with a `-`. For instance, an order with an ID `\"123\"` coming from the marketplace `\"MKP\"` has an `orderId` of `\"MKP-123\"`.", + "schema": { + "type": "string", + "default": "MKP-123" + } + }, + { + "name": "sc", + "in": "query", + "description": "Sales channel.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "affiliateId", + "in": "query", + "description": "ID identifying the marketplace where the order originates. This ID is configured in the seller's VTEX account, and should be informed to the marketplace.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "MKP" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "marketplaceOrderId": { + "type": "string", + "description": "ID of the order in the marketplace. It is the same as the `orderId` without the `afilliateId` at the beginning. For instance, if the `orderId` is `\"MKP-123\"`, the `marketplaceOrderId` is `\"123\"`.", + "example": "123" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderIDFulfillmentResponse" + }, + "example": { + "status": "success", + "message": "Order created successfully", + "orderId": "123", + "details": { + "createdAt": "2024-07-04T12:34:56Z", + "marketplaceOrderId": "123", + "status": "pending" + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/order-integration/orders": { + "post": { + "tags": [ + "External Marketplace" + ], + "summary": "New Order Integration", + "description": "API to integrate an external channel's order into the VTEX plataform.\n\nThis process is asynchronous and a notification with the order's integration results will be sent to the endpoint specified in the **connectorEndpoint** field in [App Template](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-app-template), if the connector uses our App template. The field **connectorName** is also optional for connectors that use our App Template and authenticate using the app's auth cookie. If the account is not informed in the URL host, it should also be defined as a query string parameter in the route: `an={account}`. \n\nFor a detailed explanation of the steps required to develop a custom connector to become an external marketplace for VTEX sellers, check out our complete [External Marketplace Integration Guide](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-guide).\r\n## Permissions\r\n\r\nCheck with your service provider to know what permissions are needed.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "EnqueueNewOrder", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Parameter should indicate the name of the VTEX account where the order is being integrated or updated, meaning the seller responsible for the order.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "apiexamples" + } + }, + { + "name": "affiliateId", + "in": "query", + "description": "ID identifying the marketplace where the order originates. This ID is configured in the seller's VTEX account, and should be informed to the marketplace.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "MKP" + } + } + ], + "requestBody": { + "description": "Request body containing data to enqueue a new order.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnqueueNewOrderRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Deliverybyseller" + }, + "example": { + "marketplaceOrderId": null, + "accountName": "grocery1", + "code": "SOI003", + "flow": "PlaceOrder", + "success": true, + "operationId": null, + "errors": null, + "fields": null, + "message": "Order successfully enqueued" + } + } + } + }, + "default": { + "description": "Default response for successful order enqueue operation.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Deliverybyfranchiseseller" + }, + "example": { + "marketplaceOrderId": null, + "accountName": "grocery1", + "code": "SOI003", + "flow": "PlaceOrder", + "success": true, + "operationId": null, + "errors": null, + "fields": null, + "message": "Order successfully enqueued" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/order-integration/orders/status": { + "put": { + "tags": [ + "External Marketplace" + ], + "summary": "Update Order Status", + "description": "API request used to update an order status in VTEX.\n\nThis process is asynchronous and a notification with the order's integration results will be sent to the endpoint specified in the **connectiorEndpoint** field or the **connectiorEndpoint** [App Template](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-app-template), if the connector uses our App template. The field **connectorName** is also optional for connectors that use our App Template and authenticate using the app's auth cookie. \n\nFor a detailed explanation of the steps required to develop a custom connector to become an external marketplace for VTEX sellers, check out our complete [External Marketplace Integration Guide](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-guide).\r\n## Permissions\r\n\r\nCheck with your service provider to know what permissions are needed.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateOrderStatus", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Parameter should indicate the name of the VTEX account where the order is being integrated or updated, meaning the seller responsible for the order.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "apiexamples" + } + } + ], + "requestBody": { + "description": "Request body containing data to update the order status.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateOrderStatusRequest" + }, + "example": { + "marketplaceOrderId": "{{$guid}}", + "marketplaceOrderStatus": "approved", + "connectorName": "Skyhub", + "connectorEndpoint": "https://connector-endpoint.com/api/vtex" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Approveorder" + }, + "example": { + "marketplaceOrderId": "7e62fcd3-827b-400d-be8a-f050a79c4976", + "accountName": null, + "code": "SOI003", + "flow": "ApproveOrder", + "success": true, + "operationId": null, + "errors": null, + "fields": null, + "message": "Order successfully enqueued" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/checkout/pub/orderForms/simulation": { + "post": { + "tags": [ + "External Marketplace" + ], + "summary": "Fulfillment simulation - external marketplace", + "description": "This endpoint can be triggered by marketplaces to simulate the fulfillment of an item in the cart.\r\n\r\nThe fulfillment information is useful whenever you need to know the availability of fulfilling an order for a specific cart setting, since the API response will let you know the updated price, inventory and shipping data.\r\n## Permissions\r\n\r\nCheck with your service provider to know what permissions are needed.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "fulfillment-simulation-external-marketplace", + "parameters": [ + { + "name": "affiliateId", + "in": "query", + "description": "The affiliate ID code created by the seller.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "default": "MNF" + } + }, + { + "name": "sc", + "in": "query", + "description": "Trade Policy (Sales Channel) identification.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "id", + "quantity", + "seller" + ], + "description": "An object representing a single SKU inside the cart, detailing its ID, quantity, and the seller responsible.", + "properties": { + "items": { + "type": "array", + "description": "Array containing information about the SKUs inside the cart to be simulated.", + "items": { + "type": "object", + "description": "Array containing information about the SKUs inside the cart to be simulated.", + "properties": { + "id": { + "type": "string", + "description": "The SKU ID.", + "example": "1" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "The quantity of items of this specific SKU in the cart to be simulated.", + "example": 1 + }, + "seller": { + "type": "string", + "description": "The ID of the seller responsible for this SKU. This ID can be found in your VTEX Admin.", + "example": "1" + } + } + } + }, + "marketingData": { + "type": "object", + "description": "Object containing promotion data such as coupon tracking information and internal or external UTMs.", + "properties": { + "coupon": { + "type": "string", + "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.", + "example": "free-shipping" + }, + "utmSource": { + "type": "string", + "description": "UTM source.", + "example": "Facebook" + }, + "utmMedium": { + "type": "string", + "description": "UTM medium.", + "example": "CPC" + }, + "utmCampaign": { + "type": "string", + "description": "UTM campaign.", + "example": "Black friday" + }, + "utmiPage": { + "type": "string", + "description": "utmi_page (internal utm).", + "example": "utmi_page-example" + }, + "utmiPart": { + "type": "string", + "description": "utmi_part (internal utm).", + "example": "utmi_part-example" + }, + "utmiCampaign": { + "type": "string", + "description": "utmi_campaign (internal utm).", + "example": "utmi_campaign-example" + } + } + }, + "postalCode": { + "type": "string", + "description": "Postal code.", + "example": "12345-000" + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address. This value must be sent along with the `postalCode` or `geoCoordinates` values.", + "example": "BRA" + }, + "selectedSla": { + "type": "string", + "description": "SLA selected by the customer.", + "example": "Normal" + }, + "clientProfileData": { + "type": "object", + "description": "Customer's profile information.", + "properties": { + "email": { + "type": "string", + "description": "Email address.", + "example": "clark.kent@example.com" + }, + "firstName": { + "type": "string", + "description": "First name.", + "example": "Clark" + }, + "lastName": { + "type": "string", + "description": "Last name.", + "example": "Kent" + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer.", + "example": "cpf" + }, + "document": { + "type": "string", + "description": "Document informed by the customer.", + "example": "12345678900" + }, + "phone": { + "type": "string", + "description": "Phone number.", + "example": "+552199999999" + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity.", + "nullable": true, + "example": "companyName" + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity.", + "nullable": true, + "example": "tradeName" + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity.", + "nullable": true, + "example": "corporateDocument" + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity.", + "nullable": true, + "example": "stateInscription" + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity.", + "nullable": true, + "example": "corporatePhone" + }, + "isCorporate": { + "type": "boolean", + "description": "Indicates whether the customer is a legal entity.", + "example": true + }, + "profileCompleteOnLoading": { + "type": "boolean", + "description": "Indicates whether profile is complete on loading.", + "example": false + }, + "profileErrorOnLoading": { + "type": "boolean", + "description": "Indicates whether profile presents error on loading.", + "nullable": true, + "example": false + }, + "customerClass": { + "type": "string", + "description": "Customer class.", + "nullable": true, + "example": "customerClass" + } + } + }, + "geoCoordinates": { + "type": "array", + "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", + "example": [ + -47.924747467041016, + -15.832582473754883 + ], + "items": { + "type": "number", + "description": "A float representing either longitude or latitude coordinate.", + "example": -47.924747467041016 + } + }, + "isCheckedIn": { + "type": "boolean", + "description": "Indicates whether order is checked in.", + "default": false + }, + "storeId": { + "type": "string", + "description": "ID of the store.", + "nullable": true + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "headers": {}, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "Information on each item in the cart.", + "items": { + "type": "object", + "description": "Detailed information about a specific item in the cart, including its attributes such as ID, name, price, and quantity.", + "properties": { + "id": { + "type": "string", + "description": "ID of the item." + }, + "requestIndex": { + "type": "integer", + "description": "Request index information." + }, + "quantity": { + "type": "integer", + "description": "The quantity of the item the cart." + }, + "seller": { + "type": "string", + "description": "The seller responsible for the SKU." + }, + "sellerChain": { + "type": "array", + "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", + "items": { + "type": "string", + "description": "Seller." + } + }, + "tax": { + "type": "integer", + "description": "Tax value in cents." + }, + "priceValidUntil": { + "type": "string", + "description": "Price expiration date and time." + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "rewardValue": { + "type": "integer", + "description": "Reward value in cents." + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." + }, + "offerings": { + "type": "array", + "description": "Array containing offering information.", + "items": { + "type": "object", + "description": "Details of offering information.", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the offering." + }, + "name": { + "type": "string", + "description": "Name of the offering." + }, + "price": { + "type": "integer", + "description": "Price of the offering in cents." + }, + "availability": { + "type": "string", + "description": "Availability status of the offering." + } + } + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags, each of which, modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", + "items": { + "type": "object", + "description": "Details of a price tag.", + "properties": { + "name": { + "type": "string", + "description": "Price tag name." + }, + "value": { + "type": "integer", + "description": "Price tag value." + }, + "rawValue": { + "type": "integer", + "description": "Price tag raw value." + }, + "isPercentual": { + "type": "boolean", + "description": "Indicates whether price tag value is applied through a percentage." + }, + "identifier": { + "type": "string", + "description": "Price tag identifier." + }, + "owner": { + "type": "string", + "description": "Identification of the responsible for the price tag." + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit." + }, + "unitMultiplier": { + "type": "integer", + "description": "Unit multiplier." + }, + "parentItemIndex": { + "type": "integer", + "description": "Parent item index.", + "nullable": true + }, + "parentAssemblyBinding": { + "type": "string", + "description": "Parent assembly binding.", + "nullable": true + }, + "availability": { + "type": "string", + "description": "Availability." + }, + "priceDefinition": { + "type": "object", + "description": "Price information for all units of a specific item.", + "properties": { + "calculatedSellingPrice": { + "type": "integer", + "description": "Item's calculated unitary selling price in cents." + }, + "total": { + "type": "integer", + "description": "Total value for all units of the item in cents." + }, + "sellingPrices": { + "type": "array", + "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", + "items": { + "type": "object", + "description": "Details of a selling price instance.", + "properties": { + "value": { + "type": "integer", + "description": "Value in cents for that specific rounding." + }, + "quantity": { + "type": "integer", + "description": "Rounding quantity, meaning how many items are rounded to this value." + } + } + } + } + } + } + } + } + }, + "ratesAndBenefitsData": { + "type": "object", + "description": "Information on rates and benefits that apply to the order.", + "properties": { + "rateAndBenefitsIdentifiers": { + "type": "array", + "description": "List with rates and benefits identifiers.", + "items": { + "type": "object", + "description": "Details of a rate and benefits identifier.", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the rate or benefit." + }, + "name": { + "type": "string", + "description": "Name of the rate or benefit." + } + } + } + }, + "teaser": { + "type": "array", + "description": "List with rates and benefits teasers.", + "items": { + "type": "object", + "description": "Details of a teaser containing rates and benefits.", + "properties": { + "name": { + "type": "string", + "description": "Teaser name." + }, + "description": { + "type": "string", + "description": "Teaser description." + } + } + } + } + } + }, + "paymentData": { + "type": "object", + "description": "Payment data information.", + "properties": { + "installmentOptions": { + "type": "array", + "description": "Installment options information.", + "items": { + "type": "array", + "description": "Array containing installment options available for payment.", + "items": { + "type": "object", + "description": "Details of payment options.", + "properties": { + "paymentSystem": { + "type": "integer", + "description": "Payment system identification." + }, + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true + }, + "paymentName": { + "type": "string", + "description": "Payment name." + }, + "paymentGroupName": { + "type": "string", + "description": "Payment group name." + }, + "value": { + "type": "integer", + "description": "Total value assigned to this payment." + }, + "installments": { + "type": "array", + "description": "Installments information.", + "items": { + "type": "object", + "description": "Details of each installment payment.", + "properties": { + "count": { + "type": "integer", + "description": "Count information." + }, + "hasInterestRate": { + "type": "boolean", + "description": "Indicates whether the payment has interest." + }, + "interestRate": { + "type": "integer", + "description": "Interest rate value." + }, + "value": { + "type": "integer", + "description": "Value of the order without the interest rate. The value is shown without separating cents." + }, + "total": { + "type": "integer", + "description": "Total value of the order without separating cents. For example, $24.99 is represented `2499`." + }, + "sellerMerchantInstallments": { + "type": "array", + "description": "Seller merchant installments information.", + "items": { + "type": "object", + "description": "Details of seller merchant installments.", + "properties": { + "id": { + "type": "integer", + "description": "Seller ID." + }, + "count": { + "type": "integer", + "description": "Installment count." + }, + "value": { + "type": "integer", + "description": "Installment value." + } + } + } + } + } + } + } + } + } + } + }, + "paymentSystems": { + "type": "array", + "description": "Information on payment systems.", + "items": { + "type": "object", + "description": "Details of a payment system.", + "properties": { + "id": { + "type": "integer", + "description": "Payment system ID." + }, + "name": { + "type": "string", + "description": "Payment system name." + }, + "groupName": { + "type": "string", + "description": "Payment group name." + }, + "validator": { + "type": "object", + "description": "Payment system validator.", + "nullable": true + }, + "stringId": { + "type": "string", + "description": "String ID." + }, + "template": { + "type": "string", + "description": "Template." + }, + "requiresDocument": { + "type": "boolean", + "description": "Indicates whether a document is required." + }, + "displayDocument": { + "type": "boolean", + "description": "Indicates whether a document is shown." + }, + "isCustom": { + "type": "boolean", + "description": "Indicates whether it is custom." + }, + "selectableGifts": { + "type": "array", + "description": "Array containing the data of the item selected as a gift.", + "items": { + "type": "object", + "description": "Details of the item selected as a gift.", + "properties": { + "giftItemId": { + "type": "string", + "description": "Identifier of the gift item." + }, + "giftItemName": { + "type": "string", + "description": "Name of the gift item." + }, + "giftItemDescription": { + "type": "string", + "description": "Description of the gift item." + }, + "giftItemPrice": { + "type": "number", + "description": "Price of the gift item." + } + } + } + }, + "marketingData": { + "type": "object", + "description": "Object containing promotion data such as coupon tracking information and internal or external UTMs.", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal Code.", + "nullable": true + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "logisticsInfo": { + "type": "array", + "description": "Array with logistics information on each item of the `items` array in the `orderForm`.", + "items": { + "description": "Logistics information for an item.", + "type": "object", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index of item in items array." + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "selectedSla": { + "type": "string", + "description": "Selected SLA. For example, `\"normal\"` or `\"express\"`.", + "nullable": true + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Delivery channel selected by the customer. For example, `\"delivery\"` or `\"pickup-in-point\"`.", + "nullable": true + }, + "quantity": { + "type": "integer", + "description": "Indicates the number of items in the order." + }, + "shipsTo": { + "type": "array", + "description": "List of countries that the item may be shipped to.", + "items": { + "type": "string", + "description": "Country code indicating where the item may be shipped." + } + }, + "slas": { + "type": "array", + "description": "Information on available SLAs.", + "items": { + "type": "object", + "description": "Service Level Agreements (SLAs) available for the order.", + "properties": { + "id": { + "type": "string", + "description": "SLA ID." + }, + "deliveryChannel": { + "type": "string", + "description": "Delivery channel." + }, + "name": { + "type": "string", + "description": "SLA name." + }, + "deliveryIds": { + "type": "array", + "description": "Information on each delivery ID.", + "items": { + "type": "object", + "description": "Details on each delivery ID.", + "properties": { + "courierId": { + "type": "string", + "description": "Courier ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "dockId": { + "type": "string", + "description": "Warehouse ID." + }, + "courierName": { + "type": "string", + "description": "Courier name." + }, + "quantity": { + "type": "integer", + "description": "Quantity." + } + } + } + }, + "shippingEstimate": { + "type": "string", + "description": "Shipping estimate. For instance, \"three business days\" will be represented as `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "Shipping estimate date.", + "nullable": true + }, + "lockTTL": { + "type": "string", + "description": "Estimate date of delivery." + }, + "availableDeliveryWindows": { + "type": "object", + "description": "This object contains information about the delivery window available to the shopper.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting day and time in UTC." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending day and time in UTC." + }, + "price": { + "type": "integer", + "description": "Delivery window price." + }, + "lisPrice": { + "type": "integer", + "description": "Delivery window list price." + }, + "tax": { + "type": "integer", + "description": "Delivery window tax." + } + } + }, + "deliveryWindow": { + "type": "object", + "description": "In case of scheduled delivery, this object will contain information on the delivery window selected by the shopper.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting day and time in UTC." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending day and time in UTC." + }, + "price": { + "type": "integer", + "description": "Delivery window price." + }, + "lisPrice": { + "type": "integer", + "description": "Delivery window list price." + }, + "tax": { + "type": "integer", + "description": "Delivery window tax." + } + } + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "tax": { + "type": "integer", + "description": "Tax in cents." + }, + "pickupStoreInfo": { + "type": "object", + "description": "Information on the pickup store.", + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Indicates whether it is the pickup store." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Address information.", + "nullable": true + }, + "additionalInfo": { + "type": "string", + "description": "Additional information.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "Corresponding dock ID.", + "nullable": true + } + } + }, + "pickupPointId": { + "type": "string", + "description": "Pickup point ID.", + "nullable": true + }, + "pickupDistance": { + "type": "integer", + "description": "Pickup point distance." + }, + "polygonName": { + "type": "string", + "description": "Polygon name.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Transit time. For instance, \"three business days\" is represented as `3bd`." + } + } + } + }, + "deliveryChannels": { + "type": "array", + "description": "List of available delivery channels.", + "items": { + "type": "object", + "description": "Information about a specific delivery channel.", + "properties": { + "id": { + "type": "string", + "description": "Delivery channel ID." + } + } + } + }, + "messages": { + "type": "array", + "description": "Array containing an object for each message generated by our servers while processing the request.", + "items": { + "type": "object", + "description": "Details of a message generated during server processing.", + "properties": { + "messageId": { + "type": "string", + "description": "Identifier of the message." + }, + "messageText": { + "type": "string", + "description": "Content of the message." + }, + "messageType": { + "type": "string", + "description": "Type of the message (e.g., error, warning, info)." + } + } + } + }, + "purchaseConditions": { + "type": "object", + "description": "Purchase conditions information.", + "properties": { + "itemPurchaseConditions": { + "type": "array", + "description": "List of objects containing purchase condition information on each item in the order.", + "items": { + "type": "object", + "description": "Object containing purchase condition information on each item in the order.", + "properties": { + "id": { + "type": "string", + "description": "Item ID." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "sellerChain": { + "type": "array", + "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", + "items": { + "type": "object", + "description": "Details of each seller involved in the chain.", + "properties": { + "sellerId": { + "type": "string", + "description": "Identifier of the seller." + }, + "sellerName": { + "type": "string", + "description": "Name of the seller." + }, + "sellerLocation": { + "type": "string", + "description": "Location or address of the seller." + } + } + } + }, + "slas": { + "type": "array", + "description": "Information on available SLAs.", + "items": { + "type": "object", + "description": "Object containing details of a Service Level Agreement (SLA).", + "properties": { + "id": { + "type": "string", + "description": "SLA ID." + }, + "deliveryChannel": { + "type": "string", + "description": "Delivery channel." + }, + "name": { + "type": "string", + "description": "SLA name." + }, + "deliveryIds": { + "type": "array", + "description": "Information on each delivery ID.", + "items": { + "type": "object", + "description": "Detailed information about each item in the order.", + "properties": { + "courierId": { + "type": "string", + "description": "Courier ID." + }, + "warehouseId": { + "type": "string", + "description": "Warehouse ID." + }, + "dockId": { + "type": "string", + "description": "Dock ID." + }, + "courierName": { + "type": "string", + "description": "Courier name." + }, + "quantity": { + "type": "integer", + "description": "Quantity." + } + } + } + }, + "shippingEstimate": { + "type": "string", + "description": "Shipping estimate. For instance, \"three business days\" will be represented as `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "Shipping estimate date.", + "nullable": true + }, + "lockTTL": { + "type": "string", + "description": "Estimate date of delivery." + }, + "availableDeliveryWindows": { + "type": "object", + "description": "This object contains information about the delivery window available to the shopper.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting day and time in UTC." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending day and time in UTC." + }, + "price": { + "type": "integer", + "description": "Delivery window price." + }, + "lisPrice": { + "type": "integer", + "description": "Delivery window list price." + }, + "tax": { + "type": "integer", + "description": "Delivery window tax." + } + } + }, + "deliveryWindow": { + "type": "object", + "description": "In case of scheduled delivery, this object will contain information on the delivery window selected by the shopper.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting day and time in UTC." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending day and time in UTC." + }, + "price": { + "type": "integer", + "description": "Delivery window price." + }, + "lisPrice": { + "type": "integer", + "description": "Delivery window list price." + }, + "tax": { + "type": "integer", + "description": "Delivery window tax." + } + } + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "tax": { + "type": "integer", + "description": "Tax in cents." + }, + "pickupStoreInfo": { + "type": "object", + "description": "Information on the pickup store.", + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Indicates whether it is the pickup store." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Address information.", + "nullable": true + }, + "additionalInfo": { + "type": "string", + "description": "Additional information.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "Corresponding dock ID.", + "nullable": true + } + } + }, + "pickupPointId": { + "type": "string", + "description": "Pickup point ID.", + "nullable": true + }, + "pickupDistance": { + "type": "integer", + "description": "Pickup point distance." + }, + "polygonName": { + "type": "string", + "description": "Polygon name.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Transit time. For instance, \"three business days\" is represented as `3bd`." + } + } + } + }, + "price": { + "type": "integer", + "description": "Price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + } + } + } + } + } + }, + "pickupPoints": { + "type": "array", + "description": "Array containing pickup points information.", + "items": { + "description": "Details of a pickup point.", + "type": "object", + "properties": { + "pickupPointId": { + "type": "string", + "description": "Pickup point ID." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the pickup point.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Address information of the pickup point.", + "nullable": true, + "properties": { + "street": { + "type": "string", + "description": "Street address." + }, + "number": { + "type": "string", + "description": "Street number." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood." + }, + "city": { + "type": "string", + "description": "City." + }, + "state": { + "type": "string", + "description": "State." + }, + "country": { + "type": "string", + "description": "Country." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + } + } + }, + "additionalInfo": { + "type": "string", + "description": "Additional information about the pickup point.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "Dock ID of the pickup point.", + "nullable": true + } + } + } + }, + "subscriptionData": { + "type": "object", + "description": "Subscription information.", + "nullable": true + }, + "totals": { + "type": "array", + "description": "Information on order totals.", + "items": { + "type": "object", + "description": "Object containing information about a specific total in the order.", + "properties": { + "id": { + "type": "string", + "description": "Total ID." + }, + "name": { + "type": "string", + "description": "Total name." + }, + "value": { + "type": "integer", + "description": "Total value." + } + } + } + }, + "itemMetadata": { + "type": "object", + "description": "Item metadata.", + "properties": { + "items": { + "type": "array", + "description": "List of objects containing metadata on each item in the order.", + "items": { + "type": "object", + "description": "Detailed information about each item in the order.", + "properties": { + "id": { + "type": "string", + "description": "Item ID." + }, + "seller": { + "type": "string", + "description": "Seller." + }, + "assemblyOptions": { + "type": "array", + "description": "Assembly options information.", + "items": { + "description": "Details of an assembly option.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Item ID." + }, + "name": { + "type": "string", + "description": "Item name." + }, + "required": { + "type": "boolean", + "description": "Indicates whether the item is required." + }, + "inputValues": { + "type": "object", + "description": "Input values information." + }, + "composition": { + "type": "string", + "description": "Composition information.", + "nullable": true + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "deprecated": false + }, + "example": { + "items": [ + { + "id": "1", + "requestIndex": 0, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "tax": 0, + "priceValidUntil": "2023-07-12T11:49:01Z", + "price": 9999, + "listPrice": 9999, + "rewardValue": 0, + "sellingPrice": 2999700, + "offerings": [ + { + "id": "14", + "name": "offeringExample", + "price": 15099, + "availability": "available" + } + ], + "priceTags": [ + { + "name": "DISCOUNT@MANUALPRICE", + "value": -5000, + "rawValue": -50, + "isPercentual": false, + "identifier": "1234abc-5678b-1234c", + "owner": "ownerExample" + } + ], + "measurementUnit": "un", + "unitMultiplier": 300, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "availability": "available", + "priceDefinition": { + "calculatedSellingPrice": 2999700, + "total": 2999700, + "sellingPrices": [ + { + "value": 2999700, + "quantity": 1 + } + ] + } + } + ], + "ratesAndBenefitsData": { + "rateAndBenefitsIdentifiers": [ + { + "id": "245", + "name": "giftcard" + } + ], + "teaser": [ + { + "name": "teaserName", + "description": "descriptionTeaser" + } + ] + }, + "paymentData": { + "installmentOptions": [ + [ + { + "paymentSystem": 123, + "bin": "123456", + "paymentName": "Credit Card", + "paymentGroupName": "Credit Cards", + "value": 100000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 100000, + "total": 100000, + "sellerMerchantInstallments": [ + { + "id": 1, + "count": 1, + "value": 100000 + } + ] + }, + { + "count": 3, + "hasInterestRate": true, + "interestRate": 5, + "value": 34000, + "total": 102000, + "sellerMerchantInstallments": [ + { + "id": 1, + "count": 3, + "value": 34000 + } + ] + } + ] + } + ], + [ + { + "paymentSystem": 456, + "bin": null, + "paymentName": "PayPal", + "paymentGroupName": "Digital Wallets", + "value": 100000, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 100000, + "total": 100000, + "sellerMerchantInstallments": [ + { + "id": 2, + "count": 1, + "value": 100000 + } + ] + } + ] + } + ] + ] + }, + "selectableGifts": [], + "marketingData": { + "utmSource": "app", + "utmMedium": "CPC", + "utmCampaign": "Black friday", + "utmipage": "true", + "utmiPart": "true", + "utmiCampaign": "true", + "coupon": null, + "marketingTags": [ + "tag1", + "tag2" + ] + }, + "country": "BRA", + "postalCode": "12345-000", + "geoCoordinates": [ + -47.924747467041016, + -15.832582473754883 + ], + "logisticsInfo": [ + { + "itemIndex": 0, + "addressId": null, + "selectedSla": null, + "selectedDeliveryChannel": null, + "quantity": 1, + "shipsTo": [ + "BRA" + ], + "slas": [ + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "10d", + "availableDeliveryWindows": { + "startDateUtc": "2017-03-27T00:00:00+00:00", + "endDateUtc": "2017-03-27T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + "deliveryWindow": { + "startDateUtc": "2014-04-21T09:00:00+00:00", + "endDateUtc": "2014-04-21T12:00:00+00:00", + "price": 0, + "listprice": 1000, + "tax": 0 + }, + "price": 1500, + "listPrice": 1500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": null, + "transitTime": "3bd" + } + ], + "deliveryChannels": [ + { + "id": "pickup-in-point" + }, + { + "id": "delivery" + } + ] + } + ], + "messages": [], + "purchaseConditions": { + "itemPurchaseConditions": [ + { + "id": "1", + "seller": "1", + "sellerChain": [ + "1" + ], + "slas": [ + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [] + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "10d", + "availableDeliveryWindows": { + "startDateUtc": "2017-03-27T00:00:00+00:00", + "endDateUtc": "2017-03-27T00:00:00+00:00", + "price": 0, + "lisPrice": 0, + "tax": 0 + }, + "deliveryWindow": { + "startDateUtc": "2014-04-21T09:00:00+00:00", + "endDateUtc": "2014-04-21T12:00:00+00:00", + "price": 0, + "listprice": 1000, + "tax": 0 + }, + "price": 1500, + "listPrice": 1500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": 0, + "polygonName": null, + "transitTime": "3bd" + } + ], + "price": 9999, + "listPrice": 9999 + } + ] + }, + "pickupPoints": [], + "subscriptionData": null, + "totals": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 2999700 + } + ], + "itemMetadata": { + "items": [ + { + "id": "1", + "seller": "1", + "assemblyOptions": [ + { + "id": "T-Shirt Customization", + "name": "T-Shirt Customization", + "required": false, + "inputValues": { + "T-Shirt Name": { + "maximumNumberOfCharacters": 2, + "domain": [ + "[]" + ] + } + }, + "composition": null + } + ] + } + ] + } + } + } + } + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + } + ], + "components": { + "schemas": { + "EnqueueNewOrderRequest": { + "required": [ + "marketplaceOrderId", + "marketplaceOrderStatus", + "marketplacePaymentValue", + "allowFranchises", + "items", + "clientProfileData", + "shippingData", + "invoiceData" + ], + "type": "object", + "description": "Object for enqueueing a new order.", + "properties": { + "marketplaceOrderId": { + "type": "string", + "description": "String that indicates the order's ID in the marketplace.", + "example": "7e62fcd3-827b-400d-be8a-f050a79c4976" + }, + "marketplaceOrderStatus": { + "type": "string", + "description": "Required field including a string with the order’s status in the marketplace. If you send an order with the status APPROVED to integrate, our service will automatically try to advance it’s status in VTEX after integrating it. This field accepts the following values: \n\n- `new` \n\n- `approved`", + "example": "new" + }, + "marketplacePaymentValue": { + "type": "integer", + "description": "Integer that indicates the order’s total value, which the marketplace will pay to the seller. It’s important to note that this value should include interest, if that’s the case. If the value is `USD110.50`, convert it to the format → `11050`.", + "example": 11050 + }, + "connectorName": { + "type": "string", + "description": "String with the identifier code of the connector responsible for the order. \n\nThis field is optional if the connector uses the [App Template](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-app-template) and authenticates on our request via `VtexIdclientAutCookie`. \n\nIt is required if the connector is native or does not use the App Template.", + "example": "connectorName" + }, + "connectorEndpoint": { + "type": "string", + "description": "String with the connector's base endpoint that will receive notifications about the orders processing results, as well as status updates from VTEX OMS. This field accepts query strings. You can use the models below: \n\n- `https://{{externalconnector}}.com` \n\n- `https://{{externalconnector.com}}/api/vtex` if you additionaly want to send a relative URL with the endpoint. \n\nThis field is optional if the connector uses the [App Template](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-app-template) and authenticates on our request via `VtexIdclientAutCookie`. \n\nIt is required if the connector is native or does not use the App Template.", + "example": "https://{{externalconnector.com}}/api/vtex" + }, + "allowFranchises": { + "type": "boolean", + "description": "Boolean indicating whether franchise accounts linked to the main seller should be considered. That is, if the order delivery pickup/SLA can belong to a [franchise account](https://help.vtex.com/en/tutorial/what-is-a-franchise-account--kWQC6RkFSCUFGgY5gSjdl), for example. This field is optional and defaults to `false`.", + "example": false + }, + "pickupAccountName": { + "type": "string", + "description": "String that indicates the name of the account responsible for the order’s pickup point. It is only required for pickup-in-point orders from franchise accounts, when franchise accounts `allowFranchises` is `true` and the order in question has a `pickup-in-point` delivery type. It is optional otherwise.", + "example": "accountName" + }, + "items": { + "type": "array", + "description": "List of items included in the order. Each item object references the schema definition for an individual item.", + "items": { + "$ref": "#/components/schemas/Item" + } + }, + "clientProfileData": { + "$ref": "#/components/schemas/ClientProfileData" + }, + "shippingData": { + "$ref": "#/components/schemas/ShippingData" + }, + "invoiceData": { + "$ref": "#/components/schemas/InvoiceData" + }, + "customData": { + "$ref": "#/components/schemas/CustomData" + } + }, + "example": { + "marketplaceOrderId": "123", + "marketplaceOrderStatus": "new", + "marketplacePaymentValue": 3025, + "connectorName": "SkyHub", + "connectorEndpoint": "https://connector-endpoint.com/api/vtex", + "allowFranchises": false, + "pickupAccountName": "testAccount", + "items": [ + { + "id": "1", + "price": 975, + "quantity": 1 + } + ], + "clientProfileData": { + "email": "email@email.com.br", + "firstName": "John", + "lastName": "Doe", + "phone": "99999999999", + "document": "99999999999", + "corporateDocument": null, + "corporatePhone": null, + "corporateName": null, + "tradeName": null, + "stateInscription": null + }, + "shippingData": { + "logisticsInfo": [ + { + "price": 2050, + "selectedDeliveryChannel": "delivery", + "selectedSla": "Express", + "lockTTL": "1d", + "shippingEstimate": "2d", + "deliveryIds": { + "warehouseId": "AR1" + } + } + ], + "selectedAddresses": [ + { + "addressType": "Residential", + "addressId": "1", + "receiverName": "John Doe", + "postalCode": "81020-235", + "city": "Curitiba", + "state": "PR", + "country": "BRA", + "street": "Rua Eduardo Carlos Pereira", + "number": "4125", + "neighborhood": "Portão", + "complement": "101", + "geoCoordinates": { + "latitude": "-29.5", + "longitude": "-45.8" + } + } + ], + "isFob": true, + "isMarketplaceFulfillment": true + }, + "invoiceData": { + "userPaymentInfo": { + "paymentMethods": [ + "creditCardPaymentGroup" + ] + } + }, + "customData": { + "customApps": [ + { + "id": "marketplace-integration", + "major": 1, + "fields": { + "marketplacePaymentMethod": "credit card" + } + } + ] + } + } + }, + "Item": { + "required": [ + "id", + "price", + "quantity" + ], + "type": "object", + "description": "Object containing information about an item in the order.", + "properties": { + "id": { + "type": "string", + "description": "String with the SKU ID in VTEX’s catalog.", + "example": "1" + }, + "price": { + "type": "integer", + "description": "Integer with the SKU’s unit price. If the value is `USD110.50`, convert it to the format → `11050`.", + "example": 11050 + }, + "quantity": { + "type": "integer", + "description": "Integer with the quantity of the SKU present in the order. The value should be greater than zero.", + "example": 10 + } + }, + "example": { + "id": "1", + "price": 975, + "quantity": 1 + } + }, + "ClientProfileData": { + "description": "Structure with the customer's information. An order will be identified as corporate if any of the corporate fields are filled out (`corporateDocument`, `corporatePhone`, `corporateName` or `tradeName`).", + "required": [ + "email", + "firstName", + "lastName", + "phone", + "document", + "corporateDocument", + "corporatePhone", + "corporateName", + "tradeName", + "stateInscription" + ], + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "String with the customer's email.", + "example": "cirilla@cintra.com" + }, + "firstName": { + "type": "string", + "description": "String with the customer's first name.", + "example": "Cirilla" + }, + "lastName": { + "type": "string", + "description": "String with the customer’s surname.", + "example": "Cintra" + }, + "phone": { + "type": "string", + "description": "String with the customer’s phone number.", + "example": "99999999999" + }, + "document": { + "type": "string", + "description": "String with the customer’s document number.", + "example": "99999999999" + }, + "corporateDocument": { + "type": "string", + "description": "String with the company’s document number, in case of corporate orders.", + "nullable": true, + "example": "99999999999" + }, + "corporatePhone": { + "type": "string", + "description": "String with the company’s phone number, in case of corporate orders.", + "nullable": true, + "example": "99999999999" + }, + "corporateName": { + "type": "string", + "description": "String with the company’s name, in case of corporate orders.", + "nullable": true, + "example": "The Witcher Inc." + }, + "tradeName": { + "type": "string", + "description": "String with the company’s fantasy name, in case of corporate orders.", + "nullable": true, + "example": "The Witcher" + }, + "stateInscription": { + "type": "string", + "description": "String with the company’s state registration, in case of corporate orders.", + "nullable": true, + "example": "99999999999" + } + } + }, + "ShippingData": { + "required": [ + "logisticsInfo", + "selectedAddresses", + "isFob", + "isMarketplaceFulfillment" + ], + "type": "object", + "description": "Object containing shipping information for the order.", + "properties": { + "logisticsInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogisticsInfo" + }, + "description": "List that references the SLAs responsible for delivering each item in the order. \n\nThis list must contain the same number of items as the `items` list, previously defined. For example: if the order contains 3 SKUs, you must describe 3 SLAs in this list, one for each SKU (even in cases where the same SLA will deliver all of them). \n\nThe order of the SLAs in this list must also follow the same order as in the `items` list. For example: if the SLA named **Correios Express** will be responsible for delivering the SKU with ID equal to **1015**, which is found at index 0 of the `items` list, it must be in index 0 of the `logisticsInfo` list as well." + }, + "selectedAddresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SelectedAddress" + }, + "description": "List of selected addresses for the order. Each address contains detailed information such as receiver name, postal code, city, state, country, street, number, neighborhood, complement, and geographical coordinates." + }, + "isFob": { + "type": "boolean", + "description": "Boolean that indicates whether the order's delivery is the marketplace responsibility. Optional, defaulting to false.", + "example": false + }, + "isMarketplaceFulfillment": { + "type": "boolean", + "description": "Boolean that indicates whether the order's inventory in warehouse is the marketplace's responsibility. Optional, defaulting to false.", + "example": false + } + } + }, + "LogisticsInfo": { + "description": "List that references the SLAs responsible for delivering each item in the order. \n\nThis list must contain the same number of items as the `items` list, previously defined. For example: if the order contains 3 SKUs, you must describe 3 SLAs in this list, one for each SKU (even in cases where the same SLA will deliver all of them). \n\nThe order of the SLAs in this list must also follow the same order as in the `items` list. For example: if the SLA named **Correios Express** will be responsible for delivering the SKU with ID equal to **1015**, which is found at index 0 of the `items` list, it must be in index 0 of the `logisticsInfo` list as well.", + "required": [ + "price", + "selectedDeliveryChannel", + "selectedSla", + "lockTTL", + "shippingEstimate", + "deliveryIds" + ], + "type": "object", + "properties": { + "price": { + "type": "integer", + "description": "Integer indicating the shipping price for this SKU. If the value is `USD20.50`, convert it to the format → `2050`.", + "example": 2050 + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "String with the selected delivery channel. This field supports the following values: \n\n- `delivery`, \n\n- `pickup-in-point`.", + "example": "delivery" + }, + "selectedSla": { + "type": "string", + "description": "String with the selected delivery SLA.", + "example": "T-G1-2-Express" + }, + "lockTTL": { + "type": "string", + "description": "String with the inventory reservation period in VTEX's logistics system. To fill in this field insert the number of days, followed by the letter for the chosen unit. \n\n- Days: `d` \n\n- Business days: `bd`. \n\nExample formats: `12d`, `5d`.", + "example": "5d" + }, + "shippingEstimate": { + "type": "string", + "description": "String with the order's estimated delivery time. To fill in this field, insert a number, followed by the letter for the chosen unit. \n\n- Days: `d` \n\n- Business days: `bd`. \n\n- Hours: `h` \n\n- Minutes: `m`. \n\nExample formats: `12d`, `5bd`, `3h`, `50m`.", + "example": "7d" + }, + "deliveryIds": { + "$ref": "#/components/schemas/DeliveryIds" + } + }, + "example": { + "price": 2050, + "selectedDeliveryChannel": "delivery", + "selectedSla": "Express", + "lockTTL": "1d", + "shippingEstimate": "2d", + "deliveryIds": { + "warehouseId": "AR1" + } + } + }, + "DeliveryIds": { + "description": "List of delivery IDs, used for orders where the marketplace is responsible for the fulfillment of the order, including keeping inventory at a warehouse as well as the delivery.", + "required": [ + "warehouseId" + ], + "type": "object", + "properties": { + "warehouseId": { + "type": "string", + "description": "String with the ID of the warehouse used for marketplace fulfillment. Required when `isFob` = `true` and `isMarketplaceFulfillment` = `true`.", + "example": "AR1" + } + }, + "example": { + "warehouseId": "AR1" + } + }, + "SelectedAddress": { + "description": "List with the delivery addresses selected for the order. We currently only support a single delivery address.", + "required": [ + "addressType", + "addressId", + "receiverName", + "postalCode", + "country" + ], + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "String with the address type. The field supports the values: `residential`, `commercial`, `pickup`.", + "example": "commercial" + }, + "addressId": { + "type": "string", + "description": "String with the address identifier. Optional for `delivery` type orders, and required for `pickup-in-point` orders.", + "example": "1" + }, + "receiverName": { + "type": "string", + "description": "String with the name of the person responsible for receiving the order.", + "example": "Yennefer of Vengerberg" + }, + "postalCode": { + "type": "string", + "description": "String with the address' postal code.", + "example": "81020-235" + }, + "city": { + "type": "string", + "description": "String with the city’s name.", + "example": "City" + }, + "state": { + "type": "string", + "description": "String with the state's name, filled in with two letter code.", + "example": "RJ" + }, + "country": { + "type": "string", + "description": "String with the state's name, filled in with three letter code.", + "example": "BRA" + }, + "street": { + "type": "string", + "description": "String with the street's name.", + "example": "The Witcher Avenue" + }, + "number": { + "type": "string", + "description": "String with the street's number.", + "example": "1986" + }, + "neighborhood": { + "type": "string", + "description": "String with the neighborhood's name.", + "example": "Neighborhood's name" + }, + "complement": { + "type": "string", + "description": "String with the address' complement, like building name, or extra number.", + "example": "Complement to address" + }, + "geoCoordinates": { + "$ref": "#/components/schemas/GeoCoordinates" + } + } + }, + "GeoCoordinates": { + "description": "Structure with the address geocoordinates. Optional for `delivery` orders, required for `pickup-in-point` orders.", + "required": [ + "latitude", + "longitude" + ], + "type": "object", + "properties": { + "latitude": { + "type": "string", + "description": "Double value with the latitude coordinates of the address. Required only if the geoCoordinates field is defined. \n\nExample format: `-25.4158764`.", + "example": "-25.4158764" + }, + "longitude": { + "type": "string", + "description": "Double value with the longitude coordinates of the address. Required only if the geoCoordinates field is defined. Example format: `-49.342759`.", + "example": "-49.342759" + } + } + }, + "InvoiceData": { + "description": "Object with the order's billing data.", + "required": [ + "userPaymentInfo" + ], + "type": "object", + "properties": { + "userPaymentInfo": { + "$ref": "#/components/schemas/UserPaymentInfo" + } + }, + "example": { + "userPaymentInfo": { + "paymentMethods": [ + "creditCardPaymentGroup" + ] + } + } + }, + "UserPaymentInfo": { + "description": "Structure with the order’s payment data. Required only if `invoiceData` is defined.", + "required": [ + "paymentMethods" + ], + "type": "object", + "properties": { + "paymentMethods": { + "type": "array", + "items": { + "type": "string", + "description": "Payment method used in the order.", + "example": "creditCardPaymentGroup" + }, + "description": "List of strings with the payment methods used in the order. Required only if `invoiceData` is defined. The format and some possible values of payment methods accepted in this list can be found in the call [Fetching marketplace information with the Orders API](https://developers.vtex.com/vtex-rest-api/docs/get-marketplace-data-orders-api).", + "example": [ + "creditCardPaymentGroup" + ] + } + }, + "example": { + "paymentMethods": [ + "creditCardPaymentGroup" + ] + } + }, + "CustomData": { + "description": "Structure with the order's customizable fields. To insert custom fields in the order, you must first go through the process of [Creating an app](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-app-template), and then adding the app, as well as the desired fields, within the seller's `orderForm`. More information on [Creating customizable fields in the cart with Checkout API](https://developers.vtex.com/vtex-rest-api/docs/customizable-fields-with-checkout-api).", + "required": [ + "customApps" + ], + "type": "object", + "properties": { + "customApps": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomApp" + }, + "description": "Array of objects with information about custom apps." + } + }, + "example": { + "customApps": [ + { + "id": "marketplace-integration", + "major": 1, + "fields": { + "marketplacePaymentMethod": "credit card" + } + } + ] + } + }, + "CustomApp": { + "required": [ + "id", + "major", + "fields" + ], + "type": "object", + "description": "Custom application object.", + "properties": { + "id": { + "type": "string", + "description": "App's ID.", + "example": "ID" + }, + "major": { + "type": "integer", + "description": "Integer with the major version of the app. Optional, defaulting to one.", + "example": 1 + }, + "fields": { + "$ref": "#/components/schemas/fields" + } + }, + "example": { + "id": "marketplace-integration", + "major": 1, + "fields": { + "marketplacePaymentMethod": "credit card" + } + } + }, + "fields": { + "description": "String dictionary with the names of the fields and their respective values that must be inserted into the order.", + "required": [ + "marketplacePaymentMethod" + ], + "type": "object", + "properties": { + "marketplacePaymentMethod": { + "type": "string", + "description": "String with field's key and value.", + "example": "credit card" + } + }, + "example": { + "marketplacePaymentMethod": "credit card" + } + }, + "Deliverybyseller": { + "required": [ + "marketplaceOrderId", + "accountName", + "code", + "flow", + "success", + "operationId", + "errors", + "fields", + "message" + ], + "type": "object", + "description": "Object for delivery by seller integration.", + "properties": { + "marketplaceOrderId": { + "type": "string", + "nullable": true, + "description": "String that indicates the order's ID in the marketplace.", + "example": "7e62fcd3-827b-400d-be8a-f050a79c4976" + }, + "accountName": { + "type": "string", + "description": "String that indicates which account made the request.", + "example": "accountName" + }, + "code": { + "type": "string", + "description": "String with a internal Channel Order API code that classifies the response. The possible values returned in this field are described in the [Response Codes]() section.", + "example": "SOI001" + }, + "flow": { + "type": "string", + "description": "String containing the name of the flow responsible for the response. This field can contain the following values: \n\n`PlaceOrder`: when integrating new orders \n\n`ApproveOrder`: when approving existing orders \n\n`Unknown`: when we’re not able to identify the flow.", + "example": "ApproveOrder" + }, + "success": { + "type": "boolean", + "description": "Boolean that indicates if the response is successful or not.", + "example": true + }, + "operationId": { + "type": "string", + "nullable": true, + "description": "String GUID that identifies the operation in our service. This field can be used to help us analyze unexpected errors or behaviors.", + "example": "1234567" + }, + "errors": { + "type": "array", + "nullable": true, + "description": "List with errors related to the response, if there's any.", + "items": { + "type": "object", + "description": "Information about an item.", + "required": [ + "source", + "code", + "description" + ], + "properties": { + "source": { + "type": "string", + "description": "Includes the following fields pointing out the context of the error: \n\n`Fulfillment` \n\n`Checkout` \n\n`Order Integration`.", + "example": "Fulfillment" + }, + "code": { + "type": "string", + "description": "String containing the code returned by the source. Example value: If the source is `Fulfillment`, the code can be FMT005 to indicate that the item(s) in the order are not available.", + "enum": [ + "FMT001", + "FMT002", + "FMT003", + "FMT004", + "FMT005" + ], + "example": "FMT005" + }, + "description": { + "type": "string", + "description": "String containing the error message and description returned by the source.", + "example": "Message describing the error." + } + }, + "example": { + "source": "Fulfillment", + "code": "FMT005", + "description": "Message describing the error." + } + } + }, + "fields": { + "type": "object", + "nullable": true, + "description": "Structure with important fields for the connector. This structure is only returned if the response is successful. Includes the following fields: \n\n`mainOrderId`: String with the order's ID inside the main seller account in VTEX. \n\n`franchiseOrderId`: - String with the order's ID inside the franchise seller account in VTEX. Only returned if the order was integrated using the [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) feature, that is: \n\n- `allowFranchises` field set to `true` when integrating the order \n\n- `SLA` chosen for the order is from a franchise account.", + "properties": { + "fields": { + "type": "object", + "description": "Additional fields associated with the request.", + "required": [ + "mainOrderId" + ], + "properties": { + "mainOrderId": { + "type": "string", + "description": "String with the order’s ID inside the main seller account in VTEX.", + "example": "MKP-123456789" + }, + "franchiseOrderId": { + "type": "string", + "description": "String with the order's ID inside the franchise seller account in VTEX. Only returned if the order was integrated using the [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) feature, that is: \n\n- `allowFranchises` field set to `true` when integrating the order \r\n- SLA chosen for the order is from a franchise account", + "example": "432874921387409182347" + } + }, + "example": { + "mainOrderId": "MKP-123456789", + "franchiseOrderId": "432874921387409182347" + } + } + }, + "example": { + "franchiseOrderId": "38475934875" + } + }, + "message": { + "type": "string", + "description": "String with a message explaining the code returned in the response.", + "example": "The order was integrated into VTEX successfully" + } + }, + "example": { + "marketplaceOrderId": null, + "accountName": "grocery1", + "code": "SOI003", + "flow": "PlaceOrder", + "success": true, + "operationId": null, + "errors": null, + "fields": null, + "message": "Order successfully enqueued" + } + }, + "Deliverybyfranchiseseller": { + "required": [ + "marketplaceOrderId", + "accountName", + "code", + "flow", + "success", + "operationId", + "errors", + "fields", + "message" + ], + "type": "object", + "description": "Object for delivery by franchise seller.", + "properties": { + "marketplaceOrderId": { + "type": "string", + "nullable": true, + "description": "String that indicates the order's ID in the marketplace.", + "example": "7e62fcd3-827b-400d-be8a-f050a79c4976" + }, + "accountName": { + "type": "string", + "description": "String that indicates which account made the request.", + "example": "accountName" + }, + "code": { + "type": "string", + "description": "String with a internal Channel Order API code that classifies the response. The possible values returned in this field are described in the [Response Codes]() section.", + "example": "SOI001" + }, + "flow": { + "type": "string", + "description": "String containing the name of the flow responsible for the response. This field can contain the following values: \n\n`PlaceOrder`: when integrating new orders \n\n`ApproveOrder`: when approving existing orders \n\n`Unknown`: when we are not able to identify the flow.", + "example": "ApproveOrder" + }, + "success": { + "type": "boolean", + "description": "Boolean that indicates if the response is successful or not.", + "example": true + }, + "operationId": { + "type": "string", + "nullable": true, + "description": "String GUID that identifies the operation in our service. This field can be used to help us analyze unexpected errors or behaviors.", + "example": "1234567" + }, + "errors": { + "type": "array", + "nullable": true, + "description": "List with errors related to the response, if there's any.", + "items": { + "type": "object", + "description": "Error details object.", + "required": [ + "source", + "code", + "description" + ], + "properties": { + "source": { + "type": "string", + "description": "Includes the following fields pointing out the context of the error: \n\n`Fulfillment` \n\n`Checkout` \n\n`Order Integration`.", + "example": "Fulfillment" + }, + "code": { + "type": "string", + "description": "String containing the code returned by the source. Example value: If the source is `Fulfillment`, the code can be FMT005 to indicate that the item(s) in the order are not available.", + "example": "FMT005" + }, + "description": { + "type": "string", + "description": "String containing the error message/description returned by the source.", + "example": "Message describing the error." + } + }, + "example": { + "source": "Fulfillment", + "code": "FMT005", + "description": "Message describing the error." + } + } + }, + "fields": { + "type": "object", + "nullable": true, + "description": "Structure with important fields for the connector. This structure is only returned if the response is successful. Includes the following fields: \n\n`mainOrderId`: String with the order's ID inside the main seller account in VTEX. \n\n`franchiseOrderId`: - String with the order's ID inside the franchise seller account in VTEX. Only returned if the order was integrated using the [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) feature, that is: \n\n- `allowFranchises` field set to `true` when integrating the order \n\n- `SLA` chosen for the order is from a franchise account.", + "properties": { + "fields": { + "type": "object", + "description": "Object containing fields related to the order.", + "required": [ + "mainOrderId" + ], + "properties": { + "mainOrderId": { + "type": "string", + "description": "String with the order’s ID inside the main seller account in VTEX.", + "example": "MKP-123456789" + }, + "franchiseOrderId": { + "type": "string", + "description": "String with the order's ID inside the franchise seller account in VTEX. Only returned if the order was integrated using the [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) feature, that is: \n\n- `allowFranchises` field set to `true` when integrating the order \r\n- SLA chosen for the order is from a franchise account", + "example": "432874921387409182347" + } + }, + "example": { + "mainOrderId": "MKP-123456789", + "franchiseOrderId": "432874921387409182347" + } + } + }, + "example": { + "franchiseOrderId": "38475934875" + } + }, + "message": { + "type": "string", + "description": "String with a message explaining the code returned in the response.", + "nullable": true, + "example": "The order was integrated into VTEX successfully" + } + }, + "example": { + "marketplaceOrderId": null, + "accountName": "grocery1", + "code": "SOI003", + "flow": "PlaceOrder", + "success": true, + "operationId": null, + "errors": null, + "fields": null, + "message": "Order successfully enqueued" + } + }, + "UpdateOrderStatusRequest": { + "required": [ + "marketplaceOrderId", + "marketplaceOrderStatus", + "connectorName", + "connectorEndpoint" + ], + "description": "Object for updating the status of an order in the marketplace.", + "type": "object", + "properties": { + "marketplaceOrderId": { + "type": "string", + "description": "String that indicates the order's ID in the marketplace.", + "example": "7e62fcd3-827b-400d-be8a-f050a79c4976" + }, + "marketplaceOrderStatus": { + "type": "string", + "description": "Required field including a string with the order’s status in the marketplace. If you send an order with the status `APPROVED` to integrate, our service will automatically try to advance its status in VTEX after integrating it.", + "enum": [ + "new", + "approved" + ], + "example": "new" + }, + "connectorName": { + "type": "string", + "description": "String with the identifier code of the connector responsible for the order. \n\nThis field is optional if the connector uses the [App Template](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-app-template) and authenticates on our request via `VtexIdclientAutCookie`. \n\nIt is required if the connector is native or does not use the App Template.", + "example": "connectorName" + }, + "connectorEndpoint": { + "type": "string", + "description": "String with the connector's base endpoint that will receive notifications about the orders processing results, as well as status updates from VTEX OMS. This field does not accept query strings. You can use the models below: \n\n- `https://{{externalconnector}}.com` \n\n- `https://{{externalconnector.com}}/api/vtex` if you additionaly want to send a relative URL with the endpoint. \n\nThis field is optional if the connector uses the [App Template](https://developers.vtex.com/vtex-rest-api/docs/external-marketplace-integration-app-template) and authenticates on our request via `VtexIdclientAutCookie`. \n\nIt is required if the connector is native or does not use the App Template.", + "example": "https://{{externalconnector.com}}/api/vtex" + } + }, + "example": { + "marketplaceOrderId": "{{$guid}}", + "marketplaceOrderStatus": "approved", + "connectorName": "Skyhub", + "connectorEndpoint": "https://connector-endpoint.com/api/vtex" + } + }, + "Approveorder": { + "description": "Object for approving an order. Contains information about the approval status, errors (if any), and additional fields related to the approval process.", + "required": [ + "marketplaceOrderId", + "accountName", + "code", + "flow", + "success", + "operationId", + "errors", + "fields", + "message" + ], + "type": "object", + "properties": { + "marketplaceOrderId": { + "type": "string", + "nullable": true, + "description": "String that indicates the order's ID in the marketplace.", + "example": "7e62fcd3-827b-400d-be8a-f050a79c4976" + }, + "accountName": { + "type": "string", + "description": "String that indicates which account made the request.", + "example": "accountName", + "nullable": true + }, + "code": { + "type": "string", + "description": "String with a internal Channel Order API code that classifies the response. The possible values returned in this field are described in the Response Codes section of this API Reference.", + "example": "SOI001" + }, + "flow": { + "type": "string", + "description": "String containing the name of the flow responsible for the response. This field can contain the following values: \n\n`PlaceOrder`: when integrating new orders. \n\n`ApproveOrder`: when approving existing orders. \n\n`Unknown`: when we’re not able to identify the flow.", + "example": "ApproveOrder" + }, + "success": { + "type": "boolean", + "description": "Boolean that indicates if the response is successful or not.", + "example": true + }, + "operationId": { + "type": "string", + "nullable": true, + "description": "String GUID that identifies the operation in our service. This field can be used to help us analyze unexpected errors or behaviors.", + "example": "1234567" + }, + "errors": { + "type": "array", + "nullable": true, + "description": "List with errors related to the response, if there is any.", + "items": { + "type": "object", + "description": "Object representing an error in the response.", + "required": [ + "source", + "code", + "description" + ], + "properties": { + "source": { + "type": "string", + "description": "Includes the following fields pointing out the context of the error: \n\n`Fulfillment` \n\n`Checkout` \n\n`Order Integration`.", + "enum": [ + "Fulfillment", + "Checkout", + "Order Integration" + ], + "example": "Fulfillment" + }, + "code": { + "type": "string", + "description": "String containing the code returned by the source. Example value: If the source is `Fulfillment`, the code can be FMT005 to indicate that the item(s) in the order are not available.", + "example": "FMT005" + }, + "description": { + "type": "string", + "description": "String containing the error message and description returned by the source.", + "example": "Message describing the error." + } + }, + "example": { + "source": "Fulfillment", + "code": "FMT005", + "description": "Message describing the error." + } + } + }, + "fields": { + "type": "object", + "nullable": true, + "description": "Structure with important fields for the connector. This structure is only returned if the response is successful. Includes the following fields: \n\n`mainOrderId`: String with the order's ID inside the main seller account in VTEX. \n\n`franchiseOrderId`: - String with the order's ID inside the franchise seller account in VTEX. Only returned if the order was integrated using the [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) feature, that is: \n\n- `allowFranchises` field set to `true` when integrating the order \n\n- `SLA` chosen for the order is from a franchise account.", + "properties": { + "mainOrderId": { + "type": "string", + "description": "String with the order’s ID inside the main seller account in VTEX.", + "example": "MKP-123456789" + }, + "franchiseOrderId": { + "type": "string", + "description": "String with the order's ID inside the franchise seller account in VTEX. Only returned if the order was integrated using the [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) feature.", + "example": "432874921387409182347" + } + }, + "example": { + "franchiseOrderId": "38475934875" + } + }, + "message": { + "type": "string", + "description": "String with a message explaining the code returned in the response.", + "example": "The order was integrated into VTEX successfully" + } + }, + "example": { + "marketplaceOrderId": "7e62fcd3-827b-400d-be8a-f050a79c4976", + "accountName": null, + "code": "SOI003", + "flow": "ApproveOrder", + "success": true, + "operationId": null, + "errors": null, + "fields": null, + "message": "Order successfully enqueued" + } + }, + "orderIDFulfillmentResponse": { + "type": "object", + "description": "Response schema for a successful order creation.", + "properties": { + "status": { + "type": "string", + "description": "Indicates the success status of the response." + }, + "message": { + "type": "string", + "description": "A message providing additional information about the response." + }, + "orderId": { + "type": "string", + "description": "The unique identifier of the created order." + }, + "details": { + "type": "object", + "description": "Detailed information about the created order.", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the order was created. Format: `YYYY/MM/DD HH:MM:SSZ`." + }, + "marketplaceOrderId": { + "type": "string", + "description": "The marketplace-specific order identifier." + }, + "status": { + "type": "string", + "description": "The current status of the order." + } + } + } + } + }, + "placeFulfillmentOrderRequest": { + "type": "object", + "description": "Request schema for placing a fulfillment order.", + "required": [ + "marketplaceOrderId", + "marketplaceServicesEndpoint", + "marketplacePaymentValue", + "items", + "clientProfileData", + "shippingData" + ], + "properties": { + "marketplaceOrderId": { + "type": "string", + "description": "ID of the order in the marketplace.", + "example": "123456789" + }, + "marketplaceServicesEndpoint": { + "type": "string", + "description": "Endpoint provided by the marketplace for post purchase communication. Should be an URL, containing protocol, host, path and query string (in case it applies).", + "example": "https://exampleseller.marketplaceservices.com" + }, + "marketplacePaymentValue": { + "type": "integer", + "description": "Value of the payment made to the marketplace.", + "example": 100 + }, + "isCreatedAsync": { + "type": "boolean", + "description": "Indicates whether an order is created. It must be `true` if an order is being placed with [Price divergence](https://help.vtex.com/en/tutorial/configuring-price-divergence-rule--awAKP0sS5J8jgLs2g7pPe), otherwise the request will not work.", + "example": false + }, + "items": { + "type": "array", + "description": "Array of objects containing information on each of the order's items.", + "items": { + "type": "object", + "description": "An object representing the items in the cart for simulation, including details such as SKU ID, quantity, seller information, pricing, commissions, and any associated services or attachments.", + "required": [ + "id", + "quantity", + "seller" + ], + "properties": { + "id": { + "type": "string", + "description": "The SKU ID.", + "example": "123" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "The quantity of items of this specific SKU in the cart to be simulated.", + "example": 1 + }, + "seller": { + "type": "string", + "description": "The ID of the seller responsible for this SKU. This ID can be found in your VTEX Admin.", + "example": "1" + }, + "commission": { + "type": "integer", + "description": "Comission.", + "example": 10 + }, + "freightCommission": { + "type": "integer", + "description": "Freight comission.", + "example": 10 + }, + "price": { + "type": "integer", + "description": "Item price within the context of the order without separating cents. For example, $24.99 is represented `2499`.", + "example": 2499 + }, + "bundleItems": { + "type": "array", + "description": "Information on services sold along with the SKU. Example: a gift package.", + "items": { + "type": "object", + "description": "Object that represents items from the `bundleItems` field.", + "properties": { + "type": { + "type": "string", + "description": "Service type.", + "example": "type-example" + }, + "id": { + "type": "integer", + "description": "Service identifier.", + "example": 1034 + }, + "name": { + "type": "string", + "description": "Service name.", + "example": "name-example" + }, + "price": { + "type": "integer", + "description": "Service price. The last two digits are the cents.", + "example": 199 + } + } + } + }, + "itemAttachment": { + "type": "object", + "description": "Item attachment.", + "properties": { + "name": { + "type": "string", + "description": "Attachment name.", + "example": "name-example" + }, + "content": { + "type": "string", + "description": "Content referring to the customization requested by the customer.", + "example": "content-example" + } + } + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "description": "A string representing a single attachment associated with the item, providing additional details or customizations.", + "type": "string" + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags, each of which, modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", + "items": { + "description": "Array of price tags that modify the price, such as discounts or rates applicable to the item in the order context.", + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Price tag identifier.", + "example": "1234abc-5678b-1234c" + }, + "isPercentual": { + "type": "boolean", + "description": "`true` if price tag value is applied through a percentage.", + "default": false, + "example": false + }, + "name": { + "type": "string", + "description": "Price tag name.", + "example": "discount@name-1234abc-5678b-1234c" + }, + "rawValue": { + "type": "integer", + "description": "Price tag value.", + "example": -12 + }, + "value": { + "type": "integer", + "description": "Price tag raw value.", + "example": -1200 + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "SKU measurement unit.", + "example": "g" + }, + "unitMultiplier": { + "type": "integer", + "description": "SKU unit multiplier.", + "example": 1 + }, + "isGift": { + "type": "boolean", + "description": "Indicates whether the order is a gift.", + "default": false, + "example": false + } + }, + "example": { + "id": "123456789", + "quantity": 1, + "seller": "1" + } + } + }, + "clientProfileData": { + "type": "object", + "description": "Customer's profile information.", + "required": [ + "email", + "firstName", + "lastName", + "documentType", + "document" + ], + "properties": { + "email": { + "type": "string", + "description": "Customer's email address.", + "example": "customer@examplemail.com" + }, + "firstName": { + "type": "string", + "description": "Customer's first name.", + "example": "first-name" + }, + "lastName": { + "type": "string", + "description": "Customer's last name.", + "example": "last-name" + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer.", + "example": "cpf" + }, + "document": { + "type": "string", + "description": "Document informed by the customer. Validation depends on the country.", + "example": "123456789" + }, + "phone": { + "type": "string", + "description": "Customer's phone number.", + "example": "+55110988887777" + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity.", + "example": "company-name", + "nullable": true + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity.", + "example": "trade-name", + "nullable": true + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity.", + "example": "12345678000100", + "nullable": true + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity.", + "example": "12345678", + "nullable": true + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity.", + "example": "+551100988887777", + "nullable": true + }, + "isCorporate": { + "type": "boolean", + "description": "`true` if the customer is a legal entity.", + "example": false, + "nullable": true + } + } + }, + "shippingData": { + "type": "object", + "description": "Shipping information.", + "properties": { + "address": { + "type": "object", + "description": "Shipping address.", + "required": [ + "addressType", + "receiverName", + "postalCode", + "city", + "state", + "country", + "street", + "number" + ], + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`, among others.", + "example": "Residential" + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order.", + "example": "receiver-name" + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "example": "Home" + }, + "postalCode": { + "type": "string", + "description": "Postal Code. Validation depends on the country.", + "example": "12345000" + }, + "city": { + "type": "string", + "description": "City of the shipping address.", + "example": "Rio de Janeiro" + }, + "state": { + "type": "string", + "description": "State of the shipping address.", + "example": "Rio de Janeiro" + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address.", + "example": "BRA" + }, + "street": { + "type": "string", + "description": "Street of the shipping address.", + "example": "Praia de Botafogo" + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address.", + "example": "300" + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address.", + "example": "Botafogo" + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address in case it applies.", + "example": "3rd floor" + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "example": "Grey building" + }, + "geoCoordinates": { + "type": "array", + "description": "Array with two strings with geocoordinates, first latitude, then longitude.", + "items": { + "type": "string", + "description": "A string representing the longitude coordinate.", + "example": "00.00000" + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array of objects containing logistics information of each item.", + "items": { + "type": "object", + "description": "An object representing logistics information for a specific item in the order or cart, including its index, selected shipping service level agreement (SLA), and associated price.", + "required": [ + "itemIndex", + "selectedSla", + "price" + ], + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index of the item in the `items` array, starting at `0`.", + "example": 0 + }, + "selectedSla": { + "type": "string", + "description": "Selected shipping option.", + "example": "Express" + }, + "lockTTL": { + "type": "string", + "description": "Logistics reservation waiting time.", + "example": "8d" + }, + "shippingEstimate": { + "type": "string", + "description": "Estimated time until delivery for the item.", + "example": "7d" + }, + "price": { + "type": "integer", + "description": "Shipping price for the item. Does not account for the whole order's shipping price.", + "example": 1099 + }, + "deliveryWindow": { + "type": "object", + "description": "In case of scheduled delivery, this object will contain information on the delivery window selected by the shopper.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window start day and time in UTC, as `YYYY-DD-MM HH:MM:SS`." + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window end day and time in UTC, as `YYYY-DD-MM HH:MM:SS`." + }, + "price": { + "type": "integer", + "description": "Delivery window price.", + "default": 0 + }, + "lisPrice": { + "type": "integer", + "description": "Delivery window list price.", + "default": 0 + }, + "tax": { + "type": "integer", + "description": "Delivery window tax.", + "default": 0 + } + } + } + } + } + }, + "updateStatus": { + "type": "string", + "description": "Indicates whether this object's information is current according to the order's items. An order can not be placed if `\"outdated\"`." + } + } + }, + "paymentData": { + "type": "object", + "description": "In other contexts, this field tipically holds an object with payment information. However, since the payment is processed by the marketplace, it will be sent to the seller as `null` in this context.", + "nullable": true, + "default": null + }, + "marketingData": { + "type": "object", + "description": "An object containing various marketing data parameters used to track and analyze the source, medium, campaign, and internal UTMI parameters related to the order or cart.", + "properties": { + "utmSource": { + "type": "string", + "description": "UTM source.", + "example": "Facebook" + }, + "utmMedium": { + "type": "string", + "description": "UTM medium.", + "example": "CPC" + }, + "utmCampaign": { + "type": "string", + "description": "UTM campaign.", + "example": "Black friday" + }, + "utmiPage": { + "type": "string", + "description": "utmi_page (internal utm).", + "example": "utmi_page-example" + }, + "utmiPart": { + "type": "string", + "description": "utmi_part (internal utm).", + "example": "utmi_part-exmaple" + }, + "utmiCampaign": { + "type": "string", + "description": "utmi_campaign (internal utm).", + "example": "utmi_campaign-exmaple" + } + } + }, + "openTextField": { + "type": "string", + "description": "Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as `JSON` even if escaped. For that purpose, see [Creating customizable fields](https://developers.vtex.com/vtex-rest-api/docs/creating-customizable-fields-in-the-cart-with-checkout-api-1).", + "example": "open-text-example" + } + } + }, + "placeFulfillmentOrderResponse": { + "type": "object", + "description": "Response schema for placing a fulfillment order.", + "properties": { + "orderId": { + "type": "string", + "description": "ID of the created order." + }, + "status": { + "type": "string", + "description": "Status of the order creation." + }, + "message": { + "type": "string", + "description": "Response message providing additional information about the order creation." + }, + "orderData": { + "type": "object", + "description": "Data related to the created order.", + "properties": { + "marketplaceOrderId": { + "type": "string", + "description": "ID of the order in the marketplace." + }, + "marketplaceServicesEndpoint": { + "type": "string", + "description": "Endpoint provided by the marketplace for post purchase communication. Should be an URL, containing protocol, host, path and query string (in case it applies)." + }, + "marketplacePaymentValue": { + "type": "integer", + "description": "Value of the payment made to the marketplace." + }, + "isCreatedAsync": { + "type": "boolean", + "description": "Indicates whether an order is created. It must be `true` if an order is being placed with price divergence, otherwise the request will not work." + }, + "items": { + "type": "array", + "description": "List of items included in the order.", + "items": { + "type": "object", + "description": "Information about a specific item in the order.", + "properties": { + "id": { + "type": "string", + "description": "The SKU ID." + }, + "quantity": { + "type": "integer", + "description": "The quantity of items of this specific SKU in the cart to be simulated." + }, + "seller": { + "type": "string", + "description": "The ID of the seller responsible for this SKU. This ID can be found in your VTEX Admin." + }, + "commission": { + "type": "integer", + "description": "Commission." + }, + "freightCommission": { + "type": "integer", + "description": "Freight commission." + }, + "price": { + "type": "integer", + "description": "Item price within the context of the order without separating cents. For example, $24.99 is represented `2499`." + }, + "bundleItems": { + "type": "array", + "description": "Information on services sold along with the SKU. Example: a gift package.", + "items": { + "type": "object", + "description": "Information about a bundled item or service.", + "properties": { + "type": { + "type": "string", + "description": "Service type." + }, + "id": { + "type": "integer", + "description": "Service identifier." + }, + "name": { + "type": "string", + "description": "Service name." + }, + "price": { + "type": "integer", + "description": "Service price. The last two digits are the cents." + } + } + } + }, + "itemAttachment": { + "type": "object", + "description": "Item attachment.", + "properties": { + "name": { + "type": "string", + "description": "Attachment name." + }, + "content": { + "type": "string", + "description": "Content referring to the customization requested by the customer." + } + } + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "description": "A string representing a single attachment associated with the item, providing additional details or customizations.", + "type": "string" + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags, each of which, modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", + "items": { + "description": "Array of price tags that modify the price, such as discounts or rates applicable to the item in the order context.", + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Price tag identifier." + }, + "isPercentual": { + "type": "boolean", + "description": "`true` if price tag value is applied through a percentage." + }, + "name": { + "type": "string", + "description": "Price tag name." + }, + "rawValue": { + "type": "integer", + "description": "Price tag value." + }, + "value": { + "type": "integer", + "description": "Price tag raw value." + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "SKU measurement unit." + }, + "unitMultiplier": { + "type": "integer", + "description": "SKU unit multiplier." + }, + "isGift": { + "type": "boolean", + "description": "Indicates whether the order is a gift." + } + } + } + }, + "clientProfileData": { + "type": "object", + "description": "Customer's profile information.", + "properties": { + "email": { + "type": "string", + "description": "Customer's email address." + }, + "firstName": { + "type": "string", + "description": "Customer's first name." + }, + "lastName": { + "type": "string", + "description": "Customer's last name." + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer." + }, + "document": { + "type": "string", + "description": "Document informed by the customer. Validation depends on the country." + }, + "phone": { + "type": "string", + "description": "Customer's phone number." + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity." + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity." + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity." + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity." + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity." + }, + "isCorporate": { + "type": "boolean", + "description": "`true` if the customer is a legal entity." + } + } + }, + "shippingData": { + "type": "object", + "description": "Shipping information.", + "properties": { + "address": { + "type": "object", + "description": "Shipping address.", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`, among others." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID." + }, + "postalCode": { + "type": "string", + "description": "Postal Code. Validation depends on the country." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address in case it applies." + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery." + }, + "geoCoordinates": { + "type": "array", + "description": "Array with two strings with geocoordinates, first latitude, then longitude.", + "items": { + "type": "string", + "description": "A string representing the longitude coordinate." + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array of objects containing logistics information of each item.", + "items": { + "type": "object", + "description": "Logistics information for a specific item in the order.", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index of the item in the logistics chain." + }, + "selectedSla": { + "type": "string", + "description": "Selected service level agreement (SLA) for the item." + }, + "lockTTL": { + "type": "string", + "description": "Time to live (TTL) of the lock until it is confirmed." + }, + "shippingEstimate": { + "type": "string", + "description": "Estimated shipping time." + }, + "price": { + "type": "integer", + "description": "Price of the logistics chain." + }, + "deliveryWindow": { + "type": "object", + "description": "Delivery window object.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Start date of the delivery window in UTC." + }, + "endDateUtc": { + "type": "string", + "description": "End date of the delivery window in UTC." + }, + "price": { + "type": "integer", + "description": "Delivery price." + }, + "lisPrice": { + "type": "integer", + "description": "LIS price." + }, + "tax": { + "type": "integer", + "description": "Tax." + } + } + } + } + } + }, + "updateStatus": { + "type": "string", + "description": "Update status of the shipping order." + } + } + }, + "paymentData": { + "type": "string", + "description": "Payment information." + }, + "marketingData": { + "type": "object", + "description": "Marketing data related to the order.", + "properties": { + "utmSource": { + "type": "string", + "description": "UTM source parameter for marketing analysis." + }, + "utmMedium": { + "type": "string", + "description": "UTM medium parameter for marketing analysis." + }, + "utmCampaign": { + "type": "string", + "description": "UTM campaign parameter for marketing analysis." + }, + "utmiPage": { + "type": "string", + "description": "UTMI page parameter for marketing analysis." + }, + "utmiPart": { + "type": "string", + "description": "UTMI part parameter for marketing analysis." + }, + "utmiCampaign": { + "type": "string", + "description": "UTMI campaign parameter for marketing analysis." + } + } + }, + "openTextField": { + "type": "string", + "description": "Additional information." + } + } + } + } + } + } + }, + "tags": [ + { + "name": "External Marketplace" + } + ] +} diff --git a/clients/manitou/output/marketplace-protocol-seller-fulfillment.json b/clients/manitou/output/marketplace-protocol-seller-fulfillment.json new file mode 100644 index 0000000000..10c77e5234 --- /dev/null +++ b/clients/manitou/output/marketplace-protocol-seller-fulfillment.json @@ -0,0 +1,1992 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Marketplace Protocol", + "description": "The _Marketplace Protocol_ is a set of API requests and definitions to help you integrate external sellers into a VTEX marketplace as well as external marketplaces into VTEX sellers.\r\n\r\n## External Seller\r\n\r\nHere you will find the endpoints involved in the integration between a VTEX marketplace and an external seller. Note that some of these requests are typically sent by the seller while others are received.\r\n\r\n| **Request** | **From** | **To** |\r\n|-|-|-|\r\n| [Fulfillment simulation](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orderForms/simulation) | Marketplace | Seller |\r\n| [Order placement](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orders) | Marketplace | Seller |\r\n| [Authorize fulfillment](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orders/-sellerOrderId-/fulfill) | Marketplace | Seller |\r\n| [Marketplace order cancellation](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orders/-orderId-/cancel) | Marketplace | Seller |\r\n| [Send invoice](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/invoice) | Seller | Marketplace |\r\n| [Send tracking information](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/invoice/-invoiceNumber-) | Seller | Marketplace |\r\n| [Update tracking status](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/invoice/-invoiceNumber-/tracking) | Seller | Marketplace |\r\n| [Cancel order in marketplace](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/cancel) | Seller | Marketplace |\r\n\r\nFor a detailed explanation of the steps required to develop a custom connector to sell products from an external seller in your storefront, check out our complete [External Seller Integration Guide](https://developers.vtex.com/docs/guides/external-seller-integration-guide).\r\n\r\n\r\n## External Marketplace\r\n\r\nIn this section, you will find the endpoints involved in the VTEX integration between an external marketplace and a VTEX seller.\r\n\r\n\r\n| **Request** | **From** | **To** |\r\n|-|-|-|\r\n| [VTEX Mapper Registration](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-mapper#post-/api/mkp-category-mapper/connector/register) | External marketplace | VTEX system |\r\n| [Send Category Mapping to VTEX Mapper](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-mapper#post-/api/mkp-category-mapper/categories/marketplace/-id-) | External marketplace | VTEX system |\r\n| [New Order Integration](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/order-integration/orders) | External marketplace | VTEX system |\r\n| [Update Order Status](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#put-/api/order-integration/orders/status) | External marketplace | VTEX system |\r\n| [Fulfillment simulation - External Marketplace](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/checkout/pub/orderForms/simulation) | External marketplace | VTEX system |\r\n| [Place fulfillment order](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/fulfillment/pvt/orders) | External marketplace | VTEX Seller |\r\n| [Authorize dispatch for fulfillment order](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/fulfillment/pvt/orders/-orderId-/fulfill) | External marketplace | VTEX Seller |\r\n\r\n\r\nFor a detailed explanation of the steps required to develop a custom connector to become an external marketplace for VTEX sellers, check out our complete [External Marketplace Integration Guide](https://developers.vtex.com/docs/guides/external-marketplace-integration-guide).", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{fulfillmentEndpoint}", + "description": "Fulfillment Endpoint.", + "variables": { + "fulfillmentEndpoint": { + "description": "This is the fulfillment endpoint registered for each specific external seller in the **seller management** section of VTEX's admin panel.", + "default": "{fulfillmentEndpoint}" + } + } + } + ], + "paths": { + "/pvt/orderForms/simulation": { + "post": { + "tags": [ + "External Seller" + ], + "summary": "Fulfillment simulation - external seller", + "description": "This endpoint may be called upon by VTEX for fulfillment simulation in the external seller different contexts. See examples below.\n\nWhen a [price](https://developers.vtex.com/docs/api-reference/marketplace-apis#post-/notificator/-sellerId-/changenotification/-skuId-/price) or [inventory](https://developers.vtex.com/docs/api-reference/marketplace-apis#post-/notificator/-sellerId-/changenotification/-skuId-/inventory) notification request returns a response with status `200 OK`, it means that the SKU already exists in the marketplace. Whenever this happens, the marketplace will call the seller to get two updated information about the SKU: Price and Inventory.\n\nThe seller needs to have an endpoint implemented in order to receive this call and send a response containing the requested information to the marketplace. We call it the Fulfillment Simulation endpoint.\n\nIf the seller wishes to include other parameters in this call (like account name, or [sales channel](https://help.vtex.com/en/tutorial/como-funciona-uma-politica-comercial--6Xef8PZiFm40kg2STrMkMV) ID), this should be done within their {fulfillmentEndpoint}. This path is then inserted in the marketplace's VTEX admin when [configuring a seller](https://help.vtex.com/en/tutorial/configurando-seller--tutorials_392). \n\nThe marketplace will send an object containing an array of items. The seller must use this list to get the updated information about the referred SKUs and send them back to the marketplace, following the response format explained in the API Reference. \n\nThis call is also applied in the Storefront simulation scenario, in which case the request from VTEX does not send the parameters `country` and `postalCode`. \nThe call's payload can be adapted into two scenarios: \n\n- **Displaying items in the storefront**: the address information can be nulled in the request since they are not mandatory data for this context. \n- **Making a shopping cart simulation during checkout**: address information must be sent since this data is needed to calculate freight values. If the address information (including `postalCode` and `country`) is not sent through the call, VTEX interprets the stock balance as zero. Without a valid stock balance, the seller will not be shown as an option during checkout. \n \n## Request body example - Indexing simulation\n\n```\n{\n \"items\": [\n {\n \"id\": \"7908010136043\",\n \"quantity\": 1,\n \"seller\": \"1\",\n }\n ],\n \"isCheckedIn\": false,\n }\n``` \n## Request body example - Checkout simulation\n\n```\n{\n \"items\": [\n {\n \"id\": \"7908010136043\",\n \"quantity\": 1,\n \"seller\": \"1\",\n }\n ],\n \"postalCode\": \"22270-030\",\n \"country\": \"BRA\",\n }\n```\r\n\r\n## Permissions\r\n\r\nCheck with your service provider to know what permissions are needed.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "fulfillment-simulation", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/requestFulfillmentSimulation" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseFulfillmentSimulation" + }, + "example": { + "country": "BRA", + "items": [ + { + "id": "2000037", + "listPrice": 67203, + "measurementUnit": "un", + "merchantName": "mySeller1", + "offerings": [ + { + "type": "Warranty", + "id": "5", + "name": "1 year warranty", + "price": 10000 + } + ], + "price": 67203, + "priceTags": [], + "priceValidUntil": "2014-03-01T22:58:28.143", + "quantity": 1, + "requestIndex": 0, + "seller": "1", + "unitMultiplier": 1 + } + ], + "logisticsInfo": [ + { + "itemIndex": 0, + "quantity": 1, + "shipsTo": [ + "BRA" + ], + "slas": [ + { + "id": "Curbside pickup", + "deliveryChannel": "pickup-in-point", + "name": "Curbside pickup", + "shippingEstimate": "0bd", + "price": 0, + "availableDeliveryWindows": [ + { + "startDateUtc": "2013-02-04T08:00:00+00:00", + "endDateUtc": "2013-02-04T13:00:00+00:00", + "price": 0 + } + ], + "pickupStoreInfo": { + "isPickupStore": true, + "friendlyName": "Santa Felicidade", + "address": { + "addressType": "pickup", + "receiverName": "Juliana", + "addressId": "548304ed-dd40-4416-b12b-4b32bfa7b1e0", + "postalCode": "82320-040", + "city": "Curitiba", + "state": "PR", + "country": "BRA", + "street": "Rua Domingos Strapasson", + "number": "100", + "neighborhood": "Santa Felicidade", + "complement": "Loja 10", + "reference": "Next to the unicorn statue", + "geoCoordinates": [ + 49.334934, + 25.401705 + ] + }, + "additionalInfo": "" + } + } + ], + "stockBalance": 199, + "deliveryChannels": [ + { + "id": "delivery", + "stockBalance": 179 + }, + { + "id": "pickup-in-point", + "stockBalance": 20 + } + ] + } + ], + "postalCode": "80250000", + "allowMultipleDeliveries": true + } + } + } + } + }, + "deprecated": false + } + }, + "/pvt/orders": { + "post": { + "tags": [ + "External Seller" + ], + "summary": "Order placement", + "description": "This request is sent by VTEX to the external seller once the customer finishes their checkout, to let the seller know there is a newly placed order. It does that by calling the **Order Placement** endpoint, which needs to be implemented by the seller.\n\nThe marketplace will send information such as the items contained in the cart, the client’s profile data, the shipping data, and the payment data. With all that, the seller will be able to create the order in their store.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| VTEX Fulfilment | Fulfilment Resources | **Place Orders** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Create orders | Place Orders |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "order-placement", + "parameters": [ + { + "$ref": "#/components/parameters/content-length" + }, + { + "$ref": "#/components/parameters/authorization" + }, + { + "$ref": "#/components/parameters/accept-enconding" + }, + { + "$ref": "#/components/parameters/vtexOperationID" + }, + { + "$ref": "#/components/parameters/forwardedProto" + }, + { + "$ref": "#/components/parameters/forwardedFor" + }, + { + "$ref": "#/components/parameters/vtexCacheClientBypass" + }, + { + "$ref": "#/components/parameters/traceparent" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/orderPlacement" + }, + "example": { + "marketplaceOrderId": "1138342255777-01", + "marketplaceServicesEndpoint": "https://marketplaceservicesendpoint.myvtex.com/", + "marketplacePaymentValue": 2499, + "items": [ + { + "id": "123456789abc", + "quantity": 1, + "seller": "seller-example", + "commission": 0, + "freightCommission": 0, + "price": 2499, + "bundleItems": [ + { + "id": 12, + "quantity": 2 + }, + { + "id": 5, + "quantity": 1 + } + ], + "itemsAttachment": [ + { + "id": "attachment-1", + "name": "Product Manual", + "url": "https://example.com/manual.pdf" + } + ], + "attachments": [ + { + "id": "attachment-2", + "name": "Product Image", + "url": "https://example.com/image.jpg" + } + ], + "priceTags": [ + { + "identifier": "1234abc-5678b-1234c", + "isPercentual": false, + "name": "discount@name-1234abc-5678b-1234c", + "rawValue": 12, + "value": 1200 + } + ], + "measurementUnit": "g", + "unitMultiplier": 1, + "isGift": false + } + ], + "paymentData": null, + "clientProfileData": { + "email": "customer@examplemail.com", + "firstName": "first-name", + "lastName": "last-name", + "documentType": "cpf", + "document": "123456789", + "phone": "+55110988887777", + "corporateName": null, + "tradeName": null, + "corporateDocument": null, + "stateInscription": null, + "corporatePhone": null, + "isCorporate": false + }, + "shippingData": { + "address": { + "addressType": "residential", + "receiverName": "receiver-name", + "addressId": "Home", + "postalCode": "12345-000", + "city": "Rio de Janeiro", + "state": "Rio de Janeiro", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "3rd floor", + "reference": "Grey building", + "geoCoordinates": [ + "49.334934", + "25.401705" + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Express", + "lockTTL": "8d", + "shippingEstimate": "7d", + "price": 1099, + "deliveryWindow": { + "startDateUtc": "2016-04-20T08:00:00+00:00", + "endDateUtc": "2016-04-20T12:00:00+00:00", + "listPrice": 10 + } + } + ], + "updateStatus": "updated" + }, + "marketingData": { + "utmSource": "Facebook", + "utmMedium": "CPC", + "utmCampaign": "Black friday", + "utmiPage": "utmi_page-example", + "utmiPart": "utmi_part-exmaple", + "utmiCampaign": "utmi_campaign-exmaple" + }, + "openTextField": "open-text-example" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseOrderPlacement" + }, + "example": { + "marketplaceOrderId": "959311095", + "orderId": "7890", + "followUpEmail": "seller@example.com", + "items": [ + { + "id": "2002495", + "quantity": 1, + "seller": "1", + "commission": 0, + "freightCommission": 0, + "price": 2499, + "bundleItems": [], + "itemAttachment": { + "name": null, + "content": {} + }, + "attachments": [], + "priceTags": [], + "measurementUnit": "g", + "unitMultiplier": 1, + "isGift": false + } + ], + "clientProfileData": { + "email": "customer@examplemail.com.br", + "firstName": "John", + "lastName": "Smith", + "documentType": "taxpayer registration number", + "document": "33333333333", + "phone": "+55110988887777", + "corporateName": null, + "tradeName": null, + "corporateDocument": null, + "stateInscription": null, + "corporatePhone": null, + "isCorporate": false, + "userProfileId": null + }, + "shippingData": { + "address": { + "addressType": "residencial", + "receiverName": "John Smith", + "addressId": "Home", + "postalCode": "12345-000", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "3rd floor", + "reference": "Grey building", + "geoCoordinates": [ + "49.334934", + "25.401705" + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Express", + "lockTTL": "8d", + "shippingEstimate": "7d", + "price": 1099, + "deliveryWindow": { + "startDateUtc": "2016-04-20T08:00:00+00:00", + "endDateUtc": "2016-04-20T12:00:00+00:00", + "listPrice": 10 + } + } + ] + }, + "customData": { + "openTextField": null, + "marketingData": { + "utmSource": "buscape", + "utmMedium": "", + "utmCampaign": "freeshipping", + "utmiPage": "_", + "utmiPart": "BuscaFullText", + "utmiCampaign": "artscase for iphone 5" + } + }, + "paymentData": null, + "allowMultipleDeliveries": true + } + } + } + } + } + } + }, + "/pvt/orders/{sellerOrderId}/fulfill": { + "post": { + "tags": [ + "External Seller" + ], + "summary": "Authorize fulfillment", + "description": "This request is sent from VTEX to the seller after the payment is approved, to notify them that the fulfillment process can start.\r\n\r\n## Permissions\r\n\r\nCheck with your service provider to know what permissions are needed.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "authorize-fulfillment", + "parameters": [ + { + "$ref": "#/components/parameters/sellerOrderId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/requestOrderId" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repsonseOrderId" + }, + "example": { + "date": "2014-10-06 18:52:00", + "marketplaceOrderId": "1138342255777-01", + "orderId": "959311095", + "receipt": "e39d05f9-0c54-4469-a626-8bb5cff169f8" + } + } + } + } + } + } + }, + "/pvt/orders/{orderId}/cancel": { + "post": { + "tags": [ + "External Seller" + ], + "summary": "Marketplace order cancellation", + "description": "This request may be sent from VTEX to the external seller in case of order cancelation. For that, the seller will need to implement the Marketplace order cancellation endpoint. Whenever this request is received by the seller, the order should be canceled and the fulfillment flow should not proceed. \n\nFor the seller to: \n\n- **Evaluate a cancellation request:** it is possible to send an empty body as a response to the cancellation request, meaning that the seller is evaluating whether to proceed with the cancellation or not. \n\n- **Confirm the cancellation request:** it is possible to confirm the order cancellation by the marketplace by responding to the call with a body including only one information: the `marketplaceOrderId`, which identifies the order in the marketplace. The seller should use this ID to trigger the cancellation of the corresponding order. The seller should then respond with the same `marketplaceOrderId` and also with the `orderId`, which identifies the order in the seller, the date and time of the notification receipt, and a protocol code that confirms the receipt of the request (which may have the value `null`). \n\n- **Refuse a cancellation request:** it is possible to to [send the Invoice](https://developers.vtex.com/vtex-rest-api/reference/external-seller#send-invoice), meaning that the cancellation has been denied, and the flow continues to the [Order Invoicing](https://developers.vtex.com/vtex-rest-api/docs/external-seller-integration-connector#order-invoicing) step, and the ones that follow it. \n\n>⚠️ This call should be made twice: once for the *Evaluate cancellation request* scenario, and a second time to *Confirm cancellation* or *Refuse cancellation*.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Order Cancellation** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Cancela Pedidos | Order Cancellation |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "mkp-order-cancellation", + "parameters": [ + { + "$ref": "#/components/parameters/orderId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/requestOrderId" + }, + "example": { + "marketplaceOrderId": "1138342255777-01", + "marketplaceOrderGroup": "group-123", + "cancellationRequestId": "85835ab408514b52aa139e4236ce0c33", + "cancellationRequestDate": "2024-03-04T15:45:02.1306363+00:00", + "reason": "Out of stock", + "requestedByUser": true + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repsonseOrderId" + }, + "example": { + "date": "2019-05-09 15:31:23", + "marketplaceOrderId": "959311095", + "orderId": "1138342255777-01", + "receipt": "e39d05f9-0c54-4469-a626-8bb5cff169f8" + } + } + } + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + } + ], + "components": { + "schemas": { + "fulfillmentItem": { + "description": "Details of an item to be fulfilled.", + "required": [ + "id", + "quantity", + "seller" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SKU ID.", + "example": "6" + }, + "quantity": { + "type": "integer", + "description": "Quantity of items of the SKU in the cart.", + "example": 1 + }, + "seller": { + "type": "string", + "description": "ID of the seller registered in VTEX.", + "example": "01" + } + } + }, + "orderPlacement": { + "description": "Informations related to the placement of an order.", + "type": "object", + "properties": { + "marketplaceOrderId": { + "type": "string", + "description": "Identifies the order in the marketplace.", + "example": "1138342255777-01" + }, + "marketplaceServicesEndpoint": { + "type": "string", + "description": "Endpoint sent by VTEX to the seller, that will be used to send the invoice and tracking data to the marketplace. This endpoint will also be used in [change order in Multilevel Omnichannel Inventory](https://developers.vtex.com/docs/guides/change-orders-multilevel-omnichannel-inventory-external-marketplaces#implementators) operations in external marketplaces.", + "example": "https://marketplaceservicesendpoint.myvtex.com/" + }, + "marketplacePaymentValue": { + "type": "integer", + "description": "Amount that the marketplace agrees to pay to the seller. The last two digits are the cents. For example, $24.99 is represented 2499.", + "example": 2499 + }, + "items": { + "type": "array", + "description": "Array of objects.", + "items": { + "description": "Data about each SKU in the cart.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SKU ID.", + "example": "123456789abc" + }, + "quantity": { + "type": "integer", + "description": "Quantity of the item.", + "example": 1 + }, + "seller": { + "type": "string", + "description": "ID of the seller registered in VTEX.", + "example": "seller-example" + }, + "commission": { + "type": "integer", + "description": "Comission.", + "example": 0 + }, + "freightCommission": { + "type": "integer", + "description": "Freight comission.", + "example": 0 + }, + "price": { + "type": "integer", + "description": "SKU price. The last two digits are the cents. For example, $24.99 is represented 2499.", + "example": 2499 + }, + "bundleItems": { + "type": "array", + "description": "Information on services sold along with the SKU. Example: a gift package.", + "items": { + "$ref": "#/components/schemas/bundleItemsItem" + } + }, + "itemsAttachment": { + "type": "array", + "description": "Attachments sold with the SKU.", + "items": { + "$ref": "#/components/schemas/itemAttachment" + } + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "type": "object", + "description": "Attachment information.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the attachment.", + "example": "attachment-1" + }, + "name": { + "type": "string", + "description": "Name of the attachment.", + "example": "Product Image" + }, + "url": { + "type": "string", + "description": "URL of the attachment.", + "example": "https://example.com/image.jpg" + } + } + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags, each of which, modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", + "items": { + "description": "Details of a price tag affecting the item's price.", + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Price tag identifier.", + "example": "1234abc-5678b-1234c" + }, + "isPercentual": { + "type": "boolean", + "description": "`true` if price tag value is applied through a percentage.", + "example": false + }, + "name": { + "type": "string", + "description": "Price tag name.", + "example": "discount@name-1234abc-5678b-1234c" + }, + "rawValue": { + "type": "integer", + "description": "Price tag value.", + "example": -12 + }, + "value": { + "type": "integer", + "description": "Price tag raw value.", + "example": -1200 + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "SKU measurement unit.", + "example": "g" + }, + "unitMultiplier": { + "type": "integer", + "description": "SKU unit multiplier.", + "example": 1 + }, + "isGift": { + "type": "boolean", + "description": "Indicates if the item is a gift (`true`).", + "example": true + } + } + } + }, + "paymentData": { + "type": "object", + "description": "In other contexts, this field tipically holds an object with payment information. However, since the payment is processed by the marketplace, it will be sent to the seller as `null` in this context.", + "nullable": true, + "example": null + }, + "clientProfileData": { + "type": "object", + "description": "Customer's profile information.", + "required": [ + "email", + "firstName", + "lastName", + "documentType", + "document", + "isCorporate" + ], + "properties": { + "email": { + "type": "string", + "description": "Customer's email address.", + "example": "customer@examplemail.com" + }, + "firstName": { + "type": "string", + "description": "Customer's first name.", + "example": "first-name" + }, + "lastName": { + "type": "string", + "description": "Customer's last name.", + "example": "last-name" + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer.", + "example": "cpf" + }, + "document": { + "type": "string", + "description": "Document number informed by the customer.", + "example": "123456789" + }, + "phone": { + "type": "string", + "description": "Customer's phone number.", + "example": "+55110988887777" + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity.", + "example": "company-name", + "nullable": true + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity.", + "example": "trade-name", + "nullable": true + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity.", + "example": "12345678000100", + "nullable": true + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity.", + "example": "12345678", + "nullable": true + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity.", + "example": "+551100988887777", + "nullable": true + }, + "isCorporate": { + "type": "boolean", + "description": "`true` if the customer is a legal entity.", + "default": false, + "example": false, + "nullable": true + } + } + }, + "shippingData": { + "type": "object", + "description": "Shipping information.", + "properties": { + "address": { + "type": "object", + "description": "Shipping address.", + "required": [ + "addressType", + "receiverName", + "postalCode", + "city", + "state", + "country", + "street", + "neighborhood", + "number" + ], + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`, among others.", + "example": "residential" + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order.", + "example": "receiver-name" + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "example": "Home" + }, + "postalCode": { + "type": "string", + "description": "Postal Code.", + "example": "12345-000" + }, + "city": { + "type": "string", + "description": "City of the shipping address.", + "example": "Rio de Janeiro" + }, + "state": { + "type": "string", + "description": "State of the shipping address.", + "example": "Rio de Janeiro" + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address.", + "example": "BRA" + }, + "street": { + "type": "string", + "description": "Street of the shipping address.", + "example": "Praia de Botafogo" + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address.", + "example": "300" + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address.", + "example": "Botafogo" + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address in case it applies.", + "example": "3rd floor" + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery.", + "example": "Grey building" + }, + "geoCoordinates": { + "type": "array", + "description": "Geographic coordinates of the delivery address. This may be used instead of the postalCode, in case the marketplace is configured to accept geolocation. Example of value: `[-22.9443504,-43.1825635]`.", + "items": { + "description": "Coordinate value.", + "type": "string", + "example": "00.00000000" + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array of objects containing logistics information of each item.", + "items": { + "description": "Logistics information for a specific item.", + "type": "object", + "required": [ + "itemIndex", + "selectedSla", + "price" + ], + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index of the item in the `items` array, starting from 0.", + "example": 0 + }, + "selectedSla": { + "type": "string", + "description": "Selected shipping option.", + "example": "Express" + }, + "lockTTL": { + "type": "string", + "description": "Logistics reservation waiting time.", + "example": "8d" + }, + "shippingEstimate": { + "type": "string", + "description": "Estimated time until delivery for the item.", + "example": "7d" + }, + "price": { + "type": "integer", + "description": "Shipping price for the item. Does not account for the whole order's shipping price.", + "example": 1099 + }, + "deliveryWindow": { + "type": "object", + "description": "Scheduled delivery window information, in case it applies to the item.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Scheduled delivery window start date in UTC.", + "example": "2016-04-20T08:00:00+00:00" + }, + "endDateUtc": { + "type": "string", + "description": "Scheduled delivery window end date in UTC.", + "example": "2016-04-20T12:00:00+00:00" + }, + "listPrice": { + "type": "number", + "description": "Scheduled delivery window list price.", + "example": 10 + } + } + } + } + } + }, + "updateStatus": { + "type": "string", + "description": "Indicate whether this object's information is up to date according to the order's items. An order can not be placed if `\"outdated\"`.", + "example": "updated" + } + } + }, + "marketingData": { + "type": "object", + "description": "Marketing tracking data. If the order has no tracking data, the value will be `null`.", + "properties": { + "utmSource": { + "type": "string", + "description": "UTM source.", + "example": "Facebook" + }, + "utmMedium": { + "type": "string", + "description": "UTM medium.", + "example": "CPC" + }, + "utmCampaign": { + "type": "string", + "description": "UTM campaign.", + "example": "Black friday" + }, + "utmiPage": { + "type": "string", + "description": "utmi_page (internal utm).", + "example": "utmi_page-example" + }, + "utmiPart": { + "type": "string", + "description": "utmi_part (internal utm).", + "example": "utmi_part-exmaple" + }, + "utmiCampaign": { + "type": "string", + "description": "utmi_campaign (internal utm).", + "example": "utmi_campaign-exmaple" + } + } + }, + "openTextField": { + "type": "string", + "description": "Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as `json` even if escaped. For that purpose, see [Creating customizable fields](https://developers.vtex.com/vtex-rest-api/docs/creating-customizable-fields-in-the-cart-with-checkout-api-1).", + "example": "open-text-example" + } + } + }, + "responseOrderPlacement": { + "description": "Expected response from the Order Placement endpoint.", + "type": "object", + "properties": { + "marketplaceOrderId": { + "description": "Number of the order in the marketplace.", + "type": "string" + }, + "orderId": { + "description": "Order number.", + "type": "string" + }, + "followUpEmail": { + "description": "Email for contact with the store (seller).", + "type": "string" + }, + "items": { + "description": "List of order items.", + "type": "array", + "items": { + "description": "Details of an order item.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SKU ID." + }, + "quantity": { + "type": "integer", + "description": "Quantity of the item." + }, + "seller": { + "type": "string", + "description": "ID of the seller registered in VTEX." + }, + "commission": { + "type": "integer", + "description": "Comission." + }, + "freightCommission": { + "type": "integer", + "description": "Freight comission." + }, + "price": { + "type": "number", + "description": "SKU price. The last two digits are the cents. For example, $24.99 is represented 2499.", + "example": 2499 + }, + "bundleItems": { + "type": "array", + "description": "Information on services sold along with the SKU. Example: a gift package.", + "items": { + "$ref": "#/components/schemas/bundleItemsItem" + } + }, + "itemsAttachment": { + "type": "array", + "description": "Attachments sold with the SKU.", + "items": { + "$ref": "#/components/schemas/itemAttachment" + } + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "type": "object", + "description": "Attachment information.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the attachment." + }, + "name": { + "type": "string", + "description": "Name of the attachment." + }, + "url": { + "type": "string", + "description": "URL of the attachment." + } + } + } + }, + "priceTags": { + "type": "array", + "description": "Array of price tags. Each one modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", + "items": { + "description": "Details of a price tag affecting the item's price.", + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Price tag identifier." + }, + "isPercentual": { + "type": "boolean", + "description": "`true` if price tag value is applied through a percentage." + }, + "name": { + "type": "string", + "description": "Price tag name." + }, + "rawValue": { + "type": "integer", + "description": "Price tag value." + }, + "value": { + "type": "integer", + "description": "Price tag raw value." + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "SKU measurement unit." + }, + "unitMultiplier": { + "type": "integer", + "description": "SKU unit multiplier." + }, + "isGift": { + "type": "boolean", + "description": "`true` if the item is a gift." + } + } + } + }, + "clientProfileData": { + "description": "Customer's data.", + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Customer's email address." + }, + "firstName": { + "type": "string", + "description": "Customer's first name." + }, + "lastName": { + "type": "string", + "description": "Customer's last name." + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer." + }, + "document": { + "type": "string", + "description": "Document number informed by the customer." + }, + "phone": { + "type": "string", + "description": "Customer's phone number." + }, + "corporateName": { + "type": "string", + "description": "Company name, if the customer is a legal entity.", + "nullable": true + }, + "tradeName": { + "type": "string", + "description": "Trade name, if the customer is a legal entity.", + "nullable": true + }, + "corporateDocument": { + "type": "string", + "description": "Corporate document, if the customer is a legal entity.", + "nullable": true + }, + "stateInscription": { + "type": "string", + "description": "State inscription, if the customer is a legal entity.", + "nullable": true + }, + "corporatePhone": { + "type": "string", + "description": "Corporate phone number, if the customer is a legal entity.", + "nullable": true + }, + "isCorporate": { + "type": "boolean", + "description": "`true` if the customer is a legal entity.", + "default": false, + "nullable": true + } + } + }, + "shippingData": { + "description": "Shipping information.", + "type": "object", + "properties": { + "address": { + "type": "object", + "description": "Shipping address.", + "required": [ + "addressType", + "receiverName", + "postalCode", + "city", + "state", + "country", + "street", + "neighborhood", + "number" + ], + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`, among others." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Address ID." + }, + "postalCode": { + "type": "string", + "description": "Postal Code." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address in case it applies." + }, + "reference": { + "type": "string", + "description": "Complement that might help locate the shipping address more precisely in case of delivery." + }, + "geoCoordinates": { + "type": "array", + "description": "Geographic coordinates of the delivery address. This may be used instead of the postalCode, in case the marketplace is configured to accept geolocation. Example of value: `[-22.9443504,-43.1825635]`.", + "items": { + "description": "Coordinate value.", + "type": "string" + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array of objects containing logistics information of each item.", + "items": { + "description": "Logistics information for a specific item.", + "type": "object", + "required": [ + "itemIndex", + "selectedSla", + "price" + ], + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index of the item in the `items` array, starting from 0." + }, + "selectedSla": { + "type": "string", + "description": "Selected shipping option." + }, + "lockTTL": { + "type": "string", + "description": "Logistics reservation waiting time." + }, + "shippingEstimate": { + "type": "string", + "description": "Estimated time until delivery for the item." + }, + "price": { + "type": "integer", + "description": "Shipping price for the item. Does not account for the whole order's shipping price." + }, + "deliveryWindow": { + "type": "object", + "description": "Scheduled delivery window information, in case it applies to the item.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Scheduled delivery window start date in UTC." + }, + "endDateUtc": { + "type": "string", + "description": "Scheduled delivery window end date in UTC." + }, + "listPrice": { + "type": "number", + "description": "Scheduled delivery window list price.", + "example": 10 + } + } + } + } + } + } + } + }, + "paymentData": { + "type": "object", + "description": "In other contexts, this field tipically holds an object with payment information. However, since the payment is processed by the marketplace, it will be sent to the seller as `null` in this context.", + "nullable": true + }, + "customData": { + "description": "Custom data for the order.", + "type": "object" + }, + "allowMultipleDeliveries": { + "description": "Flag for permission of multiple deliveries.", + "type": "boolean" + } + } + }, + "bundleItemsItem": { + "description": "An item included in a bundle, representing a service or product.", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Service type." + }, + "id": { + "type": "integer", + "description": "Service identifier." + }, + "name": { + "type": "string", + "description": "Service name." + }, + "price": { + "type": "integer", + "description": "Service price. The last two digits are the cents." + } + } + }, + "itemAttachment": { + "type": "object", + "description": "An attachment associated with an item, containing additional information or customization requested by the customer.", + "properties": { + "name": { + "type": "string", + "description": "Attachment name." + }, + "content": { + "type": "string", + "description": "Content referring to the customization requested by the customer." + } + } + }, + "requestFulfillmentSimulation": { + "description": "This request body represents a fulfillmentsimulation, which may involve delivering items to a specified address. It is used to test the process of fulfilling orders without actually placing them.", + "required": [ + "postalCode" + ], + "type": "object", + "properties": { + "postalCode": { + "type": "string", + "description": "Delivery address postal code. This field is mandatory for shopping carts simulations, where both Country and Postal Code are required. This field should be sent as `null` for storefront simulations, where the information is not necessary.", + "example": "12345678" + }, + "geoCoordinates": { + "type": "array", + "description": "Geographic coordinates of the delivery address. This may be used instead of the postalCode, in case the marketplace is configured to accept geolocation. Example of value: `[-22.9443504,-43.1825635]`.", + "items": { + "description": "Coordinate value.", + "type": "string", + "example": "00.00000000" + } + }, + "country": { + "type": "string", + "description": "ISO 3-digit code of the country where the delivery address is located. This field is mandatory, for shopping carts simulations, where both Country and Postal Code are required. This field should be sent as `null` for storefront simulations, where the information is not necessary.", + "example": "USA" + }, + "items": { + "type": "array", + "description": "Array containing the cart items.", + "items": { + "$ref": "#/components/schemas/fulfillmentItem" + } + }, + "sc": { + "type": "string", + "description": "Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/como-funciona-uma-politica-comercial--6Xef8PZiFm40kg2STrMkMV#master-data)) associated to the seller account created.", + "example": "1" + } + } + }, + "responseFulfillmentSimulation": { + "title": "Response body", + "description": "Expected response body of fulfillment simulation.", + "type": "object", + "required": [ + "country", + "items", + "logisticsInfo", + "postalCode" + ], + "properties": { + "country": { + "title": "Country", + "description": "ISO 3-digit code of the country where the delivery address is located. If you don’t want to send it, use the value null.", + "type": "string" + }, + "items": { + "title": "Items", + "description": "Contains the data about each SKU in the cart.", + "type": "array", + "items": { + "title": "Items", + "description": "Contains the data about each SKU in the cart.", + "type": "object", + "required": [ + "id", + "listPrice", + "measurementUnit", + "merchantName", + "offerings", + "price", + "priceTags", + "priceValidUntil", + "quantity", + "requestIndex", + "seller", + "unitMultiplier" + ], + "properties": { + "id": { + "title": "id", + "description": "SKU ID.", + "type": "string" + }, + "listPrice": { + "title": "listPrice", + "description": "List price. It’s the amount presented to the customer as a “previous” price that has been lowered due to a discount. Don’t separate the decimal places. The last two digits are the cents.", + "type": "integer" + }, + "measurementUnit": { + "title": "measurementUnit", + "description": "SKU’s measurement unit.", + "type": "string" + }, + "merchantName": { + "title": "merchantName", + "description": "Name of the marketplace, used to guide payments. This field should be nulled if the marketplace is responsible for processing payments. Check out our [​​Payments in VTEX marketplaces](https://help.vtex.com/en/tutorial/payments-in-vtex-marketplaces--2kYOfWCZYweJkYl18bw9yD) article to know more.", + "type": "string" + }, + "offerings": { + "title": "offerings", + "description": "Services that may be offered for this SKU. example are the assembly of a piece of furniture or warranty. In case these information are sent, the following fields are mandatory. If you don’t want to send it, use an empty array.", + "type": "array", + "items": { + "title": "offerings", + "description": "Services that may be offered for this SKU. example are the assembly of a piece of furniture or warranty. In case these information are sent, the following fields are mandatory. If you don’t want to send it, use an empty array.", + "type": "object", + "required": [ + "type", + "id", + "name", + "price" + ], + "properties": { + "type": { + "title": "type", + "description": "Type of the service.", + "type": "string" + }, + "id": { + "title": "id", + "description": "Service ID.", + "type": "string" + }, + "name": { + "title": "name", + "description": "Service name.", + "type": "string" + }, + "price": { + "title": "price", + "description": "Service price. The last two digits are the cents.", + "type": "integer" + } + } + } + }, + "price": { + "title": "price", + "description": "Actual selling price of the SKU. Don’t separate the decimal places. The last two digits are the cents.", + "type": "integer" + }, + "priceTags": { + "title": "priceTags", + "description": "List with the promotions applied to the SKU.", + "type": "array", + "items": { + "title": "priceTags", + "description": "Promotions applied to the SKU.", + "type": "string" + } + }, + "priceValidUntil": { + "title": "priceValidUntil", + "description": "Expiration date of the SKU price. Example: `2014-03-01T22:58:28.143`. In case you don’t want to send it, use the value null.", + "type": "string", + "nullable": true + }, + "quantity": { + "title": "quantity", + "description": "Quantity of the item. The seller should send the quantity that was indicated in the request, or the maximum quantity possible.", + "type": "integer", + "default": 0 + }, + "requestIndex": { + "title": "requestIndex", + "description": "Position of this item in the original array (request).", + "type": "integer" + }, + "seller": { + "title": "seller", + "description": "ID of the seller as registered in VTEX. You should send the same value that came in the request.", + "type": "string" + }, + "unitMultiplier": { + "title": "unitMultiplier", + "description": "SKU unit multiplier. The default value is 1.", + "type": "integer" + } + } + } + }, + "logisticsInfo": { + "title": "logisticsInfo", + "description": "Array that contains the data regarding the delivery methods and stock for each item. If all products are unavailable, this field should return empty.", + "type": "array", + "items": { + "description": "Description of each logistics data object.", + "type": "object", + "required": [ + "itemIndex", + "quantity", + "shipsTo", + "slas", + "stockBalance", + "deliveryChannels" + ], + "properties": { + "itemIndex": { + "title": "itemIndex", + "description": "Position of this item in the original array, i.e., in the array that came with the request. This index is what identifies which SKU you are referring to for each object inside the `logisticsInfo`.", + "type": "integer" + }, + "quantity": { + "title": "quantity", + "description": "Quantity of the item. The seller should send the quantity that was indicated in the request, or the maximum quantity possible.", + "type": "integer" + }, + "shipsTo": { + "title": "shipsTo", + "description": "ISO 3-digit code of the countries to where the SKU is delivered.", + "type": "array", + "items": { + "title": "shipsTo", + "description": "Array of country codes.", + "type": "string" + } + }, + "slas": { + "title": "slas", + "description": "Contains the available delivery methods.", + "type": "array", + "items": { + "title": "slas", + "description": "Object with delivery methods information.", + "type": "object", + "required": [ + "id", + "deliveryChannel", + "name", + "price", + "shippingEstimate", + "availableDeliveryWindows", + "pickupStoreInfo" + ], + "properties": { + "id": { + "title": "id", + "description": "Identifier of the delivery method.", + "type": "string" + }, + "deliveryChannel": { + "title": "deliveryChannel", + "description": "Type of delivery channel. The values that are possible are: `pickup-in-point` for pickup point and `delivery` for regular delivery.", + "type": "string" + }, + "name": { + "title": "name", + "description": "Name of the delivery method.", + "type": "string" + }, + "price": { + "title": "price", + "description": "Delivery price. The two last digits are the cents.", + "type": "integer" + }, + "shippingEstimate": { + "title": "shippingEstimate", + "description": "Time estimated for the delivery. Possible suffixes are `bd` for *business day* , `h` for *hours*, and `m` for *minutes*.", + "type": "string" + }, + "availableDeliveryWindows": { + "title": "availableDeliveryWindows", + "description": "Contains the delivery windows available for the SLA.", + "type": "array", + "items": { + "title": "availableDeliveryWindows", + "description": "Object with delivery windows information.", + "type": "object", + "required": [ + "startDateUtc", + "endDateUtc", + "price" + ], + "properties": { + "startDateUtc": { + "title": "startDateUtc", + "description": "Start date of the delivery window.", + "type": "string" + }, + "endDateUtc": { + "title": "endDateUtc", + "description": "End date of the delivery window.", + "type": "string" + }, + "price": { + "title": "price", + "description": "Extra price for scheduled delivery. The last two digits are the cents.", + "type": "integer" + } + } + } + }, + "pickupStoreInfo": { + "title": "pickupStoreInfo", + "description": "Contains the data about the pickup point. If you do not want to send this, use the value `null`.", + "type": "object", + "nullable": true, + "required": [ + "isPickupStore", + "friendlyName", + "address", + "additionalInfo" + ], + "properties": { + "isPickupStore": { + "title": "isPickupStore", + "description": "`true` if it is a pickup point.", + "type": "boolean" + }, + "friendlyName": { + "title": "friendlyName", + "description": "Friendly name of the pickup point.", + "type": "string" + }, + "address": { + "title": "address", + "description": "Address data of the pickup point.", + "type": "object", + "required": [ + "addressType", + "receiverName", + "addressId", + "postalCode", + "city", + "state", + "country", + "street", + "number", + "neighborhood", + "complement", + "reference", + "geoCoordinates" + ], + "properties": { + "addressType": { + "title": " addressType", + "description": "The possible value is pickup.", + "type": "string" + }, + "receiverName": { + "title": "receiverName", + "description": "Name of the person who will receive the product. May be sent as `null`.", + "type": "string", + "nullable": true + }, + "addressId": { + "title": "addressId", + "description": "Identifies the pickup point.", + "type": "string" + }, + "postalCode": { + "title": "postalCode", + "description": "Postal code of the pickup point. This field is mandatory, for shopping carts simulations, where both Country and Postal Code are required. This field should be sent as `null` for storefront simulations, where the information is not necessary.", + "type": "string" + }, + "city": { + "title": "city", + "description": "Pickup point's city.", + "type": "string" + }, + "state": { + "title": "state", + "description": "Pickup point's state.", + "type": "string" + }, + "country": { + "title": "country", + "description": "3-digit ISO code of the country where the pickup point is located.", + "type": "string" + }, + "street": { + "title": "street", + "description": "Street where the pickup point is located.", + "type": "string" + }, + "number": { + "title": "number", + "description": "Address number of the pickup point.", + "type": "string" + }, + "neighborhood": { + "title": "neighborhood", + "description": "Neighborhood where the pickup point is located.", + "type": "string" + }, + "complement": { + "title": "complement", + "description": "Complement of the pickup point address.", + "type": "string" + }, + "reference": { + "title": "reference", + "description": "A reference for the pickup point address.", + "type": "string", + "nullable": true + }, + "geoCoordinates": { + "title": "geoCoordinates", + "description": "Contains the geographic coordinates of the pickup point.", + "type": "array", + "items": { + "title": "geoCoordinates", + "description": "Contains the geographic coordinates of the pickup point.", + "type": "number", + "example": 25.401705 + } + } + } + }, + "additionalInfo": { + "title": "additionalInfo", + "description": "Description or extra information about the pickup point.", + "type": "string" + } + } + } + } + } + }, + "stockBalance": { + "title": "stockBalance", + "description": "Stock balance of the SKU.", + "type": "integer" + }, + "deliveryChannels": { + "title": "deliveryChannels", + "description": "Array contains the stock balance for each channel.", + "type": "array", + "items": { + "title": "deliveryChannels", + "description": "Object containing ID and stockbalance of each delivery channel.", + "type": "object", + "required": [ + "id", + "stockBalance" + ], + "properties": { + "id": { + "title": "id", + "description": "Identifies the channel type whose stock balance will be informed in the next field. Possible values are: pickup-in-point for pickup point and delivery for regular delivery.", + "type": "string" + }, + "stockBalance": { + "title": "stockBalance", + "description": "Stock balance for the channel type selected in the previous field.", + "type": "integer" + } + } + } + } + } + } + }, + "postalCode": { + "title": "postalCode", + "description": "Postal code of the delivery address. This field is mandatory, for shopping carts simulations, where both Country and Postal Code are required. This field should be sent as `null` for storefront simulations, where the information is not necessary.", + "type": "string" + }, + "allowMultipleDeliveries": { + "description": "Flag for permission of multiple deliveries.", + "type": "boolean" + } + } + }, + "requestOrderId": { + "description": "Details related to a request for an order ID, which is used to trigger the fulfillment process of the corresponding order.", + "required": [ + "marketplaceOrderId", + "marketplaceOrderGroup", + "cancellationRequestDate", + "cancellationRequestId", + "reason", + "requestedByUser" + ], + "type": "object", + "properties": { + "marketplaceOrderId": { + "type": "string", + "description": "Identifies the order. The seller should use this ID to trigger the fulfillment process of the corresponding order.", + "example": "1138342255777-01" + }, + "marketplaceOrderGroup": { + "type": "string", + "description": "Identifies the group to which the order belongs. Useful for orders placed on marketplaces that operate with the [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) structure.", + "example": "group-123" + }, + "cancellationRequestId": { + "type": "string", + "description": "Unique identifier of the cancellation request on the platform.", + "example": "85838ab408514b52aa139e4236ce0c43" + }, + "cancellationRequestDate": { + "type": "string", + "description": "Date and time the platform processed the cancellation request, in this format: `YYYY-MM-DDThh:mm:ss.SSSSSSS+00:00`.", + "example": "2024-03-04T15:45:02.1306363+00:00" + }, + "reason": { + "type": "string", + "description": "Brief explanation of why the order is being canceled.", + "example": "Incorrect product" + }, + "requestedByUser": { + "type": "boolean", + "description": "When set as `true`, the cancellation was requested by the shopper, and when set as `false`, the cancellation was not requested by the shopper.", + "example": true + } + } + }, + "repsonseOrderId": { + "type": "object", + "description": "Details related to an order, including the order approval date, marketplace order ID, order number, and order receipt code.", + "properties": { + "date": { + "type": "string", + "title": "Date", + "description": "Order approval date." + }, + "marketplaceOrderId": { + "type": "string", + "title": "Marketplace Order Id", + "description": "Identifies the order. The seller should use this ID to trigger the fulfillment process of the corresponding order." + }, + "orderId": { + "type": "string", + "title": "Order Id", + "description": "Order number." + }, + "receipt": { + "type": "string", + "description": "Order receipt code.", + "title": "Receipt" + } + } + } + }, + "parameters": { + "content-length": { + "name": "content-length", + "in": "header", + "description": "Length of the request body.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "2183" + } + }, + "authorization": { + "name": "authorization", + "in": "header", + "description": "Indicates authorization.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "VTEX key=\"appKey\" token=\"appToken\"" + } + }, + "accept-enconding": { + "name": "accept-enconding", + "in": "header", + "description": "Indicates the types of response enconding the client can understand.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "gzip, deflate" + } + }, + "vtexOperationID": { + "name": "x-vtex-operation-id", + "in": "header", + "description": "VTEX operation ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "8032114b-63e9-4e64-b30c-f7afcf676d7a" + } + }, + "forwardedProto": { + "name": "x-forwarded-proto", + "in": "header", + "description": "Determines the protocol used by the client in the request.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "https" + } + }, + "forwardedFor": { + "name": "x-forwarded-for", + "in": "header", + "description": "Identifies the originating IP address of the HTTP client.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "179.35.30.186, 130.176.35.67, 172.16.247.49" + } + }, + "vtexCacheClientBypass": { + "name": "x-vtex-cache-client-bypass", + "in": "header", + "description": "VTEX cache client bypass.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + }, + "traceparent": { + "name": "traceparent", + "in": "header", + "description": "Identifies the incoming request in a tracing system.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "00-083c0ca18bc8d94183f333809a70cd64-bf5e9a641e230540-00" + } + }, + "sellerOrderId": { + "name": "sellerOrderId", + "in": "path", + "description": "Seller's order ID of the order ready for fulfillment. The seller can be a VTEX seller or an external one.", + "required": true, + "example": "00-1268540501456-01", + "style": "simple", + "schema": { + "type": "string", + "example": "00-1268540501456-01" + } + }, + "orderId": { + "name": "orderId", + "in": "path", + "description": "ID of the order being fulfilled.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1138342255777-01" + } + } + } + }, + "tags": [ + { + "name": "External Seller" + } + ] +} diff --git a/clients/manitou/output/marketplace-protocol-seller-marketplace.json b/clients/manitou/output/marketplace-protocol-seller-marketplace.json new file mode 100644 index 0000000000..76c5f707c4 --- /dev/null +++ b/clients/manitou/output/marketplace-protocol-seller-marketplace.json @@ -0,0 +1,517 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Marketplace Protocol", + "description": "The _Marketplace Protocol_ is a set of API requests and definitions to help you integrate external sellers into a VTEX marketplace as well as external marketplaces into VTEX sellers.\r\n\r\n## External Seller\r\n\r\nHere you will find the endpoints involved in the integration between a VTEX marketplace and an external seller. Note that some of these requests are typically sent by the seller while others are received.\r\n\r\n| **Request** | **From** | **To** |\r\n|-|-|-|\r\n| [Fulfillment simulation](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orderForms/simulation) | Marketplace | Seller |\r\n| [Order placement](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orders) | Marketplace | Seller |\r\n| [Authorize fulfillment](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orders/-sellerOrderId-/fulfill) | Marketplace | Seller |\r\n| [Marketplace order cancellation](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-seller-fulfillment#post-/pvt/orders/-orderId-/cancel) | Marketplace | Seller |\r\n| [Send invoice](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/invoice) | Seller | Marketplace |\r\n| [Send tracking information](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/invoice/-invoiceNumber-) | Seller | Marketplace |\r\n| [Update tracking status](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/invoice/-invoiceNumber-/tracking) | Seller | Marketplace |\r\n| [Cancel order in marketplace](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-marketplaceOrderId-/cancel) | Seller | Marketplace |\r\n| [Send agreement for order modifications](https://developers.vtex.com/docs/api-reference/marketplace-protocol#post-/pvt/orders/-participantOrderId-/changes/-changeRequestId-/send-agreement) | Seller | Marketplace |\r\n\r\nFor a detailed explanation of the steps required to develop a custom connector to sell products from an external seller in your storefront, check out our complete [External Seller Integration Guide](https://developers.vtex.com/docs/guides/external-seller-integration-guide).\r\n\r\n\r\n## External Marketplace\r\n\r\nIn this section, you will find the endpoints involved in the VTEX integration between an external marketplace and a VTEX seller.\r\n\r\n\r\n| **Request** | **From** | **To** |\r\n|-|-|-|\r\n| [VTEX Mapper Registration](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-mapper#post-/api/mkp-category-mapper/connector/register) | External marketplace | VTEX system |\r\n| [Send Category Mapping to VTEX Mapper](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-mapper#post-/api/mkp-category-mapper/categories/marketplace/-id-) | External marketplace | VTEX system |\r\n| [New Order Integration](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/order-integration/orders) | External marketplace | VTEX system |\r\n| [Update Order Status](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#put-/api/order-integration/orders/status) | External marketplace | VTEX system |\r\n| [Fulfillment simulation - External Marketplace](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/checkout/pub/orderForms/simulation) | External marketplace | VTEX system |\r\n| [Place fulfillment order](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/fulfillment/pvt/orders) | External marketplace | VTEX Seller |\r\n| [Authorize dispatch for fulfillment order](https://developers.vtex.com/docs/api-reference/marketplace-protocol-external-marketplace-orders#post-/api/fulfillment/pvt/orders/-orderId-/fulfill) | External marketplace | VTEX Seller |\r\n\r\n\r\nFor a detailed explanation of the steps required to develop a custom connector to become an external marketplace for VTEX sellers, check out our complete [External Marketplace Integration Guide](https://developers.vtex.com/docs/guides/external-marketplace-integration-guide).", + "version": "1.0" + }, + "servers": [ + { + "url": "https://{marketplaceServicesEndpoint}", + "description": "Marketplace Service Endpoint", + "variables": { + "marketplaceServicesEndpoint": { + "description": "This is an endpoint sent from VTEX to the external seller in the [Order placement request](https://developers.vtex.com/vtex-rest-api/reference/external-seller#order-placement).", + "default": "{marketplaceServicesEndpoint}" + } + } + } + ], + "paths": { + "/pvt/orders/{marketplaceOrderId}/invoice": { + "post": { + "tags": [ + "External seller" + ], + "summary": "Send invoice", + "description": "This request is sent by the external seller to the VTEX marketplace to send invoice information.\n\nThis can be necessary in a regular order or in the case of a return. The `type` field is used to indicate which of these is the case.\r\n\r\n## Permissions\r\n\r\nCheck with your service provider to know what permissions are needed.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "send-invoice", + "parameters": [ + { + "$ref": "#/components/parameters/marketplaceOrderId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/requestSendInvoice" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseFulfill" + }, + "example": { + "date": "2021-06-09T15:22:56.7612218-02:00", + "orderId": "1138342255777-01", + "receipt": "527b1ae251264ef1b7a9b597cd8f16b9" + } + } + } + } + }, + "deprecated": false + } + }, + "/pvt/orders/{marketplaceOrderId}/invoice/{invoiceNumber}": { + "post": { + "tags": [ + "External seller" + ], + "summary": "Send tracking information", + "description": "This request is sent by the external seller to the VTEX marketplace to add tracking information to a given order's invoice, in case it is necessary to do so after the invoice has been sent.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **Notify invoice** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Allows you to report invoices (NF) and tracking data | Notify invoice |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "send-tracking-information", + "parameters": [ + { + "$ref": "#/components/parameters/marketplaceOrderId" + }, + { + "$ref": "#/components/parameters/invoiceNumber" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/requestSendTracking" + }, + "example": { + "courier": "courier-example", + "trackingNumber": "12345678abc", + "trackingUrl": "https://courier-example.com/tracking", + "dispatchedDate": "2021-06-09" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseFulfill" + }, + "example": { + "date": "2021-06-09T15:22:56.7612218-02:00", + "orderId": "1138342255777-01", + "receipt": "527b1ae251264ef1b7a9b597cd8f16b9" + } + } + } + } + }, + "deprecated": false + } + }, + "/pvt/orders/{marketplaceOrderId}/invoice/{invoiceNumber}/tracking": { + "post": { + "tags": [ + "External seller" + ], + "summary": "Update tracking status", + "description": "This request is sent by the external seller to the VTEX marketplace to update a given order's tracking status.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **Notify invoice** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Allows you to report invoices (NF) and tracking data | Notify invoice |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "update-tracking-status", + "parameters": [ + { + "$ref": "#/components/parameters/marketplaceOrderId" + }, + { + "$ref": "#/components/parameters/invoiceNumber" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/requestUpdateTrackingStatus" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseFulfill" + }, + "example": { + "date": "2021-06-09T15:22:56.7612218-02:00", + "orderId": "1138342255777-01", + "receipt": "527b1ae251264ef1b7a9b597cd8f16b9" + } + } + } + } + }, + "deprecated": false + } + }, + "/pvt/orders/{marketplaceOrderId}/cancel": { + "post": { + "tags": [ + "External seller" + ], + "summary": "Cancel order in marketplace", + "description": "This request is sent by the external seller to the VTEX marketplace to cancel an order.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Order Cancellation** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Cancel Orders | Order Cancellation |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "cancel-order-in-marketplace", + "parameters": [ + { + "$ref": "#/components/parameters/marketplaceOrderId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/requestCancelOrderMarketplace" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseFulfill" + }, + "example": { + "date": "2021-06-09T15:22:56.7612218-02:00", + "orderId": "1138342255777-01", + "receipt": "527b1ae251264ef1b7a9b597cd8f16b9" + } + } + } + } + }, + "deprecated": false + } + }, + "/pvt/orders/{participantOrderId}/changes/{changeRequestId}/send-agreement": { + "post": { + "tags": [ + "External seller" + ], + "summary": "Send agreement for order modifications", + "description": "This endpoint sends an agreement for an order modification to VTEX. It can be used by external sellers to acknowledge that a modification request was made and confirm that the modification has been applied to their order.\r\n\r\n After a shopper requests a modification, VTEX automatically calls the external seller through the new client, sending a request to the [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) endpoint while also sending the order modifications agreement with `agreementType: Acknowledgment`, indicating that it is waiting for a response from the seller.\r\n\r\n When the seller receives the modification request, they must use this same endpoint with `agreementType` also set to `Acknowledgment`, to register they acknowledge the request and are going to apply the modifications to the order.\r\n\r\n In the confirmation step, VTEX sends `agreementType: Confirmation`, and waits for a callback from the seller. Once the seller modifies the order, they must respond by calling this same endpoint with `agreementType` set to `Confirmation`. This allows the flow to proceed normally and the modification to be completed successfully.\r\n\r\n> ⚠️ The system only considers the modification as applied when it receives the status `Confirmation` from the external seller. \r\n\r\n The steps for the agreement flow are as follows: \r\n\r\n 1. Shopper requests modifications. \r\n\r\n 2. VTEX sends `Acknowledgment` to the External Seller. \r\n\r\n 3. External Seller sends `Acknowledgment` back to VTEX. \r\n\r\n External Seller uses this endpoint to acknowledge the request for modifications and inform that they will apply them to the order. \r\n\r\n 4. VTEX sends `Confirmation` to the External Seller. \r\n\r\n 5. External Seller sends `Confirmation` back to VTEX. \r\n\r\n External Seller uses this endpoint to confirm the modifications have been applied to the order. \r\n\r\n 6. The order flow continues. \r\n\r\n ## Permissions\r\n\r\nCheck with your service provider to know what permissions are needed.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SendAgreement", + "parameters": [ + { + "$ref": "#/components/parameters/accountName" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "agreementType": { + "type": "string", + "description": "Type of agreement sent for the order modification. Allowed values are: `Acknowledgment` (the seller recognizes the modification request) or `Confirmation` (the seller confirms the modification has been applied to the order).", + "enum": [ + "Acknowledgment", + "Confirmation" + ] + } + } + }, + "example": { + "agreementType": "Acknowledgment" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "orderId": { + "type": "string", + "description": "ID of the order refered in the agreement." + }, + "changeRequestId": { + "type": "string", + "description": "ID of the order modification refered in the agreement." + }, + "agreementType": { + "type": "string", + "description": "Type of agreement sent by the external seller.", + "enum": [ + "Acknowledgment", + "Confirmation" + ] + } + } + }, + "example": { + "orderId": "v12772213qst-02", + "changeRequestId": "e8532a32-7f7e-434a-88ec-29609f0ede46", + "agreementType": "Acknowledgment" + } + } + } + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "parameters": { + "marketplaceOrderId": { + "name": "marketplaceOrderId", + "in": "path", + "description": "Identifies the order in the marketplace.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1138342255777-01" + } + }, + "invoiceNumber": { + "name": "invoiceNumber", + "in": "path", + "description": "Invoice number.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "NFe-00002" + } + }, + "accountName": { + "name": "accountName", + "in": "query", + "description": "Name of the VTEX account that created the order.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "storeName" + } + } + }, + "schemas": { + "requestSendInvoice": { + "type": "object", + "description": "Object used to send invoice information related to an order.", + "required": [ + "type", + "invoiceNumber", + "items" + ], + "properties": { + "type": { + "type": "string", + "description": "Indicates the type of the invoice. Use `\"Output\"` for regular orders and `\"Input\"` for returns.", + "example": "Output" + }, + "invoiceNumber": { + "type": "string", + "description": "Invoice number.", + "example": "NFe-00002" + }, + "courier": { + "type": "string", + "description": "Courier, if available on invoice.", + "example": "courier-example" + }, + "trackingNumber": { + "type": "string", + "description": "Tracking number.", + "example": "12345678abc" + }, + "trackingUrl": { + "type": "string", + "description": "Tracking URL.", + "example": "https://courier-example.com/tracking" + }, + "items": { + "type": "array", + "description": "Array containing the order items.", + "items": { + "type": "object", + "description": "Specification data for each order item.", + "required": [ + "id", + "quantity", + "price" + ], + "properties": { + "id": { + "type": "string", + "description": "SKU ID.", + "example": "6" + }, + "quantity": { + "type": "integer", + "description": "Quantity of items of the SKU in the cart.", + "example": 1 + }, + "price": { + "type": "integer", + "description": "Price of the item.", + "example": 5500 + } + } + } + }, + "issuanceDate": { + "type": "string", + "description": "Issuance date.", + "example": "2021-05-21T10:00:00" + }, + "invoiceValue": { + "type": "integer", + "description": "Invoice value.", + "example": 6000 + } + } + }, + "responseFulfill": { + "properties": { + "date": { + "type": "string", + "description": "Request processing date and time." + }, + "orderId": { + "type": "string", + "description": "Order ID referring to the Invoice number sent." + }, + "receipt": { + "type": "string", + "description": "Requisition receipt code." + } + }, + "example": { + "date": "2021-06-09T15:22:56.7612218-02:00", + "orderId": "1138342255777-01", + "receipt": "527b1ae251264ef1b7a9b597cd8f16b9" + } + }, + "requestSendTracking": { + "required": [ + "courier", + "trackingNumber", + "trackingUrl", + "dispatchedDate" + ], + "properties": { + "courier": { + "type": "string", + "description": "Courier.", + "example": "courier-example" + }, + "trackingNumber": { + "type": "string", + "description": "Tracking number.", + "example": "12345678abc" + }, + "trackingUrl": { + "type": "string", + "description": "Tracking URL.", + "example": "https://courier-example.com/tracking" + }, + "dispatchedDate": { + "type": "string", + "description": "Date of order dispatch.", + "example": "2021-06-09" + } + } + }, + "requestUpdateTrackingStatus": { + "type": "object", + "description": "Request body object used to update the tracking status of an order.", + "required": [ + "isDelivered" + ], + "properties": { + "isDelivered": { + "type": "boolean", + "description": "Indicates if order has been delivered. `false` if it is in transit.", + "example": true + }, + "events": { + "type": "array", + "description": "Array containing information on each tracking event received.", + "items": { + "type": "object", + "description": "Description of tracking event fields.", + "properties": { + "city": { + "type": "string", + "description": "City where the event ocurred.", + "example": "Rio de Janeiro" + }, + "state": { + "type": "string", + "description": "State where the event ocurred.", + "example": "Rio de Janeiro" + }, + "description": { + "type": "string", + "description": "Description of the event.", + "example": "Order delivered." + }, + "date": { + "type": "string", + "description": "Date when event ocurred.", + "example": "2021-03-16" + } + } + } + } + } + }, + "requestCancelOrderMarketplace": { + "type": "object", + "description": "Object used to request the cancellation of an order on the marketplace.", + "required": [ + "reason" + ], + "properties": { + "reason": { + "type": "string", + "description": "Insert here the reason for the order's cancellation.", + "example": "Product is unavailable." + } + } + } + } + }, + "tags": [ + { + "name": "External seller" + } + ] +} diff --git a/clients/manitou/output/marketplace-sent-offers.json b/clients/manitou/output/marketplace-sent-offers.json new file mode 100644 index 0000000000..f0f4eff0e0 --- /dev/null +++ b/clients/manitou/output/marketplace-sent-offers.json @@ -0,0 +1,1903 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Sent Offers", + "description": "\r\nThe **Marketplace API** enables marketplaces and sellers hosted on VTEX to perform their collaborative operations. \r\n\r\n>⚠️ The marketplace must [create an appKey and appToken](https://developers.vtex.com/docs/guides/getting-started-authentication) for each non-VTEX seller that will use this API.\r\n\r\n## Index\r\n\r\n### Notification\r\n\r\nEndpoints used by sellers to notify marketplaces that the price or inventory language has changed for one of their SKUs.\r\n\r\n`POST` [Notify marketplace of price update](https://developers.vtex.com/docs/api-reference/marketplace-apis#post-/notificator/-sellerId-/changenotification/-skuId-/price)\r\n\r\n`POST` [Notify marketplace of inventory update](https://developers.vtex.com/docs/api-reference/marketplace-apis#post-/notificator/-sellerId-/changenotification/-skuId-/inventory)\r\n\r\n\r\n### Suggestions\r\n\r\n#### Get Suggestions\r\n\r\nSearch and filter all suggestions using specific criteria.\r\n\r\n`GET` [Get all SKU Suggestions](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions)\r\n\r\n`GET` [Get SKU Suggestion by ID](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/-sellerId-/-sellerSkuId-)\r\n\r\n\r\n#### Manage Suggestions\r\n\r\nSend or delete SKU suggestions from the seller to marketplace.\r\n\r\n`PUT` [Send SKU Suggestion](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/-sellerId-/-sellerSkuId-)\r\n\r\n`DELETE` [Delete SKU Suggestion](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#delete-/suggestions/-sellerId-/-sellerSkuId-)\r\n\r\n\r\n#### Get Versions\r\n\r\nSearch and filter all versions of suggestions, using specific criteria.\r\n\r\n`GET` [Get all versions](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/-sellerId-/-sellerskuid-/versions)\r\n\r\n`GET` [Get version by ID](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/-sellerId-/-sellerskuid-/versions/-version-)\r\n\r\n\r\n#### Match Received SKUs\r\n\r\nMatch SKU suggestions received in the marketplace.\r\n\r\n`PUT` [Match Received SKUs individually](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/-sellerId-/-sellerskuid-/versions/-version-/matches/-matchid-)\r\n\r\n`PUT` [Match Multiple Received SKUs](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/matches/action/-actionName-)\r\n\r\n\r\n#### SKU Approval Settings\r\n\r\nAllows marketplaces to configure rules for automatically and manually approving SKUs received from sellers.\r\n\r\n`GET`[Get autoApprove Status in Account Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration/autoapproval/toggle) \r\n\r\n`PUT`[Activate autoApprove in Marketplace's Account](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/autoapproval/toggle) \r\n\r\n`GET`[Get Account's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration)\r\n\r\n`PUT`[Save Account's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration)\r\n\r\n`GET`[Get Seller's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration/seller/-sellerId-)\r\n\r\n`PUT`[Save Seller's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/seller/-sellerId-)\r\n\r\n`PUT`[Activate autoApprove Setting for a Seller](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/autoapproval/toggle/seller/-sellerId-) \r\n\r\n\r\n### Matched Offers\r\n\r\nOffers are seller products and SKUs that were sent to the marketplace, and already have their price and inventory level configured.\r\n\r\n`GET`[Get Matched Offers List](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/offer-manager/pvt/offers)\r\n\r\n`GET`[Get Matched Offer's Data by SKU ID](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/offer-manager/pvt/product/-productId-/sku/-skuId-) \r\n\r\n`GET`[Get Matched Offer's Data by Product ID](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/offer-manager/pvt/product/-productId-)\r\n", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://portal.{environment}.com.br", + "description": "Offer Management Server URL.", + "variables": { + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/sent-offers/channels": { + "post": { + "tags": [ + "Offer Management" + ], + "summary": "Create Channel", + "description": "❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\nThe first step for connectors to integrate with [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors) is to create a channel, that represents the marketplace to where sellers will send their offers. \n\nThis endpoint creates a channel and the integration developers should call it once for each marketplace. The information about the marketplace sent in the request will be shown to sellers in their [Offer Management UI](https://help.vtex.com/en/tutorial/offers-listing--7MRb9S78aBdZjFGpbuffpE). \n\nThe `feedId` created by this call will apply to all sellers connected to the given channel, and will be necessary for the next step of the integration flow, which is to [activate feed](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds). \n\n>ℹ\r\n> Offer Management is available for integrations with [Mercado Livre (Classic and Premium)](https://help.vtex.com/en/tracks/configurar-integracao-do-mercado-livre--2YfvI3Jxe0CGIKoWIGQEIq), [Netshoes](https://help.vtex.com/en/tracks/configurar-integracao-da-netshoes--5Ua87lhFg4m0kEcuyqmcCm), and VTEX marketplaces. For more information, see [Offer Management Integration Guide](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateChannel", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the seller's VTEX account. Used as query param.", + "required": true, + "schema": { + "type": "string", + "default": "accountName" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateChannel" + }, + "example": { + "vendor": "vtex", + "name": "Amazon", + "logo": "https://s3.amazonaws.com/Marketplace-Integration/Bridge/logos/madeiramadeira.png" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `feedId` attribute created by the connector that will identify sellers’ feeds with a channel. The `feedId` is always the same for the relation between sellers and channels, but connectors can create more than one `feedId` with a single marketplace, depending on their business rules. The `feedId` follows the standardized pattern `vendor.channel`.", + "default": "vtex.amazon" + }, + "vendor": { + "type": "string", + "description": "Name of the connector making the integration.", + "default": "vtex" + }, + "name": { + "type": "string", + "description": "Name of the channel with which the integration is being established.", + "default": "Amazon" + }, + "logo": { + "type": "string", + "description": "URL redirecting to the image file of the graphic symbol that identifies the marketplace. The file must in PNG format, and the image's dimension should be 300x300 pixels.", + "default": "https://marketplace.com/logos/logo.png" + } + }, + "title": "CreateChannel", + "example": { + "id": "vtex.amazon", + "vendor": "vtex", + "name": "Amazon", + "logo": "https://marketplace.com/logos/logo.png" + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/sent-offers/feeds": { + "post": { + "tags": [ + "Offer Management" + ], + "summary": "Activate Feed", + "operationId": "CreateFeed", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\nIn [Offer Management](https://developers.vtex.com/docs/guides/sent-offers-integration-guide-connectors), after [creating the channel](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/channels), the next step is to create a feed, which is a list updated nearly in real time with information about the seller's offers sent to the marketplace. \n\nThis endpoint allows the creation of a feed so that the seller's sales channel (or [trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) is connected to the marketplace. Feeds are nearly real time updated with content provided by the marketplace and VTEX modules. \n\nThis endpoint should only be used once, to activate the channel and establish the connection. However, after a [feed is deactivated](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#delete-/api/sent-offers/feeds/-feedId-), in order to activate it again it will be necessary another call to this endpoint.The integration starts with the creation of the Feed. This endpoint is used to establish the connection between connector and seller through the Sent Offers. \n\nThe `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when calling this endpoint. It follows the pattern `vendor.channel`.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFeedRequest" + }, + "example": { + "id": "{{feedId}}", + "affiliateId": "MKP", + "salesChannels": "5" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created", + "headers": {}, + "content": { + "application/json": { + "schema": { + "type": "object", + "title": "CreateFeed", + "example": { + "account": "grocery1", + "id": "vtex.meli-classic", + "affiliateId": "MDC", + "salesChannel": "4" + }, + "properties": { + "account": { + "type": "string", + "description": "Seller's account name." + }, + "id": { + "type": "string", + "description": "Channel's ID." + }, + "affiliateId": { + "type": "string", + "description": "Corresponds to the 3-digit [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) identification code created by the seller.", + "default": "MKP" + }, + "salesChannel": { + "type": "string", + "description": "Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/como-funciona-uma-politica-comercial--6Xef8PZiFm40kg2STrMkMV)) associated to the seller account created." + } + } + }, + "example": { + "account": "grocery1", + "id": "vtex.meli-classic", + "affiliateId": "MDC", + "salesChannel": "4" + } + } + } + } + }, + "deprecated": false + }, + "get": { + "tags": [ + "Offer Management" + ], + "summary": "List Feeds", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n In [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors), a feed is a list of information about seller's offers sent to a marketplace, and it is updated in real-time with content provided by the marketplace and VTEX modules. \n\nSince a seller can have integrations with multiple marketplaces, numerous feeds can be associated with an account. This endpoint retrieves a list with all the feeds related to an account.", + "operationId": "ListFeeds", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the Seller's VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "example": { + "account": "grocery1", + "id": "digibee.shopee", + "affiliateId": "SHP", + "salesChannel": "1", + "channelName": "shopee", + "channelLogo": "https://s3.amazonaws.com/Marketplace-Integration/Bridge/logos/shopee.png" + }, + "properties": { + "account": { + "type": "string", + "description": "Seller's account name." + }, + "id": { + "type": "string", + "description": "The `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when calling this endpoint. It follows the pattern `vendor.channel`." + }, + "affiliateId": { + "type": "string", + "description": "Corresponds to the 3-digit [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) identification code created by the seller." + }, + "salesChannel": { + "type": "string", + "description": "Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMVa)) used in the integration." + }, + "channelName": { + "type": "string", + "description": "Name of the marketplace, or channel, present in the feed." + }, + "channelLogo": { + "type": "string", + "description": "URL redirecting to the image file of the graphic symbol that identifies the marketplace." + } + } + }, + "example": [ + { + "account": "grocery1", + "id": "digibee.shopee", + "affiliateId": "SHP", + "salesChannel": "1", + "channelName": "shopee", + "channelLogo": "https://s3.amazonaws.com/Marketplace-Integration/Bridge/logos/shopee.png" + }, + { + "account": "grocery1", + "id": "v2v.saggin", + "affiliateId": "SGN", + "salesChannel": "1", + "channelName": "Saggin", + "channelLogo": "https://saggin.myvtex.com/api/license-manager/site/pub/accounts/a44ab387-ab95-439e-81aa-7c1a56b45374/logos/show" + }, + { + "account": "grocery1", + "id": "vtex.amazon", + "affiliateId": "MSM", + "salesChannel": "1", + "channelName": "Amazon", + "channelLogo": "https://s3.amazonaws.com/Marketplace-Integration/Bridge/logos/amazon.png" + } + ] + }, + "example": [ + { + "account": "grocery1", + "id": "digibee.shopee", + "affiliateId": "SHP", + "salesChannel": "1", + "channelName": "shopee", + "channelLogo": "https://s3.amazonaws.com/Marketplace-Integration/Bridge/logos/shopee.png" + }, + { + "account": "grocery1", + "id": "v2v.saggin", + "affiliateId": "SGN", + "salesChannel": "1", + "channelName": "Saggin", + "channelLogo": "https://saggin.myvtex.com/api/license-manager/site/pub/accounts/a44ab387-ab95-439e-81aa-7c1a56b45374/logos/show" + }, + { + "account": "grocery1", + "id": "vtex.amazon", + "affiliateId": "MSM", + "salesChannel": "1", + "channelName": "Amazon", + "channelLogo": "https://s3.amazonaws.com/Marketplace-Integration/Bridge/logos/amazon.png" + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/sent-offers/feeds/{feedId}": { + "put": { + "tags": [ + "Offer Management" + ], + "summary": "Update Feed", + "operationId": "UpdateFeed", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n In [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors), a feed is a list of information about seller's offers sent to a marketplace. \n\nOnce you have [created a feed](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/channels), this endpoint allows the seller to update the sales channel (or [trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) and [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) ID used in the integration with the marketplace.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + }, + { + "name": "feedId", + "in": "path", + "description": "The `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when establishing the connection between the two. It follows the pattern `vendor.channel`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "vtex.amazon" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFeedRequest" + }, + "example": { + "affiliateId": "MKP", + "salesChannels": "5" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content", + "headers": {} + } + }, + "deprecated": false + }, + "get": { + "tags": [ + "Offer Management" + ], + "summary": "Get Feed by feedId", + "operationId": "RetrieveFeed", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n In [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors), after you have [created the channel](https://developers.vtex.com/vtex-rest-api/reference/createchannel), the next step is to create a feed, which is a list of information about the seller's offers sent to the marketplace. \n\nThis endpoint retrieves information about a specific feed by searching through its `feedId`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + }, + { + "name": "feedId", + "in": "path", + "description": "The `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when establishing the connection between the two. It follows the pattern `vendor.channel`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "vtex.amazon" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {}, + "content": { + "application/json": { + "schema": { + "title": "RetrieveFeed", + "type": "object", + "example": { + "account": "grocery1", + "id": "vtex.meli-classic", + "affiliateId": "vtex.meli-classic", + "salesChannel": "5", + "channelName": "Mercadolivre Classic", + "channelLogo": "https://s3.amazonaws.com/Marketplace-Integration/Bridge/logos/mercadolivre.png" + }, + "properties": { + "account": { + "type": "string", + "description": "Seller's account name." + }, + "id": { + "type": "string", + "description": "Channel's ID." + }, + "affiliateId": { + "type": "string", + "description": "This attribute is created by the seller, in their VTEX store configuration." + }, + "salesChannel": { + "type": "string", + "description": "Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/como-funciona-uma-politica-comercial--6Xef8PZiFm40kg2STrMkMV#master-data)) associated to the seller account created." + }, + "channelName": { + "type": "string", + "description": "Name of the channel where the offer was sent." + }, + "channelLogo": { + "type": "string", + "description": "Logo of the channel where the offer was sent." + } + } + } + } + } + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Offer Management" + ], + "summary": "Deactivate Feed", + "operationId": "DeleteFeed", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n In [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors), a feed is a list of information about seller's offers sent to a marketplace. After [creating a feed](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds), it will be activated; and through this endpoint the seller can deactivate the feed. \n\nWhen a feed is deactivated, all data related to the marketplace is removed from Offer Management UI. That includes the channels, offers, interactions, and errors. \n\nDeactivating a feed does not mean deleting information, and the seller can restore the data by [activating the feed](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds) again.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + }, + { + "name": "feedId", + "in": "path", + "description": "The `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when establishing the connection between the two. It follows the pattern `vendor.channel`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "vtex.amazon" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "headers": {} + } + }, + "deprecated": false + } + }, + "/api/sent-offers/feeds/{feedId}/skus/{skuId}/interactions": { + "post": { + "tags": [ + "Offer Management" + ], + "summary": "Open Interaction", + "operationId": "CreateInteraction", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n In [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors), VTEX platform and marketplaces interact with offers through a medium called Interaction. For every action that happens to an offer, whether it is a status notification or a price update, the connector creates an Interaction about it. \n\nThis endpoint creates a new interaction for an SKU so that changes can be applied to an offer. The changes informed by interactions are related to: price, inventory, catalog and status. \n\nUsually, interactions process a single type of change at a time, but it is possible to add data about catalog, price, and inventory simultaneously in the same interaction.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + }, + { + "name": "feedId", + "in": "path", + "description": "The `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when establishing the connection between the two. It follows the pattern `vendor.channel`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "vtex.amazon" + } + }, + { + "name": "skuId", + "in": "path", + "description": "This attribute is the SKU ID in the seller's perspective, registered in their VTEX Catalog.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "1234" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInteractionRequest" + }, + "example": { + "startDate": "2020-10-29", + "source": "seller", + "origin": "catalog", + "context": "setup" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created", + "headers": {}, + "content": { + "application/json": { + "schema": { + "title": "CreateInteraction", + "type": "object", + "example": { + "account": "grocery1", + "feedId": "vtex.madeiramadeira", + "skuId": "1", + "id": "3D585672B15A418EBDFC4BC0E85120A5", + "startDate": "2022-03-07T09:15:00Z", + "result": "processing", + "state": "open", + "source": "seller", + "origin": "inventory", + "context": "setup", + "logs": [] + }, + "properties": { + "account": { + "type": "string", + "description": "Seller's account name." + }, + "feedId": { + "type": "string", + "description": "Attribute that identifies a feed between a seller and a channel. It follows a standardized pattern that will be used by connectors when establishing the connection between the two." + }, + "skuId": { + "type": "string", + "description": "SKU's unique identifier number." + }, + "id": { + "type": "string", + "description": "Connectors must extend the Sent Offers' codes by adding their own code IDs for mapping specific scenarios that apply to their own system. They can send those codes through a suffix ID added in an existing code." + }, + "startDate": { + "type": "string", + "description": "The day the interaction was created." + }, + "result": { + "type": "string", + "description": "Search interactions, filtering by result. Results can have the following values: \n\nSuccess: When events close their lifecycle successfully, and generate updates on an offer in terms of price, inventory, or catalog. \n\nFailure: When the connector has detected processes that have failed to be made due to an error. \n\nNotification: When there are processes with the connector that are worth mentioning, but there are no actual updates. Ex: discarded updates or sendings of an offer. \n\nProcessing: When an open interaction has not been concluded, and should still receive more steps." + }, + "state": { + "type": "string", + "description": "State, from the seller's address." + }, + "source": { + "type": "string", + "description": "This attribute defines the entity responsible for the interaction." + }, + "origin": { + "type": "string", + "description": "where the interaction originated from. Possible values include `catalog`, `price` or `inventory`." + }, + "context": { + "type": "string", + "description": "This field informs Sent Offers about an offer's lifecycle." + }, + "logs": { + "type": "array", + "description": "History of events related to interactions.", + "items": { + "type": "string" + }, + "properties": { + "type": { + "type": "string", + "title": "type", + "description": "Type of logs." + } + } + } + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/sent-offers/feeds/{feedId}/skus/{skuId}/interactions/{interactionId}": { + "get": { + "tags": [ + "Offer Management" + ], + "summary": "Get Interaction Data by interactionId", + "operationId": "RetrieveInteraction", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n In [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors), VTEX platform and marketplaces interact with offers through a medium called [interaction](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds/-feedId-/skus/-skuId-/interactions). \n\nA unique code called `interactionId` is used to identify each interaction. This endpoint retrieves information about an interaction, searching by its `interactionId`. \n\nIt also retrieves existing logs through the `log` field.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + }, + { + "name": "feedId", + "in": "path", + "description": "The `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when establishing the connection between the two. It follows the pattern `vendor.channel`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "vtex.amazon" + } + }, + { + "name": "skuId", + "in": "path", + "description": "This attribute is the SKU ID in the seller's perspective, registered in their VTEX Catalog.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "1234" + } + }, + { + "name": "interactionId", + "in": "path", + "description": "This attribute is the code used to identify an existing interaction.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "d3rdjjf094ma0do" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {}, + "content": { + "application/json": { + "schema": { + "title": "RetrieveInteraction", + "type": "object", + "example": { + "account": "grocery1", + "feedId": "vtex.madeiramadeira", + "skuId": "1", + "id": "7FC112C52F8F43E6A096E29B04AC63F6", + "startDate": "2022-03-07T09:15:00Z", + "result": "processing", + "state": "open", + "source": "seller", + "origin": "inventory", + "context": "setup", + "logs": [] + }, + "properties": { + "account": { + "type": "string", + "description": "Seller's account name." + }, + "feedId": { + "type": "string", + "description": "Attribute that identifies a feed between a seller and a channel. It follows a standardized pattern that will be used by connectors when establishing the connection between the two." + }, + "skuId": { + "type": "string", + "description": "SKU's unique identifier number." + }, + "id": { + "type": "string", + "description": "Connectors must extend the Sent Offers' codes by adding their own code IDs for mapping specific scenarios that apply to their own system. They can send those codes through a suffix ID added in an existing code." + }, + "startDate": { + "type": "string", + "description": "The day the interaction was created." + }, + "result": { + "type": "string", + "description": "Search interactions, filtering by result. Results can have the following values: \n\nSuccess: When events close their lifecycle successfully, and generate updates on an offer in terms of price, inventory, or catalog. \n\nFailure: When the connector has detected processes that have failed to be made due to an error. \n\nNotification: When there are processes with the connector that are worth mentioning, but there are no actual updates. Ex: discarded updates or sendings of an offer. \n\nProcessing: When an open interaction has not been concluded, and should still receive more steps." + }, + "state": { + "type": "string", + "description": "State, from the seller's address." + }, + "source": { + "type": "string", + "description": "This attribute defines the entity responsible for the interaction." + }, + "origin": { + "type": "string", + "description": "where the interaction originated from. Possible values include `catalog`, `price` or `inventory`." + }, + "context": { + "type": "string", + "description": "This field informs Sent Offers about an offer's lifecycle." + }, + "logs": { + "type": "array", + "description": "History of events related to interactions.", + "items": { + "type": "string" + }, + "properties": { + "type": { + "type": "string", + "title": "type", + "description": "Type of logs." + } + } + } + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/sent-offers/feeds/{feedId}/skus/{skuId}/interactions/{interactionId}/close": { + "post": { + "tags": [ + "Offer Management" + ], + "summary": "Close Interaction", + "operationId": "CloseInteraction", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n In [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors), VTEX platform and marketplaces interact with offers through a medium called [interaction](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds/-feedId-/skus/-skuId-/interactions). \n\nOnce an interaction has fulfilled its initial goal and there are no more actions (or [logs](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds/-feedId-/skus/-skuId-/interactions/-interactionId-/logs)) taking place within it, this endpoint closes an interaction.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + }, + { + "name": "feedId", + "in": "path", + "description": "The `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when establishing the connection between the two. It follows the pattern `vendor.channel`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "vtex.amazon" + } + }, + { + "name": "skuId", + "in": "path", + "description": "This attribute is the SKU ID in the seller's perspective, registered in their VTEX Catalog.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "1234" + } + }, + { + "name": "interactionId", + "in": "path", + "description": "This attribute is the code used to identify an existing interaction.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "d3rdjjf094ma0do" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "headers": {} + } + }, + "deprecated": false + } + }, + "/api/sent-offers/feeds/{feedId}/skus/{skuId}/interactions/{interactionId}/logs": { + "post": { + "tags": [ + "Offer Management" + ], + "summary": "Create Log", + "operationId": "CreateLog", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n In [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors), logs are the granular details of actions that happen within an [interaction](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds/-feedId-/skus/-skuId-/interactions), and they are organized in a timeline. All of the micro-steps of an interaction are represented through logs; they are how interactions become visible in Offer Management UI. \n\nThis endpoint adds logs that take place within an interaction, which can be done after [creating an interaction](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds/-feedId-/skus/-skuId-/interactions) so that there will be an `interactionId`. \n\n`Errors`: When Offer Management, or the connectors, find an error that prevents sending or updating an offer to a channel, they should open a type failure log, and fill in its details through the `errors` attribute. The information provided should enable sellers to identify and fix errors on their offers. \n\nThe connectors should go through every possible validation, identify all errors, and only after that create the failure log, with the information in a single request.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + }, + { + "name": "feedId", + "in": "path", + "description": "The `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when establishing the connection between the two. It follows the pattern `vendor.channel`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "vtex.amazon" + } + }, + { + "name": "skuId", + "in": "path", + "description": "This attribute is the SKU ID in the seller's perspective, registered in their VTEX Catalog.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "1234" + } + }, + { + "name": "interactionId", + "in": "path", + "description": "This attribute is the code used to identify an existing interaction.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "d3rdjjf094ma0do" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateLogRequest" + }, + "example": { + "description": "Another log message with some information that is going to be relevant to our users", + "date": "2020-03-22", + "type": "information", + "agent": "broadcaster", + "evidence": { + "request": "Explanation 1", + "response": "Explanation 2" + }, + "data": { + "externalOfferId": "123456", + "inventory": "33", + "salesPrice": "79.99", + "currency": "BRL", + "status": "disabled" + }, + "errors": { + "code": "CTLG-001", + "externalCode": "284692", + "title": "Description includes HTML", + "description": "Netshoes does not allow HTML tags in an offer's description. Access the product in your Catalog to remove the HTML tag.", + "closableOrigins": [ + "catalog", + "price" + ] + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created", + "headers": {}, + "content": { + "application/json; charset=utf-8": { + "schema": { + "title": "CreateLog", + "type": "object", + "example": { + "id": "438B39EF43A24425B6BF35343095DE04", + "description": "Log description", + "date": "2022-05-16T09:16:00Z", + "agent": "MARKETPLACE", + "evidence": {}, + "type": "info" + }, + "properties": { + "id": { + "type": "string", + "description": "Connectors must extend the Sent Offers' codes by adding their own code IDs for mapping specific scenarios that apply to their own system. They can send those codes through a suffix ID added in an existing code." + }, + "description": { + "type": "string", + "description": "Log's description." + }, + "date": { + "type": "string", + "description": "Date when the log was created." + }, + "agent": { + "type": "string", + "description": "Entity responsible for creating the entry." + }, + "evidence": { + "type": "object", + "description": "cURL with the call that the connector has made for a VTEX system.", + "properties": { + "request": { + "type": "string", + "description": "cURL with the request call that the connector has made for a VTEX system. It will provide the evidence needed to contextualize the entry, if the user needs to fully understand the process ocurred, or solve any errors." + }, + "response": { + "type": "string", + "description": "cURL with the response of the call that the connector has made for a VTEX system. It will provide the evidence needed to contextualize the entry, if the user needs to fully understand the process occurred, or solve any errors." + } + } + }, + "type": { + "type": "string", + "description": "Type of log." + } + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/sent-offers/feeds/{feedId}/skus/{skuId}/interactions/{interactionId}/logs/{logId}": { + "get": { + "tags": [ + "Offer Management" + ], + "summary": "Get Log Data by logId", + "operationId": "RetrieveLog", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n In [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors), logs are the granular details of actions that happen within an [interaction](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds/-feedId-/skus/-skuId-/interactions), organized in a timeline. All interaction's micro-steps will be represented through logs; they are how interactions become visible in Offer Management UI. \n\nA unique code called `logId` is used to identify every log created. This endpoint enables the retrieval of information about a log by searching through its `logId`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + }, + { + "name": "feedId", + "in": "path", + "description": "The `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when establishing the connection between the two. It follows the pattern `vendor.channel`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "vtex.amazon" + } + }, + { + "name": "skuId", + "in": "path", + "description": "This attribute is the SKU ID in the seller's perspective, registered in their VTEX Catalog.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "1234" + } + }, + { + "name": "interactionId", + "in": "path", + "description": "This attribute is the code used to identify an existing interaction.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "d3rdjjf094ma0do" + } + }, + { + "name": "logId", + "in": "path", + "description": "A log's identifying code. This attribute is obtained from the Open Log API, or from the response of a Search Interactions API.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "123456" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {}, + "content": { + "application/json": { + "schema": { + "title": "GetLog", + "type": "object", + "example": { + "id": "91957CA041E343D8B921CECFBF9D8443", + "description": "Log description", + "date": "2022-05-16T09:16:00Z", + "agent": "MARKETPLACE", + "evidence": {}, + "errors": [ + { + "code": "AUTH-001", + "externalCode": "MYCODE-01", + "title": "Error ao autenticar no marketplace", + "description": "Token inválido", + "closableOrigins": [ + "inventory" + ] + } + ], + "type": "failure" + }, + "properties": { + "id": { + "type": "string", + "description": "Connectors must extend the Sent Offers' codes by adding their own code IDs for mapping specific scenarios that apply to their own system. They can send those codes through a suffix ID added in an existing code." + }, + "description": { + "type": "string", + "description": "Log description" + }, + "date": { + "type": "string", + "description": "Date when the log was created." + }, + "agent": { + "type": "string", + "description": "Entity responsible for creating the entry." + }, + "evidence": { + "type": "object", + "description": "cURL with the call that the connector has made for a VTEX system." + }, + "errors": { + "type": "array", + "items": { + "title": "Error", + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "externalCode": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "closableOrigins": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "description": "A description about errors." + } + }, + "type": { + "type": "string", + "description": "Type of log." + } + } + } + } + } + } + }, + "deprecated": false + } + }, + "/api/sent-offers/search/interactions": { + "get": { + "tags": [ + "Offer Management" + ], + "summary": "Search Interactions and their Logs", + "operationId": "SearchInteractions", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n In [Offer Management](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors), VTEX platform and marketplaces interact with offers through a medium called [interaction](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds/-feedId-/skus/-skuId-/interactions). The granular details of actions and micro-steps that happen within an interaction's are called [logs](https://developers.vtex.com/docs/api-reference/marketplace-apis-offer-management#post-/api/sent-offers/feeds/-feedId-/skus/-skuId-/interactions/-interactionId-/logs). \n\nThis endpoint retrieves information about interactions and all logs within it. It allows filtering interactions by using the following query params: `channel`, `brand`, `category`, `scope`, `result`, `fromDate`, `toDate`. This endpoint also counts with the following pagination query params: `sort`, `from`, `to`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as a query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + }, + { + "name": "q", + "in": "query", + "description": "Customizable field for searching interactions.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{query}}" + } + }, + { + "name": "channels", + "in": "query", + "description": "Search interactions, filtering by channel.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{channelName}}" + } + }, + { + "name": "brand", + "in": "query", + "description": "Search interactions, filtering by brand.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "{{brand}}" + } + }, + { + "name": "category", + "in": "query", + "description": "Search interactions, filtering by category.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "{{category}}" + } + }, + { + "name": "scope", + "in": "query", + "description": "Search interactions, filtering by scope.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "{{scope}}" + } + }, + { + "name": "result", + "in": "query", + "description": "Search interactions, filtering by result. Results can have the following values: \n\nSuccess: When events close their lifecycle successfully, and generate updates on an offer in terms of price, inventory, or catalog. \n\nFailure: When the connector has detected processes that have failed to be made due to an error. \n\nNotification: When there are processes with the connector that are worth mentioning, but there are no actual updates. Ex: discarded updates or sendings of an offer. \n\nProcessing: When an open interaction has not been concluded, and should still receive more steps. This is a transitory state, considering that when an interaction is closed, it can only end with `success`, `failure` or `notification` as its result.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{result}}" + } + }, + { + "name": "sort", + "in": "query", + "description": "Search interactions filtering by sort.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "{{sort}}" + } + }, + { + "name": "from", + "in": "query", + "description": "Search interactions from a given point.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "{{from}}" + } + }, + { + "name": "to", + "in": "query", + "description": "Search interactions until a given point.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "{{to}}" + } + }, + { + "name": "fromDate", + "in": "query", + "description": "Search interactions from a specific date.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "{{fromDate}}" + } + }, + { + "name": "toDate", + "in": "query", + "description": "Search interactions until a given date.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "{{toDate}}" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/api/sent-offers/search/errors": { + "get": { + "tags": [ + "Offer Management" + ], + "summary": "Search Errors", + "operationId": "SearchErrors", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n This endpoint provides the single source of truth of updated error codes in [Offer Management's](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors) configuration. It retrieves a list of all the error codes available at that moment. \n\nThe connector will retrieve all the error codes available directly on this API and use the codes that apply the most to their error scenarios. Then, the connector will implement these codes into every validation error inside their system. \n\nThis endpoint allows filtering errors by using the following query params: `channel`, `brand`, `category`, `errorCategory`. It also counts with the following pagination query params: `sort`, `from`, `to`, `q`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account. Used as query param.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{accountName}}" + } + }, + { + "name": "q", + "in": "query", + "description": "Customizable field for searching error codes.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{query}}" + } + }, + { + "name": "channels", + "in": "query", + "description": "Search errors filtering by channels.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{channels}}" + } + }, + { + "name": "brand", + "in": "query", + "description": "Search errors filtering by brand.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{brand}}" + } + }, + { + "name": "category", + "in": "query", + "description": "Search errors filtering by category.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{category}}" + } + }, + { + "name": "errorCategory", + "in": "query", + "description": "Search errors filtering by error category.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{errorCategory}}" + } + }, + { + "name": "sort", + "in": "query", + "description": "Pagination that returns a range of ordered error codes.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{sort}}" + } + }, + { + "name": "from", + "in": "query", + "description": "Pagination that returns error codes from a given point.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{from}}" + } + }, + { + "name": "to", + "in": "query", + "description": "Pagination that returns error codes until a given point.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "{{to}}" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/api/sent-offers/error-codes/{errorCodeId}": { + "get": { + "tags": [ + "Offer Management" + ], + "summary": "Get Error Code data by errorCodeId", + "operationId": "RetrieveErrorCode", + "description": ">❗The Offer Management module has been discontinued and is no longer supported. The module has been replaced by Offer Status.\r\nTo learn more, visit the [announcement](https://help.vtex.com/en/announcements/modulo-status-dos-anuncios-para-integracoes-com-marketplaces-vtex--1EeGgit1Brq3mmm8qhv2m3).\r\n\r\n This endpoint retrieves specific information about an error code in [Offer Management's](https://developers.vtex.com/vtex-rest-api/docs/sent-offers-integration-guide-connectors) configuration. It provides the single source of truth of updated information about an error code through the `errorCodeId`. \n\nThe connector will retrieve all the error codes available directly on this API and use the codes that apply the most to their error scenarios. Then, the connector will implement these codes into every validation error inside their system.", + "parameters": [ + { + "name": "errorCodeId", + "in": "path", + "description": "Id for the error code chosen.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "errorId" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {}, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "title": "Listallerrorcode", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + }, + "solutionText": { + "type": "string" + }, + "solutionLink": { + "type": "string" + } + } + }, + "description": "Error description.", + "example": [ + { + "id": "AUTH-001", + "type": "Authorization", + "description": "Authorization errors where the user can solve by himself just fixing something on the settings. For example, when the user/password is invalid, or a register field is missing...", + "solutionText": "Check connector settings", + "solutionLink": "http://{accountName}.myvtex.com/admin/bridge/#/settings" + }, + { + "id": "AUTH-002", + "type": "Authorization", + "description": "Authorization errors where the user can't solve by himself and depends on someone else to solve. For example, when the user has no access to a specific resource" + }, + { + "id": "CTLG-001", + "type": "Generic mapping", + "description": "Catalog mapping errors different from variation, attribute or category errors. For example, brand mapping or a specific field of that channel.", + "solutionText": "Check mapping spreadsheet", + "solutionLink": "http://{accountName}.myvtex.com/admin/bridge/#/settings" + }, + { + "id": "CTLG-002", + "type": "Variation mapping", + "description": "Errors of variation mapping (SKU specifications). For example, when a color field/value is not mapped correctly.", + "solutionText": "Check mapping spreadsheet", + "solutionLink": "http://{accountName}.myvtex.com/admin/bridge/#/settings" + }, + { + "id": "CTLG-003", + "type": "Attribute mapping", + "description": "Errors of attribute mapping (product specifications). For example, when product specifications are not mapped correctly.", + "solutionText": "Check mapping spreadsheet", + "solutionLink": "http://{accountName}.myvtex.com/admin/bridge/#/settings" + }, + { + "id": "CTLG-004", + "type": "Category mapping", + "description": "Errors of category mapping. For example, when a category ID is not correct; when the user has mapped the parent-category instead of the child-category.", + "solutionText": "Check mapping spreadsheet", + "solutionLink": "http://{accountName}.myvtex.com/admin/bridge/#/settings" + }, + { + "id": "CTLG-005", + "type": "Product info", + "description": "Generic errors of product information sending. For any case different that the other product information error codes don't support", + "solutionText": "Check item on catalog", + "solutionLink": "http://{accountName}.myvtex.com/admin/Site/ProdutoForm.aspx" + }, + { + "id": "CTLG-006", + "type": "Description", + "description": "Description is not according as expected by the channel. For example, when the description is too long; when has HTML; when there is no description and is a mandatory field...", + "solutionText": "Fix description", + "solutionLink": "http://{accountName}.myvtex.com/admin/Site/ProdutoForm.aspx?id={productId}" + }, + { + "id": "CTLG-007", + "type": "Images", + "description": "Images are not according as expected by the channel. For example, when the image must have white background; when has no images and is mandatory to have at least one...", + "solutionText": "Fix images", + "solutionLink": "http://{accountName}.myvtex.com/admin/Site/SkuForm.aspx?idSku={skuId}" + }, + { + "id": "CTLG-008", + "type": "Dimensions", + "description": "Dimensions are not according as expected by the channel. For example, when the weight is below the minimum required; when the dimensions are not filled and is a mandatory field...", + "solutionText": "Check dimensions", + "solutionLink": "http://{accountName}.myvtex.com/admin/Site/SkuForm.aspx?idSku={skuId}" + }, + { + "id": "CTLG-009", + "type": "Title", + "description": "Title is not according as expected by the channel. For example, when the title is too long; when the title doesn't meet the channel taxonomy...", + "solutionText": "Check title", + "solutionLink": "http://{accountName}.myvtex.com/admin/Site/ProdutoForm.aspx?id={productId}" + }, + { + "id": "CTLG-010", + "type": "Identifiers", + "description": "Identifier is not according as expected by the channel. For example, when a EAN, ISBN or UPC is invalid; when a identifier is required but is not filled...", + "solutionText": "Fix item's identifier", + "solutionLink": "http://{accountName}.myvtex.com/admin/Site/SkuForm.aspx?idSku={skuId}" + }, + { + "id": "CTLG-011", + "type": "Channels' rules", + "description": "Errors due channel's business rules that cannot be solved by the user. For example, when the product category is not supported by the channel; when a currency is not supported by the channel..." + }, + { + "id": "CTLG-012", + "type": "Moderation", + "description": "Ad moderated, it does not comply with Mercado Livre policies", + "solutionText": "Apply the actions in the moderation section" + }, + { + "id": "CTLG-XXX", + "type": "Variation mapping", + "description": "Errors of variation mapping (SKU specifications)", + "solutionText": "Download mapping spreadsheet", + "solutionLink": "http://{accountName}.myvtex.com/admin/dummy-invalid-link/catalog/skus/{skuId}" + }, + { + "id": "CTLG-YYY", + "type": "Variation mapping YYY", + "description": "Errors of variation mapping (SKU specifications) YYY", + "solutionText": "Download mapping spreadsheet YYY", + "solutionLink": "http://{accountName}.myvtex.com/admin/dummyyy-invalid-link/catalog/skus/{skuId}" + }, + { + "id": "INVNT-001", + "type": "Inventory", + "description": "Errors directly related to all inventory scenarios. This scenarios are for every issue that blocks an inventory from being updated. For example, when the channel has a rule of minimum quantity of inventory for all SKUs of a product.", + "solutionText": "Check inventory levels", + "solutionLink": "http://{accountName}.myvtex.com/admin/inventory/?skuId={skuId}" + }, + { + "id": "NTMAP-001", + "type": "Not mapped", + "description": "Errors not mapped by the connector. Commonly, it occurs when the channel's API starts to validate new things without communicating to the connector." + }, + { + "id": "PRICE-001", + "type": "Price", + "description": "Errors directly related to all price scenarios. This scenarios are for every issue that blocks a price from being updated. For example, when a price changes on rate that is not allowed by the marketplace.", + "solutionText": "Fix price", + "solutionLink": "http://{accountName}.myvtex.com/admin/pricing/#/prices/?page=1&qtd=10&productId={productId}&productName=%22%22" + } + ] + } + } + } + } + }, + "deprecated": false + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + } + ], + "components": { + "schemas": { + "CreateChannel": { + "title": "CreateChannel", + "required": [ + "vendor", + "name", + "logo" + ], + "type": "object", + "properties": { + "vendor": { + "type": "string", + "description": "Name of the connector making the integration.", + "default": "vtex" + }, + "name": { + "type": "string", + "description": "Name of the channel with which the integration is being established.", + "default": "Amazon" + }, + "logo": { + "type": "string", + "description": "URL redirecting to the image file of the graphic symbol that identifies the marketplace. The file must in PNG format, and the image's dimension should be 300x300 pixels.", + "default": "https://marketplace.com/logos/logo.png" + } + }, + "example": { + "vendor": "vtex", + "name": "Amazon", + "logo": "https://marketplace.com/logos/logo.png" + } + }, + "CreateFeedRequest": { + "title": "CreateFeedRequest", + "required": [ + "id", + "affiliateId", + "salesChannels" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The `feedId` attribute that identifies a feed between a seller and a channel, follows a standardized pattern that will be used by connectors when calling this endpoint. It follows the pattern `vendor.channel`.", + "default": "vtex.amazon" + }, + "affiliateId": { + "type": "string", + "description": "This attribute is created by the seller, in their VTEX store configuration.", + "default": "MKP" + }, + "SalesChannels": { + "type": "string", + "description": "This attribute is created by the seller, in their VTEX store configuration.", + "default": "1" + } + } + }, + "UpdateFeedRequest": { + "title": "UpdateFeedRequest", + "required": [ + "affiliateId", + "salesChannels" + ], + "type": "object", + "properties": { + "affiliateId": { + "type": "string", + "description": "Corresponds to the 3-digit [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) identification code created by the seller.", + "default": "MKP" + }, + "salesChannels": { + "type": "string", + "description": "This attribute is created by the seller, in their VTEX store configuration.", + "default": "1" + } + } + }, + "CreateInteractionRequest": { + "title": "CreateInteractionRequest", + "required": [ + "startDate", + "source", + "origin", + "context" + ], + "type": "object", + "properties": { + "startDate": { + "type": "string", + "default": "2020-10-29" + }, + "source": { + "type": "string", + "description": "This attribute defines the entity responsible for the interaction. Possible values include `seller` or `channel`.", + "default": "seller" + }, + "origin": { + "type": "string", + "description": "This attribute defines where the interaction originated from. Possible values include `catalog`, `price` or `inventory`. Interactions are usually used to deal with a single type of process at a time. However, there are situations in which data about catalog, price and inventory are added in the same interaction.", + "default": "catalog" + }, + "context": { + "type": "string", + "description": "This field informs Sent Offers about an offer's lifecycle. When the integration has been recently installed, and producst are being sent for the first time, the value should be `setup`. If it's an update log, when the interaction is already up and running, the value should be `ongoing`.", + "default": "setup" + } + } + }, + "CreateLogRequest": { + "title": "CreateLogRequest", + "required": [ + "description", + "date", + "type", + "agent", + "evidence", + "data", + "errors" + ], + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "In this field, connectors should describe relevant information about the log, so Sent Offers users can better understand the action taking place.", + "default": "Insert your message" + }, + "date": { + "type": "string", + "description": "Logs follow a chronological timeline, so make sure the date included corresponds to the correct order of logs.", + "default": "2020-03-22" + }, + "type": { + "type": "string", + "description": "Connectors are responsible for attributing the correct type for each log. Therefore, be mindful of their correct usage. \n\n`success`: only logs that conclude an interaction’s goal should be `“type”=”success”`. \n\n`information`: logs that expose the actions of an update process, to provide visibility and contribute with more technical investigations. Information logs may include internal processes of a system (`agent` attribute), or calls between two systems. \n\n`warning`: logs used in cases where the communication between two systems fails, and there are no actions that the user can take to fix it. They are usually cases where the connector should perform a retry, and provide visibility of what is being attempted again. \n\n`failure`: logs noticed by the connector as errors that prevent an offer from being correctly sent and synced to a channel.", + "default": "information" + }, + "agent": { + "type": "string", + "description": "Entity responsible for creating the entry.", + "default": "broadcaster" + }, + "evidence": { + "$ref": "#/components/schemas/Evidence" + }, + "data": { + "$ref": "#/components/schemas/Data" + }, + "errors": { + "$ref": "#/components/schemas/Errors" + } + } + }, + "Evidence": { + "title": "Evidence", + "description": "cURL with the call that the connector has made for a VTEX system. It will provide the evidence needed to contextualize the entry, if the user needs to fully understand the process ocurred, or solve any errors.", + "required": [ + "request", + "response" + ], + "type": "object", + "properties": { + "request": { + "type": "string", + "description": "cURL with the request call that the connector has made for a VTEX system. It will provide the evidence needed to contextualize the entry, if the user needs to fully understand the process ocurred, or solve any errors.", + "default": "GET https://www.vtex.com" + }, + "response": { + "type": "string", + "description": "cURL with the response of the call that the connector has made for a VTEX system. It will provide the evidence needed to contextualize the entry, if the user needs to fully understand the process occurred, or solve any errors.", + "default": "200 Ok" + } + } + }, + "Data": { + "title": "Data", + "description": "Data related to an offer, that will be updated or sent for the first time during setup.", + "required": [ + "externalOfferId", + "inventory", + "salesPrice", + "currency", + "status" + ], + "type": "object", + "properties": { + "externalOfferId": { + "type": "string", + "description": "The ID used by the channel to identify this offer. Fill in this field if there are any updates in that ID.", + "default": "123456" + }, + "inventory": { + "type": "string", + "description": "Updated inventory level of that offer. Fill in this field if there are any updates in inventory.", + "default": "33" + }, + "salesPrice": { + "type": "string", + "description": "The value the offer is being sold for, on the channel. Fill in this field if there are any updates in price.", + "default": "79.99" + }, + "currency": { + "type": "string", + "description": "The currency applied to the offer's `salesPrice`. The international currency code should be used as value for this field. Fill in this field if there are any updates in price.", + "default": "BRL" + }, + "status": { + "type": "string", + "description": "The offer status can have the following values: \n\n`Synced`: when offers are successfully sent to a channel and are currently being synced between both entities.\n\n`Sending`: intermediate state, when offers are still in the process of being sent to a channel. This status involves offers that are either sent for the first time to the marketplace, migrated to a new marketplace, or resent offers that were once deleted from a channel. \n\n`Error`: when Sent Offers finds an error that prevents sending or updating an offer to a channel. Therefore this status requires manual correction. \n\n`Disabled`: when the offer is discarded by the connector, by being inactive or not included in the trade policy,", + "default": "disabled" + } + } + }, + "Errors": { + "title": "Errors", + "description": "When Sent Offers, or the connectors, find an error that prevents sending or updating an offer to a channel, they should open a `failure` log, and fill in its details through this `errors` attribute. From the information sent through this attribute, sellers can identify and fix errors on their offers. Connectors must identify all errors, and send them all in a single request. This means that connectors should go through every possible validation, and only after all errors are identified, create the failure log.", + "required": [ + "code", + "externalCode", + "title", + "description", + "closableOrigins" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The Search Errors endpoint returns the updated list of error codes. It is the only source of truth about the codes and where they will be always updated. Fill in this field with the code corresponding to the error identified.", + "default": "CTLG-001" + }, + "externalCode": { + "type": "string", + "description": "Connectors must extend the Sent Offers' codes by adding their own code IDs for mapping specific scenarios that apply to their own system. They can send those codes through a suffix ID added in an existing code. This way the Sent Offers knows which errors must be archived and which errors must be kept, being able to classify that given error and improve its solving action. These suffix IDs are totally managed by the connectors, which will require them a way to map each error inside their own code.", + "default": "284692" + }, + "title": { + "type": "string", + "description": "Short text summarizing the error identified. It will be the title that appears in the Sent Offers' UI.", + "default": "Description includes HTML" + }, + "description": { + "type": "string", + "description": "Short text giving more context about the error identified. It will be the description of the error mentioned in the title, also appearing in the Sent Offers' UI.", + "default": "Netshoes does not allow HTML tags in an offer's description. Access the product in your Catalog to remove the HTML tag." + }, + "closableOrigins": { + "type": "array", + "description": "Values allowed in this field are `catalog`, `price` and `inventory`.", + "default": [ + "catalog", + "price" + ] + } + } + } + } + }, + "tags": [ + { + "name": "Offer Management" + } + ] +} diff --git a/clients/manitou/output/marketplace-suggestions.json b/clients/manitou/output/marketplace-suggestions.json new file mode 100644 index 0000000000..42ddaa6b0c --- /dev/null +++ b/clients/manitou/output/marketplace-suggestions.json @@ -0,0 +1,2171 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Suggestions", + "description": "The **Marketplace API** enables marketplaces and sellers hosted on VTEX to perform their collaborative operations. \r\n\r\n>⚠️ The marketplace must [create an appKey and appToken](https://developers.vtex.com/docs/guides/getting-started-authentication) for each non-VTEX seller that will use this API.\r\n\r\n## Index\r\n\r\n### Notification\r\n\r\nEndpoints used by sellers to notify marketplaces that the price or inventory language has changed for one of their SKUs.\r\n\r\n`POST` [Notify marketplace of price update](https://developers.vtex.com/docs/api-reference/marketplace-apis#post-/notificator/-sellerId-/changenotification/-skuId-/price)\r\n\r\n`POST` [Notify marketplace of inventory update](https://developers.vtex.com/docs/api-reference/marketplace-apis#post-/notificator/-sellerId-/changenotification/-skuId-/inventory)\r\n\r\n\r\n### Suggestions\r\n\r\n#### Get Suggestions\r\n\r\nSearch and filter all suggestions using specific criteria.\r\n\r\n`GET` [Get all SKU Suggestions](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions)\r\n\r\n`GET` [Get SKU Suggestion by ID](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/-sellerId-/-sellerSkuId-)\r\n\r\n\r\n#### Manage Suggestions\r\n\r\nSend or delete SKU suggestions from the seller to marketplace.\r\n\r\n`PUT` [Send SKU Suggestion](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/-sellerId-/-sellerSkuId-)\r\n\r\n`DELETE` [Delete SKU Suggestion](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#delete-/suggestions/-sellerId-/-sellerSkuId-)\r\n\r\n\r\n#### Get Versions\r\n\r\nSearch and filter all versions of suggestions, using specific criteria.\r\n\r\n`GET` [Get all versions](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/-sellerId-/-sellerskuid-/versions)\r\n\r\n`GET` [Get version by ID](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/-sellerId-/-sellerskuid-/versions/-version-)\r\n\r\n\r\n#### Match Received SKUs\r\n\r\nMatch SKU suggestions received in the marketplace.\r\n\r\n`PUT` [Match Received SKUs individually](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/-sellerId-/-sellerskuid-/versions/-version-/matches/-matchid-)\r\n\r\n`PUT` [Match Multiple Received SKUs](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/matches/action/-actionName-)\r\n\r\n\r\n#### SKU Approval Settings\r\n\r\nAllows marketplaces to configure rules for automatically and manually approving SKUs received from sellers.\r\n\r\n`GET`[Get autoApprove Status in Account Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration/autoapproval/toggle) \r\n\r\n`PUT`[Activate autoApprove in Marketplace's Account](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/autoapproval/toggle) \r\n\r\n`GET`[Get Account's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration)\r\n\r\n`PUT`[Save Account's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration)\r\n\r\n`GET`[Get Seller's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration/seller/-sellerId-)\r\n\r\n`PUT`[Save Seller's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/seller/-sellerId-)\r\n\r\n`PUT`[Activate autoApprove Setting for a Seller](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/autoapproval/toggle/seller/-sellerId-) \r\n\r\n\r\n### Matched Offers\r\n\r\nOffers are seller products and SKUs that were sent to the marketplace, and already have their price and inventory level configured.\r\n\r\n`GET`[Get Matched Offers List](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/offer-manager/pvt/offers)\r\n\r\n`GET`[Get Matched Offer's Data by SKU ID](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/offer-manager/pvt/product/-productId-/sku/-skuId-) \r\n\r\n`GET`[Get Matched Offer's Data by Product ID](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/offer-manager/pvt/product/-productId-)\r\n", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://api.vtex.com/{accountName}", + "description": "Suggestions Server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + } + } + } + ], + "paths": { + "/suggestions/configuration/autoapproval/toggle": { + "get": { + "tags": [ + "SKU approval settings" + ], + "summary": "Get autoApprove status in account settings", + "description": "This endpoint can be used to check whether the autoapprove setting is active or not, for a specific seller. \n\nIf the response is `true`, the autoapprove setting is active. If the response is `false`, it is inactive.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetautoApprovevaluefromconfig", + "parameters": [ + { + "name": "sellerId", + "in": "query", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "seller123" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "If the autoapprove setting is active for a given seller (`true`) or not (`false`)." + } + } + }, + "example": { + "Enabled": false + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "SKU approval settings" + ], + "summary": "Activate autoApprove in marketplace's account", + "description": "This endpoint enables the autoapprove rule to a marketplace's whole Received SKUs module. Once enabling the rule, received SKUs will be automatically approved on your store, regardless of the seller. \n\n For the autoapprove rule to work as expected, the approval [Matcher score](https://help.vtex.com/en/tutorial/entendendo-a-pontuacao-do-vtex-matcher--tutorials_424) should be set up as 80 (default value), but you can configure a different number through the field `Score` in [Save Account's Approval Settings](https://developers.vtex.com/vtex-rest-api/reference/saveaccountconfig).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Saveautoapproveforaccount", + "requestBody": { + "description": "The request payload that configures the autoapproval setting for a marketplace account. This JSON object must include the `Enabled` field, which determines whether the autoapproval rule should be activated (`true`) or deactivated (`false`). When enabled, all received SKUs will be automatically approved, regardless of the seller or the Matcher Score.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SaveautoapproveforaccountRequest" + }, + "example": { + "Enabled": true + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {}, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "If the autoapprove setting is active (`true`) or not (`false`)." + } + } + }, + "example": { + "Enabled": false + } + } + } + } + }, + "deprecated": false + } + }, + "/suggestions/configuration": { + "get": { + "tags": [ + "SKU approval settings" + ], + "summary": "Get account's approval settings", + "description": "This endpoint retrieves the current approval settings of a marketplace's Received SKUs module. Its response includes: \n\n- `Score`: Matcher scores for approving and rejecting SKUs received from sellers. \n\n- `Matchers`: All Matchers configured on the marketplace, and their respective details. \n\n- `SpecificationsMapping`: Mapping of product and SKU specifications, per seller. \n\n- `MatchFlux`: This field determines the type of approval configuration applied to SKUs received from a seller. \n\nThe possible values include: \n\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \n\n-`manual`, for manual approvals through the Received SKU UI, or Match API. \n\n-`autoApprove`, for every SKU received from a given seller to be approved automatically, regardless of their Matcher Score.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getaccountconfig", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Score": { + "type": "object", + "description": "Matcher scores for approving and rejecting SKUs received from sellers." + }, + "Matchers": { + "type": "array", + "description": "All Matchers configured on the marketplace, and their respective details.", + "items": { + "type": "object", + "description": "Details of a single matcher configured in the marketplace.", + "properties": { + "MatcherId": { + "type": "string", + "description": "Identifies the matching entity, either VTEX's matcher or an external matcher." + }, + "hook-base-address": { + "type": "string", + "description": "The base address for the Matcher's API endpoint." + }, + "IsActive": { + "type": "boolean", + "description": "Indicates whether the matcher is active (`true`) or inactive (`false`)." + }, + "UpdatesNotificationEndpoint": { + "type": "string", + "description": "Endpoint for receiving notifications about updates from the matcher." + }, + "Description": { + "type": "string", + "description": "Description or notes about the matcher." + } + } + } + }, + "Rules": { + "type": "object", + "description": "Items and products." + }, + "SpecificationsMapping": { + "type": "array", + "description": "Mapping of product and SKU specifications between the marketplace and the seller.", + "items": { + "type": "object", + "description": "Mapping details for a single specification.", + "properties": { + "fieldName": { + "type": "string", + "description": "Name of the specification field in the seller's catalog." + }, + "marketplaceField": { + "type": "string", + "description": "Corresponding name of the specification field in the marketplace's catalog." + } + } + } + }, + "MatchFlux": { + "type": "string", + "description": "This field determines the type of approval configuration applied to SKUs received from a seller." + } + } + }, + "example": { + "Score": { + "Approve": 80, + "Reject": 30 + }, + "Matchers": [ + { + "MatcherId": "vtex-matcher", + "hook-base-address": "http://portal.vtexinternal.com/api/ssm/hooks", + "IsActive": true, + "UpdatesNotificationEndpoint": "https://example.com/updates/notifications", + "Description": "This matcher is configured to handle specific product categories and has been optimized for high accuracy." + } + ], + "Rules": { + "Item": [], + "Product": [] + }, + "SpecificationsMapping": [], + "MatchFlux": "Default" + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "SKU approval settings" + ], + "summary": "Save account's approval settings", + "description": "Marketplaces use this endpoint to create or update approval settings on their Received SKUs module. \n\nThe request includes all the details necessary to implement the chosen approval settings.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Saveaccountconfig", + "requestBody": { + "description": "The request to configure account settings, including approval thresholds, matchers, specification mappings, and approval workflows for SKUs. This JSON object should include the `Score` field to define approval and rejection scores, `Matchers` to specify approval/rejection logic, `SpecificationsMapping` to map product specifications, and `MatchFlux` to determine the approval configuration.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SaveaccountconfigRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseSaveAccountsApprovalSettings" + }, + "example": { + "Score": { + "Approve": 80, + "Reject": 30 + }, + "Matchers": [ + { + "MatcherId": "vtex-matcher", + "hook-base-address": "http://simple-suggestion-matcher.vtex.com.br", + "IsActive": true, + "UpdatesNotificationEndpoint": "notification.endpoint", + "Description": "Note" + } + ], + "Rules": { + "Item": [ + 1 + ], + "Product": [ + "Shirt" + ] + }, + "SpecificationsMapping": [ + { + "SellerId": "Store1", + "Mapping": { + "Yellow": "Light yellow" + } + } + ], + "MatchFlux": "autoApprove" + } + } + } + } + }, + "deprecated": false + } + }, + "/suggestions/configuration/account/config": { + "get": { + "tags": [ + "SKU approval settings" + ], + "summary": "Get account's matcher settings", + "description": "This endpoint will be used by the marketplace to query the matcher's current approval settings on their incoming SKUs module. If the account has no matcher configured, the response will be `404 Not Found`. \n\nFor account approval configuration information, with response including specification information, see [Get Account Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration) terminal. \n\nThe [VTEX matcher](https://help.vtex.com/pt/tutorial/entendendo-a-punctuacao-do-vtex-matcher--tutorials_424) is a tool used by marketplaces to evaluate SKUs corresponding to information from an advertisement of the seller, with those of items already present in the marketplace catalog.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getmatchconfig", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseGetAccountsMatcherSettings" + }, + "example": { + "score": { + "approve": 85, + "pending": 31, + "reject": 30 + }, + "matchers": [ + { + "matcherId": "example-matcher", + "hook-base-address": "http://portal.vtexinternal.com.br/api/u90/hooks", + "isActive": true, + "updatesNotificationEndpoint": null, + "description": null + } + ], + "rules": { + "item": [], + "product": [] + }, + "specificationsMapping": [], + "matchFlux": "Default" + } + } + } + } + }, + "deprecated": false + } + }, + "/suggestions/configuration/seller/{sellerId}": { + "get": { + "tags": [ + "SKU approval settings" + ], + "summary": "Get seller's approval settings", + "description": "This endpoint retrieves the current Received SKUs approval settings applied to a specific seller. Its response includes: \n\n- `sellerId`: A string that identifies the seller in the marketplace. \n\n- `accountId`: Marketplace’s account ID. \n\n- `accountName`: Marketplace’s account name. \n\n- `mapping`: Mapping of SKU and product Specifications. \n\n- `matchFlux`: This field determines the type of approval configuration applied to SKUs received from a seller. \n\nThe possible values include: \n\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \n\n-`manual`, for manual approvals through the Received SKU UI and Match API. \n\n-`autoApprove`, for every SKU received from a given seller to be approved automatically, regardless of the Matcher Score.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n|Mapper| Suggestion resources| **Mapper**|\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getselleraccountconfig", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "seller123" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseGetSellersApprovalSettings" + }, + "example": { + "sellerId": "sellerexample", + "accountId": "d74dau71f-325a-4463-bd53-ae8b0453186ca", + "accountName": "marketplaceexample", + "mapping": { + "defaultColor": "white /black", + "searchColor": "color1, color2", + "color1": "black", + "color2": "white", + "color": "black", + "size": "EUR44" + }, + "matchFlux": "autoApprove" + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "SKU approval settings" + ], + "summary": "Save seller's approval settings", + "description": "Marketplaces use this endpoint to create or update approval settings to a specific seller, on the Received SKUs module. \n\nThe request includes all the details necessary to implement the chosen approval settings.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Putselleraccountconfig", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "seller123" + } + } + ], + "requestBody": { + "description": "The request for updating seller account configurations, including SKU mapping and approval workflows. This JSON object must include the `sellerId`, which uniquely identifies the seller; `mapping`, which specifies the SKU and product specifications to be mapped; and `matchFlux`, which determines the approval configuration for SKUs received from the seller.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PutselleraccountconfigRequest" + }, + "example": { + "sellerId": "1a", + "mapping": null, + "matchFlux": "Default" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/suggestions/configuration/autoapproval/toggle/seller/{sellerId}": { + "put": { + "tags": [ + "SKU approval settings" + ], + "summary": "Activate autoApprove setting for a seller", + "description": "This endpoint enables the auto approve setting to received SKUs from a specific seller. Be aware that once enabling the rule through this request, all received SKUs from that seller will be automatically approved on your store, regardless of the Matcher Score.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Saveautoapproveforaccountseller", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "seller123" + } + } + ], + "requestBody": { + "description": "The request for configuring autoapproval settings for a specific seller account. Include the `Enabled` field to activate or deactivate the autoapprove rule for the seller. When enabled, all SKUs from this seller will be automatically approved in the store, regardless of the Matcher Score.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SaveautoapproveforaccountsellerRequest" + }, + "example": { + "Enabled": true + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/suggestions": { + "get": { + "tags": [ + "Get suggestions" + ], + "summary": "Get all SKU suggestions", + "description": "This endpoint retrieves a list of all SKUs sent by the seller for the marketplace's approval. Marketplace operators should use this endpoint whenever they want to check the full list of received SKUs and their information. \n\nNote that all the information sent by the seller will be in the [content] object. All remaining information in this endpoint's response is given by the Matcher. \n\nMatcher rates received SKUs by correlating the data sent by sellers, to existing fields in the marketplace. The calculation of these scores determines whether the product has been: \n\n`Approved`: Score equal to or greater than 80 points. \n\n`Pending`: From 31 to 79 points.\n\n`Denied`: From 0 to 30 points. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getsuggestions", + "parameters": [ + { + "name": "q", + "in": "query", + "description": "This field allows you to customize your search. You can fill in this query param if you want to narrow down your search using the available filters on Received SKU modules.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "" + } + }, + { + "name": "type", + "in": "query", + "description": "This field allows users to filter SKU suggestions, by searching only the new suggestions that were just sent, and suggestions that have already been sent, but were updated. Possible values for this field include `new` and `update`.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "new" + } + }, + { + "name": "seller", + "in": "query", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller so it can call this endpoint.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "" + } + }, + { + "name": "status", + "in": "query", + "description": "Narrow down you search, filtering by status. Values allowed on this field include: `accepted`, `pending` and `denied.`", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "accepted" + } + }, + { + "name": "hasmapping", + "in": "query", + "description": "This field allows you to filter SKUs that have mapping or not. Insert `true` to filter SKUs that have mapping, or `false` to retrieve SKUs that aren't mapped.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "true" + } + }, + { + "name": "matcherid", + "in": "query", + "description": "Identifies the matching entity. It can be either VTEX's matcher, or an external matcher developed by partners, for example. The `matcherId`'s value can be obtained through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion) endpoint.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "vtex-matcher" + } + }, + { + "name": "_from", + "in": "query", + "description": "Define your pagination range, by adding the pagination starting value. Values should be bigger than 0, with a maximum of 50 records per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "minimum": 1, + "example": 1 + } + }, + { + "name": "_to", + "in": "query", + "description": "Define your pagination range, by adding the pagination ending value. Values should be bigger than 0, with a maximum of 50 records per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "minimum": 1, + "example": 50 + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/suggestions/{sellerId}/{sellerSkuId}": { + "put": { + "tags": [ + "Manage suggestions" + ], + "summary": "Send SKU suggestion", + "description": "This request is used by the seller when it wants to suggest that one of their SKUs is sold in the marketplace.\n\nBefore using this request, the seller should always use the [Change Notification](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-seller-sku-notification) request in order to check if the SKU already exists in the marketplace. If it doesn't, then this is the next call in the SKU integration flow.\n\nIn the Send Suggestion request, the seller must send information about the SKU, such as the product and SKU name, the seller ID, and the image URL. All parameters are explained below.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Send marketplace suggestion** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "SaveSuggestion", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "seller123" + } + }, + { + "name": "sellerSkuId", + "in": "path", + "description": "A string that identifies the SKU in the seller. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1234" + } + } + ], + "requestBody": { + "description": "Object containing the details of the product suggestion to be submitted. It includes all necessary information such as product identification, dimensions, specifications, and pricing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SaveSuggestionRequest" + }, + "example": { + "ProductId": "321", + "ProductName": "Product sample", + "NameComplete": "Complete product name", + "ProductDescription": "sample", + "BrandName": "Brand 1", + "SkuName": "Sku sample", + "SellerId": "string", + "Height": 1, + "Width": 1, + "Length": 1, + "Weight": 1, + "Updated": null, + "RefId": "REFID123", + "SellerStockKeepingUnitId": 567, + "CategoryFullPath": "Category 1", + "Images": [ + { + "imageName": "Principal", + "imageUrl": "https://i.pinimg.com/originals/2d/96/4a/2d964a6bf37d9224d0615dc85fccdd62.jpg" + } + ], + "ProductSpecifications": [ + { + "fieldName": "Fabric", + "fieldValues": [ + "Cotton", + "Velvet" + ] + } + ], + "SkuSpecifications": [ + { + "fieldName": "Color", + "fieldValues": [ + "Red", + "Blue" + ] + } + ], + "EAN": "EAN123", + "MeasurementUnit": "un", + "UnitMultiplier": 1, + "AvailableQuantity": 111, + "Pricing": { + "Currency": "BRL", + "SalePrice": 399, + "CurrencySymbol": "R$" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + }, + "get": { + "tags": [ + "Get suggestions" + ], + "summary": "Get SKU suggestion by ID", + "description": "This endpoint retrieves the data of a specific SKU sent by the seller, to the marketplace. Marketplaces or external matchers can call this endpoint when they want to check the information about a single SKU. \n\nNote that all the information sent by the seller will be in the [content] object. All remaining information in this endpoint's response is given by the Matcher. \n\nMatcher rates received SKUs by correlating the data sent by sellers, to existing fields in the marketplace. The calculation of these scores determines whether the product has been: \n\n`Approved`: score equal to or greater than 80 points. \n\n`Pending`: from 31 to 79 points.\n\n`Denied`: from 0 to 30 points. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Send marketplace suggestion** |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetSuggestion", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "seller123" + } + }, + { + "name": "sellerSkuId", + "in": "path", + "description": "A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1234" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Manage suggestions" + ], + "summary": "Delete SKU suggestion", + "description": "This endpoint deletes a chosen SKU suggestion. Only one SKU should be deleted per request. This action cannot be undone. A workaround to revert a deletion is to send the suggestion again, through the Send Suggestion API.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "DeleteSuggestion", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "seller123" + } + }, + { + "name": "sellerSkuId", + "in": "path", + "description": "A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1234" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/suggestions/{sellerId}/{sellerskuid}/versions": { + "get": { + "tags": [ + "Get versions" + ], + "summary": "Get all versions", + "description": "Whenever a SKU suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. \n\nThis endpoint retrieves the data of *all* previous and latest versions of a specific SKU suggestion, sent by the seller. Whenever a SKU is updated, it is important to map previous versions, to compare and identify changes. \n\nThe response's object [latestversion] provides the information of the most recent version of that SKU suggestion.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetVersions", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "seller123" + } + }, + { + "name": "sellerskuid", + "in": "path", + "description": "A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1234" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/suggestions/{sellerId}/{sellerskuid}/versions/{version}": { + "get": { + "tags": [ + "Get versions" + ], + "summary": "Get version by ID", + "description": "Whenever a SKU suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. \n\n This endpoint retrieves a specific *version* of a chosen SKU sent by the seller. Add the Seller's ID, Seller's SKU ID, and version ID in the path to detail your search.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetSuggestionbyversion", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "seller123" + } + }, + { + "name": "sellerskuid", + "in": "path", + "description": "A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1234" + } + }, + { + "name": "version", + "in": "path", + "description": "Whenever an SKU Suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. This field is the `versionId` associated to the version you choose to search for. You can get this field's value through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion). through the `latestVersionId` field.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "09072021142808277" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/suggestions/{sellerId}/{sellerskuid}/versions/{version}/matches/{matchid}": { + "put": { + "tags": [ + "Match received SKUs" + ], + "summary": "Match received SKUs individually", + "description": "All SKUs sent from a seller to a marketplace must be reviewed and matched. Actions in the matching process are added in the request body through the [matchType] object. Match type actions include: \n\n1. `newproduct`: Match the SKU as a new product. \n\n2. `itemMatch`: Associate the received SKU to an existing SKU. \n\n3. `productMatch`: Associate the received SKU to an existing product. \n\n4. `deny`: Deny the received SKU. \n\n5. `pending`: The received SKU requires attention. \n\n6. `incomplete`: The received SKU is lacking information to be matched. \n\n7. `insufficientScore`: The Score given by the Matcher to this received SKU doesn't qualify it to be matched. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Match", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "seller123" + } + }, + { + "name": "sellerskuid", + "in": "path", + "description": "A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1234" + } + }, + { + "name": "version", + "in": "path", + "description": "Whenever an SKU Suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. This field is the versionId associated to the version you choose to search for. You can get this field's value through the[Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion). through the `latestVersionId` field.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "09072021142808277" + } + }, + { + "name": "matchid", + "in": "path", + "description": "Whenever an SKU suggestion is matched, it is associated to a unique ID. Fill in this field with the matchId you wish to filter by. The `matchId`'s value can be obtained through the *[Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion) endpoint.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Object containing the details for matching SKUs or products. This includes the matcher ID, the score given by the matcher, the type of match to be applied, and references to existing SKUs or products if applicable. It also includes information about the product and SKU to be matched.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MatchRequest" + }, + "example": { + "matcherId": "{{matcherid}}", + "matchType": "itemMatch", + "score": "{{score}} (must be decimal)", + "skuRef": "{{skuid}}(should be specifed when match is a sku match)", + "productRef": "{{productRef}}(should be specified when match is a product match)", + "product": { + "name": "Book A", + "description": "Book description", + "categoryId": 12, + "brandId": 1234567, + "matchType": "itemMatch", + "specifications": null + }, + "sku": { + "name": "Sku exemplo", + "eans": [ + "12345678901213" + ], + "refId": null, + "height": 1, + "width": 1, + "length": 1, + "weight": 1, + "images": { + "imagem1.jpg": "https://imageurl.example" + }, + "unitMultiplier": 1, + "measurementUnit": "un", + "specifications": { + "Packaging": "3kg" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseMatchMultiple" + }, + "example": [ + { + "matchId": "06272023010821403", + "matcherId": "vtex-matcher", + "sellerId": "test858", + "itemID": "81", + "isSuccess": false + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/suggestions/matches/action/{actionName}": { + "put": { + "tags": [ + "Match received SKUs" + ], + "summary": "Match multiple received SKUs", + "description": "Allows a marketplace to bulk approve, deny, or associate up to 25 received SKUs from sellers.\n\nThrough the `actionName` attribute, you can select the operation you want to apply to the received SKU. Actions include: \n\n* `newproduct`: Match the SKU as a new product. \n\n* `skuassociation`: Associate the received SKU to an existing SKU. \n\n* `productassociation`: Associate the received SKU to an existing product. \n\n* `deny`: Deny the received SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "MatchMultiple", + "parameters": [ + { + "name": "actionName", + "in": "path", + "description": "Operation to apply to received SKUs. Possible values include: \n\n* `newproduct`: match the SKU as a new product. \n\n* `skuassociation`: associate the received SKU to an existing SKU. \n\n* `productassociation`: associate the received SKU to an existing product. \n\n* `deny`: deny the received SKU.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "enum": [ + "newproduct", + "skuassociation", + "productassociation", + "deny" + ], + "example": "newproduct" + } + } + ], + "requestBody": { + "description": "Array of objects representing multiple SKU or product match requests.", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/MatchMultiple" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseMatchMultiple" + }, + "example": [ + { + "matchId": "06272023010821403", + "matcherId": "vtex-matcher", + "sellerId": "test858", + "itemID": "81", + "isSuccess": false + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/suggestions/configuration/{sellerID}/specifications": { + "put": { + "tags": [ + "Multiple product specification mapping" + ], + "summary": "Map seller specifications to marketplace catalog", + "description": "This endpoint allows the seller to perform a bulk mapping of product specifications to the marketplace catalog.\r\n\r\nSpecifications are additional properties that can be registered on products. To ensure this information is correctly interpreted, the marketplace must map the seller\r\n specifications to the corresponding fields in its own catalog.\r\n >⚠️ This process ensures that products sent by the seller contain data that matches the marketplace's catalog. Sending a new item without prior mapping does not override existing values. Adding new specifications must follow the instructions in the Mapping categories, brands, and specifications for the marketplace guide.\r\nThe mapping must be done based on specifications that already exist in the marketplace's catalog.\r\n\r\n All differing specifications must be mapped, even if the only difference is the capitalization of the word.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Catalog | Content | **Product and SKU Management** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>ℹ️ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "sellerID", + "in": "path", + "description": "Marketplace seller ID whose specifications will be mapped", + "required": true, + "schema": { + "type": "string", + "example": "seller123" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "description": "An [attachment](https://help.vtex.com/en/tutorial/what-is-an-attachment--aGICk0RVbqKg6GYmQcWUm) is an optional, free customization of a product. It is used to add information to a SKU." + }, + "description": "Key-value pairs where the key is the seller's specification name and the value is the equivalent specification in the marketplace.", + "example": { + "43": "41", + "Size": "SIZE", + "Cor": "Color", + "BROWN": "Brown", + "Brand": "brand" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "put_suggestions_configuration_BySellerID_specifications" + } + } + }, + "components": { + "schemas": { + "SaveautoapproveforaccountRequest": { + "required": [ + "Enabled" + ], + "type": "object", + "description": "Request object for configuring automatic approval settings for SKUs in an account.", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Insert `true` if you wish to activate the autoapprove rule for an entire marketplace account. Insert `false` if you wish to deactivate it. Be aware that once enabling the setting through this request, all received SKUs will be automatically approved on your store, regardless of the seller, or the Matcher Score.", + "example": true + } + } + }, + "SaveaccountconfigRequest": { + "required": [ + "Score", + "Matchers", + "SpecificationsMapping", + "MatchFlux" + ], + "type": "object", + "description": "Request object for saving account configuration settings.", + "properties": { + "Score": { + "$ref": "#/components/schemas/Score" + }, + "Matchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Matcher" + }, + "description": "Matchers for approving and rejecting SKUs received from sellers." + }, + "SpecificationsMapping": { + "type": "array", + "description": "This attribute maps product and SKU specifications.", + "items": { + "type": "string", + "description": "Each item in the array represents a specification that is mapped to either a product or SKU.", + "example": "color=red" + } + }, + "MatchFlux": { + "type": "string", + "description": "This field determines the type of approval configuration applied to SKUs received from a seller. The possible values include: \n\n- `default` where the Matcher reviews the SKU, and approves it based on its score \n\n- `manual` for manual approvals through the Received SKU UI or Match API \n\n- `autoApprove` for every SKU received from a given seller to be approved automatically, regardless of the Matcher Score.", + "default": "autoApprove", + "example": "autoApprove" + } + }, + "example": { + "Score": { + "Approve": 80, + "Reject": 30 + }, + "Matchers": [ + { + "MatcherId": "vtex-matcher", + "hook-base-address": "http://simple-suggestion-matcher.vtex.com.br", + "IsActive": true, + "UpdatesNotificationEndpoint": null, + "Description": null + } + ], + "SpecificationsMapping": [ + "color=red", + "size=L" + ], + "MatchFlux": "autoApprove" + } + }, + "Score": { + "description": "Matcher rates received SKUs by comparing the data sent by sellers to existing fields in the marketplace. The calculation of these scores determines whether the product has been: `Approved` or `Denied`.", + "required": [ + "Approve", + "Reject" + ], + "type": "object", + "properties": { + "Approve": { + "type": "integer", + "description": "Insert in this field the desired minimum score to approve SKUs. If this field is set as 99, it means all approvals will be made manually.", + "format": "int32", + "default": 80, + "example": 80 + }, + "Reject": { + "type": "integer", + "description": "Insert in this field the desired maximum score to reject SKUs.", + "format": "int32", + "default": 30, + "example": 30 + } + } + }, + "Matcher": { + "required": [ + "MatcherId", + "hook-base-address", + "IsActive", + "UpdatesNotificationEndpoint" + ], + "type": "object", + "description": "Represents a matcher configuration in the marketplace.", + "properties": { + "MatcherId": { + "type": "string", + "description": "Identifies the matching entity. It can be either VTEX's matcher, or an external matcher developed by partners, for example. The `matcherId`'s value can be obtained through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion) endpoint.", + "default": "vtex-matcher", + "example": "vtex-matcher" + }, + "hook-base-address": { + "type": "string", + "description": "The chosen Matcher's url. It is the endpoint that the Received SKUs module calls, to send new suggestions for the Matcher's review.", + "example": "http://simple-suggestion-matcher.vtex.com.br" + }, + "IsActive": { + "type": "boolean", + "description": "Whether the matcher is active in the account (`true`), or not (`false`).", + "example": true + }, + "UpdatesNotificationEndpoint": { + "type": "string", + "description": "The Received SKUs module uses this endpoint to send updates about a suggestion, to the chosen Matcher.", + "nullable": true, + "example": "https://example.com/notification-endpoint" + }, + "Description": { + "type": "string", + "description": "Insert in this field any notes about the approval. This field is optional.", + "nullable": true, + "example": "This approval is for the new product batch from supplier X." + } + } + }, + "responseGetAccountsMatcherSettings": { + "description": "Response from Get Account's Matcher Settings endpoint with information about current matcher score setting, rules, spec mapping, and matchFlux.", + "type": "object", + "properties": { + "score": { + "description": "[Matcher](https://help.vtex.com/pt/tutorial/entendendo-a-pontuacao-do-vtex-matcher--tutorials_424) rates received SKUs by comparing the data sent by sellers to existing fields in the marketplace. The calculation of these scores determines whether the product has been: `Approved`, `Pending` or `Denied`.", + "type": "object", + "properties": { + "approve": { + "type": "integer", + "description": "Minimum approval score set by the marketplace.", + "default": 80 + }, + "pending": { + "type": "integer", + "description": "Minimum value for the ad to be pending.", + "default": 31 + }, + "reject": { + "type": "integer", + "description": "Bounce score set by marketplace.", + "default": 30 + } + } + }, + "matchers": { + "description": "Array of objects that presents a list of matchers configured in the marketplace. If the marketplace has more than one matcher configured in the account, an array will be displayed for each matcher.\n\n By default, the VTEX Matcher is set up automatically in VTEX account.", + "type": "array", + "items": { + "type": "object", + "description": "An object representing a single matcher configuration.", + "properties": { + "matcherId": { + "type": "string", + "description": "The Matcher Id." + }, + "hook-base-address": { + "type": "string", + "description": "The base address of the Matcher hook." + }, + "isActive": { + "type": "boolean", + "description": "Indicates if Matcher is active or not. `TRUE` = Matcher is active or `FALSE` = Matcher is inactive." + } + } + } + }, + "rules": { + "description": "Arrays object that contains the rules defined for product approval.", + "type": "object", + "properties": { + "item": { + "type": "array", + "description": "A list of rules for items.", + "items": { + "type": "object", + "description": "A rule for items." + } + }, + "product": { + "type": "array", + "description": "A list of rules for products.", + "items": { + "type": "object", + "description": "A rule for products." + } + } + } + }, + "SpecificationsMapping": { + "type": "array", + "description": "List of product specifications and SKU attributes configured for mapping.", + "items": { + "type": "object", + "description": "A specification mapping entry." + } + }, + "matchFlux": { + "type": "string", + "description": "This field shows what type of approval setting is being applied to SKUs received from a seller. \n\nPossible values include: \n\n-`default`: where Matcher reviews the SKU and approves it based on its score. \n\n-`manual`: for manual approvals via incoming SKU UI or mailing API. \n\n-`autoApprove`: so that every SKU received from a given seller is automatically approved, regardless of its Matcher Score." + } + } + }, + "SaveautoapproveforaccountsellerRequest": { + "required": [ + "Enabled" + ], + "type": "object", + "description": "Represents a request to enable or disable automatic approval for SKUs received from a specific seller account.", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Insert `true` if you wish to activate the autoapprove rule for that specific seller account. Insert `false` if you wish to deactivate it. Be aware that once enabling the setting through this request, all SKUs received from this seller will be automatically approved on your store regardless of the Matcher Score.", + "default": true, + "example": true + } + } + }, + "PutselleraccountconfigRequest": { + "required": [ + "sellerId", + "mapping", + "matchFlux" + ], + "type": "object", + "description": "Represents a request to update or configure the seller account settings in the system. This configuration ensures that the seller's account is properly set up for matching and approval processes.", + "properties": { + "sellerId": { + "type": "string", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", + "example": "seller123" + }, + "mapping": { + "type": "object", + "description": "Mapping of SKU and product Specifications. This object should be sent in the following format for all fields you wish to map:\n\n{specificationName}:{specificationValue},\n\nExample:\n\nChoose voltage: Voltage,\n\nChoose size: Size.", + "nullable": true, + "example": { + "Choose voltage": "Voltage", + "Choose size": "Size", + "Choose volume": "Volume", + "Choose type": "Type" + } + }, + "matchFlux": { + "type": "string", + "description": "This field determines the type of approval configuration applied to SKUs received from a seller. The possible values include: \n\n- `default` where the Matcher reviews the SKU, and approves it based on its score \n\n- `manual` for manual approvals through the Received SKU UI or Match API \n\n- `autoApprove` for every SKU received from a given seller to be approved automatically, regardless of the Matcher Score.", + "default": "autoApprove", + "example": "autoApprove" + } + } + }, + "SaveSuggestionRequest": { + "required": [ + "ProductName", + "ProductId", + "ProductDescription", + "BrandName", + "SkuName", + "SellerId", + "Height", + "Width", + "Length", + "Weight", + "Updated", + "RefId", + "CategoryFullPath", + "Images", + "EAN", + "AvailableQuantity", + "Pricing" + ], + "type": "object", + "description": "Represents a request to save or update a product suggestion in the system. This object contains all necessary details about the product and SKU.", + "properties": { + "ProductName": { + "type": "string", + "description": "Name of the suggested product. This field has a limit of 150 characters.", + "example": "128GB black smartphone" + }, + "ProductId": { + "type": "string", + "description": "Product ID in seller's account.", + "example": "1234" + }, + "ProductDescription": { + "type": "string", + "description": "Product description containing the main information about the product (not the SKU).", + "example": "Triple camera smartphone with USB-C charger." + }, + "BrandName": { + "type": "string", + "description": "Name of the brand to which this SKU belongs. It must match the brand created in the marketplace.", + "example": "Brand 1" + }, + "SkuName": { + "type": "string", + "description": "Name of the suggested SKU.", + "example": "SKU sample" + }, + "SellerId": { + "type": "string", + "description": "ID of the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "example": "1" + }, + "Height": { + "type": "integer", + "format": "decimal", + "description": "Height of the SKU.", + "example": 10 + }, + "Width": { + "type": "integer", + "format": "decimal", + "description": "Width of the SKU.", + "example": 10 + }, + "Length": { + "type": "integer", + "format": "decimal", + "description": "Length of the SKU.", + "example": 10 + }, + "Weight": { + "type": "integer", + "format": "decimal", + "description": "Weight of the SKU in grams.", + "example": 100 + }, + "RefId": { + "type": "string", + "description": "SKU reference code. Mandotory if the EAN is not informed.", + "default": "REF10", + "example": "REF10" + }, + "EAN": { + "type": "string", + "description": "SKU reference code. Mandatory if the RefId is not informed.", + "example": "EAN10" + }, + "SellerStockKeepingUnitId": { + "type": "integer", + "format": "int32", + "description": "ID of the SKU registered in the seller.", + "example": 567 + }, + "CategoryFullPath": { + "type": "string", + "description": "Full path to the SKU's category. It should be written as {department}/{category}. For example: if the department is **Appliances** and the category is **Oven**, the full path should be 'Appliances/Oven'.", + "example": "Category 1" + }, + "SkuSpecifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SkuSpecification" + }, + "description": "Array containing the names and values of the SKU specifications." + }, + "ProductSpecifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductSpecification" + }, + "description": "Array containing the names and values of the product specifications." + }, + "Images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Image" + }, + "description": "Array containing the URLs and names the SKU images." + }, + "MeasurementUnit": { + "type": "string", + "description": "Measurement unit that should be used for this SKU. If this information doesn't apply, you should use the default value `un`.", + "example": "un" + }, + "UnitMultiplier": { + "type": "integer", + "format": "int32", + "description": "Unit multiplier for this SKU. If this information doesn't apply, you should use the default value `1`.", + "example": 1 + }, + "AvailableQuantity": { + "type": "integer", + "format": "int32", + "description": "The number of items currently available for sales.", + "example": 111 + }, + "Pricing": { + "type": "object", + "description": "Object containing pricing details, including the currency, sales price, and currency symbol.", + "properties": { + "Currency": { + "type": "string", + "description": "The currency code representing the currency in which the sales price is denominated. This code follows the ISO 4217 standard.", + "example": "BRL" + }, + "SalePrice": { + "type": "integer", + "description": "The sales price of the item in the specified currency. This value represents the cost at which the item is sold and is expressed as an integer without decimal places.", + "example": 399 + }, + "CurrencySymbol": { + "type": "string", + "description": "The symbol representing the currency. This symbol is used in conjunction with the sales price to display the price in a readable format.", + "example": "R$" + } + } + } + }, + "example": { + "ProductId": "321", + "ProductName": "Product sample", + "NameComplete": "My complete product name?", + "ProductDescription": "sample", + "BrandName": "Brand 1", + "SkuName": "Sku sample", + "SellerId": "123", + "Height": 1, + "Width": 1, + "Length": 1, + "Weight": 1, + "Updated": null, + "RefId": "REFID123", + "SellerStockKeepingUnitId": 567, + "CategoryFullPath": "Category 1", + "Images": [ + { + "imageName": "Principal", + "imageUrl": "https://i.pinimg.com/originals/2d/96/4a/2d964a6bf37d9224d0615dc85fccdd62.jpg" + } + ], + "ProductSpecifications": [ + { + "fieldName": "prodspec1", + "fieldValues": [ + "value1", + "value2" + ] + } + ], + "SkuSpecifications": [ + { + "fieldName": "skuspec1", + "fieldValues": [ + "value1", + "value2" + ] + } + ], + "EAN": "EAN123", + "MeasurementUnit": "un", + "UnitMultiplier": 1, + "AvailableQuantity": 111, + "Pricing": { + "Currency": "BRL", + "SalePrice": 399, + "CurrencySymbol": "R$" + } + } + }, + "SkuSpecification": { + "type": "object", + "description": "Represents a specification detail for a SKU (Stock Keeping Unit).", + "properties": { + "fieldName": { + "type": "string", + "description": "Name of the SKU specification field. Example: 'Color'.", + "example": "color" + }, + "fieldValues": { + "type": "array", + "items": { + "type": "string", + "example": "Red", + "description": "Value of the SKU specification field." + }, + "description": "Array with values of the SKU specification field." + } + }, + "example": { + "fieldName": "Color", + "fieldValues": [ + "Red", + "Green" + ] + } + }, + "ProductSpecification": { + "type": "object", + "description": "Represents a specification detail for a product. This object includes a `fieldName` which describes the type of specification (e.g., 'Fabric type') and `fieldValues` which lists the values associated with that specification (e.g., 'Cotton', 'Polyester'). This structure helps in providing detailed attributes about the product, enhancing product descriptions and searchability.", + "properties": { + "fieldName": { + "type": "string", + "description": "Name of the product specification field.", + "example": "Fabric type" + }, + "fieldValues": { + "type": "array", + "description": "Value of the product specification field.", + "items": { + "type": "string", + "example": "Cotton", + "description": "Value of the product specification field." + } + } + }, + "example": { + "fieldName": "Fabric type", + "fieldValues": [ + "Cotton", + "Polyester" + ] + } + }, + "Image": { + "required": [ + "imageName", + "imageUrl" + ], + "type": "object", + "description": "Represents an image associated with a product or SKU.", + "properties": { + "imageName": { + "type": "string", + "description": "Name of the SKU image.", + "example": "Principal" + }, + "imageUrl": { + "type": "string", + "description": "URL of the SKU image. The image must be sent through `https` protocol, otherwise it will not be rendered in VTEX Admin.", + "example": "https://imageurl.example" + } + }, + "example": { + "imageName": "Principal", + "imageUrl": "https://i.pinimg.com/originals/2d/96/4a/2d964a6bf37d9224d0615dc85fccdd62.jpg" + } + }, + "MatchRequest": { + "required": [ + "matcherId", + "score", + "matchType" + ], + "type": "object", + "description": "Represents a request for matching a SKU suggestion with existing products or SKUs. This object includes details such as the identifier of the matcher used, the score assigned to the suggestion, and the type of match action to be performed. The match type determines how the SKU should be handled, whether as a new product, an item match, or other specified actions.", + "properties": { + "matcherId": { + "type": "string", + "description": "Identifies the matching entity. It can be either VTEX's matcher, or an external matcher developed by partners, for example. The `matcherId`'s value can be obtained through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion) endpoint.", + "default": "vtex-matcher", + "example": "vtex-matcher" + }, + "matchType": { + "type": "string", + "description": "Define the action you want to apply to each SKU. Values include: \n\n1. `newproduct`: match the SKU as a new product. \n\n2. `itemMatch`: associate the received SKU to an existing SKU. \n\n3. `productMatch`: associate the received SKU to an existing product. \n\n4. `deny`: deny the received SKU. \n\n5. `pending`: the received SKU requires attention. \n\n6. `incomplete`: the received SKU is lacking information to be matched. \n\n7. `insufficientScore`: the score given by the Matcher to this received SKU doesn't qualify it to be matched. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.", + "example": "itemMatch" + }, + "score": { + "type": "string", + "description": "Matcher rates received SKUs by correlating the data sent by sellers, to existing fields in the marketplace. The calculation of these scores determines whether the product has been: \n\n`Approved`: score equal to or greater than 80 points. \n\n`Pending`: from 31 to 79 points.\n\n`Denied`: from 0 to 30 points. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.", + "default": "80", + "example": "80" + }, + "skuRef": { + "type": "string", + "nullable": true, + "description": "In `itemMatch` actions, fill in this field on your request to match the item to an existing SKU in the marketplace.", + "example": "12345-sku" + }, + "productRef": { + "type": "string", + "description": "In `productMatch` actions, fill in this field on your request to match the item to an existing product in the marketplace.", + "example": "67890-product", + "nullable": true + }, + "product": { + "$ref": "#/components/schemas/Product" + }, + "sku": { + "$ref": "#/components/schemas/Sku" + } + }, + "example": { + "matcherId": "vtex-matcher", + "score": "80", + "matchType": "itemMatch", + "skuRef": "12345-sku", + "productRef": "67890-product", + "product": { + "name": "Product exemple", + "description": "Descricption exemple", + "categoryId": 12, + "brandId": 1234567, + "specifications": null + }, + "sku": { + "name": "Sku exemple", + "eans": [ + "12345678901213" + ], + "refId": null, + "height": 1, + "width": 1, + "length": 1, + "weight": 1, + "images": { + "image1.jpg": "imageurl.example" + }, + "unitMultiplier": 1, + "measurementUnit": "un", + "specifications": { + "Packaging": "3 kg" + } + } + } + }, + "Product": { + "required": [ + "name", + "description", + "categoryId", + "brandId", + "specifications" + ], + "type": "object", + "description": "Represents the product details in the catalog. The product object includes essential attributes such as the product's name, description, category, brand, and specifications. This information is used to define and manage the product within the marketplace, ensuring that it is properly categorized and described for users.", + "properties": { + "name": { + "type": "string", + "description": "Name of the product that will be matched.", + "example": "Book" + }, + "description": { + "type": "string", + "description": "Product's description.", + "example": "A fascinating book about science and technology." + }, + "categoryId": { + "type": "integer", + "format": "int32", + "description": "Marketplace's Category ID that the product belongs to, configured in the Catalog. It should be the category chosen for the received SKU to be matched with. The `categoryId` is already mapped through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion). You can choose to keep the same suggested `categoryID`, or overwrite it with another value in this request. This field is nulled when the inserted value is 0.", + "example": 12 + }, + "brandId": { + "type": "integer", + "format": "int32", + "description": "Marketplace's Brand ID that the product belongs to, configured in the Catalog. It should be the brand chosen for the received SKU to be matched with. The brandId is already mapped through the Get Suggestions API. This field is nulled when the inserted value is 0.", + "example": 1234567 + }, + "specifications": { + "type": "object", + "description": "This field is optional. Add here any product specifications or details.", + "nullable": true, + "example": {} + } + } + }, + "Sku": { + "required": [ + "name", + "eans", + "refId", + "height", + "width", + "length", + "weight", + "images", + "unitMultiplier", + "measurementUnit", + "specifications" + ], + "type": "object", + "description": "Represents the SKU (Stock Keeping Unit) details for a product. The SKU is a unique identifier that contains specific attributes such as dimensions, weight, and other product specific information. This object is crucial for defining and managing the individual variations of a product in the catalog.", + "properties": { + "name": { + "type": "string", + "description": "The name or title of the SKU.", + "example": "128GB black smartphone" + }, + "eans": { + "type": "array", + "description": "An array of strings representing the EAN (European Article Number) codes associated with the SKU. EAN codes are unique identifiers used for products.", + "items": { + "type": "string", + "description": "A single EAN code for the SKU. This is a numeric string typically consisting of 13 digits.", + "example": "12345678901213" + }, + "example": [ + "1234567901213" + ], + "nullable": true + }, + "refId": { + "type": "string", + "description": "SKU reference code.", + "example": "1234", + "nullable": true + }, + "height": { + "type": "integer", + "format": "int32", + "description": "Height of the SKU.", + "example": 10 + }, + "width": { + "type": "integer", + "format": "int32", + "description": "Width of the SKU.", + "example": 20 + }, + "length": { + "type": "integer", + "format": "int32", + "description": "Length of the SKU.", + "example": 10 + }, + "weight": { + "type": "integer", + "format": "int32", + "description": "Weight of the SKU.", + "example": 100 + }, + "images": { + "$ref": "#/components/schemas/Images" + }, + "unitMultiplier": { + "type": "integer", + "format": "int32", + "description": "Unit multiplier for this SKU. If this information doesn't apply, you should use the default value 1.", + "default": 1, + "example": 3 + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit that should be used for this SKU. If this information doesn't apply, you should use the default value un.", + "default": "un", + "nullable": true, + "example": "un" + }, + "specifications": { + "$ref": "#/components/schemas/Specifications" + } + }, + "example": { + "name": "Sku exemplo", + "eans": [ + "12345678901213" + ], + "refId": null, + "height": 1, + "width": 1, + "length": 1, + "weight": 1, + "images": { + "imagem1.jpg": "imageurl.example" + }, + "unitMultiplier": 3, + "measurementUnit": "un", + "specifications": { + "Packaging": "3 kg" + } + } + }, + "Images": { + "type": "object", + "description": "An object that represents a single SKU image with a filename as the key and the image URL as the value.", + "properties": { + "imagem1.jpg": { + "type": "string", + "description": "The URL of the SKU's image. Must be an `https` URL.", + "example": "https://imageurl.example" + } + } + }, + "Specifications": { + "required": [ + "Packaging" + ], + "type": "object", + "description": "Object representing the specifications of a product, including details related to its packaging and other relevant attributes.", + "properties": { + "Packaging": { + "type": "string", + "description": "Packaging specifications. Should include package's weight.", + "example": "3kg" + } + } + }, + "MatchMultiple": { + "type": "array", + "description": "An array containing multiple match operations, each represented as an object. This array allows for the processing of multiple SKU suggestions in a single request.", + "items": { + "type": "object", + "description": "Represents a single match operation for a SKU suggestion, including details such as item ID, version ID, match ID, category, and seller information.", + "required": [ + "itemId", + "versionId", + "matchId", + "matcherId", + "categoryId", + "sellerId" + ], + "properties": { + "itemId": { + "type": "string", + "description": "This field can be used to link any string that identifies that SKU. Its most common use is the seller's SKU ID.", + "example": "1234567" + }, + "versionId": { + "type": "string", + "description": "Whenever an SKU Suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. This field is the `versionId` associated to the version you choose to search for. You can get this field's value through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion). through the `latestVersionId` field.", + "example": "v.2" + }, + "matchId": { + "type": "string", + "description": "Whenever an SKU suggestion is matched, it is associated to a unique ID. Fill in this field with the `matchId` you wish to filter by. The `matchId`'s value can be obtained through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion) endpoint.", + "default": "vtex-matcher", + "example": "vtex-matcher" + }, + "matcherId": { + "type": "string", + "description": "Identifies the matching entity. It can be either VTEX's matcher, or an external matcher developed by partners, for example. The `matcherId`'s value can be obtained through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion) endpoint.", + "default": "vtex-matcher", + "example": "vtex-matcher" + }, + "categoryId": { + "type": "integer", + "format": "int32", + "nullable": true, + "description": "Marketplace's Category ID that the product belongs to, configured in the Catalog. It should be the category chosen for the received SKU to be matched with. The `categoryId` is already mapped through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion). You can choose to keep the same suggested `categoryID`, or overwrite it with another value in this request. This field is nulled when the inserted value is 0.", + "example": 12 + }, + "brandId": { + "type": "integer", + "format": "int32", + "nullable": true, + "description": "Marketplace's Brand ID that the product belongs to, configured in the Catalog. It should be the brand chosen for the received SKU to be matched with. The `brandId` is already mapped through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion). This field is nulled when the inserted value is 0, and is mandatory for the `newproduct` action.", + "example": 1234567 + }, + "skuRef": { + "type": "string", + "nullable": true, + "description": "Fill in this field on your request when the matched item is an SKU. This field is mandatory for the `skuassociation` action.", + "example": "123 sku ref" + }, + "productRef": { + "type": "string", + "description": "Fill in this field on your request when the matched item is a product. This field is mandatory for the `productassociation` action.", + "example": "123 product ref", + "nullable": true + }, + "sellerId": { + "type": "string", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "example": "seller123" + } + } + } + }, + "responseMatchMultiple": { + "type": "array", + "description": "An array containing the results of multiple match operations. Each object in the array represents the outcome of a single match attempt.", + "items": { + "type": "object", + "description": "Represents the result of a single match operation, including details such as match ID, matcher ID, seller ID, item ID, and whether the operation was successful.", + "properties": { + "matchId": { + "type": "string", + "description": "Unique identifier for the match operation, which can be used for tracking and auditing purposes." + }, + "matcherId": { + "type": "string", + "description": "Identifier for the matcher entity that performed the match. It can represent VTEX's internal matcher or an external matcher service." + }, + "sellerId": { + "type": "string", + "description": "Unique identifier of the seller who owns the SKU being matched." + }, + "itemId": { + "type": "string", + "description": "Unique identifier of the item (SKU) that was processed during the match operation." + }, + "isSuccess": { + "type": "boolean", + "description": "Indicates whether the match operation was successful. A value of `true` means the operation succeeded, while `false` indicates a failure." + } + } + } + }, + "responseGetSellersApprovalSettings": { + "type": "object", + "description": "Represents the approval settings configured for a specific seller within the marketplace. This object includes details about the seller, their account, and how SKUs are mapped and approved.", + "properties": { + "sellerId": { + "type": "string", + "description": "A string that identifies the seller in the marketplace." + }, + "accountId": { + "type": "string", + "description": "Marketplace’s account ID." + }, + "accountName": { + "type": "string", + "description": "Marketplace’s account name." + }, + "mapping": { + "type": "object", + "default": {}, + "description": "SKU mapping information and product [specifications](https://developers.vtex.com/docs/guides/catalog-overview#configuring-initial-settings-mandatory).\n\n The properties included within `mapping` can change according to the product type, the `color` specification and its variations described in this example are just one of the possibilities. The values received in this call's payload for those properties depend on the seller's catalog architecture, and are not default. \n\nSee some examples of specifications: \n\n- Voltage \n\n- Power \n\n- Size \n\n- Height \n\n- Width.", + "properties": { + "defaultColor": { + "type": "string", + "description": "The field will indicate the default color predefined by the seller in cases where specific product colors are not defined. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog." + }, + "searchColor": { + "type": "string", + "description": "Field that provides the available colors to filter searches. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog." + }, + "color1": { + "type": "string", + "description": "`color1` available for search filter. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog." + }, + "color2": { + "type": "string", + "description": "`color2` available for search filter. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog." + }, + "color": { + "type": "string", + "description": "Indicates the predominant or main color of the product. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog." + }, + "size": { + "type": "string", + "description": "Indicates the size of the product. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog." + } + } + }, + "matchFlux": { + "type": "string", + "description": "This field determines the type of [approval configuration applied to SKUs received from a seller](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/seller/-sellerId-). \n\nThe possible values include: \n\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \n\n-`manual`, for manual approvals through the Received SKU UI and Match API. \n\n-`autoApprove`, for every SKU received from a given seller to be approved automatically, regardless of the Matcher Score." + } + } + }, + "responseSaveAccountsApprovalSettings": { + "type": "object", + "description": "Response object for the Save Accounts Approval Settings endpoint.", + "properties": { + "Score": { + "type": "object", + "description": "[Matcher's rates](https://help.vtex.com/en/tutorial/understanding-vtex-matcher-scoring) to approve or reject [received SKUs](https://help.vtex.com/en/tutorial/cataloging-received-skus--tutorials_396) sent by sellers.", + "properties": { + "Approve": { + "type": "integer", + "description": "Score to approve SKUs sent by sellers." + }, + "Reject": { + "type": "integer", + "description": "Score to reject SKUs sent by sellers." + } + } + }, + "Matchers": { + "type": "array", + "description": "[Matchers](https://help.vtex.com/en/tutorial/understanding-vtex-matcher-scoring) configurations for approving and rejecting [received SKUs](https://help.vtex.com/en/tutorial/cataloging-received-skus--tutorials_396) sent by sellers.", + "items": { + "type": "object", + "description": "Details of a matcher used for scoring and managing SKUs approvals and rejections.", + "properties": { + "MatcherId": { + "type": "string", + "description": "Identifies the matching entity. It can be either [VTEX's matcher](https://help.vtex.com/en/tutorial/understanding-vtex-matcher-scoring), or an external matcher." + }, + "hook-base-address": { + "type": "string", + "description": "The given matcher's URL." + }, + "IsActive": { + "type": "boolean", + "description": "Whether the matcher is active in the account (`true`), or not (`false`)." + }, + "UpdatesNotificationEndpoint": { + "type": "string", + "description": "The [received SKUs](https://help.vtex.com/en/tutorial/cataloging-received-skus--tutorials_396) module calls this endpoint for matcher's suggestions updates." + }, + "Description": { + "type": "string", + "description": "The note inserted on the request body." + } + } + } + }, + "Rules": { + "type": "object", + "description": "Items and products that belong to sellers.", + "properties": { + "Item": { + "type": "array", + "description": "SKUs' ID.", + "items": { + "type": "integer", + "description": "SKU ID." + } + }, + "Product": { + "type": "array", + "description": "Product's name.", + "items": { + "type": "string", + "description": "Product name." + } + } + } + }, + "SpecificationsMapping": { + "type": "array", + "description": "This attribute maps product and SKU's specifications between the marketplace and the seller.", + "items": { + "type": "object", + "description": "Object representing a single specification mapping between the marketplace and the seller.", + "properties": { + "SellerId": { + "type": "string", + "description": "The seller ID." + }, + "Mapping": { + "type": "object", + "description": "The attributes and values mapped between the marketplace and the seller." + } + } + } + }, + "MatchFlux": { + "type": "string", + "description": "Type of approval configuration that apply to received SKUs sent by sellers. The possible values are: \n\n`default`: The matcher approves the SKU. \n\n`manual`: Manual SKU's approvals. \n\n`AutoApprove`: Automatic SKU's approvals." + } + } + } + } + }, + "tags": [ + { + "name": "Get suggestions", + "description": "Search and filter all suggestions using specific criteria." + }, + { + "name": "Manage suggestions", + "description": "Send or delete SKU suggestions from the seller to marketplace." + }, + { + "name": "Get versions", + "description": "Search and filter all versions of suggestions, using specific criteria." + }, + { + "name": "SKU approval settings" + }, + { + "name": "Match received SKUs", + "description": "Match SKU suggestions received in the marketplace." + } + ] +} diff --git a/clients/manitou/output/marketplace.json b/clients/manitou/output/marketplace.json new file mode 100644 index 0000000000..6644841b80 --- /dev/null +++ b/clients/manitou/output/marketplace.json @@ -0,0 +1,2688 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Marketplace API", + "description": "The **Marketplace API** enables marketplaces and sellers hosted on VTEX to perform their collaborative operations. \r\n\r\n>⚠️ The marketplace must [create an appKey and appToken](https://developers.vtex.com/docs/guides/getting-started-authentication) for each non-VTEX seller that will use this API.\r\n\r\n## Index\r\n\r\n### Notification\r\n\r\nEndpoints used by sellers to notify marketplaces that the price or inventory language has changed for one of their SKUs.\r\n\r\n`POST` [Notify marketplace of price update](https://developers.vtex.com/docs/api-reference/marketplace-apis#post-/notificator/-sellerId-/changenotification/-skuId-/price)\r\n\r\n`POST` [Notify marketplace of inventory update](https://developers.vtex.com/docs/api-reference/marketplace-apis#post-/notificator/-sellerId-/changenotification/-skuId-/inventory)\r\n\r\n\r\n### Suggestions\r\n\r\n#### Get Suggestions\r\n\r\nSearch and filter all suggestions using specific criteria.\r\n\r\n`GET` [Get all SKU Suggestions](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions)\r\n\r\n`GET` [Get SKU Suggestion by ID](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/-sellerId-/-sellerSkuId-)\r\n\r\n\r\n#### Manage Suggestions\r\n\r\nSend or delete SKU suggestions from the seller to marketplace.\r\n\r\n`PUT` [Send SKU Suggestion](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/-sellerId-/-sellerSkuId-)\r\n\r\n`DELETE` [Delete SKU Suggestion](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#delete-/suggestions/-sellerId-/-sellerSkuId-)\r\n\r\n\r\n#### Get Versions\r\n\r\nSearch and filter all versions of suggestions, using specific criteria.\r\n\r\n`GET` [Get all versions](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/-sellerId-/-sellerskuid-/versions)\r\n\r\n`GET` [Get version by ID](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/-sellerId-/-sellerskuid-/versions/-version-)\r\n\r\n\r\n#### Match Received SKUs\r\n\r\nMatch SKU suggestions received in the marketplace.\r\n\r\n`PUT` [Match Received SKUs individually](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/-sellerId-/-sellerskuid-/versions/-version-/matches/-matchid-)\r\n\r\n`PUT` [Match Multiple Received SKUs](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/matches/action/-actionName-)\r\n\r\n\r\n#### SKU Approval Settings\r\n\r\nAllows marketplaces to configure rules for automatically and manually approving SKUs received from sellers.\r\n\r\n`GET`[Get autoApprove Status in Account Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration/autoapproval/toggle) \r\n\r\n`PUT`[Activate autoApprove in Marketplace's Account](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/autoapproval/toggle) \r\n\r\n`GET`[Get Account's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration)\r\n\r\n`PUT`[Save Account's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration)\r\n\r\n`GET`[Get Seller's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration/seller/-sellerId-)\r\n\r\n`PUT`[Save Seller's Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/seller/-sellerId-)\r\n\r\n`PUT`[Activate autoApprove Setting for a Seller](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/autoapproval/toggle/seller/-sellerId-) \r\n\r\n\r\n### Matched Offers\r\n\r\nOffers are seller products and SKUs that were sent to the marketplace, and already have their price and inventory level configured.\r\n\r\n`GET`[Get Matched Offers List](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/offer-manager/pvt/offers)\r\n\r\n`GET`[Get Matched Offer's Data by SKU ID](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/offer-manager/pvt/product/-productId-/sku/-skuId-) \r\n\r\n`GET`[Get Matched Offer's Data by Product ID](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/offer-manager/pvt/product/-productId-)\r\n\r\n\r\n### Affiliates\r\n\r\nEvery marketplace must correspond to a unique affiliate code for the seller.\r\n\r\n`GET`[List affiliates](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/fulfillment/pvt/affiliates)\r\n\r\n`GET`[Get affiliate by ID](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/fulfillment/pvt/affiliates/-affiliateId-) \r\n\r\n`PUT`[Update affiliate by ID](https://developers.vtex.com/docs/api-reference/marketplace-apis#put-/fulfillment/pvt/affiliates/-affiliateId-)\r\n\r\n`DELETE`[Delete affiliate by ID](https://developers.vtex.com/docs/api-reference/marketplace-apis#delete-/fulfillment/pvt/affiliates/-affiliateId-)", + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br/api", + "description": "VTEX Server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/notificator/{sellerId}/changenotification/{skuId}/price": { + "post": { + "tags": [ + "Notification" + ], + "summary": "Notify marketplace of price update", + "description": "This endpoint is used by *sellers* to notify marketplaces that the price has changed for one of their SKUs. \r\n\r\nThere is no request body in this call, indicating the new price value, for instance. It only notifies a specific marketplace (`accountName`) that a seller (`sellerId`) has changed the price of an SKU (`skuId`). \r\n\r\n*Marketplaces* will then call the [fulfillment endpoint](https://developers.vtex.com/vtex-rest-api/reference/fulfillment-simulation) provided in the seller registration form to get the updated price information.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "operationId": "PriceNotification", + "parameters": [ + { + "$ref": "#/components/parameters/sellerId" + }, + { + "$ref": "#/components/parameters/skuId" + } + ], + "responses": { + "202": { + "description": "Accepted" + } + }, + "deprecated": false + } + }, + "/notificator/{sellerId}/changenotification/{skuId}/inventory": { + "post": { + "tags": [ + "Notification" + ], + "summary": "Notify marketplace of inventory update", + "description": "This endpoint is used by *sellers* to notify marketplaces that the inventory level has changed for one of their SKUs. \n\nThere is no request body in this call, indicating the new inventory level, for instance. It only notifies a specific marketplace (`accountName`) that a seller (`sellerId`) has changed the inventory level of an SKU (`skuId`). \n\n*Marketplaces* will then call the [fulfillment endpoint](https://developers.vtex.com/vtex-rest-api/reference/fulfillment-simulation) provided in the seller registration form to get the updated inventory information.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "operationId": "InventoryNotification", + "parameters": [ + { + "$ref": "#/components/parameters/sellerId" + }, + { + "$ref": "#/components/parameters/skuId" + } + ], + "responses": { + "202": { + "description": "Accepted" + } + }, + "deprecated": false + } + }, + "/offer-manager/pvt/offers": { + "get": { + "tags": [ + "Matched Offers" + ], + "summary": "Get matched offers list", + "description": "Offers are seller's products and SKUs that were sent to the marketplace, and already have their price and inventory level configured. \n\n This endpoint retrieves the available offers in a marketplace. It differs from the Get Suggestions endpoints, since it retrieves products that were already matched by the marketplace, and are currently in its catalog. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "operationId": "Getofferslist", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/rows" + }, + { + "$ref": "#/components/parameters/start" + }, + { + "$ref": "#/components/parameters/fq" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseGetMatchedOffersList" + }, + "example": [ + { + "LastModified": "2021-05-06T21:37:24.262529", + "ProductId": "941947", + "CategoryId": 1563, + "BrandId": 2004291, + "ProductName": "Product Test 04 - Black - 40", + "Skus": [ + { + "SkuId": "1070268", + "EanId": "768655", + "RefId": "1234", + "NameComplete": "Product Test 04 - Black - 40 Color:Black", + "Name": "Color:Black", + "IsActive": true, + "MainImage": { + "ImageId": "53878805", + "ImageLabel": null, + "ImageTag": "\"image-8b4364782e664d76a6ebc8702008e478\"", + "ImagePath": "~/arquivos/ids/53878805-#width#-#height#/image-8b4364782e664d76a6ebc8702008e478.jpg", + "IsMain": true, + "IsZoomSize": true, + "ImageText": "image-8b4364782e664d76a6ebc8702008e478", + "LastModified": "2021-04-06T03:01:30.747" + }, + "Offers": [ + { + "SellerId": "1", + "SellerSkuId": "1070268", + "OffersPerSalesChannel": [ + { + "SaleChannel": 1, + "Price": 0, + "ListPrice": 0, + "PriceWithoutDiscount": 0, + "AvailableQuantity": 0 + } + ], + "AvailableSalesChannels": null + }, + { + "SellerId": "madesacms", + "SellerSkuId": "3298", + "OffersPerSalesChannel": [ + { + "SaleChannel": 0, + "Price": 1200, + "ListPrice": 1200, + "PriceWithoutDiscount": 1200, + "AvailableQuantity": 10000000 + } + ], + "AvailableSalesChannels": null + } + ] + } + ] + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/offer-manager/pvt/product/{productId}/sku/{skuId}": { + "get": { + "tags": [ + "Matched Offers" + ], + "summary": "Get matched offers' data by SKU ID", + "description": "Offers are seller products and SKUs that were sent to the marketplace, and already have their price and inventory level configured. \n\nThis endpoint retrieves the available offers for a speciic SKU ID in the marketplace's catalog. It differs from the [Get Suggestions](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions/#get-/suggestions) endpoints, since it retrieves products that were already matched by the marketplace operator, and are currently active in its catalog. \n\nThe call returns a list of offers for that ID, that contain the following data: \n\n- Seller that sells the SKU \n\n- Correspondent SKU ID \n\n- SKU's price value \n\n- Inventory level \n\n- Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/como-funciona-uma-politica-comercial--6Xef8PZiFm40kg2STrMkMV#master-data)) that it is available at. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "operationId": "GetSKUoffers", + "parameters": [ + { + "$ref": "#/components/parameters/productId" + }, + { + "$ref": "#/components/parameters/skuId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseGetMatchedOffersDataBySKU" + }, + "example": [ + { + "productId": "1561208", + "skuId": "1559161", + "nameComplete": "Long sleeve cardigan - Women - Grey - L", + "mainImage": { + "imagePath": "~/arquivos/ids/8567753-#width#-#height#/image-05b40d3167b5b7ed42285124f6862f12.jpg" + }, + "sellersOffers": [ + { + "sellerId": "1", + "sellerSkuId": "1559161", + "salesChannelOffer": [ + { + "salesChannelId": "1", + "salesChannelName": "Principal", + "price": 49.99, + "listPrice": 59.99, + "priceWithoutDiscount": 49.99, + "availableQuantity": 8 + }, + { + "salesChannelId": "2", + "salesChannelName": "Online Store", + "price": 47.99, + "listPrice": 59.99, + "priceWithoutDiscount": 47.99, + "availableQuantity": 12 + } + ] + } + ] + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/offer-manager/pvt/product/{productId}": { + "get": { + "tags": [ + "Matched Offers" + ], + "summary": "Get matched offers' data by product ID", + "operationId": "GetProductoffers", + "description": "Offers are seller products and SKUs that were sent to the marketplace, and already have their price and inventory level configured. \n\nThis endpoint retrieves the available offers for a speciic Product ID in the marketplace's catalog. It differs from the Get Suggestions endpoints, since it retrieves products that were already matched by the marketplace operator, and are currently active in its catalog. \n\nThe call returns a list of offers for that ID, that contain the following data: \n\n- Seller that sells the SKU \n\n- Correspondent SKU ID \n\n- SKU's price value \n\n- Inventory level \n\n- Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/como-funciona-uma-politica-comercial--6Xef8PZiFm40kg2STrMkMV#master-data)) that it is available at.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "parameters": [ + { + "$ref": "#/components/parameters/productId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseGetMatchedOffersDataByProductId" + }, + "example": [ + { + "productId": "1561208", + "skuId": "1559161", + "nameComplete": "Long sleeve cardigan - Women - Grey - L", + "mainImage": { + "imagePath": "~/arquivos/ids/8567753-#width#-#height#/image-05b40d3167b5b7ed42285124f6862f12.jpg" + }, + "sellersOffers": [ + { + "sellerId": "1", + "sellerSkuId": "1559161", + "salesChannelOffer": { + "salesChannelId": "1", + "salesChannelName": "Principal", + "price": 0, + "listPrice": 0, + "priceWithoutDiscount": 0, + "availableQuantity": 0 + } + } + ] + }, + { + "productId": "1561208", + "skuId": "1559163", + "nameComplete": "Long sleeve cardigan - Women - Grey - XS", + "mainImage": { + "imagePath": "~/arquivos/ids/8567753-#width#-#height#/image-05b40d3167b5b7ed42285124f6862f12.jpg" + }, + "sellersOffers": [ + { + "sellerId": "1", + "sellerSkuId": "1559161", + "salesChannelOffer": { + "salesChannelId": "1", + "salesChannelName": "Principal", + "price": 0, + "listPrice": 0, + "priceWithoutDiscount": 0, + "availableQuantity": 0 + } + } + ] + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/seller-register/pvt/seller-leads": { + "post": { + "tags": [ + "Seller Invite" + ], + "summary": "Invite seller lead", + "description": "This API is used by marketplace operators to invite sellers to join their marketplace. The request sends an email to the seller, inviting sellers to activate their store. The invitation's link in the email is unique per user, and available for only seven days for the seller to click and begin activating their store. \n\nThe email template is completely customizable. All email templates that VTEX sends to seller leads can be found and edited in the marketplace's VTEX Admin, on the Message Center section.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateSellerLead", + "requestBody": { + "description": "This request requires detailed information about the seller, including their email, name, account name, sales channel, and other related details. Data should be in JSON format and follow the schema specified in 'CreateSellerLeadRequest'. A sample valid payload is provided for reference, including details such as address, contact information, and acceptance of legal terms.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSellerLeadRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseCreateSellerLead" + }, + "example": { + "sellerId": "7890123456", + "createdAt": "2023-01-01T12:34:56Z", + "updatedAt": "2023-01-01T12:34:56Z" + } + } + } + } + }, + "deprecated": false + }, + "get": { + "tags": [ + "Seller Invite" + ], + "summary": "List seller leads", + "operationId": "ListSellerLeads", + "description": "This call's response includes a list of all sellers invited by the marketplace operator to join them. Retrieved results can be filtered by adding optional query fields to the request. Each seller listed includes the following information: \n\n- `id` \n\n- `createdAt` \n\n- `status` \n\n- `isConnected` \n\n- `sellerEmail` \n\n- `sellerName` \n\n- `salesChannel` \n\n- `email`\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "parameters": [ + { + "$ref": "#/components/parameters/offset" + }, + { + "$ref": "#/components/parameters/limit" + }, + { + "$ref": "#/components/parameters/isConnected" + }, + { + "$ref": "#/components/parameters/search" + }, + { + "$ref": "#/components/parameters/status" + }, + { + "$ref": "#/components/parameters/orderBy" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/seller-register/pvt/seller-leads/{sellerLeadId}": { + "put": { + "tags": [ + "Seller Invite" + ], + "summary": "Accept seller lead", + "operationId": "AcceptSellerLead", + "description": "This endpoint is triggered by the seller onboarding wizard, once the seller confirms their invitation. It can be used by marketplace operators to manually accept seller leads, and carry on with their onboarding process. \n\nNote that there's no specific API call that allows status changes. The operations only allow the seller lead to move forward: \n\n From `invite` > to `Accept` > closing on `[Create seller](https://developers.vtex.com/docs/api-reference/marketplace-apis/#put-/seller-register/pvt/seller-leads/-sellerLeadId-/seller)`. \n\nIf you want to change the status, you can start the process again, by deleting that lead through the *[Delete seller lead](https://developers.vtex.com/docs/api-reference/marketplace-apis/#delete-/seller-register/pvt/seller-leads/-sellerLeadId-)* endpoint, and resending the invite through the *[Resend seller lead's Invite](https://developers.vtex.com/docs/api-reference/marketplace-apis/#put-/seller-register/pvt/seller-leads/-sellerLeadId-/status)* endpoint. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **Save Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | Save Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "description": "This request requires information about the seller who is accepting the lead, including their email, name, account name, sales channel, and other relevant details.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AcceptSellerLeadRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + }, + "get": { + "tags": [ + "Seller Invite" + ], + "summary": "Get seller lead's data by ID", + "operationId": "RetrieveSellerLead", + "description": "Marketplace operators may call this endpoint to retrieve information about a specific seller invited to the Seller Portal, by searching through their seller lead ID. To retrieve the chosen seller's `sellerLeadId`, marketplace operators can use the [List Sellers](https://developers.vtex.com/docs/api-reference/marketplace-apis#get-/seller-register/pvt/sellers?endpoint=get-/seller-register/pvt/sellers) endpoint's response. Each seller listed includes the following information: \n\n- `id` \n\n- `createdAt` \n\n- `status` \n\n- `isConnected` \n\n- `sellerEmail` \n\n- `sellerName` \n\n- `salesChannel` \n\n- `email`. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Seller Invite" + ], + "summary": "Delete seller lead", + "description": "This endpoint permanently deletes a seller previously invited to the marketplace, only if the seller has not yet accepted the invitation. For sellers who have already accepted the invitation, it is only possible to [pause the seller](https://help.vtex.com/en/tutorial/gerenciamento-de-sellers--6eEiOISwxuAWJ8w6MtK7iv) through the VTEX Admin. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **Save Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller Manager| Save Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "RemoveSellerLead", + "parameters": [ + { + "$ref": "#/components/parameters/sellerLeadId" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/seller-register/pvt/seller-leads/{sellerLeadId}/seller": { + "put": { + "tags": [ + "Seller Invite" + ], + "summary": "Create seller from lead", + "operationId": "CreateSellerFromSellerLead", + "description": "This endpoint is used by marketplace operators to create seller accounts. The request will only accept seller leads whose status is `accepted`. If they are already `connected` or `invited`, the call will not be fulfilled. \n\n >❗ The creation of the account at VTEX is done by an internal Billing service. There is no seller account and marketplace affiliation if you do not go through this step. \n\nNote that there's no specific API call that allows status changes. The operations only allow the seller lead to move forward: \n\n From `invite` > to `Accepted` > closing on `Create Seller`. \n\nIf you want to change the status, you can start the process again, by deleting that lead through the *[Delete seller lead](https://developers.vtex.com/docs/api-reference/marketplace-apis#delete-/seller-register/pvt/seller-leads/-sellerLeadId-)* endpoint, and resending the invite through the *[Resend seller lead's invite](https://developers.vtex.com/docs/api-reference/marketplace-apis/#put-/seller-register/pvt/seller-leads/-sellerLeadId-/status)* endpoint. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **Save Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | Save Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "parameters": [ + { + "$ref": "#/components/parameters/isActive" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/seller-register/pvt/seller-leads/{sellerLeadId}/status": { + "put": { + "tags": [ + "Seller Invite" + ], + "summary": "Resend seller lead invite", + "description": "This endpoint allows marketplace operators to resend an invitation to a seller lead who was previously invited to join their marketplace. The request will only accept seller leads whose status is `invited`. If they are already `connected` or `accepted`, the call will not be fulfilled. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **Save Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | Save Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "ResendSellerLeadRequest", + "requestBody": { + "description": "This request requires information specifying the action to be taken, such as the status to be resent.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResendSellerLeadRequestRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/seller-register/pvt/sellers/{sellerId}/commissions": { + "get": { + "tags": [ + "Seller Commissions" + ], + "summary": "List seller commissions by seller ID", + "description": "This endpoint retrieves all comissions configured for a specific seller. It is not necessary to send a request body.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n|---|---|---|\r\n| Seller Register | Seller adminstration | View Seller |\r\n| Seller Register | Seller administration | Save Seller |\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n|Seller manager | Save Seller | \r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with this feature or use one of the predefined roles from the list above.\r\n\r\n >❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "ListSellerCommissions", + "parameters": [ + { + "$ref": "#/components/parameters/sellerId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array with objects containing information about the category, seller and percentage of commission applied.", + "items": { + "$ref": "#/components/schemas/responseSellerCommissionsID" + } + }, + "example": [ + { + "categoryId": "51", + "categoryName": "Clothes", + "categoryFullPath": [ + "2.0", + "Boys", + "Clothes" + ], + "productCommissionPercentage": 7.75, + "freightCommissionPercentage": 2.33 + } + ] + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Seller Commissions" + ], + "summary": "Upsert seller commissions in bulk", + "description": "This endpoint is used by marketplace operators to define comissions for multiple categories, sending an array with multiple objects in the same call.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n|---|---|---|\r\n| Seller Register | Seller administration | Save Seller |\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n|Seller manager | Save Seller | \r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with this feature or use one of the predefined roles from the list above.\r\n\r\n >❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "BulkUpsertSellerCommissions", + "parameters": [ + { + "$ref": "#/components/parameters/sellerId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array with objects containing information about the category, seller and commission percentage to be applied.", + "items": { + "$ref": "#/components/schemas/BulkUpsertSellerCommissionsRequest" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "deprecated": false + } + }, + "/seller-register/pvt/sellers/{sellerId}/commissions/{categoryId}": { + "delete": { + "tags": [ + "Seller Commissions" + ], + "summary": "Remove seller commissions by category ID", + "operationId": "RemoveSellerCommissions", + "description": "This endpoint removes a seller comission on the selected category.\r\n\r\n >❗This action cannot be undone, to reconfigure the commission it is necessary to use the [Upsert Seller Commissions in Bulk endpoint](https://developers.vtex.com/docs/api-reference/marketplace-apis#put-/seller-register/pvt/sellers/-sellerId-/commissions/categories?endpoint=put-/seller-register/pvt/sellers/-sellerId-/commissions/categories). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n|---|---|---|\r\n| Seller Register | Seller administration | Save Seller |\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n|Seller manager | Save Seller | \r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with this feature or use one of the predefined roles from the list above.\r\n\r\n >❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "parameters": [ + { + "$ref": "#/components/parameters/sellerId" + }, + { + "$ref": "#/components/parameters/categoryId" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "deprecated": false + }, + "get": { + "tags": [ + "Seller Commissions" + ], + "summary": "Get seller commissions by category ID", + "operationId": "RetrieveSellerCommissions", + "description": "This endpoint retrieves seller comissions applied to the selected category. It is not necessary to send a request body.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n|---|---|---|\r\n| Seller Register | Seller administration | View Seller |\r\n| Seller Register | Seller administration | Save Seller |\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n|Seller manager | View Seller |\r\n|Seller manager | Save Seller | \r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with this feature or use one of the predefined roles from the list above.\r\n\r\n >❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "parameters": [ + { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "seller123" + } + }, + { + "name": "categoryId", + "in": "path", + "description": "ID of the category in which the comission was applied", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "6" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseSellerCommissionsID" + }, + "example": { + "categoryId": "51", + "categoryName": "Clothes", + "categoryFullPath": [ + "2.0", + "Boys", + "Clothes" + ], + "productCommissionPercentage": 7.75, + "freightCommissionPercentage": 2.33 + } + } + } + } + }, + "deprecated": false + } + }, + "/seller-register/pvt/sellers": { + "post": { + "tags": [ + "Sellers" + ], + "summary": "Configure seller account", + "description": "This endpoint is used by marketplace operators to configure the accounts of sellers that have already accepted the invitation to join their marketplaces. \n\nFor marketplaces to [add sellers](https://help.vtex.com/en/tutorial/adding-a-seller--tutorials_392) without the [Seller Invite](https://help.vtex.com/en/tutorial/marketplace-invited-sellers--6rb2FkcslmDueJ689Ulb9A) feature, call this endpoint directly. \n\nThis call includes all the information a seller needs to activate their account. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **Save Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | Save Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpsertSellerRequest", + "requestBody": { + "description": "Request to upsert seller information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertSellerRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + }, + "get": { + "tags": [ + "Sellers" + ], + "summary": "List sellers", + "description": "This endpoint lists all sellers. The results can be filtered by [trade policies](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV) through the `sc` query param. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "operationId": "GetListSellers", + "parameters": [ + { + "$ref": "#/components/parameters/from" + }, + { + "$ref": "#/components/parameters/to" + }, + { + "$ref": "#/components/parameters/keyword" + }, + { + "$ref": "#/components/parameters/integration" + }, + { + "$ref": "#/components/parameters/group" + }, + { + "$ref": "#/components/parameters/isActive" + }, + { + "$ref": "#/components/parameters/isBetterScope" + }, + { + "$ref": "#/components/parameters/isVtex" + }, + { + "$ref": "#/components/parameters/sc" + }, + { + "$ref": "#/components/parameters/sellerType" + }, + { + "$ref": "#/components/parameters/sort" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/seller-register/pvt/sellers/{sellerId}": { + "patch": { + "tags": [ + "Sellers" + ], + "summary": "Update seller by seller ID", + "description": "This endpoint allows marketplace operators to update the information of sellers connected to their account. You can replace a path's value with another value in order to update that single information. There is no need to fill all the body params available, only the one you wish to update. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **Save Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | Save Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateSeller", + "parameters": [ + { + "$ref": "#/components/parameters/sellerId" + } + ], + "requestBody": { + "description": "array of objects", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "array of objects", + "title": "Request body", + "items": { + "description": "Object representing the mapping configuration between the marketplace's sales channel and the seller's affiliate channel. This configuration allows for associating a marketplace sales channel with a seller's affiliate channel for proper sales channel management.", + "type": "object", + "required": [ + "operation", + "path", + "value" + ], + "properties": { + "operation": { + "type": "string", + "description": "Action being performed, which should always be `replace`.", + "example": "replace" + }, + "path": { + "type": "string", + "description": "Path in which the value is being updated. It follows the standardized format `/{field}`, where `{field}` is the path's name.", + "example": "/field" + }, + "value": { + "type": "boolean", + "description": "Value that is being updated. Notice that the type will depend on the path that is being updated.", + "example": false + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + }, + "get": { + "tags": [ + "Sellers" + ], + "summary": "Get seller data by ID", + "operationId": "GetRetrieveSeller", + "description": "Marketplace operators may call this endpoint to retrieve information about a specific seller by filtering by ID. It is also possible to filter results by sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) through the `sc` query param. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "parameters": [ + { + "$ref": "#/components/parameters/sc" + }, + { + "$ref": "#/components/parameters/sellerId" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/seller-register/pvt/sellers/{sellerId}/sales-channel/mapping": { + "put": { + "tags": [ + "Sales Channel Mapping" + ], + "summary": "Upsert sales channel mapping", + "description": "This endpoint allows the marketplace to map its [trade policies](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV) with a seller's [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187). A seller can have multiple [trade policies](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV) associated with the same marketplace, creating different affiliates. The mapping allows the seller to segment catalog, pricing, inventory, logistics, and payments in the marketplace. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager capabilities](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) in order to successfully execute this request. Otherwise, they will receive a `403` status code error. These are the applicable capabilities for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **Save seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with this resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller Manager | Save Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys typically grants permission to several [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not required, consider creating a custom role. For more information about security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpsertMapping", + "parameters": [ + { + "$ref": "#/components/parameters/an" + }, + { + "$ref": "#/components/parameters/sellerId" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UpsertMappingRequest" + }, + "example": [ + { + "marketplaceSalesChannel": 1, + "sellerChannel": "GCB" + }, + { + "marketplaceSalesChannel": 2, + "sellerChannel": "DFT" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "description": "Object that represents the mapping configuration between the marketplace [trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV) and the seller's affiliate channel. This configuration allows you to associate a marketplace trade policy with a seller's affiliate channel for proper management of trade policies.", + "type": "object", + "properties": { + "marketplaceSalesChannel": { + "type": "string", + "description": "Marketplace's trade policy that will be associated to the seller's [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187)." + }, + "sellerChannel": { + "type": "string", + "description": "Seller's [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) that will be associated with the marketplace's trade policy. Through the affiliate, the seller determines which of his trade policy will be used for the mapping." + } + } + } + }, + "example": [ + { + "marketplaceSalesChannel": "1", + "sellerChannel": "GCC" + } + ] + } + } + } + }, + "deprecated": false + }, + "get": { + "tags": [ + "Sales Channel Mapping" + ], + "summary": "Get sales channel mapping data", + "description": "Retrieves information about the mapping between marketplace's sales channels and a specific seller. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Seller Register | Seller Administration | **View Seller** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Seller manager | View Seller |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "operationId": "RetrieveMapping", + "parameters": [ + { + "$ref": "#/components/parameters/an" + }, + { + "$ref": "#/components/parameters/sellerId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "description": "Object representing the mapping between the marketplace's trade policy and the seller's affiliate channel. This allows for the association and management of trade policy between the marketplace and the seller's affiliate.", + "type": "object", + "properties": { + "marketplaceSalesChannel": { + "type": "string", + "description": "Marketplace's sales channel that will be associated to the seller's [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187).", + "default": "1" + }, + "sellerChannel": { + "type": "string", + "description": "Seller's [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) that will be associated with the marketplace's sales channel. Through the affiliate, the seller determines which of his sales channel will be used for the mapping.", + "default": "GCB" + } + } + }, + "title": "UpsertMapping", + "properties": { + "marketplaceSalesChannel": { + "type": "integer", + "description": "Marketplace's sales channel that will be associated to the seller's [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187).", + "default": 1 + }, + "sellerChannel": { + "type": "string", + "description": "Seller's [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) that will be associated with the marketplace's sales channel. Through the affiliate, the seller determines which of his sales channel will be used for the mapping.", + "default": "GCB" + } + } + }, + "example": [ + { + "marketplaceSalesChannel": "1", + "sellerChannel": "GCC" + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/fulfillment/pvt/affiliates": { + "get": { + "summary": "List affiliates", + "description": "Lists all [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) configurations in a store.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save Order Configuration** |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "tags": [ + "Affiliates" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseListAffiliates" + }, + "example": [ + { + "id": "LNG", + "followUpEmail": "your@email.com", + "useSellerPaymentMethod": false, + "name": "Lengow", + "salesChannel": "1", + "searchURIEndpoint": null, + "searchURIEndpointVersion": "1.x.x", + "searchURIEndpointAvailableVersions": [ + "1.x.x" + ], + "minimumValueAccumulated": 5000 + }, + { + "id": "CNT", + "followUpEmail": "email@email.com", + "useSellerPaymentMethod": false, + "name": "Centauro - lojadobreno", + "salesChannel": "2", + "searchURIEndpoint": "http://centaurointegration.vtexinternal.com.br/api/centaurointegration/indexedstockkeepingunit?an=lojadobreno", + "searchURIEndpointVersion": "1.x.x", + "searchURIEndpointAvailableVersions": [ + "1.x.x" + ], + "minimumValueAccumulated": 1000 + }, + { + "id": "MLC", + "followUpEmail": "null", + "useSellerPaymentMethod": false, + "name": "Mercado Livre - lojadobreno - gold_special", + "salesChannel": "2", + "searchURIEndpoint": "http://meliintegration.vtexinternal.com/api/meliintegration/commercialcondition?an=lojadobreno<=gold_special", + "searchURIEndpointVersion": "1.x.x", + "searchURIEndpointAvailableVersions": [ + "1.x.x" + ], + "minimumValueAccumulated": 2000 + } + ] + } + } + } + }, + "operationId": "get_fulfillment_pvt_affiliates" + } + }, + "/fulfillment/pvt/affiliates/{affiliateId}": { + "get": { + "summary": "Get affiliate by ID", + "description": "Retrieves the specified [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) configuration by affiliate ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save Order Configuration** |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "tags": [ + "Affiliates" + ], + "parameters": [ + { + "in": "path", + "name": "affiliateId", + "description": "Three-letter identifier defined during the affiliate configuration creation. Vowels are not allowed.", + "required": true, + "schema": { + "type": "string", + "minLength": 3, + "maxLength": 3, + "example": "LNG" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/responseGetAffiliates" + }, + "example": { + "id": "LNG", + "followUpEmail": "your@email.com", + "useSellerPaymentMethod": false, + "name": "Lengow", + "salesChannel": "1", + "searchURIEndpoint": null, + "searchURIEndpointVersion": "1.x.x", + "searchURIEndpointAvailableVersions": [ + "1.x.x" + ], + "minimumValueAccumulated": 5000 + } + } + } + } + }, + "operationId": "get_fulfillment_pvt_affiliates_ByAffiliateId" + }, + "put": { + "summary": "Update affiliate by ID", + "description": "Updates the [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) configuration by ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save Order Configuration** |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "tags": [ + "Affiliates" + ], + "parameters": [ + { + "in": "path", + "name": "affiliateId", + "description": "Three-letter identifier defined during the affiliate configuration creation.", + "required": true, + "schema": { + "type": "string", + "minLength": 3, + "maxLength": 3, + "example": "LNG" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/requestUpdateAffiliate" + }, + "example": { + "followUpEmail": "example@email.com", + "name": "Affiliate name", + "salesChannel": "1", + "searchURIEndpoint": "", + "searchURIEndpointVersion": "1.x.x", + "searchURIEndpointAvailableVersions": [ + "1.x.x" + ], + "minimumValueAccumulated": 5000 + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "operationId": "put_fulfillment_pvt_affiliates_ByAffiliateId" + }, + "delete": { + "summary": "Delete affiliate by ID", + "description": "Deletes the specified [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) configuration by ID.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save Order Configuration** |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "tags": [ + "Affiliates" + ], + "parameters": [ + { + "in": "path", + "name": "affiliateId", + "description": "Three-letter identifier defined during the affiliate configuration creation.", + "required": true, + "schema": { + "type": "string", + "minLength": 3, + "maxLength": 3, + "example": "LNG" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "operationId": "delete_fulfillment_pvt_affiliates_ByAffiliateId" + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + } + ], + "components": { + "schemas": { + "UpsertMappingRequest": { + "description": "Request to upsert a mapping between a marketplace's sales channel and a seller's affiliate.", + "required": [ + "marketplaceSalesChannel", + "sellerChannel" + ], + "type": "object", + "properties": { + "marketplaceSalesChannel": { + "type": "integer", + "description": "The sales channel of the marketplace to be associated with the seller's affiliate. It is linked to the seller's affiliate.", + "example": 1 + }, + "sellerChannel": { + "type": "string", + "description": "The affiliate of the seller that will be associated with the marketplace's sales channel. Through the affiliate, the seller determines which of his sales channels will be used for the mapping.", + "example": "GCB" + } + }, + "example": { + "marketplaceSalesChannel": 1, + "sellerChannel": "GCB" + } + }, + "responseSellerCommissionsID": { + "type": "object", + "description": "Object with the category properties and the commission percentage applied to it.", + "properties": { + "categoryId": { + "type": "string", + "description": "Marketplace's category ID that the product belongs to, configured in the Catalog." + }, + "categoryName": { + "type": "string", + "description": "Category name with applied commission." + }, + "categoryFullPath": { + "type": "array", + "description": "Full path to the SKU's category.", + "items": { + "description": "Category level name.", + "type": "string" + } + }, + "productCommissionPercentage": { + "type": "number", + "description": "Percentage of the comission applied to the product in decimals." + }, + "freightCommissionPercentage": { + "type": "number", + "description": "Percentage of the comission applied to the freight in decimals." + } + } + }, + "BulkUpsertSellerCommissionsRequest": { + "description": "Request to bulk upsert (update or insert) seller commission configurations for multiple categories. This includes details such as the category ID, full path of the category, product commission percentage, and freight commission percentage.", + "type": "object", + "required": [ + "categoryId", + "categoryFullPath", + "productCommissionPercentage", + "freightCommissionPercentage" + ], + "properties": { + "categoryId": { + "type": "string", + "description": "Marketplace's Category ID that the product belongs to, configured in the Catalog.", + "example": "6" + }, + "categoryFullPath": { + "type": "string", + "nullable": true, + "description": "Full path to the SKU's category. It should be written as {department}/{category}. For example: if the department is **Appliances** and the category is **Oven**, the full path should be 'Appliances/Oven'.", + "example": "Appliances/Oven" + }, + "productCommissionPercentage": { + "type": "number", + "description": "Percentage of the comission applied to the product in decimals.", + "example": 9.85 + }, + "freightCommissionPercentage": { + "type": "number", + "description": "Percentage of the comission applied to the freight in decimals.", + "example": 2.43 + } + }, + "example": { + "categoryId": "6", + "categoryFullPath": null, + "productCommissionPercentage": 9.85, + "freightCommissionPercentage": 2.43 + } + }, + "CreateSellerLeadRequest": { + "description": "Request to create a seller lead. This includes detailed information about the seller, such as their email, name, account name, trade policy, contact email, seller type, account ID, accountable person, acceptance of legal terms, address, and document details.", + "required": [ + "sellerEmail", + "sellerName", + "sellerAccountName", + "salesChannel", + "email", + "sellerType", + "accountId", + "accountable", + "hasAcceptedLegalTerms", + "address", + "document" + ], + "type": "object", + "properties": { + "sellerEmail": { + "type": "string", + "description": "Seller's contact email.", + "example": "selleremail@email.com" + }, + "sellerName": { + "type": "string", + "description": "Seller's store's name.", + "example": "Seller Name" + }, + "sellerAccountName": { + "type": "string", + "description": "Name of the seller's account, part of the url of their VTEX Admin.", + "example": "seller123" + }, + "salesChannel": { + "type": "string", + "description": "Sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) associated to the seller account created.", + "example": "1" + }, + "email": { + "description": "The email address associated with the seller. It should be in a valid email format.", + "type": "string", + "example": "email@email.com" + }, + "sellerType": { + "type": "integer", + "description": "Type of seller, which can be: \n\n`1`: Regular seller \n\n`2`: White label seller.", + "example": 1 + }, + "accountId": { + "type": "string", + "description": "Marketplace's account ID.", + "example": "5fb38ace-d95e-45ad-970d-ee97cce9fbcd" + }, + "document": { + "type": "string", + "description": "Company's legal document number.", + "example": "12345671000" + }, + "hasAcceptedLegalTerms": { + "type": "boolean", + "description": "Indicates if the seller has accepted the platform's legal terms and conditions.", + "example": true + }, + "address": { + "$ref": "#/components/schemas/address" + }, + "accountable": { + "$ref": "#/components/schemas/accountable" + } + }, + "example": { + "sellerEmail": "selleremail@email.com", + "sellerName": "Seller Name", + "sellerAccountName": "seller123", + "salesChannel": "1", + "email": "email@email.com", + "sellerType": 1, + "accountId": "5fb38ace-d95e-45ad-970d-ee97cce9fbcd", + "document": "12345671000", + "hasAcceptedLegalTerms": true, + "address": { + "postalcode": "12345678", + "complement": "Appartment 1234", + "street": "VTEX street", + "number": "25", + "neighborhood": "VTEX quarter", + "state": "RJ", + "city": "Rio de Janeiro" + }, + "accountable": { + "name": "Jane Smith", + "email": "email@email.com", + "phone": "1234567890" + } + } + }, + "responseCreateSellerLead": { + "type": "object", + "description": "Response object for creating a seller lead. It includes details about the created seller, such as their ID, the creation date, and the date of the last update.", + "properties": { + "sellerId": { + "type": "string", + "description": "ID of the created seller." + }, + "createdAt": { + "type": "string", + "description": "Creation date of the seller." + }, + "updatedAt": { + "type": "string", + "description": "Date of the last update of the seller." + } + } + }, + "accountable": { + "type": "object", + "description": "Details of the person accountable for the seller's account. This includes their name, email address, and phone number.", + "required": [ + "name", + "email", + "phone" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the person responsible for the seller.", + "example": "Jane Smith" + }, + "email": { + "type": "string", + "description": "Email address of the person responsible for the seller.", + "example": "email@email.com" + }, + "phone": { + "type": "string", + "description": "Phone number of the person responsible for the seller.", + "example": "1234567890" + } + } + }, + "address": { + "type": "object", + "description": "Details of the address associated with the seller. This includes postal code, complement, street, number, neighborhood, state, and city.", + "required": [ + "postalcode", + "complement", + "street", + "number", + "neighborhood", + "state", + "city" + ], + "properties": { + "postalcode": { + "type": "string", + "description": "Postal code from the seller's address.", + "example": "12345678" + }, + "complement": { + "type": "string", + "description": "Seller's address complement.", + "example": "Appartment 1234" + }, + "street": { + "type": "string", + "description": "Street information, from the seller's address.", + "example": "Park Avenue" + }, + "number": { + "type": "string", + "description": "Street's number, from the seller's address.", + "example": "25" + }, + "neighborhood": { + "type": "string", + "description": "Seller's address neighborhood.", + "example": "Manhattan" + }, + "state": { + "type": "string", + "description": "State, from the seller's address.", + "example": "RJ" + }, + "city": { + "type": "string", + "description": "City name, from the seller's address.", + "example": "Rio de Janeiro" + } + } + }, + "AcceptSellerLeadRequest": { + "description": "Request to accept a seller lead. This includes detailed information about the seller, such as their email, name, account name, trade policy, contact email, seller type, account ID, document details, acceptance of legal terms, address, and accountable party.", + "required": [ + "sellerEmail", + "sellerName", + "sellerAccountName", + "salesChannel", + "email", + "sellerType", + "accountId", + "document", + "hasAcceptedLegalTerms", + "address", + "accountable" + ], + "type": "object", + "properties": { + "sellerEmail": { + "type": "string", + "description": "Seller's contact email.", + "example": "selleremail@email.com" + }, + "sellerName": { + "type": "string", + "description": "Seller's store's name.", + "example": "Seller Name" + }, + "sellerAccountName": { + "type": "string", + "description": "Name of the seller's account, part of the url of their VTEX Admin.", + "example": "seller123" + }, + "salesChannel": { + "type": "string", + "description": "Sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) associated to the seller account created.", + "example": "1" + }, + "email": { + "type": "string", + "description": "email of the admin responsible for the seller.", + "example": "seller@email.com" + }, + "sellerType": { + "type": "integer", + "description": "Type of seller, including: \n\n`1`: Regular seller \n\n`2`: White label seller.", + "example": 1 + }, + "accountId": { + "type": "string", + "description": "Marketplace's account ID.", + "example": "5fb38ace-d95e-45ad-970d-ee97cce9fbcd" + }, + "document": { + "type": "string", + "description": "Company's legal document code.", + "example": "12345671000" + }, + "hasAcceptedLegalTerms": { + "type": "boolean", + "description": "Indicates if the seller has accepted the platform's legal terms and conditions.", + "example": true + }, + "address": { + "$ref": "#/components/schemas/address" + }, + "accountable": { + "$ref": "#/components/schemas/accountable" + } + } + }, + "ResendSellerLeadRequestRequest": { + "description": "Request to resend a seller lead. This includes the status of the lead that determines the action to be taken.", + "required": [ + "status" + ], + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Seller lead's status, which can be: `accepted`, `connected` or `invited`.", + "example": "accepted" + } + } + }, + "UpsertSellerRequest": { + "title": "Configure Seller Account", + "description": "Request to configure or update a seller account. This includes all necessary details for setting up the seller's account, such as ID, name, status, fulfillment settings, payment options, tax information, contact details, commission configuration, policies, and authentication information.", + "required": [ + "id", + "name", + "isActive", + "fulfillmentEndpoint", + "allowHybridPayments", + "taxCode", + "email", + "description", + "sellerCommissionConfiguration", + "isBetterScope", + "sellerType", + "availableSalesChannels", + "CSCIdentification", + "account", + "channel", + "salesChannel", + "isVtex", + "score", + "exchangeReturnPolicy", + "deliveryPolicy", + "securityPrivacyPolicy", + "fulfillmentSellerId", + "user", + "password", + "catalogSystemEndpoint", + "trustPolicy" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Seller ID assigned by the marketplace. We recommend filling it in with the seller's account name.", + "example": "seller123" + }, + "name": { + "type": "string", + "description": "Name of the seller's store, configured in the seller's environment.", + "example": "Seller Name" + }, + "isActive": { + "type": "boolean", + "description": "Whether the seller is active on the marketplace or not.", + "example": true + }, + "fulfillmentEndpoint": { + "type": "string", + "description": "URL of the endpoint for fulfillment of seller's orders, which the marketplace will use to communicate with the seller. \n\nFor **external sellers**, please include the URL of the seller's endpoint. External sellers have different endpoint standards. The seller must inform this endpoint to the marketplace so that the marketplace can complete the configuration process. \n\nFor **VTEX Stores**, the field format will be as follows: `https://{SellerName}.vtexcommercestable.com.br/api/fulfillment?&sc={TradePolicyID}`. \n\nThe value `SellerName` corresponds to the store name if the seller is a VTEX store. \n\nThe value `TradePolicyID` corresponds to the [trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV#master-data) created by the seller in their own VTEX environment. The seller must inform this ID to the marketplace so that the marketplace can complete the configuration process. \n\nThe value `AffiliateID` corresponds to the 3-digit affiliate identification code created by the seller. The seller must inform this ID to the marketplace so that the marketplace can complete the configuration process. \n\nTo configure the [Multilevel Omnichannel Inventory](https://developers.vtex.com/vtex-rest-api/docs/multilevel-omnichannel-inventory) feature, fill in this field with the checkout endpoint following this example: `https://{{sellerAccount}}.vtexcommercestable.com.br/api/checkout?affiliateid={{affiliateId}}&sc={{salesChannel}}`.", + "example": "http://{SellerName}.vtexcommercestable.com.br/api/fulfillment?&sc={TradePolicyID}" + }, + "allowHybridPayments": { + "type": "boolean", + "description": "Indicates if customers can use gift cards from the seller to buy their products on the marketplace (`true`) or not (`false`). If true, it identifies purchases made with a gift card so that only the final price (with discounts applied) is paid to the seller.", + "example": false + }, + "taxCode": { + "type": "string", + "description": "Identity number of the legal entity, which is linked to information in its base country.", + "example": "34444" + }, + "email": { + "type": "string", + "description": "Email of the administrative user responsible for the seller.", + "example": "seller@email.com" + }, + "description": { + "type": "string", + "description": "Description of the seller.", + "example": "Seller A, from the B industry." + }, + "sellerCommissionConfiguration": { + "description": "Details of the seller's commission configuration, including the product commission percentage, freight commission percentage, and categories commission configuration.", + "type": "object", + "items": { + "$ref": "#/components/schemas/SellerCommissionConfiguration" + }, + "example": { + "productCommissionPercentage": 3, + "freightCommissionPercentage": 4, + "categoriesCommissionConfiguration": [] + } + }, + "isBetterScope": { + "type": "boolean", + "description": "Flag used by the VTEX Checkout to simmulate shopping carts, products and shipping only in sellers with the boolean set as `true`, avoiding performance issues.", + "example": true + }, + "sellerType": { + "type": "integer", + "description": "Type of seller, including: \n\n`1`: Regular seller \n\n`2`: White label seller.", + "example": 1 + }, + "availableSalesChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AvailableSalesChannel" + }, + "description": "Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) available.", + "example": [ + { + "isSelected": true, + "id": 1, + "name": "Principal store" + }, + { + "isSelected": true, + "id": 2, + "name": "Third" + }, + { + "isSelected": true, + "id": 3, + "name": "Marketplaces" + } + ] + }, + "CSCIdentification": { + "type": "string", + "description": "SKU Seller Identification.", + "example": "cscidentification 123" + }, + "account": { + "type": "string", + "description": "Seller's account name.", + "example": "partner01" + }, + "channel": { + "type": "string", + "description": "Channel's name.", + "example": "channel name" + }, + "salesChannel": { + "type": "string", + "description": "Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) associated to the seller account created. If no value is specified, the system will automatically use the sales channel configured in the seller's [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) ID.", + "example": "1" + }, + "isVtex": { + "type": "boolean", + "description": "Indicates whether the seller configured is a VTEX store or not.", + "example": true + }, + "exchangeReturnPolicy": { + "type": "string", + "description": "Text describing the exchange and return policy previously agreed between the marketplace and the seller.", + "example": "Describe exchange and returns policy" + }, + "deliveryPolicy": { + "type": "string", + "description": "Text describing the delivery policy previously agreed between the marketplace and the seller.", + "example": "Describe delivery policy" + }, + "securityPrivacyPolicy": { + "type": "string", + "nullable": true, + "description": "Text describing the security policy previously agreed between the marketplace and the seller.", + "example": "Our marketplace ensures that all transactions are encrypted with SSL technology, and we adhere to strict privacy standards to protect both sellers and buyers. Personal data is only shared with authorized parties to facilitate order processing and delivery, and we do not sell or disclose personal information to third parties without consent." + }, + "fulfillmentSellerId": { + "type": "string", + "description": "Identification code of the seller responsible for fulfilling the order. This is an optional field used when a seller sells SKUs from another seller. If the seller sells their own SKUs, it must be nulled.", + "nullable": true, + "example": "seller1" + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Groups" + }, + "description": "Array of groups attached to the seller. Groups are defined by keywords that group sellers into categories defined by the marketplace when adding a new seller through the [Configure Seller Account](https://developers.vtex.com/docs/api-reference/marketplace-apis?endpoint=post-/seller-register/pvt/sellers) endpoint. It is possible to filter sellers by group in the Seller Management page in your VTEX Admin. Learn more about groups through our [Seller Management](https://help.vtex.com/en/tutorial/seller-management--6eEiOISwxuAWJ8w6MtK7iv#groups) documentation.", + "example": [ + { + "groups": [ + { + "id": "8d845239bf1448dc8bc3ed3121837511", + "name": "long tail" + }, + { + "id": "b9bcd348ab9c4cec8285ff9485c27a72", + "name": "franchise accounts" + } + ] + } + ] + }, + "user": { + "type": "string", + "description": "Username, if you are using a hub to integrate with the external seller.", + "example": "integrationHubUserName", + "nullable": true + }, + "password": { + "type": "string", + "description": "User password, if you are using a hub to integrate with the external seller.", + "example": "integrationHubPassword", + "nullable": true + }, + "catalogSystemEndpoint": { + "type": "string", + "description": "URL of the endpoint of the seller's catalog. This field will only be displayed if the seller type is VTEX Store. The field format will be as follows: `https://{sellerName}.vtexcommercestable.com.br/api/catalog_system/`.", + "example": "https://apiexamples.vtexcommercestable.com.br/api/catalog_system/" + }, + "trustPolicy": { + "type": "string", + "description": "Specifies the trust policy agreed between the marketplace and the seller, such as permissions related to data sharing.", + "example": "AllowEmailSharing" + }, + "score": { + "type": "number", + "description": "Score attributed to this seller.", + "example": 0 + } + } + }, + "SellerCommissionConfiguration": { + "deprecated": true, + "description": "Configuration details for seller commissions. This includes the product commission percentage, freight commission percentage, and categories commission configuration.", + "required": [ + "productCommissionPercentage", + "freightCommissionPercentage", + "categoriesCommissionConfiguration" + ], + "type": "object", + "properties": { + "productCommissionPercentage": { + "type": "number", + "description": "Percentage of the comission applied to the product in decimals.", + "example": 9.85 + }, + "freightCommissionPercentage": { + "type": "number", + "description": "Percentage of the comission applied to the freight in decimals.", + "example": 2.43 + }, + "categoriesCommissionConfiguration": { + "type": "array", + "description": "Array containing the commission configurations for different categories. Each item in the array specifies the category and the commission percentage applied to it.", + "items": { + "type": "object", + "description": "Object representing the commission configuration for a specific category. This includes the category identifier or name and the commission percentage applied to it.", + "properties": { + "category": { + "type": "string", + "description": "Category identifier or name.", + "example": "electronics" + }, + "commission": { + "type": "number", + "description": "Percentage of the commission applied to the category in decimal format.", + "example": 0.15 + } + }, + "required": [ + "category", + "commission" + ] + }, + "default": [] + } + }, + "example": { + "productCommissionPercentage": 3, + "freightCommissionPercentage": 4, + "categoriesCommissionConfiguration": [] + } + }, + "AvailableSalesChannel": { + "description": "Details of a trade policy available for the product. This includes whether the sales channel is selected, its ID, and its name.", + "required": [ + "isSelected", + "id", + "name" + ], + "type": "object", + "properties": { + "isSelected": { + "type": "boolean", + "description": "Defines if the sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) is selected or not.", + "example": true + }, + "id": { + "type": "integer", + "description": "Trade policy ID.", + "example": 1 + }, + "name": { + "type": "string", + "description": "Name of the trade policy.", + "example": "Principal store" + } + } + }, + "Groups": { + "title": "groups", + "description": "Array of groups attached to the seller. Groups are defined by key-words that group sellers into categories defined by the marketplace when adding a new seller through the [Configure Seller Account](https://developers.vtex.com/vtex-rest-api/reference/sellers#putupsertseller) endpoint. It is possible to filter sellers by group in the Seller Management page in your VTEX Admin. Know more about groups through our [Seller Management](https://help.vtex.com/en/tutorial/gerenciamento-de-sellers-beta--6eEiOISwxuAWJ8w6MtK7iv#groups) documentation.", + "required": [ + "groups" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Group's unique identifier code.", + "example": "8d845239bf1448dc8bc3ed3121837511" + }, + "name": { + "type": "string", + "description": "Name of the tag chosen to identify the group.", + "example": "Franchise accounts" + } + }, + "example": { + "groups": [ + { + "id": "8d845239bf1448dc8bc3ed3121837511", + "name": "long tail" + }, + { + "id": "b9bcd348ab9c4cec8285ff9485c27a72", + "name": "franchise accounts" + } + ] + } + }, + "Sku2": { + "description": "Details of the SKU (Stock Keeping Unit) associated with the product. This includes the SKU ID, EAN ID, reference ID, complete name, short name, active status, main image, and offers.", + "required": [ + "SkuId", + "EanId", + "RefId", + "NameComplete", + "Name", + "IsActive", + "MainImage", + "Offers" + ], + "type": "object", + "properties": { + "SkuId": { + "type": "string", + "description": "SKU's unique identifier number." + }, + "EanId": { + "type": "string", + "nullable": true, + "description": "EAN's unique identifier number." + }, + "RefId": { + "type": "string", + "nullable": true, + "description": "SKU's Reference ID." + }, + "NameComplete": { + "type": "string", + "description": "Complete name of the SKU." + }, + "Name": { + "type": "string", + "description": "Summarized name of the SKU." + }, + "IsActive": { + "type": "boolean", + "description": "Whether the SKU is active in the trade policy (true), or not (false).", + "default": true + }, + "MainImage": { + "type": "object", + "description": "Main image's information.", + "items": { + "$ref": "#/components/schemas/MainImage" + } + }, + "Offers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Offer" + }, + "description": "Array with offers." + } + } + }, + "MainImage": { + "description": "Details of the main image associated with the product. This includes the image's ID, label, tag, path, and other attributes indicating its main and zoom size status, as well as additional text and last modification date.", + "required": [ + "ImageId", + "ImageLabel", + "ImageTag", + "ImagePath", + "IsMain", + "IsZoomSize", + "ImageText", + "LastModified" + ], + "type": "object", + "properties": { + "ImageId": { + "type": "string", + "description": "Code identifying the image's file." + }, + "ImageLabel": { + "type": "string", + "nullable": true, + "description": "Image's label." + }, + "ImageTag": { + "type": "string", + "description": "HTML tag for the selected image." + }, + "ImagePath": { + "type": "string", + "description": "Path for the image's file." + }, + "IsMain": { + "type": "boolean", + "description": "Whether the image is the main one or not.", + "default": true + }, + "IsZoomSize": { + "type": "boolean", + "description": "If zoom can be applied to the image.", + "default": true + }, + "ImageText": { + "type": "string", + "description": "Alt text for the image." + }, + "LastModified": { + "type": "string", + "description": "Date of the last change made to the image." + } + } + }, + "Offer": { + "description": "Details of an offer provided by a seller. This includes the seller's identification, SKU, offers per sales channel, and available trade policies.", + "required": [ + "SellerId", + "SellerSkuId", + "OffersPerSalesChannel", + "AvailableSalesChannels" + ], + "type": "object", + "properties": { + "SellerId": { + "type": "string", + "description": "ID of the seller in the marketplace. This ID must be created by the marketplace." + }, + "SellerSkuId": { + "type": "string", + "description": "Unique identifier of the SKU in the seller. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications." + }, + "OffersPerSalesChannel": { + "type": "array", + "description": "Each element in the array corresponds to an offer in a specific trade policy.", + "items": { + "$ref": "#/components/schemas/OffersPerSalesChannel" + } + }, + "AvailableSalesChannels": { + "type": "string", + "nullable": true, + "description": "The sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) ID in which the SKU is available." + } + } + }, + "OffersPerSalesChannel": { + "title": "OffersPerSalesChannel", + "description": "Details of offers available per trade policy. This includes pricing information and available quantity specific to each trade policy.", + "required": [ + "SaleChannel", + "Price", + "ListPrice", + "PriceWithoutDiscount", + "AvailableQuantity" + ], + "type": "object", + "properties": { + "SaleChannel": { + "type": "integer", + "description": "Sales channel ([trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) of the SKU." + }, + "Price": { + "type": "integer", + "description": "SKU's price." + }, + "ListPrice": { + "type": "integer", + "description": "SKU's suggested selling price." + }, + "PriceWithoutDiscount": { + "type": "integer", + "description": "SKU's price without discount applied." + }, + "AvailableQuantity": { + "type": "integer", + "description": "Available SKU stock quantity." + } + } + }, + "responseGetMatchedOffersList": { + "type": "array", + "description": "Response with the list of offers available on the Marketplace.", + "items": { + "type": "object", + "description": "Array of SKUs in the offer.", + "properties": { + "LastModified": { + "type": "string", + "description": "Last date when the offer was modified." + }, + "ProductId": { + "type": "string", + "description": "Unique identifier of the seller's product. This is the ID that the marketplace will use for all references to this product." + }, + "CategoryId": { + "type": "integer", + "description": "Offer's Category ID that the product belongs to, configured in the Catalog. It should be the marketplace's category chosen for the offer to be matched with." + }, + "BrandId": { + "type": "integer", + "description": "Offer's brand ID that the product belongs to, configured in the Catalog. It should be the marketplace's brand chosen for the offer to be matched with." + }, + "ProductName": { + "type": "string", + "description": "Name of the offer's product." + }, + "Skus": { + "type": "array", + "description": "A list of SKUs (Stock Keeping Units) associated with the product. Each SKU contains detailed information about specific variants of the product, such as color, size, and other specifications.", + "items": { + "$ref": "#/components/schemas/Sku2" + } + } + } + } + }, + "responseGetMatchedOffersDataBySKU": { + "description": "Array of matched offers data by SKU.", + "type": "array", + "items": { + "type": "object", + "description": "Schema for individual offer data.", + "properties": { + "productId": { + "type": "string", + "description": "Unique identifier for the product." + }, + "skuId": { + "type": "string", + "description": "Unique identifier for the product SKU." + }, + "nameComplete": { + "type": "string", + "description": "Complete name of the product." + }, + "mainImage": { + "type": "object", + "description": "Schema for the main product image.", + "required": [ + "imagePath" + ], + "properties": { + "imagePath": { + "type": "string", + "description": "File path of the main product image." + } + } + }, + "sellersOffers": { + "type": "array", + "description": "Array of offers from different sellers.", + "items": { + "type": "object", + "description": "Schema for individual seller offer data.", + "properties": { + "sellerId": { + "type": "string", + "description": "Unique identifier for the seller." + }, + "sellerSkuId": { + "type": "string", + "description": "Unique identifier for the seller's SKU." + }, + "salesChannelOffer": { + "type": "array", + "description": "Array of offers on different trade policies from the same seller.", + "items": { + "type": "object", + "description": "Schema for individual trade policy offer data.", + "properties": { + "salesChannelId": { + "type": "string", + "description": "Unique identifier for the trade policy." + }, + "salesChannelName": { + "type": "string", + "description": "Name of the trade policy." + }, + "price": { + "type": "number", + "description": "Offer price." + }, + "listPrice": { + "type": "number", + "description": "List price of the product." + }, + "priceWithoutDiscount": { + "type": "number", + "description": "Offer price without any discount." + }, + "availableQuantity": { + "type": "integer", + "description": "Available quantity of the product." + } + } + } + } + } + } + } + } + } + }, + "responseGetMatchedOffersDataByProductId": { + "type": "array", + "description": "Array of matched offers data by product ID.", + "items": { + "type": "object", + "description": "Schema for individual offer data.", + "properties": { + "productId": { + "type": "string", + "description": "Unique identifier for the product." + }, + "skuId": { + "type": "string", + "description": "Unique identifier for the product SKU." + }, + "nameComplete": { + "type": "string", + "description": "Complete name of the product." + }, + "mainImage": { + "type": "object", + "description": "Schema for the main product image.", + "required": [ + "imagePath" + ], + "properties": { + "imagePath": { + "type": "string", + "description": "File path of the main product image." + } + } + }, + "sellersOffers": { + "type": "array", + "description": "Array of offers from different sellers.", + "items": { + "type": "object", + "description": "Schema for individual seller offer data.", + "properties": { + "sellerId": { + "type": "string", + "description": "Unique identifier for the seller." + }, + "sellerSkuId": { + "type": "string", + "description": "Unique identifier for the seller's SKU." + }, + "salesChannelOffer": { + "type": "object", + "description": "Schema for the offer data on a specific sales channel (trade policy).", + "properties": { + "salesChannelId": { + "type": "string", + "description": "Unique identifier for the sales channel (trade policy)." + }, + "salesChannelName": { + "type": "string", + "description": "Name of the trade policy." + }, + "price": { + "type": "number", + "description": "Offer price." + }, + "listPrice": { + "type": "number", + "description": "List price of the product." + }, + "priceWithoutDiscount": { + "type": "number", + "description": "Offer price without any discount." + }, + "availableQuantity": { + "type": "integer", + "description": "Available quantity of the product." + } + } + } + } + } + } + } + } + }, + "responseListAffiliates": { + "description": "Array containing all configured affiliates in the store.", + "type": "array", + "items": { + "description": "[Affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) information.", + "type": "object", + "properties": { + "id": { + "description": "Three-letter identifier defined during the affiliate configuration creation. Vowels are not allowed.", + "type": "string" + }, + "followUpEmail": { + "description": "Email address in which the user will receive notifications about the integration.", + "type": "string" + }, + "useSellerPaymentMethod": { + "description": "Indicates if the store uses the payment split, seller payment method, (`true`) or not (`false`). Recommended for use only in VTEX-with-VTEX integrations because of compatibility of payment methods.", + "type": "boolean" + }, + "name": { + "description": "Affiliate name.", + "type": "string" + }, + "salesChannel": { + "description": "Number of the sales channel that will define the catalog assortment, prices, and the shipping strategy of items sent to the marketplace.", + "type": "string" + }, + "searchURIEndpoint": { + "description": "URL of the application that will receive products, price, and inventory notifications, among others. The Search Endpoint should be filled with the value: `http://productnotification.vtexcommerce.com.br/api/notification/{NameOfMarketplace}/{SellerID}`. For [external marketplaces](https://help.vtex.com/en/tutorial/marketplace-strategies-at-vtex--tutorials_402#integrating-with-an-external-marketplace), fill in the value: `https://{endpointDoAfiliado}/api/notification/`. Learn more in our article [How to confugure the affiliate endpoint](https://developers.vtex.com/docs/guides/external-marketplace-integration-price-update#how-to-configure-the-affiliate-endpoint).", + "type": "string", + "nullable": true + }, + "searchURIEndpointVersion": { + "description": "Search URI endpoint version. The default option is the only one available.", + "type": "string", + "default": "1.x.x." + }, + "searchURIEndpointAvailableVersions": { + "description": "Search URI endpoint available versions.", + "type": "array", + "items": { + "description": "Search URI endpoint available version. The default option is the only one available.", + "type": "string", + "default": "1.x.x." + } + }, + "minimumValueAccumulated": { + "description": "Minimum value accumulated in the cart to checkout the order.", + "type": "integer", + "nullable": true + } + } + } + }, + "responseGetAffiliates": { + "description": "Object containing detailed information about a specific affiliate.", + "type": "object", + "properties": { + "id": { + "description": "Three-letter identifier defined during the affiliate configuration creation. Vowels are not allowed.", + "type": "string" + }, + "followUpEmail": { + "description": "Email address in which the user will receive notifications about the integration.", + "type": "string" + }, + "useSellerPaymentMethod": { + "description": "Indicates if the store uses the payment split, seller payment method, (`true`) or not (`false`). Recommended for use only in VTEX-with-VTEX integrations because of compatibility of payment methods.", + "type": "boolean" + }, + "name": { + "description": "Affiliate name.", + "type": "string" + }, + "salesChannel": { + "description": "Number of the sales channel that will define the catalog assortment, prices, and the shipping strategy of items sent to the marketplace.", + "type": "string" + }, + "searchURIEndpoint": { + "description": "URL of the application that will receive products, price, and inventory notifications, among others. The Search Endpoint should be filled with the value: `http://productnotification.vtexcommerce.com.br/api/notification/{NameOfMarketplace}/{SellerID}`. For [external marketplaces](https://help.vtex.com/en/tutorial/marketplace-strategies-at-vtex--tutorials_402#integrating-with-an-external-marketplace), fill in the value: `https://{endpointDoAfiliado}/api/notification/`. Learn more in our article [How to confugure the affiliate endpoint](https://developers.vtex.com/docs/guides/external-marketplace-integration-price-update#how-to-configure-the-affiliate-endpoint).", + "type": "string", + "nullable": true + }, + "searchURIEndpointVersion": { + "description": "Search URI endpoint version. The default option is the only one available.", + "type": "string", + "default": "1.x.x." + }, + "searchURIEndpointAvailableVersions": { + "description": "Search URI endpoint available versions.", + "type": "array", + "items": { + "description": "Search URI endpoint available version. The default option is the only one available.", + "type": "string", + "default": "1.x.x." + } + }, + "minimumValueAccumulated": { + "description": "Minimum value accumulated in the cart to checkout the order.", + "type": "integer", + "nullable": true + } + } + }, + "requestUpdateAffiliate": { + "description": "Object containing the data structure required to update an affiliate configuration.", + "type": "object", + "properties": { + "followUpEmail": { + "description": "Email address in which the user will receive notifications about the integration.", + "type": "string" + }, + "useSellerPaymentMethod": { + "description": "Indicates if the store uses the payment split, seller payment method, (`true`) or not (`false`). Recommended for use only in VTEX-with-VTEX integrations because of compatibility of payment methods.", + "type": "boolean" + }, + "name": { + "description": "Affiliate name.", + "type": "string" + }, + "salesChannel": { + "description": "Number of the sales channel that will define the catalog assortment, prices, and the shipping strategy of items sent to the marketplace.", + "type": "string" + }, + "searchURIEndpoint": { + "description": "URL of the application that will receive products, price, and inventory notifications, among others. The Search Endpoint should be filled with the value: `http://productnotification.vtexcommerce.com.br/api/notification/{NameOfMarketplace}/{SellerID}`. For [external marketplaces](https://help.vtex.com/en/tutorial/marketplace-strategies-at-vtex--tutorials_402#integrating-with-an-external-marketplace), fill in the value: `https://{endpointDoAfiliado}/api/notification/`. Learn more in our article [How to confugure the affiliate endpoint](https://developers.vtex.com/docs/guides/external-marketplace-integration-price-update#how-to-configure-the-affiliate-endpoint).", + "type": "string", + "nullable": true + }, + "searchURIEndpointVersion": { + "description": "Search URI endpoint version. The default option is the only one available.", + "type": "string", + "default": "1.x.x." + }, + "searchURIEndpointAvailableVersions": { + "description": "Search URI endpoint available versions.", + "type": "array", + "items": { + "description": "Search URI endpoint available version. The default option is the only one available.", + "type": "string", + "default": "1.x.x." + } + }, + "minimumValueAccumulated": { + "description": "Minimum value accumulated in the cart to checkout the order.", + "type": "integer", + "nullable": true + } + } + } + }, + "parameters": { + "isBetterScope": { + "name": "isBetterScope", + "in": "query", + "description": "The flag `isBetterScope` is used by the VTEX Checkout to simulate shopping carts, products, and shipping only in sellers with the field set as `true`, avoiding performance issues. When used as a query param, `isBetterScope` filters sellers that have the flag set as `true` or `false`.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + "isConnected": { + "name": "isConnected", + "in": "query", + "description": "Query param that enables results to be filter by whether the seller lead is already connected to the marketplace or not.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "" + } + }, + "search": { + "name": "search", + "in": "query", + "description": "Custom search field, that filters sellers invited by specific marketplace operator's email.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "user email" + } + }, + "status": { + "name": "status", + "in": "query", + "description": "Seller Lead's status. Includes `accepted`, `connected` or `invited`.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "invited" + } + }, + "orderBy": { + "name": "orderBy", + "in": "query", + "description": "Query param determining how data will be ordered in the response, ordering by name or ID in descending our ascending order. Includes the following values: \n\n`namesort` = desc/asc \n\n`idsort` = desc/asc", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + "limit": { + "name": "limit", + "in": "query", + "description": "This field determines the limit used to retrieve the list of sellers. The response includes objects until the value inputted here. ", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "default": 15 + } + }, + "offset": { + "name": "offset", + "in": "query", + "description": "This field determines the limit used to retrieve the list of sellers. The response includes objects starting `from` the value inputted here.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "default": 0 + } + }, + "categoryId": { + "name": "categoryId", + "in": "path", + "description": "ID of the category in which the comission was applied", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "6" + } + }, + "sellerLeadId": { + "name": "sellerLeadId", + "in": "path", + "description": "ID of the Seller Lead invited to the marketplace.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + "from": { + "name": "from", + "in": "query", + "description": "The start number of pagination, being `0` the default value.", + "required": false, + "schema": { + "type": "number", + "default": 0 + } + }, + "to": { + "name": "to", + "in": "query", + "description": "The end number of pagination, being `100` the default value.", + "required": false, + "schema": { + "type": "number", + "default": 100 + } + }, + "keyword": { + "name": "keyword", + "in": "query", + "description": "Search sellers by a keyword in `sellerId` or `sellerName`.", + "required": false, + "schema": { + "type": "string", + "default": "keyword" + } + }, + "integration": { + "name": "integration", + "in": "query", + "description": "Filters sellers by the name of who made the integration, if VTEX or an external hub. The possible values for VTEX integrations are: `vtex-sellerportal`, `vtex-seller` and `vtex-franchise`.", + "required": false, + "schema": { + "type": "string", + "default": "vtex-seller" + } + }, + "group": { + "name": "group ", + "in": "query", + "description": "Groups are defined by keywords that group sellers into categories defined by the marketplace.", + "required": false, + "schema": { + "type": "string", + "default": "Group" + } + }, + "isActive": { + "name": "isActive", + "in": "query", + "description": "Enables to filter sellers that are active (`true`) or unactive (`false`) in the marketplace.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + "sellerId": { + "name": "sellerId", + "in": "path", + "description": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "seller123" + } + }, + "skuId": { + "name": "skuId", + "in": "path", + "description": "A string that identifies the seller's SKU that suffered the change. This is the ID that the marketplace will use for all references to this SKU, such as price and inventory notifications.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1234" + } + }, + "sort": { + "name": "sort", + "in": "query", + "description": "Criteria used to sort the list of offers. For sorting values in ascending order, use `asc`, while for descending order, use `desc`. To fill in the field, insert the sorting criteria, followed by 'asc', or 'desc', separated by a comma. You can sort by the following criteria: \n\n- **price:** sorts offers by price. *Ascending* goes from lowest to highest price, while *Descending* goes from highest to lowest price. \n\n- **name:** sorts offers by *productName*, in alphabetical order. *Ascending* goes from *A* to *Z*, while *Descending* goes from *Z* to *A*. \n\n- **availability:** availability in the sales channel (sc). The default value is 1. \n\nEx. sort=availability,desc \n\nEx. sort=name,asc \n\nEx. price,desc", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "availability,desc" + } + }, + "rows": { + "name": "rows", + "in": "query", + "description": "Number of rows included in the response. Each row corresponds to a single offer. The default amount of rows in the response is 1, and the maximum amount is 50. To have more than one offer listed in the response, please add the `rows` parameter with a number greater than 1.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 20 + } + }, + "start": { + "name": "start", + "in": "query", + "description": "Number corresponding to the row from which the offer list will begin, used for pagination. Filters the list of offers by retrieving the offers starting from the row defined. The default value is 0, if the param is not included in the call.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "default": 0 + } + }, + "fq": { + "name": "fq", + "in": "query", + "description": "This filter query can be used to filter offers by the criteria described below. It should be filled in by following the format: `fq={{criteriaName}}:{{criteriaValue}}`. \n\n- **productId:** integer of the product ID \n\n- **productName:** string of the product's name \n\n- **skuId:** integer of the SKU ID \n\n- **eanId:** string of the EAN ID \n\n- **refId:** string of the Ref ID \n\n- **categoryId:** integer of the category ID \n\n- **brandId:** integer of the brand ID \n\n- **sellerId:** string of the seller ID \n\n- **sc:** integer of the sales channel's ID (trade policy in VTEX) \n\nEx: skuId:172 \n\nEx: categoryId:13 \n\nEx. productName:Product example-123", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "skuId:172" + } + }, + "productId": { + "name": "productId", + "in": "path", + "description": "A string that identifies the seller's product. This is the ID that the marketplace will use for all references to this product, such as price and inventory notifications.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "123456" + } + }, + "an": { + "name": "an", + "in": "query", + "description": "Marketplace's account name, the same one inputted on the endpoint's path.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "apiexamples" + } + }, + "sc": { + "name": "sc", + "in": "query", + "description": "Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) associated to the seller account created.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "1" + } + }, + "sellerType": { + "name": "sellerType", + "in": "query", + "description": "Filters sellers by their type, which can be regular seller (`1`) or whitelabel seller (`2`).", + "required": false, + "schema": { + "type": "integer", + "default": 1 + } + }, + "isVtex": { + "name": "isVtex", + "in": "query", + "description": "When set as `true`, the list returned will be of sellers who have a VTEX store configured. When set as `false`, the list will be of sellers who do not have a VTEX store configured.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + } + }, + "tags": [ + { + "name": "Sellers" + }, + { + "name": "Seller Invite" + }, + { + "name": "Seller Commissions" + }, + { + "name": "Affiliates" + }, + { + "name": "Notification" + }, + { + "name": "Matched Offers" + }, + { + "name": "Sales Channel Mapping" + } + ] +} diff --git a/clients/manitou/output/masterdata-v1.json b/clients/manitou/output/masterdata-v1.json new file mode 100644 index 0000000000..682ca83774 --- /dev/null +++ b/clients/manitou/output/masterdata-v1.json @@ -0,0 +1,2349 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Master Data API - v1", + "description": "Master Data is a highly customizable VTEX database solution, which enables you to create applications. By default, Master Data is used to store and organize Customer data from your store. It features a powerful search engine, allowing you to store, search, expand, and customize data. Learn more about [Master Data v1](https://help.vtex.com/en/tutorial/master-data--4otjBnR27u4WUIciQsmkAw).\r\n\r\n## Index\r\n\r\n### Data Entities\r\n\r\nObtain information about the structure of the data entities.\r\n\r\n- `GET` [List data entities](https://developers.vtex.com/docs/api-reference/masterdata-api#get-/api/dataentities)\r\n- `GET` [Get data entity structure](https://developers.vtex.com/docs/api-reference/masterdata-api#get-/api/dataentities/-acronym-)\r\n\r\n### Documents\r\n\r\nCreate, update and retrieve documents.\r\n\r\n- `POST` [Create new document](https://developers.vtex.com/docs/api-reference/masterdata-api#post-/api/dataentities/-acronym-/documents)\r\n- `PUT` [Create document with custom ID or Update entire document](https://developers.vtex.com/docs/api-reference/masterdata-api#put-/api/dataentities/-acronym-/documents/-id-)\r\n- `PATCH` [Create or update partial document](https://developers.vtex.com/docs/api-reference/masterdata-api#patch-/api/dataentities/-acronym-/documents)\r\n- `GET` [Get document](https://developers.vtex.com/docs/api-reference/masterdata-api#get-/api/dataentities/-acronym-/documents/-id-)\r\n- `PUT` [Update entire document](https://developers.vtex.com/docs/api-reference/masterdata-api#put-/api/dataentities/-acronym-/documents/-id-)\r\n- `PATCH` [Update partial document](https://developers.vtex.com/docs/api-reference/masterdata-api#patch-/api/dataentities/-acronym-/documents/-id-)\r\n- `DELETE` [Delete document](https://developers.vtex.com/docs/api-reference/masterdata-api#delete-/api/dataentities/-acronym-/documents/-id-)\r\n\r\n### Customer profiles\r\n\r\nModify customer profiles in the CL entity.\r\n\r\n- `POST` [Create new customer profile](https://developers.vtex.com/docs/api-reference/masterdata-api#post-/api/dataentities/CL/documents)\r\n- `PATCH` [Update customer profile](https://developers.vtex.com/docs/api-reference/masterdata-api#patch-/api/dataentities/CL/documents/-id-)\r\n- `DELETE` [Delete customer profile](https://developers.vtex.com/docs/api-reference/masterdata-api#delete-/api/dataentities/CL/documents/-id-)\r\n\r\n### Addresses\r\n\r\nModify customer addresses in the AD entity.\r\n\r\n- `POST` [Create new customer address](https://developers.vtex.com/docs/api-reference/masterdata-api#post-/api/dataentities/AD/documents)\r\n- `PATCH` [Update customer address](https://developers.vtex.com/docs/api-reference/masterdata-api#patch-/api/dataentities/AD/documents/-id-)\r\n- `DELETE` [Delete customer address](https://developers.vtex.com/docs/api-reference/masterdata-api#delete-/api/dataentities/AD/documents/-id-)\r\n\r\n### Versions\r\n\r\nMaster Data documents are versioned. This means that, for each change, a new version is generated. The versions endpoints allow you to query the versions and also apply the state of a document to the most current version.\r\n\r\n- `GET` [List versions](https://developers.vtex.com/docs/api-reference/masterdata-api#get-/api/dataentities/-acronym-/documents/-id-/versions)\r\n- `GET` [Get version](https://developers.vtex.com/docs/api-reference/masterdata-api#get-/api/dataentities/-acronym-/documents/-id-/versions/-versionId-)\r\n- `PUT` [Put version](https://developers.vtex.com/docs/api-reference/masterdata-api#put-/api/dataentities/-acronym-/documents/-id-/versions/-versionId-)\r\n\r\n### Scroll\r\n\r\nDeveloped for external integration scenarios. If your collection is over 10.000 documents or you need to query the entire VTEX Master Data database, use these endpoints.\r\n\r\n- `GET` [Scroll documents](https://developers.vtex.com/docs/api-reference/masterdata-api#get-/api/dataentities/-acronym-/scroll)\r\n\r\n### Search\r\n\r\nQuery a collection of documents.\r\n\r\n- `GET` [Search documents](https://developers.vtex.com/docs/api-reference/masterdata-api#get-/api/dataentities/-acronym-/search)\r\n\r\n### Attachments\r\n\r\nUpload and download files.\r\n\r\n- `GET` [Retrieve attachment](https://developers.vtex.com/docs/api-reference/masterdata-api#get-/api/dataentities/-acronym-/documents/-id-/-field-/attachments/-file-name-)\r\n- `POST` [Save attachment](https://developers.vtex.com/docs/api-reference/masterdata-api#post-/api/dataentities/-acronym-/documents/-id-/-field-/attachments)\r\n\r\n### Clusters\r\n\r\nCheck if a particular document is in one or more clusters.\r\n\r\n- `POST` [Validate Document by Clusters](https://developers.vtex.com/docs/api-reference/masterdata-api#post-/api/dataentities/-acronym-/documents/-id-/clusters)\r\n\r\n### Score\r\n\r\nRecord and remove points in `Score2` type fields. Learn more about [Data entity field types](https://help.vtex.com/en/tutorial/creating-data-entity--tutorials_1265#understanding-the-types). \r\n\r\n- `PUT` [Put scores](https://developers.vtex.com/docs/api-reference/masterdata-api#put-/api/dataentities/-acronym-/documents/-id-/score)\r\n- `PUT` [Put score by field](https://developers.vtex.com/docs/api-reference/masterdata-api#put-/api/dataentities/-acronym-/documents/-id-/score/-field-name-)\r\n- `DELETE` [Delete score by field](https://developers.vtex.com/docs/api-reference/masterdata-api#delete-/api/dataentities/-acronym-/documents/-id-/score/-field-name-)\r\n", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/dataentities": { + "get": { + "tags": [ + "Data entities" + ], + "summary": "List data entities", + "description": "Retrieves the list of existing data entities in the store. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n| Dynamic Storage | Data entity | **List data entity** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Listdataentities", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Listdataentity" + } + }, + "example": [ + { + "acronym": "SP", + "name": "Sample", + "primaryKeyType": "GUID", + "allowGetAll": false + }, + { + "acronym": "AD", + "name": "Endereço", + "primaryKeyType": "GUID", + "allowGetAll": false + }, + { + "acronym": "CL", + "name": "Cliente", + "primaryKeyType": "GUID", + "allowGetAll": false + } + ] + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Message": { + "type": "string", + "description": "Error message." + } + } + }, + "example": { + "Message": "Unauthorized" + } + } + } + } + } + } + }, + "/api/dataentities/{acronym}": { + "get": { + "tags": [ + "Data entities" + ], + "summary": "Get data entity structure", + "description": "Returns the data entity structure with its respective fields and data type. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n| Dynamic Storage | Data entity | **View data entity details** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getdataentitystructure", + "parameters": [ + { + "name": "acronym", + "in": "path", + "description": "Data entity acronym.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "SP" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Getdataentityfields" + }, + "example": { + "acronym": "SP", + "name": "Sample", + "primaryKeyType": "GUID", + "allowGetAll": false, + "fields": [ + { + "name": "updatedIn", + "type": "Date and Time", + "displayName": "Atualizado em", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": true + }, + { + "name": "updatedBy", + "type": "User Login", + "displayName": "Atualizado por", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": true + }, + { + "name": "Auto_Increment", + "type": "Auto Increment", + "displayName": "Auto increment", + "isNullable": true, + "isSearchable": false, + "isFilter": false, + "isInternal": false + }, + { + "name": "Boolean", + "type": "Boolean", + "displayName": "Boolean", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": false + }, + { + "name": "createdIn", + "type": "Date and Time", + "displayName": "Criado em", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": true + }, + { + "name": "createdBy", + "type": "User Login", + "displayName": "Criado por", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": true + }, + { + "name": "Currency", + "type": "Currency", + "displayName": "Currency", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": false + }, + { + "name": "Date", + "type": "Date", + "displayName": "Date", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": false + }, + { + "name": "Date_Time", + "type": "Date and Time", + "displayName": "Date and Time", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": false + }, + { + "name": "Decimal", + "type": "Decimal", + "displayName": "Decimal", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": false + }, + { + "name": "Email", + "type": "Email", + "displayName": "Email", + "isNullable": true, + "isSearchable": true, + "isFilter": false, + "isInternal": false + }, + { + "name": "dataEntityId", + "type": "Varchar 10", + "displayName": "Entidade de dados", + "isNullable": false, + "isSearchable": true, + "isFilter": false, + "isInternal": true + }, + { + "name": "File", + "type": "File", + "displayName": "File", + "isNullable": true, + "isSearchable": false, + "isFilter": false, + "isInternal": false + }, + { + "name": "auto_filter", + "type": "Text", + "displayName": "Filtro automático", + "isNullable": true, + "isSearchable": false, + "isFilter": false, + "isInternal": true + }, + { + "name": "accountId", + "type": "Varchar 50", + "displayName": "ID da loja", + "isNullable": false, + "isSearchable": false, + "isFilter": false, + "isInternal": true + }, + { + "name": "id", + "type": "Varchar 100", + "displayName": "Id do documento", + "isNullable": false, + "isSearchable": true, + "isFilter": false, + "isInternal": true + }, + { + "name": "Integer", + "type": "Integer", + "displayName": "Integer", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": false + }, + { + "name": "Long", + "type": "Long", + "displayName": "Long", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": false + }, + { + "name": "accountName", + "type": "Varchar 100", + "displayName": "Nome da loja", + "isNullable": false, + "isSearchable": true, + "isFilter": false, + "isInternal": true + }, + { + "name": "Percent", + "type": "Percent", + "displayName": "Percent", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": false + }, + { + "name": "Relationship", + "type": "Relationship", + "displayName": "Relationship", + "isNullable": true, + "isSearchable": true, + "isFilter": false, + "isInternal": false + }, + { + "name": "Score2", + "type": "Score2", + "displayName": "Score2", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": false + }, + { + "name": "followers", + "type": "Text", + "displayName": "Seguidores", + "isNullable": true, + "isSearchable": true, + "isFilter": false, + "isInternal": true + }, + { + "name": "tags", + "type": "Text", + "displayName": "Tags", + "isNullable": true, + "isSearchable": true, + "isFilter": false, + "isInternal": true + }, + { + "name": "Text", + "type": "Text", + "displayName": "Text", + "isNullable": true, + "isSearchable": false, + "isFilter": false, + "isInternal": false + }, + { + "name": "Time", + "type": "Time", + "displayName": "Time", + "isNullable": true, + "isSearchable": false, + "isFilter": false, + "isInternal": false + }, + { + "name": "lastInteractionIn", + "type": "Date and Time", + "displayName": "Ultima interação em", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": true + }, + { + "name": "lastInteractionBy", + "type": "User Login", + "displayName": "Ultima interação por", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": true + }, + { + "name": "URL", + "type": "URL", + "displayName": "URL", + "isNullable": true, + "isSearchable": false, + "isFilter": true, + "isInternal": false + }, + { + "name": "User_Login", + "type": "User Login", + "displayName": "User Login", + "isNullable": true, + "isSearchable": true, + "isFilter": false, + "isInternal": false + }, + { + "name": "Varchar10", + "type": "Varchar 10", + "displayName": "Varchar 10", + "isNullable": true, + "isSearchable": true, + "isFilter": false, + "isInternal": false + }, + { + "name": "Varchar100", + "type": "Varchar 100", + "displayName": "Varchar 100", + "isNullable": true, + "isSearchable": true, + "isFilter": false, + "isInternal": false + }, + { + "name": "Varchar50", + "type": "Varchar 50", + "displayName": "Varchar 50", + "isNullable": true, + "isSearchable": true, + "isFilter": false, + "isInternal": false + }, + { + "name": "Varchar750", + "type": "Varchar 750", + "displayName": "Varchar 750", + "isNullable": true, + "isSearchable": true, + "isFilter": false, + "isInternal": false + } + ] + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Message": { + "type": "string", + "description": "Error message." + } + } + }, + "example": { + "Message": "Unauthorized" + } + } + } + } + } + } + }, + "/api/dataentities/{acronym}/documents": { + "post": { + "tags": [ + "Documents" + ], + "summary": "Create new document", + "description": "Creates a new document with an ID automatically generated by VTEX, corresponding to a given data entity. The request body is a JSON object where the key is the name of the field.\r\n\r\n>ℹ️ You can use this request to create documents in any given data entity. Because of this, you are not restricted to using the fields exemplified below in your requests. But you should be aware of the fields allowed or required for each document you wish to update.\r\n\r\n## Custom field types\r\n\r\nThe table below presents the types of custom fields you can use when creating or updating documents in Master Data v1 and example values.\r\n\r\n| Field Type| Example value |\r\n| - | - |\r\n| Boolean | `true` |\r\n| Currency | `2.5` |\r\n| Date | `1992-11-17` |\r\n| Date_Time | `2016-09-14T19:21:01.3163733Z` |\r\n| Decimal | `2.5` |\r\n| Email | `meu@email.com` |\r\n| Integer | `1000000` |\r\n| Long | `1000000000` |\r\n| Percent | `85.42` |\r\n| Time | `23:50` |\r\n| URL | `https://www.vtex.com` |\r\n| Varchar10 | `Lorem ipsu` |\r\n| Varchar50 | `Lorem ipsum dolor sit amet, consectetur adipiscing` |\r\n| Varchar750 | `Lorem ipsum dolor sit amet, consectetur adipiscing elit...` |\r\n| Varchar100 | `Lorem ipsum dolor sit amet, consectetur adipiscing elit...` |\r\n| Relationship | `5eb31afb-7ab0-11e6-94b4-0a44686e393f` |\r\n| Text | `Lorem ipsum dolor sit amet, consectetur adipiscing elit...` |\r\n \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createnewdocument", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object with document fields and their respective values.", + "additionalProperties": true, + "properties": { + "{fieldName}": { + "type": "string", + "description": "Field name.", + "example": "{fieldValue}" + } + } + }, + "example": { + "Boolean": true, + "Currency": 2.5, + "Date": "1992-11-17", + "Date_Time": "2016-09-14T19:21:01.3163733Z", + "Decimal": 2.5, + "Email": "meu@email.com", + "Integer": 1000000, + "Long": 1000000000, + "Percent": 85.42, + "Time": "23:50", + "URL": "http://www.vtex.com", + "Varchar10": "Lorem ipsu", + "Varchar50": "Lorem ipsum dolor sit amet, consectetur adipiscing", + "Varchar750": "Lorem ipsum dolor sit amet, consectetur adipiscing elit...", + "Varchar100": "Lorem ipsum dolor sit amet, consectetur adipiscing elit...", + "Relationship": "5eb31afb-7ab0-11e6-94b4-0a44686e393f", + "Text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit..." + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdHrefDocumentID" + }, + "example": { + "id": "CL-be30ed0b-78ec-11ee-83ab-0eca8d1868e1", + "href": "http://apiexamples.vtexcommercestable.com.br/api/dataentities/CL/documents/be30ed0b-78ec-11ee-83ab-0eca8d1868e1", + "documentId": "be30ed0b-78ec-11ee-83ab-0eca8d1868e1" + } + } + } + } + } + }, + "patch": { + "tags": [ + "Documents" + ], + "summary": "Create partial document", + "description": "Creates a partial document, sending only some of the fields.\r\n\r\n> You can use this request to create documents in any given data entity. Because of this, you are not restricted to using the fields exemplified below in your requests. But you should be aware of the fields allowed or required for each document you wish to update. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createorupdatepartialdocument", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true, + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the document to be created.", + "example": "4e4c55ac-e491-11e6-94f4-0ac138d2d42e" + }, + "{fieldName}": { + "type": "string", + "description": "Field(s) to be filled in and its respective value(s).", + "example": "{fieldValue}" + } + } + }, + "example": { + "id": "4e4c55ac-e491-11e6-94f4-0ac138d2d42e", + "addressName": "4726026151251" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdHrefDocumentID" + }, + "example": { + "id": "CL-be30ed0b-78ec-11ee-83ab-0eca8d1868e1", + "href": "http://apiexamples.vtexcommercestable.com.br/api/dataentities/CL/documents/be30ed0b-78ec-11ee-83ab-0eca8d1868e1", + "documentId": "be30ed0b-78ec-11ee-83ab-0eca8d1868e1" + } + } + } + }, + "304": { + "description": "Not Modified" + } + } + } + }, + "/api/dataentities/{acronym}/documents/{id}": { + "get": { + "tags": [ + "Documents" + ], + "summary": "Get document", + "description": "Retrieves a document.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getdocument", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + }, + { + "$ref": "#/components/parameters/fields" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Document" + }, + "example": { + "id": "2f5dde81-1613-11ea-82ee-12f868feb457", + "accountId": "a8b27fb4-6516-4cc0-82b6-a5f2b011e6e2", + "accountName": "apiexamples", + "dataEntityId": "AS" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "description": "Error response body.", + "type": "object", + "properties": { + "Message": { + "description": "Error message.", + "type": "string" + } + } + }, + "example": { + "Message": "Cannot read private fields" + } + } + } + } + } + }, + "put": { + "tags": [ + "Documents" + ], + "summary": "Create document with custom ID or update entire document", + "description": "Creates a new document with a custom ID, or updates an entire document if there is already a document with the informed ID.\r\n\r\n>ℹ️ You can use this request to create or update documents in any given data entity. Because of this, you are not restricted to using the fields exemplified below in your requests. But you should be aware of the fields allowed or required for each document you wish to update.\r\n\r\n## Custom field types\r\n\r\nThe table below presents the types of custom fields you can use when creating or updating documents in Master Data v1 and example values.\r\n\r\n| Field Type| Example value |\r\n| - | - |\r\n| Boolean | `true` |\r\n| Currency | `2.5` |\r\n| Date | `1992-11-17` |\r\n| Date_Time | `2016-09-14T19:21:01.3163733Z` |\r\n| Decimal | `2.5` |\r\n| Email | `meu@email.com` |\r\n| Integer | `1000000` |\r\n| Long | `1000000000` |\r\n| Percent | `85.42` |\r\n| Time | `23:50` |\r\n| URL | `https://www.vtex.com` |\r\n| Varchar10 | `Lorem ipsu` |\r\n| Varchar50 | `Lorem ipsum dolor sit amet, consectetur adipiscing` |\r\n| Varchar750 | `Lorem ipsum dolor sit amet, consectetur adipiscing elit...` |\r\n| Varchar100 | `Lorem ipsum dolor sit amet, consectetur adipiscing elit...` |\r\n| Relationship | `5eb31afb-7ab0-11e6-94b4-0a44686e393f` |\r\n| Text | `Lorem ipsum dolor sit amet, consectetur adipiscing elit...` |\r\n \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Updateentiredocument", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object with document fields and their respective values.", + "additionalProperties": true, + "properties": { + "{fieldName}": { + "type": "string", + "description": "Field name and value.", + "example": "{fieldValue}" + } + } + }, + "example": { + "Boolean": true, + "Currency": 2.5, + "Date": "1992-11-17", + "Date_Time": "2016-09-14T19:21:01.3163733Z", + "Decimal": 2.5, + "Email": "meu@email.com", + "Integer": 1000000, + "Long": 1000000000, + "Percent": 85.42, + "Time": "23:50", + "URL": "http://www.vtex.com", + "Varchar10": "Lorem ipsu", + "Varchar50": "Lorem ipsum dolor sit amet, consectetur adipiscing", + "Varchar750": "Lorem ipsum dolor sit amet, consectetur adipiscing elit...", + "Varchar100": "Lorem ipsum dolor sit amet, consectetur adipiscing elit...", + "Relationship": "5eb31afb-7ab0-11e6-94b4-0a44686e393f", + "Text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit..." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + } + }, + "patch": { + "tags": [ + "Documents" + ], + "summary": "Update partial document", + "description": "Updates a subset of fields of a document, without impacting the other fields.\r\n\r\n>ℹ️ You can use this request to update documents in any given data entity. Because of this, you are not restricted to using the fields exemplified below in your requests. But you should be aware of the fields allowed or required for each document you wish to update. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Updatepartialdocument", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Object with the fields to be updated and their respective values." + }, + "example": { + "addressName": "4726026151253" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + } + }, + "delete": { + "tags": [ + "Documents" + ], + "summary": "Delete document", + "description": "Deletes a document. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Deletedocument", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/dataentities/{acronym}/documents/{id}/versions": { + "get": { + "tags": [ + "Versions" + ], + "summary": "List versions", + "description": "Lists all versions of a document. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Listversions", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Listversion" + } + }, + "example": [ + { + "id": "_EAR0cJ7XB5k5grnmm0zeKGlVvVM9WCPV_", + "date": "2016-10-18T16:53:32+00:00" + }, + { + "id": "_E5SH9WXVvhPBNnbQtYAAGqrIysIeNYhy_", + "date": "2016-09-08T20:11:42+00:00" + }, + { + "id": "_cwVfOG7S6XeAiDBhNpLiJM1cwRiJcvdp_", + "date": "2016-07-14T00:36:36+00:00" + } + ] + } + } + } + } + } + }, + "/api/dataentities/{acronym}/documents/{id}/versions/{versionId}": { + "get": { + "tags": [ + "Versions" + ], + "summary": "Get version", + "description": "Returns the version of a document. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getversion", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + }, + { + "name": "versionId", + "in": "path", + "description": "Unique identifier of the version to retrieve.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "_X58kLameckHYRuBMUbaimlhwqslsrrwT_" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Getversion" + }, + "example": { + "id": "version-id", + "author": "user-id", + "document": { + "id": "2f5dde81-1613-11ea-82ee-12f868feb457", + "accountId": "a8b27fb4-6516-4cc0-82b6-a5f2b011e6e2", + "accountName": "apiexamples", + "dataEntityId": "AS" + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Versions" + ], + "summary": "Update version", + "description": "Updates the version of a document. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Putversion", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + }, + { + "name": "versionId", + "in": "path", + "description": "Unique identifier of the version to update.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "_X58kLameckHYRuBMUbaimlhwqslsrrwT_" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdHref" + }, + "example": { + "Id": "CL-b818cbda-e489-11e6-94f4-0ac138d2d42e", + "Href": "http://{{accountName}}.vtexcommercestable.com.br/api/dataentities/CL/documents/b818cbda-e489-11e6-94f4-0ac138d2d42e" + } + } + } + }, + "304": { + "description": "Not Modified\n\nThis response happens when the versionId informed in the path already corresponds to the current version of the document." + } + } + } + }, + "/api/dataentities/{acronym}/scroll": { + "get": { + "tags": [ + "Scroll" + ], + "summary": "Scroll documents", + "description": "Returns a list of documents according to query parameter filters. If you need to query the entire database, or your collection is over 10000 documents, use this endpoint.\r\n\r\nIn the first request, the `X-VTEX-MD-TOKEN` token will be obtained in the response header. This token must be passed to the next request in the `_token` query string parameter. The token expires after 20 minutes of inactivity, and each request made with the token during this time resets the expiration timer.\r\n\r\nAfter the token is obtained, it is no longer necessary to send the filter or document size per page parameters. You only need to resend the token until the document collection is empty.\r\n\r\n### First request example:\r\n```\r\n/dataentities/CL/scroll?isCluster=true&_size=250&_fields=email,firstName\r\n```\r\n\r\nTo inform the number of documents per request, use the query string parameter `_size`, which has the maximum value of 1000.\r\n\r\nAfter the first request, retrieve the token in the header `X-VTEX-MD-TOKEN` and make the next requests.\r\n\r\n### Example of subsequent requests:\r\n```\r\n/dataentities/CL/scroll?_token={tokenValue}\r\n```\r\n\r\n>ℹ️ Learn more about [Pagination in the Master Data API](https://developers.vtex.com/docs/guides/pagination-in-the-master-data-api).\r\n\r\n## Query examples\r\n\r\n\r\n| **Filter Type** | **Example** |\r\n|-|-|\r\n| **Simple filter** | `/dataentities/CL/scroll?email=my@email.com` |\r\n| **Complex filter** | `/dataentities/CL/scroll?_where=(firstName=Jon OR lastName=Smith) OR (createdIn between 2001-01-01 AND 2016-01-01)` |\r\n| **Date range** | `/dataentities/CL/scroll?_where=createdIn between 2001-01-01 AND 2016-01-01` |\r\n| **Numeric field range** | `/dataentities/CL/scroll?_where=age between 18 AND 25` |\r\n| **Partial filter** | `/dataentities/CL/scroll?firstName=*Maria*` |\r\n| **Null values** | `/dataentities/CL/scroll?_where=firstName is null` |\r\n| **Non-null values** | `/dataentities/CL/scroll?_where=firstName is not null` |\r\n| **Difference** | `/dataentities/CL/scroll?_where=firstName<>maria` |\r\n| **Greater than** | `/dataentities/CL/scroll?_where=number>5` |\r\n| **Less than** | `/dataentities/CL/scroll?_where=date<2001-01-01` |\r\n\r\n>⚠️ Avoid sending too many requests with wildcards (`*`) in the search parameters or that use the `keyword` parameter. This may lead to this endpoint being temporarily blocked for your account. If this happens, you will receive an error with status code `429`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Scrolldocuments", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/fields" + }, + { + "name": "_where", + "in": "query", + "description": "Defines a condition the document must comply with. When referring to fields, you can use a nested field up to the first level (e.g. `wishlistProduct.productName`).", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "firstName is not null" + } + }, + { + "name": "_sort", + "in": "query", + "description": "Defines sorting mode in two parts. The first part is the name of the field you want to sort by. It can be a nested field up to the first level (e.g. `wishlistProduct.productName`). In the second part, use `ASC` for ascending order or `DESC` for descending order.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "firstName ASC" + } + }, + { + "name": "_size", + "in": "query", + "description": "Maximum amount of documents returned per request. The maximum value you can set is `1000`.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "10" + } + }, + { + "name": "_token", + "in": "query", + "description": "Value of the `X-VTEX-MD-TOKEN` token obtained in the response header of the first request, necessary on subsequent requests to continue scrolling through documents. The token expires after 20 minutes of inactivity, and each request made with the token during this time resets the expiration timer.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "123456" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "X-VTEX-MD-TOKEN": { + "schema": { + "type": "string", + "description": "Scroll token, which must be informed in the `_token` query parameter in the subsequent requests. The token expires after 20 minutes of inactivity, and each request made with the token during this time resets the expiration timer." + } + }, + "REST-Content-Total": { + "schema": { + "type": "string", + "description": "Total amount of documents corresponding to the query." + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of documents.", + "items": { + "type": "object", + "description": "Object representing each document.", + "properties": { + "additionalProperties": { + "type": "string", + "description": "Custom properties." + }, + "id": { + "type": "string", + "description": "Unique identifier of the document." + }, + "accountId": { + "type": "string", + "description": "Unique identifier of the account." + }, + "accountName": { + "type": "string", + "description": "Account name." + }, + "dataEntityId": { + "type": "string", + "description": "Two-letter string that identifies the data entity." + } + } + } + }, + "example": [ + { + "id": "2f5dde81-1613-11ea-82ee-12f868feb457", + "accountId": "a8b27fb4-6516-4cc0-82b6-a5f2b011e6e2", + "accountName": "apiexamples", + "dataEntityId": "AS" + }, + { + "id": "3b3a3fc9-164b-11ea-82ee-121449f60ecb", + "accountId": "a8b27fb4-6516-4cc0-82b6-a5f2b011e6e2", + "accountName": "apiexamples", + "dataEntityId": "AS" + } + ] + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Response body with error message.", + "properties": { + "Message": { + "description": "Error message." + } + } + }, + "example": { + "Message": "Maximum simultaneous scrolls rate exceeded (10)" + } + } + } + }, + "429": { + "description": "Too Many Requests\n\nWildcard queries temporarily blocked due to excessive usage. Consider adjusting your code to remove them or reduce the rate of search requests with wildcards (*). This temporary block may also be due to excessive use of requests with the parameter `keyword`." + } + } + } + }, + "/api/dataentities/{acronym}/search": { + "get": { + "tags": [ + "Search" + ], + "summary": "Search documents", + "description": "Retrieves Master Data v1 documents' information, while choosing which fields will be returned and filtering documents by specific fields.\r\n\r\n>ℹ️ Learn more about [Pagination in the Master Data API](https://developers.vtex.com/docs/guides/pagination-in-the-master-data-api) and [Querying documents in Master Data v1](https://developers.vtex.com/docs/guides/querying-documents-in-master-data-v1).\r\n\r\n## Query examples\r\n\r\n\r\n| **Filter Type** | **Example** |\r\n|-|-|\r\n| **Simple filter** | `/dataentities/CL/search?email=my@email.com` |\r\n| **Complex filter** | `/dataentities/CL/search?_where=(firstName=Jon OR lastName=Smith) OR (createdIn between 2001-01-01 AND 2016-01-01)` |\r\n| **Date range** | `/dataentities/CL/search?_where=createdIn between 2001-01-01 AND 2016-01-01` |\r\n| **Numeric field range** | `/dataentities/CL/search?_where=age between 18 AND 25` |\r\n| **Partial filter** | `/dataentities/CL/search?firstName=*Maria*` |\r\n| **Null values** | `/dataentities/CL/search?_where=firstName is null` |\r\n| **Non-null values** | `/dataentities/CL/search?_where=firstName is not null` |\r\n| **Difference** | `/dataentities/CL/search?_where=firstName<>maria` |\r\n| **Greater than** | `/dataentities/CL/search?_where=number>5` |\r\n| **Less than** | `/dataentities/CL/search?_where=date<2001-01-01` |\n\r\n\r>⚠️ Avoid sending too many requests with wildcards (`*`) in the search parameters or that use the `keyword` parameter. This may lead to this endpoint being temporarily blocked for your account. If this happens you will receive an error with status code `503`. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Searchdocuments", + "parameters": [ + { + "name": "REST-Range", + "in": "header", + "description": "Specifies the range of documents to be returned in the response. The value should follow the format `resources={x}-{y}`, where:\n* `x`: Index of the first document in the returned array.\n* `y`: Index of the last document in the returned array + 1.\n\nThis field controls pagination by defining the subset of documents to be retrieved. The maximum number of documents returned per query is limited to 100.\nFor example, `resources=0-10` returns the first 10 documents.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "resources=0-10" + } + }, + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/fields" + }, + { + "name": "_where", + "in": "query", + "description": "Defines a condition the document must comply with. When referring to fields, you can use a nested field up to the first level (e.g. `wishlistProduct.productName`).", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "firstName is not null" + } + }, + { + "name": "_sort", + "in": "query", + "description": "Defines sorting mode in two parts. The first part is the name of the field you want to sort by. It can be a nested field up to the first level (e.g. `wishlistProduct.productName`). In the second part, use `ASC` for ascending order or `DESC` for descending order.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "firstName ASC" + } + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "REST-Content-Range": { + "schema": { + "type": "string", + "description": "Indicates the range of documents returned in the current response, as well as the total number of documents available in the dataset. The value follows the format `resources={x}-{y}/{total}`, where:\n* `x`: Index of the first document in the returned array.\n* `y`: Index of the last document in the returned array + 1.\n* `total`: Total number of documents that match the query.\nFor example, `resources=0-10/98` indicates that documents from 0 to 9 are returned out of a total of 98 matching documents.", + "example": "resources=0-10/98" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of documents.", + "items": { + "type": "object", + "description": "Object representing each document.", + "properties": { + "additionalProperties": { + "type": "string", + "description": "Custom properties." + }, + "id": { + "type": "string", + "description": "Unique identifier of the document." + }, + "accountId": { + "type": "string", + "description": "Unique identifier of the account." + }, + "accountName": { + "type": "string", + "description": "Account name." + }, + "dataEntityId": { + "type": "string", + "description": "Two-letter string that identifies the data entity." + } + } + } + }, + "example": [ + { + "id": "2f5dde81-1613-11ea-82ee-12f868feb457", + "accountId": "a8b27fb4-6516-4cc0-82b6-a5f2b011e6e2", + "accountName": "apiexamples", + "dataEntityId": "AS" + }, + { + "id": "3b3a3fc9-164b-11ea-82ee-121449f60ecb", + "accountId": "a8b27fb4-6516-4cc0-82b6-a5f2b011e6e2", + "accountName": "apiexamples", + "dataEntityId": "AS" + } + ] + } + } + }, + "503": { + "description": "Service Unavailable\n\nWildcard queries temporarily blocked due to excessive usage. Consider adjusting your code to remove them or reduce the rate of search requests with wildcards (*). This temporary block may also be due to excessive use of requests with the parameter `keyword`." + } + } + } + }, + "/api/dataentities/{acronym}/documents/{id}/{field}/attachments/{file-name}": { + "get": { + "tags": [ + "Attachments" + ], + "summary": "Retrieve attachment", + "description": "Retrieves a file that had been previously saved in a field of type `File`.\r\n\r\n>⚠️ Make sure to include the file extension in the name, like in this example: `/api/dataentities/CL/documents/123/file/attachments/image.png`. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Retrieveattachment", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + }, + { + "name": "field", + "in": "path", + "description": "Name of the field where the file is saved, as it appears on VTEX Admin.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "image" + } + }, + { + "name": "file-name", + "in": "path", + "description": "File name and extension.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "image.png" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "image/jpg": { + "schema": { + "type": "string", + "format": "binary", + "description": "Image file." + }, + "example": "binary image data" + } + } + } + } + } + }, + "/api/dataentities/{acronym}/documents/{id}/{field}/attachments": { + "post": { + "tags": [ + "Attachments" + ], + "summary": "Save attachment", + "description": "Saves a file in a field of type `File`. Learn more about [Data entity field types](https://help.vtex.com/en/tutorial/creating-data-entity--tutorials_1265#understanding-the-types).`\n\r\n\r> You can upload more than one file. Just add a new field in the `form-data` with type `File`. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Saveattachment", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + }, + { + "name": "field", + "in": "path", + "description": "Name of the field to attach the file to, as it appears in VTEX Admin.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "profilePicture" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "encoding": {}, + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "type": "array", + "description": "Files to be uploaded.", + "items": { + "type": "string", + "format": "binary", + "description": "File to be uploaded." + } + } + } + }, + "example": { + "file": [ + "image.jpg" + ] + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/dataentities/{acronym}/documents/{id}/clusters": { + "post": { + "tags": [ + "Clusters" + ], + "summary": "Validate document by clusters", + "description": "Validate documents by clusters.\n\r\n\r> Learn more about Master Data [clusters](https://help.vtex.com/en/tutorial/how-can-i-create-cluster-of-customers--frequentlyAskedQuestions_1724). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "ValidateDocumentbyClusters", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array of clusters.", + "items": { + "type": "object", + "description": "Cluster information.", + "properties": { + "name": { + "type": "string", + "description": "Cluster validation rule name.", + "example": "male" + }, + "rule": { + "type": "string", + "description": "Cluster validation rule.", + "example": "gender=male" + } + } + } + }, + "example": [ + { + "name": "male", + "rule": "gender=male" + }, + { + "name": "complex", + "rule": "((gender=male AND percent=0.35) AND any is null) AND (name=*go*)" + }, + { + "name": "complex2", + "rule": "((gender=male AND percent=0.35) AND any is not null) OR (name=*go*)" + }, + { + "name": "createdIn", + "rule": "createdIn between 2015-10-28 AND 2015-10-30" + } + ] + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/dataentities/{acronym}/documents/{id}/score": { + "put": { + "tags": [ + "Score" + ], + "summary": "Update scores", + "description": "Updates the score of more than one `Score2` type field and more than one key. Learn more about [Data entity field types](https://help.vtex.com/en/tutorial/creating-data-entity--tutorials_1265#understanding-the-types). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Putscores", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PutscoresRequest" + } + }, + "example": [ + { + "field": "carttag", + "key": "Payment", + "point": 1, + "until": "10m" + }, + { + "field": "scoretest", + "key": "Point 1", + "point": 1, + "until": "1d" + } + ] + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/dataentities/{acronym}/documents/{id}/score/{field-name}": { + "put": { + "tags": [ + "Score" + ], + "summary": "Update score by field", + "description": "Updates the score of a specific `Score2` type field. Learn more about [Data entity field types](https://help.vtex.com/en/tutorial/creating-data-entity--tutorials_1265#understanding-the-types). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Putscorebyfield", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "name": "id", + "in": "path", + "description": "Unique identifier of the document.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "SP-b818cbda-e489-11e6-94f4-0ac138d2d42e" + } + }, + { + "name": "field-name", + "in": "path", + "description": "Name of the field to score.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "carttag" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PutscorebyfieldRequest" + }, + "example": { + "key": "first key", + "point": 1, + "until": "10m" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + } + }, + "delete": { + "tags": [ + "Score" + ], + "summary": "Delete score by field", + "description": "Removes a key from a specific `Score2` type field. Learn more about [Data entity field types](https://help.vtex.com/en/tutorial/creating-data-entity--tutorials_1265#understanding-the-types). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Deletescorebyfield", + "parameters": [ + { + "$ref": "#/components/parameters/acronym" + }, + { + "$ref": "#/components/parameters/id" + }, + { + "name": "field-name", + "in": "path", + "description": "Name of the field to remove a key from.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "carttag" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeletescorebyfieldRequest" + }, + "example": { + "key": "first key" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/dataentities/AD/documents/{addressId}": { + "get": { + "tags": [ + "Addresses" + ], + "summary": "Get address by ID", + "description": "This endpoint retrieves information of a specific address by its unique identifier.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "addressId", + "in": "path", + "description": "ID of the address to retrieve.", + "required": true, + "schema": { + "type": "string" + }, + "example": "4286e252-050b-11f0-b37f-d6617047d485" + }, + { + "name": "_fields", + "in": "query", + "description": "Specifies that all fields of the document should be included in the response.", + "required": true, + "schema": { + "type": "string", + "default": "_all" + }, + "example": "_all" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddressResponse" + }, + "example": { + "addressLabel": "NC Office", + "addressType": "commercial", + "city": "Raleigh", + "complement": "", + "country": "USA", + "countryfake": null, + "geoCoordinate": "", + "neighborhood": "", + "number": "11", + "postalCode": "48226", + "receiverName": "Backpack-Klub-LLC", + "reference": null, + "state": "NC", + "street": "Toringon Street", + "userId": "2da4e9ab-050b-11f0-b37f-f4b136dbcce1", + "id": "4286e252-050b-11f0-b37f-d6617047d485", + "accountId": "5f1fe23b-9fd1-417d-a4aa-14df38e7746e", + "accountName": "qastore", + "dataEntityId": "AD", + "createdBy": "c83ea7ed-f875-4a10-b0a0-98d96aedab06", + "createdIn": "2025-03-19T21:44:01.4199691Z", + "updatedBy": null, + "updatedIn": null, + "lastInteractionBy": "c83ea7ed-f875-4a10-b0a0-98d96aedab06", + "lastInteractionIn": "2025-03-19T21:44:01.4199691Z", + "followers": [], + "tags": [], + "auto_filter": null + } + } + } + } + }, + "operationId": "get_api_dataentities_ad_documents_ByAddressId" + }, + "patch": { + "tags": [ + "Addresses" + ], + "summary": "Update address by ID", + "description": "This endpoint allows you to update an existing address document in the `AD` data entity. Partially updates a customer address.\n\n> ⚠️ When updating addresses you must send each field according to the specifications provided. Otherwise, the Checkout module will not be able to autofill data during the shopping flow, which can block the purchase. Learn more about [SmartCheckout - Customer information automatic fill-in](https://help.vtex.com/en/tutorial/smartcheckout-preenchimento-automatico-de-dados-do-cliente--2Nuu3xAFzdhIzJIldAdtan#).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateCustomerAddress", + "parameters": [ + { + "$ref": "#/components/parameters/_schema" + }, + { + "name": "addressId", + "in": "path", + "description": "ID of the address to update.", + "required": true, + "schema": { + "type": "string" + }, + "example": "4286e252-050b-11f0-b37f-d6617047d485" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/createUpdateAddressRequests" + }, + "example": { + "addressName": "NC Office", + "addressLabel": "NC Office", + "postalCode": "48226", + "street": "Toringon Street", + "number": "11", + "neighborhood": "", + "complement": "", + "city": "Raleigh", + "state": "NC", + "country": "USA", + "receiverName": "Backpack-Klub-LLC", + "geoCoordinate": "", + "addressType": "commercial", + "reference": "Grey building", + "userId": "2da4e9ab-050b-11f0-b37f-d6617047d485" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/documentResponse" + }, + "example": { + "Id": "AD-b818cbda-e489-11e6-94f4-0ac138d2d42e", + "Href": "http://api.vtex.com/my-store-name/dataentities/AD/documents/b818cbda-e489-11e6-94f4-0ac138d2d42e" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Addresses" + ], + "summary": "Delete address by ID", + "description": "This endpoint allows you to delete a specific address document from the `AD` data entity. Deletes a customer address.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "DeleteCustomerAD", + "parameters": [ + { + "name": "addressId", + "in": "path", + "description": "ID of the address to be deleted.", + "required": true, + "schema": { + "type": "string" + }, + "example": "4286e252-050b-11f0-b37f-d6617047d485" + } + ], + "responses": { + "204": { + "description": "No Content" + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "parameters": { + "acronym": { + "name": "acronym", + "in": "path", + "description": "Two-letter string that identifies the data entity.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "SP" + } + }, + "id": { + "name": "id", + "in": "path", + "description": "Unique identifier of the document.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "SP-b818cbda-e489-11e6-94f4-0ac138d2d42e" + } + }, + "fields": { + "name": "_fields", + "in": "query", + "description": "Names of the fields that will be returned per document, separated by a comma `,`. It is possible to fetch all fields using `_all` as the value of this query parameter. However, in order to avoid permission errors, we strongly recommend informing only the names of the exact fields that will be used.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "email,firstName,document" + } + }, + "_schema": { + "name": "_schema", + "in": "query", + "description": "Name of the [schema](https://developers.vtex.com/docs/guides/master-data-schema-lifecycle) that the document complies with. This field is required when using `_where` or `_fields` query parameters.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "schema" + } + } + }, + "schemas": { + "Listdataentity": { + "title": "Listdataentity", + "required": [ + "acronym", + "name", + "primaryKeyType", + "allowGetAll" + ], + "type": "object", + "description": "Data entity information.", + "properties": { + "acronym": { + "title": "acronym", + "type": "string", + "description": "Two-letter string that identifies the data entity." + }, + "name": { + "title": "name", + "type": "string", + "description": "Data entity name." + }, + "primaryKeyType": { + "title": "primaryKeyType", + "type": "string", + "description": "Primary key type." + }, + "allowGetAll": { + "title": "allowGetAll", + "type": "boolean", + "description": "Defines if it will be allowed to retrieve all fields from documents from this data entity at once using the [Get document](https://developers.vtex.com/docs/api-reference/masterdata-api#get-/api/dataentities/-acronym-/documents/-id-) endpoint (`true`) or not (`false`)." + } + } + }, + "Getdataentityfields": { + "title": "Data entity structure", + "required": [ + "acronym", + "name", + "primaryKeyType", + "allowGetAll", + "fields" + ], + "type": "object", + "description": "Data entity structure.", + "properties": { + "acronym": { + "$ref": "#/components/schemas/Listdataentity/properties/acronym" + }, + "name": { + "$ref": "#/components/schemas/Listdataentity/properties/name" + }, + "primaryKeyType": { + "$ref": "#/components/schemas/Listdataentity/properties/primaryKeyType" + }, + "allowGetAll": { + "$ref": "#/components/schemas/Listdataentity/properties/allowGetAll" + }, + "fields": { + "title": "fields", + "type": "array", + "description": "List of fields that documents from the given data entity have.", + "items": { + "$ref": "#/components/schemas/Field" + } + } + } + }, + "Field": { + "title": "Field", + "description": "Field information.", + "required": [ + "name", + "type", + "displayName", + "isNullable", + "isSearchable", + "isFilter", + "isInternal" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Field name." + }, + "type": { + "type": "string", + "description": "Field type." + }, + "displayName": { + "type": "string", + "description": "Field display name." + }, + "isNullable": { + "type": "boolean", + "description": "Defines whether the field is nullable (`true`) or not (`false`)." + }, + "isSearchable": { + "type": "boolean", + "description": "Defines whether the field is searchable (`true`) or not (`false`)." + }, + "isFilter": { + "type": "boolean", + "description": "Defines whether the field is a filter (`true`) or not (`false`)." + }, + "isInternal": { + "type": "boolean", + "description": "Defines whether the field is for internal use only (`true`) or not (`false`)." + } + } + }, + "IdHrefDocumentID": { + "type": "object", + "description": "Document information.", + "properties": { + "id": { + "type": "string", + "description": "ID of the document that was created, with data entity prefix." + }, + "href": { + "type": "string", + "description": "Document reference URL." + }, + "documentId": { + "type": "string", + "description": "Unique identifier of the document." + } + } + }, + "IdHref": { + "title": "IdHref", + "required": [ + "Id", + "Href" + ], + "type": "object", + "description": "Document information.", + "properties": { + "Id": { + "type": "string", + "description": "ID of the document that was created, with data entity prefix." + }, + "Href": { + "type": "string", + "description": "Document reference URL." + } + } + }, + "PutscoresRequest": { + "title": "PutscoresRequest", + "required": [ + "field", + "key", + "point", + "until" + ], + "type": "object", + "description": "Score information.", + "properties": { + "field": { + "type": "string", + "description": "Field name.", + "example": "carttag" + }, + "key": { + "type": "string", + "description": "Key name.", + "example": "Payment" + }, + "point": { + "type": "integer", + "format": "int32", + "description": "Amount of points to be added to the score.", + "example": 1 + }, + "until": { + "type": "string", + "description": "Amount of time the added points will be valid for.", + "example": "10m" + } + } + }, + "PutscorebyfieldRequest": { + "title": "PutscorebyfieldRequest", + "required": [ + "key", + "point", + "until" + ], + "type": "object", + "description": "Request body object to update score.", + "properties": { + "key": { + "type": "string", + "description": "Key name.", + "example": "Payment" + }, + "point": { + "type": "integer", + "format": "int32", + "description": "Amount of points to be added to the score.", + "example": 1 + }, + "until": { + "type": "string", + "description": "Amount of time the added points will be valid for.", + "example": "10m" + } + } + }, + "DeletescorebyfieldRequest": { + "title": "DeletescorebyfieldRequest", + "required": [ + "key" + ], + "type": "object", + "description": "Request body object to delete score.", + "properties": { + "key": { + "type": "string", + "description": "Key name.", + "example": "Payment" + } + } + }, + "Listversion": { + "title": "Listversion", + "required": [ + "id", + "date" + ], + "type": "object", + "description": "Version information.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the version." + }, + "date": { + "type": "string", + "description": "Date when the version was created, in ISO 8601 format." + } + } + }, + "Getversion": { + "title": "Getversion", + "required": [ + "id", + "author", + "document" + ], + "type": "object", + "description": "Version information.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the version." + }, + "author": { + "type": "string", + "description": "Unique identifier of the user who created the version." + }, + "document": { + "$ref": "#/components/schemas/Document" + } + } + }, + "Document": { + "title": "Document", + "required": [ + "id", + "dataEntityId", + "accountId", + "accountName" + ], + "type": "object", + "description": "Object representing each document.", + "properties": { + "{customProperty}": { + "type": "string", + "description": "Custom property." + }, + "id": { + "type": "string", + "description": "Unique identifier of the document." + }, + "accountId": { + "type": "string", + "description": "Unique identifier of the account." + }, + "accountName": { + "type": "string", + "description": "Account name." + }, + "dataEntityId": { + "type": "string", + "description": "Two-letter string that identifies the data entity." + } + } + }, + "createUpdateAddressRequests": { + "type": "object", + "description": "Request body object.", + "properties": { + "addressName": { + "type": "string", + "description": "Address name.", + "example": "My house", + "nullable": true + }, + "addressLabel": { + "type": "string", + "description": "Custom label for the address used by shoppers and buyer org managers.", + "example": "NC Office", + "nullable": true + }, + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`, among others. For B2B Buyer Portal, this field is required and its possible values are `commercial` for shipping or `invoice` for billing.", + "enum": [ + "commercial", + "invoice" + ], + "example": "commercial", + "nullable": true + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive orders at this address. This field is required for B2B Buyer Portal.", + "example": "Clark Kent.", + "nullable": true + }, + "city": { + "type": "string", + "description": "City of the shipping address. This field is required for B2B Buyer Portal.", + "example": "Raleigh", + "nullable": true + }, + "state": { + "type": "string", + "description": "State of the shipping address. The state or province of the address. This field is required for B2B Buyer Portal.", + "example": "NC", + "nullable": true + }, + "country": { + "type": "string", + "description": "Three letter ISO code of the country of the shipping address. This field is required for B2B Buyer Portal.", + "example": "USA", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal Code. The format must be compatible with the country postal code format (e.g., `00000` for addresses in the USA). This field is required for B2B Buyer Portal.", + "example": "12345", + "nullable": true + }, + "street": { + "type": "string", + "description": "The street name of the address. This field is required for B2B Buyer Portal.", + "example": "Main Street", + "nullable": true + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address. This field is required for B2B Buyer Portal.", + "example": "300", + "nullable": true + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the address.", + "example": "Downtown", + "nullable": true + }, + "complement": { + "type": "string", + "description": "Additional information or details that help identify or locate the shipping address, such as apartment number, suite, floor, or unit (if applicable).", + "example": "3rd floor", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Optional reference point or nearby landmark to help locate the shipping address during delivery (e.g., next to a park or behind a building).", + "example": "Next to the park", + "nullable": true + }, + "geoCoordinate": { + "type": "string", + "description": "The geographical coordinates of the address (optional). This field is recommended for B2B Buyer Portal.", + "example": "40.7128,-74.0060", + "nullable": true + }, + "userId": { + "type": "string", + "description": "ID of the customer to whom the address belongs. This information is the `id` returned by the customer profile (or contract) creation request. This field is required for B2B Buyer Portal.", + "example": "7e03m794-a33a-11e9-84rt6-0adfa64s5a8e", + "nullable": true + } + } + }, + "documentResponse": { + "required": [ + "Id", + "Href" + ], + "type": "object", + "description": "Response body object.", + "properties": { + "Id": { + "type": "string", + "description": "ID of the document that was created or updated." + }, + "Href": { + "type": "string", + "description": "Document reference URL." + } + } + }, + "AddressResponse": { + "type": "object", + "description": "Response body for an address document.", + "properties": { + "addressLabel": { + "type": "string", + "nullable": true, + "description": "A user-defined label to identify the address." + }, + "addressType": { + "type": "string", + "nullable": true, + "description": "The type of address: `commercial` for shipping, `invoice` for billing.", + "enum": [ + "commercial", + "invoice" + ] + }, + "city": { + "type": "string", + "nullable": true, + "description": "The city of the address." + }, + "complement": { + "type": "string", + "nullable": true, + "description": "Any additional information for the address (e.g., apartment, floor)." + }, + "country": { + "type": "string", + "nullable": true, + "description": "The country of the address in three-letter code format (e.g., `\"USA\"`)." + }, + "countryfake": { + "type": "string", + "nullable": true, + "description": "Placeholder or optional country value." + }, + "geoCoordinate": { + "type": "string", + "nullable": true, + "description": "Geographical coordinates of the address (latitude and longitude)." + }, + "neighborhood": { + "type": "string", + "nullable": true, + "description": "The neighborhood of the address." + }, + "number": { + "type": "string", + "nullable": true, + "description": "The street number of the address." + }, + "postalCode": { + "type": "string", + "nullable": true, + "description": "The postal code of the address. The format must be compatible with the address country postal code format. (e.g., `00000` for addresses in the USA)." + }, + "receiverName": { + "type": "string", + "nullable": true, + "description": "The name of the person or entity receiving at this address." + }, + "reference": { + "type": "string", + "nullable": true, + "description": "Optional reference point or landmark near the address." + }, + "state": { + "type": "string", + "nullable": true, + "description": "The state or province of the address." + }, + "street": { + "type": "string", + "nullable": true, + "description": "The street name of the address." + }, + "userId": { + "type": "string", + "nullable": true, + "description": "The ID of the user or related entity." + }, + "id": { + "type": "string", + "nullable": true, + "description": "Unique identifier for this address record." + }, + "accountId": { + "type": "string", + "nullable": true, + "description": "ID of the account related to this address." + }, + "accountName": { + "type": "string", + "nullable": true, + "description": "Name of the account related to this address." + }, + "dataEntityId": { + "type": "string", + "nullable": true, + "description": "ID of the data entity this address belongs to (always `\"AD\"`)." + }, + "createdBy": { + "type": "string", + "nullable": true, + "description": "ID of the user who created the address record." + }, + "createdIn": { + "type": "string", + "nullable": true, + "description": "Timestamp of when the address record was created." + }, + "updatedBy": { + "type": "string", + "nullable": true, + "description": "ID of the user who last updated the address record." + }, + "updatedIn": { + "type": "string", + "nullable": true, + "description": "Timestamp of the last update to the address record." + }, + "lastInteractionBy": { + "type": "string", + "nullable": true, + "description": "ID of the user who had the last interaction with the record." + }, + "lastInteractionIn": { + "type": "string", + "nullable": true, + "description": "Timestamp of the last interaction with the record." + }, + "followers": { + "type": "array", + "nullable": true, + "description": "List of users following this address record.", + "items": { + "type": "string", + "description": "User ID." + } + }, + "tags": { + "type": "array", + "nullable": true, + "description": "List of tags associated with this address.", + "items": { + "type": "string", + "description": "Tag value." + } + }, + "auto_filter": { + "type": "string", + "nullable": true, + "description": "Optional field used for automatic filtering or categorization." + } + } + } + } + }, + "tags": [ + { + "name": "Data entities" + }, + { + "name": "Documents" + }, + { + "name": "Customer profiles" + }, + { + "name": "Addresses" + }, + { + "name": "Versions" + }, + { + "name": "Scroll" + }, + { + "name": "Search" + }, + { + "name": "Attachments" + }, + { + "name": "Clusters" + }, + { + "name": "Score" + } + ] +} diff --git a/clients/manitou/output/masterdata-v2.json b/clients/manitou/output/masterdata-v2.json new file mode 100644 index 0000000000..073284e38e --- /dev/null +++ b/clients/manitou/output/masterdata-v2.json @@ -0,0 +1,1604 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Master Data API - v2", + "description": ">ℹ️ Master Data v2 is not compatible with data entities from previous versions, such as CL and AD.\r\n\r\n[Master Data](https://developers.vtex.com/docs/guides/master-data-introduction) is a secure, fast, scalable, and extensible solution that allows users to create their own entities, store data, and retrieve information directly from the storefront or external integrations.\r\n\r\nSeveral internal VTEX modules use Master Data as a data repository, including Orders and Sales App. \r\n\r\nThere are two main ways to use Master Data:\r\n\r\n- [Directly from the storefront](#directly-from-the-storefront)\r\n- [With an external integration](#external-integrations)\r\n\r\n## Directly from the storefront\r\n\r\nWhen using Master Data within the storefront, consider the following:\r\n\r\n- Use the storefront host to query or store information to avoid issues related to Cross-origin resource sharing (CORS).\r\n- Use the relative path to avoid CORS issues.\r\n- Configure the JSON Schema of the Data Entity to specify which information should be public and which should not be.\r\n- Avoid creating query loops to prevent potential throttling issues or APIs being disabled due to security protection measures.\r\n- Never add authentication keys, such as `X-VTEX-API-AppKey` or `X-VTEX-API-AppToken`, via JavaScript as this could pose security risks.\r\n\r\n## External integrations\r\n\r\nWhen using Master Data to store data from an external integration, such as client data from another service, consider the following:\r\n\r\n- Use the host `{{accountName}}.vtexcommercestable.com.br`.\r\n- Use the authentication keys (`X-VTEX-API-AppKey` ou `X-VTEX-API-AppToken`).\r\n\r\n## Common parameters\r\n\r\n| Name | Description |\r\n| -------- | -------- |\r\n| `accountName` | Account name in VTEX License Manager. |\r\n| `name` | Data Entity name. |\r\n| `schema` | JSON Schema of a Data Entity. |\r\n| `id` | Identifier of a document. |\r\n| `X-VTEX-API-AppKey` | appKey. |\r\n| `X-VTEX-API-AppToken` | appToken. | \r\n\r\n## Index\r\n\r\n### Documents\r\n\r\n- `POST` [Create new document](https://developers.vtex.com/docs/api-reference/master-data-api-v2#post-/api/dataentities/-dataEntityName-/documents)\r\n- `PATCH` [Create partial document](https://developers.vtex.com/docs/api-reference/master-data-api-v2#patch-/api/dataentities/-dataEntityName-/documents)\r\n- `GET` [Get document](https://developers.vtex.com/docs/api-reference/master-data-api-v2#get-/api/dataentities/-dataEntityName-/documents/-id-)\r\n- `PUT` [Create document with custom ID or Update entire document](https://developers.vtex.com/docs/api-reference/master-data-api-v2#put-/api/dataentities/-dataEntityName-/documents/-id-)\r\n- `PATCH` [Update partial document](https://developers.vtex.com/docs/api-reference/master-data-api-v2#patch-/api/dataentities/-dataEntityName-/documents/-id-)\r\n- `DELETE` [Delete document](https://developers.vtex.com/docs/api-reference/master-data-api-v2#delete-/api/dataentities/-dataEntityName-/documents/-id-)\r\n\r\n### Search\r\n\r\n- `GET` [Search documents](https://developers.vtex.com/docs/api-reference/master-data-api-v2#get-/api/dataentities/-dataEntityName-/search)\r\n\r\n### Scroll\r\n\r\n- `GET` [Scroll documents](https://developers.vtex.com/docs/api-reference/master-data-api-v2#get-/api/dataentities/-dataEntityName-/scroll)\r\n\r\n### Schemas\r\n\r\n- `GET` [Get schemas](https://developers.vtex.com/docs/api-reference/master-data-api-v2#get-/api/dataentities/-dataEntityName-/schemas)\r\n- `GET` [Get schema by name](https://developers.vtex.com/docs/api-reference/master-data-api-v2#get-/api/dataentities/-dataEntityName-/schemas/-schemaName-)\r\n- `PUT` [Save schema by name](https://developers.vtex.com/docs/api-reference/master-data-api-v2#put-/api/dataentities/-dataEntityName-/schemas/-schemaName-)\r\n- `DELETE` [Delete schema by name](https://developers.vtex.com/docs/api-reference/master-data-api-v2#delete-/api/dataentities/-dataEntityName-/schemas/-schemaName-)\r\n\r\n### Indices\r\n\r\n- `GET` [Get indices](https://developers.vtex.com/docs/api-reference/master-data-api-v2#get-/api/dataentities/-dataEntityName-/indices)\r\n- `PUT` [Put indices](https://developers.vtex.com/docs/api-reference/master-data-api-v2#put-/api/dataentities/-dataEntityName-/indices)\r\n- `GET` [Get index by name](https://developers.vtex.com/docs/api-reference/master-data-api-v2#get-/api/dataentities/-dataEntityName-/indices/-index_name-)\r\n- `DELETE` [Delete index by name](https://developers.vtex.com/docs/api-reference/master-data-api-v2#delete-/api/dataentities/-dataEntityName-/indices/-index_name-)\r\n\r\n### Clusters\r\n\r\n- `POST` [Validate document by clusters](https://developers.vtex.com/docs/api-reference/master-data-api-v2#post-/api/dataentities/-dataEntityName-/documents/-id-/clusters)\r\n\r\n### Versions\r\n\r\n- `GET` [List versions](https://developers.vtex.com/docs/api-reference/master-data-api-v2#get-/api/dataentities/-dataEntityName-/documents/-id-/versions)\r\n- `GET` [Get version](https://developers.vtex.com/docs/api-reference/master-data-api-v2#get-/api/dataentities/-dataEntityName-/documents/-id-/versions/-versionId-)\r\n- `PUT` [Put version](https://developers.vtex.com/docs/api-reference/master-data-api-v2#put-/api/dataentities/-dataEntityName-/documents/-id-/versions/-versionId-)", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/dataentities/{dataEntityName}/documents": { + "post": { + "tags": [ + "Documents" + ], + "summary": "Create new document", + "description": "Creates a new document with an ID automatically generated by VTEX, corresponding to a new or existing data entity. If an unexisting `dataEntityName` is informed in the path, this endpoint will create the data entity as well as the new document. For example, you can create a new customer profile or address.\r\n\r\n>ℹ️ You can use this request to create documents for any data entity. Because of this, you are not restricted to using the fields exemplified below in your requests. However you should be aware of the fields allowed or required for each document you wish to create.\r\n\r\n> To create a document with a custom ID, refer to the [Create document with custom ID](https://developers.vtex.com/docs/api-reference/master-data-api-v2#put-/api/dataentities/-dataEntityName-/documents/-id-) endpoint.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createnewdocument", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/_schema" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DocumentRequest" + }, + "example": { + "email": "clark.kent@examplemail.com", + "firstName": "Clark", + "lastName": "Kent", + "phone": "+12025550195", + "documentType": "CPF", + "document": "12345678900", + "isCorporate": false, + "isNewsletterOptIn": false, + "localeDefault": "en-US" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDocumentResponse" + }, + "example": { + "Id": "Newsletter-cbfc4f67-6ea3-11ee-83ab-0a8d18f9f827", + "Href": "http://cosmetics2.vtexcommercestable.com.br/api/dataentities/Newsletter/documents/cbfc4f67-6ea3-11ee-83ab-0a8d18f9f827", + "DocumentId": "cbfc4f67-6ea3-11ee-83ab-0a8d18f9f827" + } + } + } + }, + "202": { + "description": "Accepted\n\nThe document creation has been accepted and will be processed asynchronously due to background operations.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDocumentResponse" + }, + "example": { + "Id": "Newsletter-cbfc4f67-6ea3-11ee-83ab-0a8d18f9f827", + "Href": "http://cosmetics2.vtexcommercestable.com.br/api/dataentities/Newsletter/documents/cbfc4f67-6ea3-11ee-83ab-0a8d18f9f827", + "DocumentId": "cbfc4f67-6ea3-11ee-83ab-0a8d18f9f827" + } + } + } + } + }, + "deprecated": false + }, + "patch": { + "tags": [ + "Documents" + ], + "summary": "Create partial document", + "description": "This request allows you to partially update a document corresponding to a given data entity.\r\n\r\n>ℹ️ You can use this request to create documents for any given data entity. Because of this, you are not restricted to using the fields exemplified below in your requests. But you should be aware of the fields allowed or required for each document you wish to update.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createorupdatepartialdocument", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/_schema" + } + ], + "requestBody": { + "description": "JSON with the fields to be updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DocumentRequest" + }, + "example": { + "phone": "+12025550195", + "isNewsletterOptIn": false + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDocumentResponse" + }, + "example": { + "Id": "Newsletter-b818cbda-e489-11e6-94f4-0ac138d2d42e", + "Href": "http://api.vtex.com/apiexamples/dataentities/Newsletter/documents/b818cbda-e489-11e6-94f4-0ac138d2d42e", + "DocumentId": "b818cbda-e489-11e6-94f4-0ac138d2d42e" + } + } + } + } + }, + "deprecated": false + } + }, + "/api/dataentities/{dataEntityName}/documents/{id}": { + "get": { + "tags": [ + "Documents" + ], + "summary": "Get document", + "description": "Retrieves a document by ID.\n\r\n\r>ℹ️ Assign the `_fields` parameter in the query string to retrieve the desired fields. If you want to return all the fields use `_fields=_all`.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getdocument", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/id" + }, + { + "$ref": "#/components/parameters/_fields" + }, + { + "$ref": "#/components/parameters/_schema" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Using_fields_all" + }, + "example": { + "id": "b818cbda-e489-11e6-94f4-0ac138d2d42e", + "accountId": "14af940d-9300-4279-9355-61d44c2ff879", + "accountName": "apiexamples", + "dataEntityId": "Newsletter" + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Documents" + ], + "summary": "Create document with custom ID or update entire document", + "description": "Creates a new document with a custom ID, or updates an entire document if there is already a document with the informed ID. For example, you can update a customer profile or address.\r\n\r\n>ℹ️ You can use this request to create or update documents in any given data entity. Because of this, you are not restricted to using the fields exemplified below in your requests. But you should be aware of the fields allowed or required for each document you wish to update.\r\n\r\nA## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Updateentiredocument", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/_where" + }, + { + "$ref": "#/components/parameters/_schema" + }, + { + "name": "id", + "in": "path", + "description": "ID of the document. If you inform an **unused ID**, this endpoint will create a new document with the informed custom ID, differently from the [Create new document](https://developers.vtex.com/docs/api-reference/master-data-api-v2#post-/api/dataentities/-dataEntityName-/documents) endpoint, which automatically generates the ID. If you inform an **existing ID**, this endpoint will update the entire document associated with the informed ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "Newsletter-b818cbda-e489-11e6-94f4-0ac138d2d42e" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DocumentRequest" + }, + "example": { + "email": "clark.kent@examplemail.com", + "firstName": "Clark", + "lastName": "Kent", + "phone": "+12025550195", + "documentType": "CPF", + "document": "12345678900", + "isCorporate": false, + "isNewsletterOptIn": false, + "localeDefault": "en-US" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Bad Request\n\nInvalid information in JSON." + }, + "403": { + "description": "Forbidden\n\nUnauthorized access." + } + }, + "deprecated": false + }, + "patch": { + "tags": [ + "Documents" + ], + "summary": "Update partial document", + "description": "This request allows you to partially update a document corresponding to a given data entity. For example, you can update some fields of a customer profile or address.\r\n\r\n>ℹ️ You can use this request to update documents for any given data entity. Because of this, you are not restricted to using the fields exemplified below in your requests. But you should be aware of the fields allowed or required for each document you wish to update.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Updatepartialdocument", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/_where" + }, + { + "$ref": "#/components/parameters/_schema" + }, + { + "$ref": "#/components/parameters/id" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DocumentRequest" + }, + "example": { + "phone": "+12025550195", + "isNewsletterOptIn": false + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Documents" + ], + "summary": "Delete document", + "description": "Deletes a document. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Deletedocument", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/id" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "deprecated": false + } + }, + "/api/dataentities/{dataEntityName}/search": { + "get": { + "tags": [ + "Search" + ], + "summary": "Search documents", + "description": "Retrieves Master Data v2 documents' information, while choosing which fields will be returned and filtering documents by specific fields.\r\n\r\n> The response header `REST-Content-Range` indicates the total amount of results for that specific search. For example, it may return `resources 0-100/136108`, which indicates it has returned the first 100 results out of a total of 136108.\r\n\r\nBelow you can see some query examples and learn more about each query parameter.\n\r\n\rLearn more about [Pagination in the Master Data API](https://developers.vtex.com/docs/guides/pagination-in-the-master-data-api).\r\n\r\n>⚠️ Avoid sending too many requests with wildcards (`*`) in the search parameters or that use the `keyword` parameter. This may lead to this endpoint being temporarily blocked for your account. If this happens you will receive an error with status code `503`.\r\n\r\n## Query examples\r\n\r\n| **Query Type** | **Example** |\r\n|-|-|\r\n| **Simple filter** | `/dataentities/Newsletter/search?email=my@email.com` |\r\n| **Complex filter** | `/dataentities/Newsletter/search?_where=(firstName=Jon OR lastName=Smith) OR (createdIn between 2001-01-01 AND 2016-01-01)` |\r\n| **Date range** | `/dataentities/Newsletter/search?_where=createdIn between 2001-01-01 AND 2016-01-01` |\r\n| **Range numeric fields** | `/dataentities/Newsletter/search?_where=age between 18 AND 25` |\r\n| **Partial filter** | `/dataentities/Newsletter/search?firstName=*Maria*` |\r\n| **Filter for null values** | `/dataentities/Newsletter/search?_where=firstName is null` |\r\n| **Filter for non-null values** | `/dataentities/Newsletter/search?_where=firstName is not null` |\r\n| **Filter for difference** | `/dataentities/Newsletter/search?_where=firstName<>maria` |\r\n| **Filter greater than** | `/dataentities/Newsletter/search?_where=number>5` |\r\n| **Filter less than** | `/dataentities/Newsletter/search?_where=date<2001-01-01` |\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Searchdocuments", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/REST-Range" + }, + { + "$ref": "#/components/parameters/_fields" + }, + { + "$ref": "#/components/parameters/_where" + }, + { + "$ref": "#/components/parameters/_schema" + }, + { + "$ref": "#/components/parameters/_sort" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "REST-Content-Range": { + "schema": { + "type": "string", + "description": "Indicates the range of documents returned in the current response, as well as the total number of documents available in the dataset. The value follows the format `resources={x}-{y}/{total}`, where:\n* `x`: Index of the first document in the returned array.\n* `y`: Index of the last document in the returned array + 1.\n* `total`: Total number of documents that match the query.\nFor example, `resources=0-10/98` indicates that documents from 0 to 9 are returned out of a total of 98 matching documents.", + "example": "resources=0-10/98" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of documents that correspond to the result of the search.", + "items": { + "$ref": "#/components/schemas/Using_fields_all" + } + }, + "example": [ + { + "id": "b818cbda-e489-11e6-94f4-0ac138d2d42e", + "accountId": "14af940d-9300-4279-9355-61d44c2ff879", + "accountName": "apiexamples", + "dataEntityId": "Newsletter" + } + ] + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Response body object.", + "properties": { + "Message": { + "type": "string", + "description": "Error message." + } + } + }, + "example": { + "Message": "Field 'X' not found in schema" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Response body object.", + "properties": { + "Message": { + "type": "string", + "description": "Error message." + } + } + }, + "example": { + "Message": "Cannot filter by private fields" + } + } + } + }, + "503": { + "description": "Service Unavailable\n\nWildcard queries temporarily blocked due to excessive usage. Consider adjusting your code to remove them or reduce the rate of search requests with wildcards (*). This temporary block may also be due to excessive use of requests with the parameter `keyword`." + } + }, + "deprecated": false + } + }, + "/api/dataentities/{dataEntityName}/scroll": { + "get": { + "tags": [ + "Scroll" + ], + "summary": "Scroll documents", + "description": "Returns a list of documents according to query parameter filters. If you need to query the entire database, or your collection is over 10000 documents, use this endpoint.\r\n\r\nIn the first request, the `X-VTEX-MD-TOKEN` token will be obtained in the response header. This token must be passed to the next request in the `_token` query string parameter. The token expires after 20 minutes of inactivity, and each request made with the token during this time resets the expiration timer.\r\n\r\nAfter the token is obtained, it is no longer necessary to send the filter or document size per page parameters. You only need to resend the token until the document collection is empty.\r\n\r\nFirst request:\r\n```\r\n/dataentities/Newsletter/scroll?isCluster=true&_size=250&_fields=email,firstName\r\n```\r\n\r\nRetrieve the token in the header `X-VTEX-MD-TOKEN` from the first request's response and use it to make the following requests.\r\n\r\nSubsequent requests:\r\n```\r\n/dataentities/Newsletter/scroll?_token={tokenValue}\r\n```\n\r\n\rLearn more about [Pagination in the Master Data API](https://developers.vtex.com/docs/guides/pagination-in-the-master-data-api).\r\n\r\n>⚠️ Avoid sending too many requests with wildcards (`*`) in the search parameters or using the `keyword` parameter. This may lead to this endpoint being temporarily blocked for your account. If this happens you will receive an error with status code `429`.\r\n\r\n## Query examples\r\n\r\n| **Query Type** | **Example** |\r\n|-|-|\r\n| **Simple filter** | `/dataentities/Newsletter/scroll?email=my@email.com` |\r\n| **Complex filter** | `/dataentities/Newsletter/scroll?_where=(firstName=Jon OR lastName=Smith) OR (createdIn between 2001-01-01 AND 2016-01-01)` |\r\n| **Date range** | `/dataentities/Newsletter/scroll?_where=createdIn between 2001-01-01 AND 2016-01-01` |\r\n| **Range numeric fields** | `/dataentities/Newsletter/scroll?_where=age between 18 AND 25` |\r\n| **Partial filter** | `/dataentities/Newsletter/scroll?firstName=*Maria*` |\r\n| **Filter for null values** | `/dataentities/Newsletter/scroll?_where=firstName is null` |\r\n| **Filter for non-null values** | `/dataentities/Newsletter/scroll?_where=firstName is not null` |\r\n| **Filter for difference** | `/dataentities/Newsletter/scroll?_where=firstName<>maria` |\r\n| **Filter greater than** | `/dataentities/Newsletter/scroll?_where=number>5` |\r\n| **Filter less than** | `/dataentities/Newsletter/scroll?_where=date<2001-01-01` |\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Scrolldocuments", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/_token" + }, + { + "$ref": "#/components/parameters/_size" + }, + { + "$ref": "#/components/parameters/_fields" + }, + { + "$ref": "#/components/parameters/_where" + }, + { + "$ref": "#/components/parameters/_schema" + }, + { + "$ref": "#/components/parameters/_sort" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "X-VTEX-MD-TOKEN": { + "schema": { + "type": "string", + "description": "Scroll token, which must be informed in the `_token` query parameter in the subsequent requests. The token expires after 20 minutes of inactivity, and each request made with the token during this time resets the expiration timer." + } + }, + "REST-Content-Total": { + "schema": { + "type": "string", + "description": "Total amount of documents corresponding to the query." + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of documents that correspond to the result of the scroll.", + "items": { + "$ref": "#/components/schemas/Using_fields_all" + } + }, + "example": [ + { + "id": "b818cbda-e489-11e6-94f4-0ac138d2d42e", + "accountId": "14af940d-9300-4279-9355-61d44c2ff879", + "accountName": "apiexamples", + "dataEntityId": "Newsletter" + } + ] + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Response body object.", + "properties": { + "Message": { + "type": "string", + "description": "Error message." + } + } + }, + "example": { + "Message": "Operation not found for this token: 'X'" + } + } + } + }, + "429": { + "description": "Too Many Requests\n\nWildcard queries temporarily blocked due to excessive usage. Consider adjusting your code to remove them or reduce the rate of search requests with wildcards (*). This temporary block may also be due to excessive use of requests with the parameter `keyword`." + } + }, + "deprecated": false + } + }, + "/api/dataentities/{dataEntityName}/schemas": { + "get": { + "tags": [ + "Schemas" + ], + "summary": "Get schemas", + "description": "Retrieves all existing [schemas](https://developers.vtex.com/docs/guides/master-data-schema-lifecycle) for a given data entity. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getschemas", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array with existing schemas. In case there is only one existing schema, it will be an object instead, without the `name` property and the named `schema` object, following the same structure as the [Get schema by name](https://developers.vtex.com/docs/api-reference/master-data-api-v2#get-/api/dataentities/-dataEntityName-/schemas/-schemaName-?endpoint=get-/api/dataentities/-dataEntityName-/schemas/-schemaName-) endpoint response.", + "items": { + "$ref": "#/components/schemas/GetSchemasResponse" + } + }, + "example": [ + { + "name": "testschema", + "schema": { + "properties": { + "name": { + "type": "string" + } + } + } + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/dataentities/{dataEntityName}/schemas/{schemaName}": { + "get": { + "tags": [ + "Schemas" + ], + "summary": "Get schema by name", + "description": "Returns an existing [schema](https://developers.vtex.com/docs/guides/master-data-schema-lifecycle) for a given data entity. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getschemabyname", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/schemaName" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SaveschemabynameRequest" + }, + "example": { + "properties": { + "name": { + "type": "string" + } + } + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Schemas" + ], + "summary": "Save schema by name", + "description": "Creates or edits a data entity schema. Learn more about [Master Data schemas](https://developers.vtex.com/vtex-rest-api/docs/master-data-schema-lifecycle).\r\n\r\n> Note that if you send a `schemaName` that does not exist for that data entity, this request will create it.\r\n\r\nThis request can also be used to [create or edit Master Data v2 triggers](https://developers.vtex.com/vtex-rest-api/docs/setting-up-triggers-in-master-data-v2).\r\n\r\n> Each Master Data v2 data entity can have up to 60 schemas. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Saveschemabyname", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/schemaName" + } + ], + "requestBody": { + "description": "Request body for saving schema", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SaveschemabynameRequest" + }, + "example": { + "properties": { + "name": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Response body object.", + "properties": { + "Message": { + "type": "string", + "description": "Success message." + } + } + }, + "example": { + "Message": "JSON Schema persisted successfully. Revalidation and indexing process running in background." + } + } + } + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Schemas" + ], + "summary": "Delete schema by name", + "description": "Deletes an existing [schema](https://developers.vtex.com/docs/guides/master-data-schema-lifecycle) for a given data entity. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Deleteschemabyname", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/schemaName" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "deprecated": false + } + }, + "/api/dataentities/{dataEntityName}/indices": { + "get": { + "tags": [ + "Indices" + ], + "summary": "Get indices", + "description": "Returns the list of [indices](https://developers.vtex.com/docs/guides/master-data-components#index) by data entity. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Index | **View index details** |\r\n| Dynamic Storage | Index | **List index** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getindices", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array with information about indices.", + "items": { + "$ref": "#/components/schemas/Index" + } + }, + "example": [ + { + "name": "fullName", + "acronym": "Newsletter", + "isGlobal": false, + "multiple": false, + "fields": "firstName,lastName" + } + ] + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Indices" + ], + "summary": "Create index", + "description": "Creates an [index](https://developers.vtex.com/docs/guides/master-data-components#index). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Index | **Edit index** |\r\n| Dynamic Storage | Index | **Create index** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Putindices", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + } + ], + "requestBody": { + "description": "Request body for creating an index", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PutindicesRequest" + }, + "example": { + "name": "indexName", + "multiple": false, + "fields": "fieldName" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false + } + }, + "/api/dataentities/{dataEntityName}/indices/{index_name}": { + "get": { + "tags": [ + "Indices" + ], + "summary": "Get index by name", + "description": "Retrieves an [index](https://developers.vtex.com/docs/guides/master-data-components#index). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Index | **View index details** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getindexbyname", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/index_name" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Index" + }, + "example": { + "name": "fullName", + "acronym": "Newsletter", + "isGlobal": false, + "multiple": false, + "fields": "firstName,lastName" + } + } + } + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Indices" + ], + "summary": "Delete index by name", + "description": "Deletes an [index](https://developers.vtex.com/docs/guides/master-data-components#index). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Index | **Remove index** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Deleteindexbyname", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/index_name" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "deprecated": false + } + }, + "/api/dataentities/{dataEntityName}/documents/{id}/clusters": { + "post": { + "tags": [ + "Clusters" + ], + "summary": "Validate document by clusters", + "description": "Checks if a document is present in one or more clusters (specific set of field values).\r\n\r\n>ℹ️ There is a limit of five rules per request. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Validatedocumentbyclusters", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/id" + } + ], + "requestBody": { + "description": "Request body for validating a document by clusters", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of cluster validation rule information.", + "items": { + "type": "object", + "description": "Cluster validation rule information.", + "properties": { + "name": { + "type": "string", + "description": "Cluster name.", + "example": "male" + }, + "rule": { + "type": "string", + "description": "Cluster validation rule.", + "example": "gender=male" + } + } + } + }, + "example": [ + { + "name": "male", + "rule": "gender=male" + }, + { + "name": "complex", + "rule": "((gender=male AND percent=0.35) AND any is null) AND (name=*go*)" + }, + { + "name": "complex2", + "rule": "((gender=male AND percent=0.35) AND any is not null) OR (name=*go*)" + }, + { + "name": "createdIn", + "rule": "createdIn between 2015-10-28 AND 2015-10-30" + } + ] + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array with objects validating each cluster rule.", + "items": { + "type": "object", + "description": "Cluster rule validation object.", + "properties": { + "name": { + "type": "string", + "description": "Cluster name." + }, + "isValid": { + "type": "boolean", + "description": "Informs if the document is valid according to the cluster rule (`true`) or not (`false`)." + } + } + } + }, + "example": [ + { + "name": "male", + "isValid": false + }, + { + "name": "complex", + "isValid": false + }, + { + "name": "complex2", + "isValid": false + }, + { + "name": "createdIn", + "isValid": false + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/dataentities/{dataEntityName}/documents/{id}/versions": { + "get": { + "tags": [ + "Versions" + ], + "summary": "List versions", + "description": "Lists the versions of a document. \r\n\r\n>ℹ Master Data documents are versioned. This means that, for each change, a new version is generated. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Listversions", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/id" + }, + { + "name": "load", + "in": "query", + "description": "If true, return all the fields in each version of the document.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "fields", + "in": "query", + "description": "If `load` is true, the response will return only these specific fields.", + "required": false, + "schema": { + "type": "string", + "default": "id,dataEntityId,isNewsletterOptIn,createdBy" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Listversion" + } + }, + "example": [ + { + "id": "_EAR0cJ7XB5k5grnmm0zeKGlVvVM9WCPy_", + "date": "2016-10-18T16:53:32+00:00", + "document": { + "id": "72e7f8dd-1168-23ec-82ac-0e2b61663eb4", + "dataEntityId": "Newsletter", + "isNewsletterOptIn": true, + "createdBy": "81fc8b10-25b7-48de-b425-7b93554002cc" + } + }, + { + "id": "_E5SH9WXVvhPBNnbQtYAAGqrIysIeNYhV_", + "date": "2016-09-08T20:11:42+00:00", + "document": { + "id": "72e7f8dd-1168-23ec-82ac-0e2b61663eb4", + "dataEntityId": "Newsletter", + "isNewsletterOptIn": true, + "createdBy": "81fc8b10-25b7-48de-b425-7b93554002cc" + } + } + ] + } + } + } + }, + "deprecated": false + } + }, + "/api/dataentities/{dataEntityName}/documents/{id}/versions/{versionId}": { + "get": { + "tags": [ + "Versions" + ], + "summary": "Get version", + "description": "Returns the version of a document. \r\n\r\n>ℹ Master Data documents are versioned. This means that, for each change, a new version is generated. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Read only documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getversion", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/id" + }, + { + "$ref": "#/components/parameters/versionId" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Getversion" + }, + "example": { + "id": "cSIAceEelBEmSOqRkzJYLRQuGgi6.CqF", + "author": "1f936e42-79b3-4e5b-91d2-da9a8af0b215", + "document": { + "id": "cbfc4f67-6ea3-11ee-83ab-0a8d18f9f827", + "dataEntityId": "Newsletter", + "accountId": "a8b27fb4-6516-4cc0-82b6-a5f2b011e6e2", + "accountName": "apiexamples", + "followers": [], + "schemas": [ + "testprofile", + "testprofile2" + ], + "email": "clark.kent@examplemail.com" + } + } + } + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Versions" + ], + "summary": "Update version", + "description": "Updates the document's version value.\r\n\r\n>ℹ Master Data documents are versioned. This means that, for each change, a new version is generated. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Dynamic Storage | Dynamic storage generic resources | **Insert or update document (not remove)** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Full access to all documents** |\r\n| Dynamic Storage | Dynamic storage generic resources | **Master Data administrator** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Putversion", + "parameters": [ + { + "$ref": "#/components/parameters/dataEntityName" + }, + { + "$ref": "#/components/parameters/id" + }, + { + "name": "versionId", + "in": "path", + "description": "ID of the version to update", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "_8sZcvyj4nng7FgA2RgtVVZmkIxb4Pbfe_" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/documentResponse" + }, + "example": { + "Id": "Newsletter-b818cbda-e489-11e6-94f4-0ac138d2d42e", + "Href": "http://api.vtex.com/apiexamples/dataentities/Newsletter/documents/b818cbda-e489-11e6-94f4-0ac138d2d42e" + } + } + } + }, + "304": { + "description": "Not Modified" + } + }, + "deprecated": false + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "schemas": { + "DocumentRequest": { + "title": "DocumentRequest", + "type": "object", + "description": "This can be any pure JSON document. Add new _Key-Value_ pairs to test.", + "additionalProperties": true + }, + "Using_fields_all": { + "title": "Using_fields=_all", + "required": [ + "id", + "accountId", + "accountName", + "dataEntityId" + ], + "type": "object", + "description": "Document information.", + "properties": { + "id": { + "type": "string", + "description": "ID of the document." + }, + "accountId": { + "type": "string", + "description": "ID of the VTEX account." + }, + "accountName": { + "type": "string", + "description": "Name of the VTEX account." + }, + "dataEntityId": { + "type": "string", + "description": "Data entity name." + } + } + }, + "SaveschemabynameRequest": { + "title": "SaveschemabynameRequest", + "required": [ + "properties" + ], + "type": "object", + "description": "Schema.", + "properties": { + "properties": { + "type": "object", + "description": "Object containing schema properties.", + "properties": { + "name": { + "type": "object", + "description": "Property name.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "Type of property.", + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string" + ] + } + } + } + } + } + } + }, + "GetSchemasResponse": { + "title": "GetSchemasResponse", + "required": [ + "name", + "schema" + ], + "type": "object", + "description": "Schema.", + "properties": { + "name": { + "type": "string", + "description": "Schema name." + }, + "schema": { + "type": "object", + "description": "Object with schema properties.", + "properties": { + "properties": { + "type": "object", + "description": "Object containing schema properties.", + "properties": { + "name": { + "type": "object", + "description": "Property name.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "Type of property.", + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string" + ] + } + } + } + } + } + } + } + } + }, + "PutindicesRequest": { + "title": "PutindicesRequest", + "required": [ + "name", + "multiple", + "fields" + ], + "type": "object", + "description": "Request body object.", + "properties": { + "name": { + "description": "Name to identify the index.", + "type": "string", + "example": "indexName" + }, + "multiple": { + "description": "Determines whether the values need to be unique. If false, values must be unique.", + "type": "boolean", + "example": false + }, + "fields": { + "description": "Comma-separated fields of the index.", + "type": "string", + "example": "fieldName" + } + } + }, + "Index": { + "type": "object", + "description": "Index information.", + "properties": { + "name": { + "type": "string", + "description": "Index name." + }, + "acronym": { + "type": "string", + "description": "Data entity name." + }, + "isGlobal": { + "type": "boolean", + "description": "Defines whether the index is global (`true`) or not (`false`).", + "deprecated": true + }, + "multiple": { + "type": "boolean", + "description": "Determines whether the values need to be unique. If `false`, values must be unique." + }, + "fields": { + "type": "string", + "description": "Comma-separated fields of the index." + } + } + }, + "Listversion": { + "title": "Listversion", + "required": [ + "id", + "date" + ], + "type": "object", + "description": "Version information.", + "properties": { + "id": { + "type": "string", + "description": "Version ID." + }, + "date": { + "type": "string", + "description": "Date when the version was created in ISO 8601 format." + }, + "document": { + "type": "object", + "description": "Information about the document.", + "properties": { + "id": { + "type": "string", + "description": "Document ID." + }, + "dataEntityId": { + "type": "string", + "description": "Data entity name." + }, + "isNewsletterOptIn": { + "type": "boolean", + "description": "Indicates whether client otped to receive the store newsletter (`true`) or not (`false`).", + "nullable": true + }, + "createdBy": { + "type": "string", + "description": "ID of the user who created the document." + } + } + } + } + }, + "Getversion": { + "title": "Getversion", + "required": [ + "id", + "author", + "document" + ], + "type": "object", + "description": "Request body object.", + "properties": { + "id": { + "type": "string", + "description": "Version ID." + }, + "author": { + "type": "string", + "description": "ID of the user who created the version." + }, + "document": { + "$ref": "#/components/schemas/Document" + } + } + }, + "Document": { + "title": "Document", + "required": [ + "id", + "dataEntityId", + "accountId", + "accountName", + "followers" + ], + "type": "object", + "description": "Document information.", + "properties": { + "id": { + "type": "string", + "description": "ID of the document." + }, + "dataEntityId": { + "type": "string", + "description": "Data entity name." + }, + "accountId": { + "type": "string", + "description": "ID of the VTEX account." + }, + "accountName": { + "type": "string", + "description": "Name of the VTEX account." + }, + "followers": { + "type": "array", + "description": "Followers.", + "deprecated": true, + "items": { + "type": "string", + "description": "Follower." + } + }, + "schemas": { + "type": "array", + "description": "Schemas which the document is compliant with.", + "items": { + "type": "string", + "description": "Schema name." + } + }, + "email": { + "type": "string", + "description": "User email." + } + } + }, + "CreateDocumentResponse": { + "required": [ + "Id", + "Href", + "DocumentId" + ], + "type": "object", + "description": "Response body object.", + "properties": { + "Id": { + "type": "string", + "description": "ID of the document that was created, with data entity prefix." + }, + "Href": { + "type": "string", + "description": "Document reference URL." + }, + "DocumentId": { + "type": "string", + "description": "ID of the document that was created." + } + } + }, + "documentResponse": { + "required": [ + "Id", + "Href" + ], + "type": "object", + "description": "Response body object.", + "properties": { + "Id": { + "type": "string", + "description": "ID of the document that was created or updated." + }, + "Href": { + "type": "string", + "description": "Document reference URL." + } + } + } + }, + "parameters": { + "dataEntityName": { + "name": "dataEntityName", + "in": "path", + "required": true, + "description": "Name of the data entity.", + "schema": { + "type": "string", + "example": "Newsletter" + } + }, + "_schema": { + "name": "_schema", + "in": "query", + "description": "Name of the [schema](https://developers.vtex.com/docs/guides/master-data-schema-lifecycle) that the document complies with. This field is required when using `_where` or `_fields` query parameters.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "schema" + } + }, + "id": { + "name": "id", + "in": "path", + "description": "ID of the Document.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "b818cbda-e489-11e6-94f4-0ac138d2d42e" + } + }, + "versionId": { + "name": "versionId", + "in": "path", + "description": "ID of the version to update.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "_8sZcvyj4nng7FgA2RgtVVZmkIxb4Pbfe_" + } + }, + "_where": { + "name": "_where", + "in": "query", + "description": "Defines a condition the document must comply with. When referring to fields, you can use a nested field up to the first level (e.g. `wishlistProduct.productName`).", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "firstName is not null" + } + }, + "index_name": { + "name": "index_name", + "in": "path", + "description": "Name of the index.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "{{index_name}}" + } + }, + "schemaName": { + "name": "schemaName", + "in": "path", + "description": "Name of the schema.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "{{schema}}" + } + }, + "REST-Range": { + "name": "REST-Range", + "in": "header", + "description": "Specifies the range of documents to be returned in the response. The value should follow the format `resources={x}-{y}`, where:\n* `x`: Index of the first document in the returned array.\n* `y`: Index of the last document in the returned array + 1.\n\nThis field controls pagination by defining the subset of documents to be retrieved. The maximum number of documents returned per query is limited to 100.\nFor example, `resources=0-10` returns the first 10 documents.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "resources=0-10" + } + }, + "_fields": { + "name": "_fields", + "in": "query", + "description": "Fields that should be returned by document. Separate fields' names with commas. For example `_fields=email,firstName,document`. You can also use `_fields=_all` to fetch all fields.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "email,firstName,document" + } + }, + "_sort": { + "name": "_sort", + "in": "query", + "description": "Defines sorting mode in two parts. The first part is the name of the field you want to sort by. It can be a nested field up to the first level (e.g. `wishlistProduct.productName`). In the second part, use `ASC` for ascending order or `DESC` for descending order.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "firstName ASC" + } + }, + "_token": { + "name": "_token", + "in": "query", + "description": "Value of the `X-VTEX-MD-TOKEN` token obtained in the response header of the first request, necessary on subsequent requests to continue scrolling through documents. The token expires after 20 minutes of inactivity, and each request made with the token during this time resets the expiration timer.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "123456" + } + }, + "_size": { + "name": "_size", + "in": "query", + "description": "Inform the number of documents per request. Maximum value of `1000`.", + "required": false, + "style": "form", + "schema": { + "type": "integer", + "default": 100 + } + } + } + }, + "tags": [ + { + "name": "Documents" + }, + { + "name": "Search" + }, + { + "name": "Scroll" + }, + { + "name": "Schemas" + }, + { + "name": "Indices" + }, + { + "name": "Clusters" + }, + { + "name": "Versions" + } + ] +} diff --git a/clients/manitou/output/orders.checkout.json b/clients/manitou/output/orders.checkout.json new file mode 100644 index 0000000000..cd2f409d80 --- /dev/null +++ b/clients/manitou/output/orders.checkout.json @@ -0,0 +1,130 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Orders API (Checkout)", + "description": "Each purchase a customer makes in your store generates an [order](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196) on VTEX. With the Orders API, you can view orders statuses and manage multiple aspects involved in order fulfillment, such as financial transactions, invoicing, shipping, and subscriptions. You can also [modify orders](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) and make configurations to allow or forbid marketplaces and sellers to change or cancel orders.\r\n\r\n## Order integration\n\r\nTo automate actions related to order processing, you can [integrate orders](https://developers.vtex.com/docs/guides/erp-integration-guide) with systems like ERP (Enterprise Resource Planning) and WMS (Warehouse Management System) using [Feed and Hook](https://developers.vtex.com/docs/guides/orders-feed).\r\n\r\n## Orders API Index\r\n\r\n### Orders\r\n\r\n- `GET` [Get order](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-)\r\n- `GET` [Get orders by order group ID](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/order-group/-orderGroup-)\r\n- `GET` [List orders](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders)\r\n- `POST` [Start handling order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/start-handling)\r\n- `POST` [Cancel order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/cancel)\r\n- `POST` [Register modifications on order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/changes)\r\n\r\n### Order modifications\r\n\r\n- `PATCH` [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes)\r\n- `POST` [Preview order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/preview)\r\n- `GET`[Get order modifications details](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-)\r\n- `GET`[Get order modifications history](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes)\r\n- `GET` [Get order modifications summary](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/pvt/document/-changeOrderId-/change-summary) \r\n- `POST` [Retry order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-/retry)\r\n- `POST`[Cancel order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-/cancel)\r\n- `PUT`[Update Order modifications settings](https://developers.vtex.com/docs/api-reference/orders-api#put-/api/order-system/orders/changes/settings)\r\n- `GET` [Get Order modifications settings](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/changes/settings)\r\n\r\n### Invoice\r\n\r\n- `POST` [Order invoice notification](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/invoice)\r\n- `PATCH` [Update order's partial invoice (send tracking number)](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-)\r\n\r\n### Tracking\r\n\r\n- `PUT` [Update order tracking status](https://developers.vtex.com/docs/api-reference/orders-api#put-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-/tracking)\r\n\r\n### Conversation\r\n\r\n- `GET` [Retrieve order conversation](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-/conversation-message)\r\n\r\n### Payment\r\n\r\n- `GET` [Retrieve payment transaction](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-/payment-transaction)\r\n- `POST` [Send payment notification](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/payments/-paymentId-/payment-notification)\r\n\r\n### Feed v2 (deprecated)\r\n\r\n- `GET` [Get feed order status](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/feed/orders/status)\r\n\r\n### Feed v3\r\n\r\n- `GET` [Get feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/feed/config)\r\n- `POST` [Create or update feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/feed/config)\r\n- `DELETE` [Delete feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#delete-/api/orders/feed/config)\r\n- `GET` [Retrieve feed items](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/feed)\r\n- `POST` [Commit feed items](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/feed)\r\n- `POST` [Test JSONata expression](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/expressions/jsonata)\r\n\r\n### Order hook\r\n\r\n- `GET` [Get hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/hook/config)\r\n- `POST` [Create or update hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/hook/config)\r\n- `DELETE` [Delete hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#delete-/api/orders/hook/config)\r\n\r\n### User orders\r\n\r\n- `GET` [Retrieve user's orders](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/user/orders)\r\n- `GET` [Retrieve user order details](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/user/orders/-orderId-)\r\n\r\n### Change seller\r\n\r\n- `GET` [Get window to change seller](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/checkout/pvt/configuration/window-to-change-seller)\r\n- `POST` [Update window to change seller](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/checkout/pvt/configuration/window-to-change-seller)\r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| :---: | :--- | :--- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/checkout/pvt/configuration/window-to-change-seller": { + "get": { + "tags": [ + "Change seller" + ], + "summary": "Get window to change seller", + "description": "Retrieves a marketplace's window to change seller, that is, the period when it is possible to choose another seller to fulfill a given order after the original seller has canceled it.\n\r\n\rThe default period for this window is of 2 days, but it can be configured by the request Update window to change seller.", + "operationId": "GetWindowToChangeSeller", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "integer", + "description": "Successful requests return the window to change seller value measured in days." + }, + "example": 2 + } + } + } + } + }, + "post": { + "tags": [ + "Change seller" + ], + "summary": "Update window to change seller", + "description": "Updates a marketplace's window to change seller, that is, the period when it is possible to choose another seller to fulfill a given order after the original seller has canceled it.\n\r\n\rIt is possible to check the current window using the request Get window to change seller.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateWindowToChangeSeller", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "waitingTime" + ], + "properties": { + "waitingTime": { + "type": "integer", + "description": "Number of days after order cancelation by a seller, during which another seller may be assigned to fulfill the order.", + "example": 4 + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Created" + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "tags": [ + { + "name": "Orders" + }, + { + "name": "Order modifications" + }, + { + "name": "Invoice" + }, + { + "name": "Tracking" + }, + { + "name": "Conversation" + }, + { + "name": "Payment" + }, + { + "name": "Feed v2 (deprecated)" + }, + { + "name": "Feed v3" + }, + { + "name": "Order hook" + }, + { + "name": "User orders" + }, + { + "name": "Change seller" + } + ] +} diff --git a/clients/manitou/output/orders.oms.json b/clients/manitou/output/orders.oms.json new file mode 100644 index 0000000000..a98e9453b6 --- /dev/null +++ b/clients/manitou/output/orders.oms.json @@ -0,0 +1,16342 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Orders API (OMS)", + "description": "Each purchase a customer makes in your store generates an [order](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196) on VTEX. With the Orders API, you can view orders statuses and manage multiple aspects involved in order fulfillment, such as financial transactions, invoicing, shipping, and subscriptions. You can also [modify orders](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) and make configurations to allow or forbid marketplaces and sellers to change or cancel orders.\r\n\r\n## Order integration\n\r\nTo automate actions related to order processing, you can [integrate orders](https://developers.vtex.com/docs/guides/erp-integration-guide) with systems like ERP (Enterprise Resource Planning) and WMS (Warehouse Management System) using [Feed and Hook](https://developers.vtex.com/docs/guides/orders-feed).\r\n\r\n## Orders API Index\r\n\r\n### Orders\r\n\r\n- `GET` [Get order](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-)\r\n- `GET` [Get orders by order group ID](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/order-group/-orderGroup-)\r\n- `GET` [List orders](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders)\r\n- `POST` [Start handling order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/start-handling)\r\n- `POST` [Cancel order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/cancel)\r\n- `POST` [Register modifications on order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/changes)\r\n\r\n### Order modifications\r\n\r\n- `PATCH` [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes)\r\n- `POST` [Preview order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/preview)\r\n- `GET`[Get order modifications details](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-)\r\n- `GET`[Get order modifications history](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes)\r\n- `GET` [Get order modifications summary](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/pvt/document/-changeOrderId-/change-summary) \r\n- `POST` [Retry order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-/retry)\r\n- `POST`[Cancel order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-/cancel)\r\n- `PUT`[Update Order modifications settings](https://developers.vtex.com/docs/api-reference/orders-api#put-/api/order-system/orders/changes/settings)\r\n- `GET` [Get Order modifications settings](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/changes/settings)\r\n\r\n### Invoice\r\n\r\n- `POST` [Order invoice notification](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/invoice)\r\n- `PATCH` [Update order's partial invoice (send tracking number)](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-)\r\n\r\n### Tracking\r\n\r\n- `PUT` [Update order tracking status](https://developers.vtex.com/docs/api-reference/orders-api#put-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-/tracking)\r\n\r\n### Conversation\r\n\r\n- `GET` [Retrieve order conversation](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-/conversation-message)\r\n\r\n### Payment\r\n\r\n- `GET` [Retrieve payment transaction](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-/payment-transaction)\r\n- `POST` [Send payment notification](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/payments/-paymentId-/payment-notification)\r\n\r\n### Feed v2 (deprecated)\r\n\r\n- `GET` [Get feed order status](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/feed/orders/status)\r\n\r\n### Feed v3\r\n\r\n- `GET` [Get feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/feed/config)\r\n- `POST` [Create or update feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/feed/config)\r\n- `DELETE` [Delete feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#delete-/api/orders/feed/config)\r\n- `GET` [Retrieve feed items](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/feed)\r\n- `POST` [Commit feed items](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/feed)\r\n- `POST` [Test JSONata expression](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/expressions/jsonata)\r\n\r\n### Order hook\r\n\r\n- `GET` [Get hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/hook/config)\r\n- `POST` [Create or update hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/hook/config)\r\n- `DELETE` [Delete hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#delete-/api/orders/hook/config)\r\n\r\n### User orders\r\n\r\n- `GET` [Retrieve user's orders](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/user/orders)\r\n- `GET` [Retrieve user order details](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/user/orders/-orderId-)\r\n\r\n### Change seller\r\n\r\n- `GET` [Get window to change seller](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/checkout/pvt/configuration/window-to-change-seller)\r\n- `POST` [Update window to change seller](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/checkout/pvt/configuration/window-to-change-seller)\r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| :---: | :--- | :--- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/oms/pvt/orders/{orderId}": { + "get": { + "tags": [ + "Orders" + ], + "summary": "Get order", + "description": "Retrieves order details by searching by order ID or sequence number.\r\n\r\n>⚠️ Throttling: Each VTEX account can make up to 6000 requests per minute.\r\n\r\n> You can only access information from orders created in the last two years, and that same period is valid for customers through [My Account](https://help.vtex.com/en/tutorial/how-my-account-works--2BQ3GiqhqGJTXsWVuio3Xh).\r\n\r\n>Check the [Orders onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/orders-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Orders and is organized by focusing on the developer's journey.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| OMS - Full access | View order |\r\n| Checkout Admin | View order |\r\n| IntegrationProfile - Fulfillment Oms | View order |\r\n| OMS - Full access | Orders Full Access |\r\n| Checkout Admin | Orders Full Access |\r\n| IntegrationProfile - Fulfillment Oms | Orders Full Access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "GetOrder", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Order ID is a unique code that identifies an order. Instead of using `orderId`, you can also make the request using the sequence, a six-digit string that follows the order ID. For example, in order 1268540501456-01 (501456), the sequence is 501456. To use this parameter, replace the value between `{ }` keys in `seq{sequence-number}` with the sequence. For example: `seq501456`.", + "example": "1172452900788-01 or seq501456", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01 or seq501456" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "orderId": { + "type": "string", + "description": "Order ID." + }, + "sequence": { + "type": "string", + "description": "Sequence number part of the order ID. For example, in order `v70530116str-01`, the sequence is `70530116`." + }, + "marketplaceOrderId": { + "type": "string", + "description": "Marketplace order ID." + }, + "marketplaceServicesEndpoint": { + "type": "string", + "description": "Endpoint provided by the marketplace for post purchase communication." + }, + "sellerOrderId": { + "type": "string", + "description": "Seller order ID." + }, + "origin": { + "type": "string", + "description": "Order's [origin in the order flow](https://developers.vtex.com/docs/guides/orders-overview#understanding-order-flow-types).", + "enum": [ + "Marketplace", + "Fulfillment", + "Chain" + ] + }, + "affiliateId": { + "type": "string", + "description": "Three-letter [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) code configured by the seller to identify a marketplace." + }, + "salesChannel": { + "type": "string", + "description": "Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) ID related to the order." + }, + "merchantName": { + "type": "string", + "description": "For a VTEX store, the merchant's name will be the same as the account name. An external seller can have a `merchantName`, but it will not be an account name.", + "nullable": true + }, + "status": { + "type": "string", + "description": "[Order status](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196) in the workflow." + }, + "workflowIsInError": { + "type": "boolean", + "description": "Indicates if the order processing in the workflow presents an error that cannot be solved by automatic retry (`true`), or if there are no processing errors (`false`)." + }, + "statusDescription": { + "type": "string", + "description": "Status description displayed on the VTEX Admin. This field is obsolete and may not return any value.", + "deprecated": true + }, + "value": { + "type": "integer", + "description": "Order total value in cents." + }, + "creationDate": { + "type": "string", + "description": "Order creation date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "lastChange": { + "type": "string", + "description": "Order last change date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "orderGroup": { + "type": "string", + "description": "Order group ID, a segment of the order ID that groups all orders related to the same purchase. For example, in the order ID `v71021570str-02`), the order group ID is `v71021570str`." + }, + "followUpEmail": { + "type": "string", + "description": "Email of the store employee responsible for managing the order." + }, + "lastMessage": { + "type": "string", + "nullable": true, + "description": "Last transactional message sent to the customer." + }, + "hostname": { + "type": "string", + "description": "Main [account name](https://help.vtex.com/en/tutorial/what-is-an-account-name--i0mIGLcg3QyEy8OCicEoC)." + }, + "isCompleted": { + "type": "boolean", + "description": "Defines if the order payment has been settled (`true`) or not (`false`)." + }, + "roundingError": { + "type": "integer", + "description": "Rounding error total value in cents, when applicable. For example, in orders with discounts on non-integer multiplier items, rounding is applied per item, not after the sum of all items, which can result in a difference in the total discount value." + }, + "orderFormId": { + "type": "string", + "description": "Unique identifier of the [orderForm](https://developers.vtex.com/docs/guides/orderform-fields)." + }, + "allowCancellation": { + "type": "boolean", + "description": "Defines if order cancellation is allowed (`true`) or not anymore (`false`)." + }, + "allowEdition": { + "type": "boolean", + "description": "Defines if the order can be edited (`true`) or not anymore (`false`)." + }, + "isCheckedIn": { + "type": "boolean", + "description": "Defines if the order was placed via [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc) (`true`) or not (`false`)." + }, + "authorizedDate": { + "type": "string", + "description": "Order authorization date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + }, + "invoicedDate": { + "type": "string", + "nullable": true, + "description": "Order invoice date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "cancelReason": { + "type": "string", + "description": "Reason for order cancellation.", + "nullable": true + }, + "checkedInPickupPointId": { + "type": "string", + "description": "When the order is created at a physical store which is configured as a pickup point, this field retrieves the pickup point ID.", + "nullable": true + }, + "totals": { + "$ref": "#/components/schemas/TotalsUpdated" + }, + "sellers": { + "$ref": "#/components/schemas/SellersUpdated" + }, + "clientPreferencesData": { + "$ref": "#/components/schemas/ClientPreferencesDataUpdated" + }, + "cancellationData": { + "type": "object", + "description": "Information about [order cancellation](https://developers.vtex.com/docs/guides/order-canceling-improvements), when applicable.", + "properties": { + "RequestedByUser": { + "type": "boolean", + "description": "Indicates if the order cancellation was requested by the customer (`true`) or not (`false`).", + "nullable": true + }, + "RequestedBySystem": { + "type": "boolean", + "description": "Indicates if the order cancellation was made by the system (`true`) or not (`false`). This type of order cancellation happens in [incomplete orders](https://help.vtex.com/en/tutorial/how-incomplete-orders-work--tutorials_294), for example.", + "nullable": true + }, + "RequestedBySellerNotification": { + "type": "boolean", + "description": "Indicates if the order cancellation was requested by the seller (`true`) or not (`false`).", + "nullable": true + }, + "RequestedByPaymentNotification": { + "type": "boolean", + "description": "Indicates if the order cancellation was requested by the payment gateway (`true`) or not (`false`).", + "nullable": true + }, + "Reason": { + "type": "string", + "description": "Reason why the order was canceled.", + "nullable": true + }, + "CancellationDate": { + "type": "string", + "description": "Order cancellation date in [UTC ISO 8601 format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + } + }, + "nullable": true + }, + "taxData": { + "$ref": "#/components/schemas/TaxDataUpdated" + }, + "subscriptionData": { + "type": "object", + "description": "Information about [subscriptions](https://help.vtex.com/tutorial/how-subscriptions-work--frequentlyAskedQuestions_4453), when applicable.", + "nullable": true, + "properties": { + "SubscriptionGroupId": { + "type": "string", + "description": "ID of the subscription group. If this field returns `null` and the `ExecutionCount` is `0`, the order is the first creating the subscription.", + "nullable": true + }, + "Subscriptions": { + "type": "array", + "description": "List with subscriptions details.", + "nullable": true, + "items": { + "type": "object", + "description": "Subscription details.", + "properties": { + "ExecutionCount": { + "type": "integer", + "description": "Position of the order in the subscription cycle. The first order will have the value `0`, the second will have the value `1`, and so on." + }, + "PriceAtSubscriptionDate": { + "type": "number", + "description": "Value of the order when the customer signed up for subscriptions. Subscriptions created via Admin or APIs do not have an original order, so the field returns `0.0`. This field was valid only for Subscriptions v2 and is deprecated in Subscriptions v3.", + "nullable": true, + "deprecated": true + }, + "ItemIndex": { + "type": "integer", + "description": "Each item in the subscription order is identified by an index. The position starts in `0`, followed by `1`, `2`, and so on." + }, + "Plan": { + "type": "object", + "description": "Information about the [subscription plan](https://help.vtex.com/en/tutorial/subscription-plans-beta--5kczKRqHEsrs1tYtRcY8wR).", + "properties": { + "type": { + "type": "string", + "description": "Type of plan." + }, + "frequency": { + "type": "object", + "description": "Information about the subscription recurrence.", + "properties": { + "periodicity": { + "type": "string", + "description": "Defines the subscription recurrence period.", + "enum": [ + "DAY", + "WEEK", + "MONTH", + "YEAR" + ] + }, + "interval": { + "type": "integer", + "description": "Time interval configured between subscription orders, which depends on the `periodicity` field. For a `DAY` periodicity, this value will correspond to days, for `MONTH` to months, and so on." + } + } + }, + "validity": { + "type": "object", + "description": "Information about the period during which the subscription will be valid.", + "properties": { + "begin": { + "type": "string", + "description": "Subscription beginning date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "end": { + "type": "string", + "description": "Subscription end date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + } + } + } + } + } + } + } + } + } + }, + "itemMetadata": { + "type": "object", + "description": "Metadata information about the order's items.", + "properties": { + "Items": { + "type": "array", + "description": "List of order items' metadata.", + "items": { + "type": "object", + "description": "Order item metadata.", + "properties": { + "Id": { + "type": "string", + "description": "Unique numerical identifier of the SKU." + }, + "Seller": { + "type": "string", + "description": "Unique identifier of the SKU seller." + }, + "Name": { + "type": "string", + "description": "Name of the item as displayed to customers in the storefront." + }, + "SkuName": { + "type": "string", + "description": "Name of the SKU corresponding to the item." + }, + "ProductId": { + "type": "string", + "description": "ID of the product associated with the item." + }, + "RefId": { + "type": "string", + "description": "SKU reference ID." + }, + "Ean": { + "type": "string", + "description": "SKU EAN." + }, + "ImageUrl": { + "type": "string", + "description": "SKU image URL." + }, + "DetailUrl": { + "type": "string", + "description": "SKU slug." + }, + "AssemblyOptions": { + "type": "array", + "description": "[Assembly options](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH) information related to the item, if there are any.", + "nullable": true, + "items": { + "type": "object", + "description": "[Assembly option](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH) details.", + "properties": { + "Id": { + "type": "string", + "description": "Assembly option ID." + }, + "Name": { + "type": "string", + "description": "Assembly option name." + }, + "Required": { + "type": "boolean", + "description": "If this field is set as `true`, when the customer purchases the item sending the attachment is required, and when set as `false`, sending the attachment is optional." + }, + "InputValues": { + "type": "object", + "description": "Assembly option content.", + "additionalProperties": true, + "nullable": true + }, + "Composition": { + "type": "object", + "description": "Assembly option composition.", + "additionalProperties": true, + "nullable": true + } + } + } + } + } + } + } + } + }, + "marketplace": { + "$ref": "#/components/schemas/MarketplaceUpdated" + }, + "storePreferencesData": { + "$ref": "#/components/schemas/StorePreferencesDataUpdated" + }, + "customData": { + "type": "object", + "description": "[Customizable fields](https://developers.vtex.com/docs/guides/add-and-handle-custom-information-in-the-order) created by the store for the shopping cart. This field is useful for storing data not included in other fields. For example, a message for a gift or a name to be printed in a shirt.", + "nullable": true, + "properties": { + "customApps": { + "type": "array", + "description": "Customizable apps created by the store.", + "nullable": true, + "items": { + "type": "object", + "description": "Customizable apps details.", + "nullable": true, + "properties": { + "id": { + "type": "string", + "description": "Integration marketplace identifier." + }, + "major": { + "type": "integer", + "description": "Major version of the app." + }, + "fields": { + "type": "object", + "description": "Fields related to the marketplace payment.", + "properties": { + "marketplacePaymentCnpjAcquirers": { + "type": "string", + "description": "CNPJ of the marketplace payment acquirers." + }, + "marketplacePaymentAuthorizationCodes": { + "type": "string", + "description": "Authorization codes for marketplace payment." + }, + "marketplacePaymentCreditCardBrands": { + "type": "string", + "description": "Credit card brands for marketplace payment." + }, + "marketplacePaymentMethods": { + "type": "string", + "description": "Payment methods for marketplace payment." + } + } + } + } + } + }, + "customFields": { + "type": "array", + "description": "Array with information about the custom fields.", + "items": { + "type": "object", + "description": "Object with information about the custom fields.", + "properties": { + "linkedEntity": { + "type": "object", + "description": "Linked entity information.", + "properties": { + "type": { + "type": "string", + "description": "Type of the linked entity such as `cart`, `item`, `address`." + }, + "id": { + "type": "string", + "description": "ID of the linked entity." + } + } + }, + "fields": { + "type": "array", + "description": "Array with information about the custom field's name and value.", + "items": { + "type": "object", + "description": "Custom field's name and value.", + "properties": { + "name": { + "type": "string", + "description": "Name of the custom field." + }, + "value": { + "type": "string", + "description": "Value of the custom field." + } + } + } + } + } + } + } + } + }, + "commercialConditionData": { + "type": "string", + "nullable": true, + "description": "Information about commercial conditions." + }, + "openTextField": { + "type": "object", + "description": "Optional field for additional information.", + "nullable": true, + "additionalProperties": { + "type": "string", + "description": "Additional information." + } + }, + "invoiceData": { + "$ref": "#/components/schemas/InvoiceDataUpdated" + }, + "changesAttachment": { + "$ref": "#/components/schemas/ChangesAttachmentUpdated" + }, + "callCenterOperatorData": { + "$ref": "#/components/schemas/CallCenterOperatorDataUpdated" + }, + "packageAttachment": { + "type": "object", + "description": "Information about shipping packages, created after order invoicing.", + "nullable": true, + "properties": { + "packages": { + "type": "array", + "description": "List with packages' information.", + "items": { + "type": "object", + "description": "Package details.", + "properties": { + "items": { + "type": "array", + "description": "Information about package items.", + "items": { + "type": "object", + "description": "Package item details.", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Package item index nunmber." + }, + "quantity": { + "type": "integer", + "description": "Package item quantity." + }, + "price": { + "type": "integer", + "description": "Package item price in cents." + }, + "description": { + "type": "string", + "description": "Package item description.", + "nullable": true + }, + "unitMultiplier": { + "type": "number", + "description": "Package item unit multiplier.", + "nullable": true + } + } + } + }, + "courier": { + "type": "string", + "description": "Name of the [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) responsible for the package shipping.", + "nullable": true + }, + "invoiceNumber": { + "type": "string", + "description": "Unique identification code of the package invoice." + }, + "invoiceValue": { + "type": "integer", + "description": "Package invoice value in cents." + }, + "invoiceUrl": { + "type": "string", + "description": "Package invoice URL.", + "nullable": true + }, + "issuanceDate": { + "type": "string", + "description": "Package invoice issuance date in [ISO 8601 time zone offset format](https://learn.microsoft.com/pt-br/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DD hh:mm:ss[.nnnnnnn]+hh:mm`." + }, + "trackingNumber": { + "type": "string", + "description": "Package [tracking number](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-).", + "nullable": true + }, + "invoiceKey": { + "type": "string", + "description": "Package invoice key.", + "nullable": true + }, + "trackingUrl": { + "type": "string", + "description": "Package tracking URL.", + "nullable": true + }, + "embeddedInvoice": { + "type": "string", + "description": "Package invoice text in [xml format](https://help.vtex.com/en/tutorial/configuring-xml--tutorials_242). This field is important for stores integrated with [external marketplaces](https://developers.vtex.com/docs/guides/external-marketplace-integration-guide)." + }, + "type": { + "type": "string", + "description": "Package invoice type, which can be:\r\n- `Output`: Selling order invoice.\r\n- `Input`: Returning items invoice.", + "enum": [ + "Output", + "Input" + ] + }, + "courierStatus": { + "type": "object", + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) package shipping information.", + "nullable": true, + "properties": { + "status": { + "type": "string", + "description": "Defines if a carrier was assigned for order shipping (`ok`) or not (`null`).", + "nullable": true + }, + "finished": { + "type": "boolean", + "description": "Defines if the carrier has already delivered the package (`true`) or not (`false`)." + }, + "deliveredDate": { + "type": "string", + "description": "Package delivery date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DD hh:mm:ss[.nnnnnnn]+hh:mm`." + }, + "data": { + "type": "array", + "description": "Package tracking information.", + "items": { + "type": "object", + "description": "Package tracking details.", + "properties": { + "lastChange": { + "type": "string", + "description": "Package tracking date since last update in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DD hh:mm:ss[.nnnnnnn]+hh:mm`." + }, + "city": { + "type": "string", + "description": "Package current tracking city." + }, + "state": { + "type": "string", + "description": "Package current tracking state in two-digit code format." + }, + "description": { + "type": "string", + "description": "Package tracking description." + }, + "createDate": { + "type": "string", + "description": "Package tracking creation date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DD hh:mm:ss[.nnnnnnn]+hh:mm`." + } + } + } + } + } + }, + "cfop": { + "type": "string", + "description": "[CFOP](https://www.gov.br/receitafederal/pt-br/acesso-a-informacao/acoes-e-programas/facilitacao/anexo-ecf-cfop) (_Código Fiscal de Operação e Prestação_) is a Brazilian fiscal code of operations and services that classifies business transactions types.", + "nullable": true + }, + "restitutions": { + "type": "object", + "description": "Information about a value being returned to the customer. This field applies only to invoices with the `Input` type because it relates to returning items.", + "properties": { + "Refund": { + "type": "object", + "description": "Customer refund details.", + "properties": { + "value": { + "type": "integer", + "description": "Refund value in cents." + }, + "giftCardData": { + "type": "string", + "description": "Refund involving [Gift Card](https://developers.vtex.com/docs/guides/gift-card-integration-guide).", + "nullable": true + }, + "items": { + "type": "array", + "description": "Information about the items being returned.", + "nullable": true, + "items": { + "type": "object", + "description": "Returned item details.", + "properties": { + "useFreight": { + "type": "boolean", + "description": "Defines if the refund includes freight values (`true`) or not (`false`).", + "nullable": true + }, + "isCompensation": { + "type": "boolean", + "description": "Defines if there are compensated unit tags in the package (`true`) or not (`false`)." + }, + "compensationValue": { + "type": "integer", + "description": "Compensational refund value in cents." + }, + "id": { + "type": "string", + "description": "SKU unique identification code of the returned item." + }, + "quantity": { + "type": "integer", + "description": "Number of items being returned." + }, + "price": { + "type": "integer", + "description": "Returned item price in cents." + }, + "description": { + "type": "string", + "description": "Customer reason for returning the item." + } + } + } + } + } + } + } + }, + "volumes": { + "type": "integer", + "description": "Indicates the number of boxes (volumes) needed to contain the package items. For example, two refrigerators do not fit in a single volume, so this field would have value `2`." + }, + "EnableInferItems": { + "type": "boolean", + "description": "Defines if the package items' value should be inferred by the invoice value (`true`) or not (`false`).", + "nullable": true + } + } + } + } + } + }, + "paymentData": { + "$ref": "#/components/schemas/PaymentDataUpdated" + }, + "shippingData": { + "type": "object", + "description": "Shipping information.", + "properties": { + "id": { + "type": "string", + "description": "Object ID, the expected value is `shippingData`." + }, + "address": { + "type": "object", + "description": "Shipping address details.", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `residential` or `pickup`." + }, + "receiverName": { + "type": "string", + "description": "Full name of the order receiver." + }, + "addressId": { + "type": "string", + "description": "Shipping address ID." + }, + "versionId": { + "type": "string", + "description": "Shipping address version ID.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Shipping address entity ID.", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Shipping address postal code." + }, + "city": { + "type": "string", + "description": "Shipping address city." + }, + "state": { + "type": "string", + "description": "Shipping address state/province." + }, + "country": { + "type": "string", + "description": "Shipping address three-digit country code in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "street": { + "type": "string", + "description": "Shipping address street." + }, + "number": { + "type": "string", + "description": "Shipping address number." + }, + "neighborhood": { + "type": "string", + "description": "Shipping address neighborhood." + }, + "complement": { + "type": "string", + "description": "Shipping address complement." + }, + "reference": { + "type": "string", + "nullable": true, + "description": "Shipping address additional information." + }, + "geoCoordinates": { + "type": "array", + "description": "Pair of geocoordinates, first longitude then latitude.", + "items": { + "type": "number", + "description": "Longitude and latitude." + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Array of objects containing item's logistics information.", + "items": { + "type": "object", + "description": "Logistics information.", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index of the item starting from 0." + }, + "selectedSla": { + "type": "string", + "description": "Selected shipping option." + }, + "lockTTL": { + "type": "string", + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time." + }, + "price": { + "type": "integer", + "description": "Shipping price for the item in cents. Does not account for the whole order's shipping price." + }, + "listPrice": { + "type": "integer", + "description": "Original shipping price for the item in cents." + }, + "sellingPrice": { + "type": "integer", + "description": "Item's selling price." + }, + "deliveryWindow": { + "type": "string", + "nullable": true, + "description": "[Scheduled delivery](https://help.vtex.com/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) window information, if it applies to the item." + }, + "deliveryCompany": { + "type": "string", + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) company's name." + }, + "shippingEstimate": { + "type": "string", + "description": "Total shipping estimate time in days. For instance, three business days is represented `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "Shipping estimate date, defined after the confirmation of the order." + }, + "slas": { + "type": "array", + "description": "Service Level Agreement (SLA) corresponding to [shipping policies](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140).", + "items": { + "type": "object", + "description": "Order shipping SLA details.", + "properties": { + "id": { + "type": "string", + "description": "ID of the shipping method used in the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140)." + }, + "name": { + "type": "string", + "description": "Name of the shipping policy." + }, + "shippingEstimate": { + "type": "string", + "description": "Total shipping estimate time in days. For instance, three business days is represented `3bd`." + }, + "deliveryWindow": { + "type": "string", + "nullable": true, + "description": "[Scheduled delivery window](https://help.vtex.com/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) information, if it applies to the item." + }, + "price": { + "type": "integer", + "description": "Shipping price for the item in cents. Does not account for the whole order's shipping price." + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Defines if the delivery channel is `delivery` or `pickup-in-point`." + }, + "pickupStoreInfo": { + "type": "object", + "description": "Detailed information about a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "properties": { + "additionalInfo": { + "type": "string", + "nullable": true, + "description": "Additional information about the pickup point." + }, + "address": { + "type": "object", + "nullable": true, + "description": "Pickup point address details.", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `residential` or `pickup`.", + "nullable": true + }, + "receiverName": { + "type": "string", + "description": "Full name of the order receiver.", + "nullable": true + }, + "addressId": { + "type": "string", + "description": "Pickup point address ID.", + "nullable": true + }, + "versionId": { + "type": "string", + "description": "Pickup point address version ID.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Pickup point address entity ID.", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": " Pickup point postal code.", + "nullable": true + }, + "city": { + "type": "string", + "description": "Pickup point address city.", + "nullable": true + }, + "state": { + "type": "string", + "description": "Pickup point address state/province.", + "nullable": true + }, + "country": { + "type": "string", + "description": "Pickup point address three-digit country code in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format.", + "nullable": true + }, + "street": { + "type": "string", + "description": "Pickup point address street.", + "nullable": true + }, + "number": { + "type": "string", + "description": "Pickup point address number.", + "nullable": true + }, + "neighborhood": { + "type": "string", + "description": "Pickup point address neighborhood.", + "nullable": true + }, + "complement": { + "type": "string", + "description": "Pickup point address complement.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Pickup point address additional information.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Pair of geocoordinates, first longitude then latitude.", + "nullable": true, + "items": { + "type": "number", + "description": "Longitude and latitude.", + "nullable": true + } + } + } + }, + "dockId": { + "type": "string", + "nullable": true, + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID related to the delivery or the pickup point." + }, + "friendlyName": { + "type": "string", + "nullable": true, + "description": "Name of the pickup point displayed at checkout." + }, + "isPickupStore": { + "type": "boolean", + "description": "Defines if the type of shipping is pickup (`true`) or not (`false`)." + } + } + }, + "polygonName": { + "type": "string", + "nullable": true, + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the shipping policy." + }, + "lockTTL": { + "type": "string", + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time of the SLA." + }, + "pickupPointId": { + "type": "string", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) ID related to the SLA." + }, + "transitTime": { + "type": "string", + "description": "Duration in business days of the time the carrier takes in transit to fulfill the order. For example, three business days is represented `3bd`." + }, + "pickupDistance": { + "type": "number", + "description": "Distance in kilometers between the pickup point and the customer's address. The distance is measured as a straight line." + } + } + } + }, + "shipsTo": { + "type": "array", + "items": { + "type": "string", + "description": "Three-digit country code of the shipping address in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "description": "List of countries of the shipping address." + }, + "deliveryIds": { + "type": "array", + "description": "Information about delivery IDs.", + "items": { + "type": "object", + "description": "Delivery IDs.", + "properties": { + "courierId": { + "type": "string", + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE)'s ID." + }, + "courierName": { + "type": "string", + "description": "Carrier's name." + }, + "dockId": { + "type": "string", + "description": "ID of the [loading dock](https://help.vtex.com/pt/tutorial/doca--5DY8xHEjOLYDVL41Urd5qj)." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items." + }, + "warehouseId": { + "type": "string", + "description": "ID of the [warehouse](https://help.vtex.com/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb)." + }, + "accountCarrierName": { + "type": "string", + "description": "Name of the account's [carrier](https://help.vtex.com/en/tutorial/transportadoras-na-vtex--7u9duMD5UQa2QQwukAWMcE)." + }, + "kitItemDetails": { + "type": "array", + "description": "Information about [kits](https://help.vtex.com/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28), if there are any.", + "nullable": true, + "items": { + "type": "string", + "description": "Kits information." + } + } + } + } + }, + "deliveryChannels": { + "type": "array", + "description": "List of delivery channels associated with the trade policy.", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Delivery channel's shipping type, which can be `delivery` or `pickup-in-point`." + }, + "stockBalance": { + "type": "integer", + "description": "Stock check for an SKU availability." + } + }, + "description": "Delivery channels information." + } + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Defines if the delivery channel is `delivery` or `pickup-in-point`." + }, + "pickupStoreInfo": { + "type": "object", + "description": "Detailed information about a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "properties": { + "additionalInfo": { + "type": "string", + "nullable": true, + "description": "Additional information about the pickup point." + }, + "address": { + "type": "string", + "nullable": true, + "description": "Pickup point's address." + }, + "dockId": { + "type": "string", + "nullable": true, + "description": "ID of the [loading dock](https://help.vtex.com/pt/tutorial/doca--5DY8xHEjOLYDVL41Urd5qj) related to the delivery or the pickup point." + }, + "friendlyName": { + "type": "string", + "nullable": true, + "description": "Name of the pickup point displayed at checkout." + }, + "isPickupStore": { + "type": "boolean", + "description": "Defines if the type of shipping is pickup (`true`) or not (`false`)." + } + }, + "nullable": true + }, + "addressId": { + "type": "string", + "description": "Address ID.", + "nullable": true + }, + "versionId": { + "type": "string", + "description": "Shipping address version ID.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Shipping address entity ID.", + "nullable": true + }, + "polygonName": { + "type": "string", + "nullable": true, + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the shipping policy." + }, + "pickupPointId": { + "type": "string", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R)'s ID.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Duration in business days of the time the carrier takes in transit to fulfill the order. For example, three business days is represented `3bd`.", + "nullable": true + } + } + } + }, + "trackingHints": { + "type": "array", + "description": "List containing order shipping label information.", + "items": { + "type": "object", + "description": "Shipping label information.", + "properties": { + "trackingId": { + "type": "string", + "description": "Tracking ID." + }, + "courierName": { + "type": "string", + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) name." + }, + "trackingUrl": { + "type": "string", + "description": "Tracking URL." + }, + "trackingLabel": { + "type": "string", + "description": "Tracking label." + } + } + }, + "nullable": true + }, + "selectedAddresses": { + "type": "array", + "description": "Information about selected adresses.", + "items": { + "type": "object", + "description": "Selected adresses.", + "properties": { + "addressId": { + "type": "string", + "description": "Selected address ID." + }, + "versionId": { + "type": "string", + "description": "Shipping address version ID of the selected address.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Shipping address entity ID of the selected address.", + "nullable": true + }, + "addressType": { + "type": "string", + "description": "Selected adress's shipping type, which can be `pickup`, `residential`, `invoice`, `search`, `inStore`, `commercial` or `giftRegistry`." + }, + "receiverName": { + "type": "string", + "description": "Full name of the person who is going to receive the order in the selected address." + }, + "street": { + "type": "string", + "description": "Street of the selected address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment of the selected address." + }, + "complement": { + "type": "string", + "description": "Complement to the selected address if it applies." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the selected address." + }, + "postalCode": { + "type": "string", + "description": "Postal code of the selected address." + }, + "city": { + "type": "string", + "description": "City of the selected address." + }, + "state": { + "type": "string", + "description": "State of the selected address." + }, + "country": { + "type": "string", + "description": "Three-digit country code of the selected address, in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "reference": { + "type": "string", + "nullable": true, + "description": "Complement to help locate the selected address." + }, + "geoCoordinates": { + "type": "array", + "items": { + "type": "number", + "description": "Longitude and latitude geocoordinates." + }, + "description": "List with the selected address's geocoordinates, first longitude then latitude." + } + } + } + }, + "contactInformation": { + "type": "array", + "description": "Array with customer contact information.", + "items": { + "type": "object", + "description": "Contact information.", + "properties": { + "id": { + "type": "string", + "description": "Customer contact ID." + }, + "email": { + "type": "string", + "description": "Customer contact email." + }, + "firstName": { + "type": "string", + "description": "Customer contact first name." + }, + "lastName": { + "type": "string", + "description": "Customer contact last name." + }, + "phone": { + "type": "string", + "description": "Customer contact phone number." + }, + "document": { + "type": "string", + "description": "Customer contact document ID." + }, + "documentType": { + "type": "string", + "description": "Customer contact document type." + }, + "entityId": { + "type": "string", + "description": "Entity identification code." + }, + "versionId": { + "type": "string", + "description": "Version identification code." + } + } + } + } + } + }, + "ratesAndBenefitsData": { + "type": "object", + "description": "Information on promotions and taxes that apply to the order.", + "properties": { + "id": { + "type": "string", + "description": "ID of the rate or benefit." + }, + "rateAndBenefitsIdentifiers": { + "type": "array", + "description": "Information about order's promotions and taxes identifiers.", + "items": { + "type": "object", + "description": "Promotions or tax information.", + "properties": { + "description": { + "type": "string", + "description": "Promotion or tax description.", + "nullable": true + }, + "featured": { + "type": "boolean", + "description": "Defines if the promotion or tax is cumulative (`true`) or not (`false`)." + }, + "id": { + "type": "string", + "description": "Promotion or tax ID." + }, + "name": { + "type": "string", + "description": "Promotion or tax name." + }, + "matchedParameters": { + "type": "object", + "description": "Informs the criteria and conditions fulfilled so the promotion became valid.", + "additionalProperties": true + }, + "additionalInfo": { + "type": "object", + "description": "Object containing promotion or tax additional information. For example { Free shipping: 100,00 }.", + "nullable": true + } + } + } + } + } + }, + "marketingData": { + "type": "object", + "description": "Information about promotions and marketing. For example, coupon tracking information and internal or external UTMs.", + "properties": { + "id": { + "type": "string", + "description": "Object ID. The expected value is `marketingData`." + }, + "utmSource": { + "type": "string", + "description": "Value of the `utm_source` parameter of the URL that led to the request." + }, + "utmPartner": { + "type": "string", + "description": "UTM Source Parameters." + }, + "utmMedium": { + "type": "string", + "description": "Value of the `utm_medium` parameter of the URL that led to the request." + }, + "utmCampaign": { + "type": "string", + "description": "Value of the `utm_campaign` parameter of the URL that led to the request." + }, + "coupon": { + "type": "string", + "description": "Coupon code." + }, + "utmiCampaign": { + "type": "string", + "description": "Internal UTM value `utmi_cp`." + }, + "utmipage": { + "type": "string", + "description": "Internal UTM value `utmi_p`." + }, + "utmiPart": { + "type": "string", + "description": "Internal UTM value `utmi_pc`." + }, + "marketingTags": { + "type": "array", + "description": "Marketing tags information. This field can be used to register campaign data or informative tags regarding promotions.", + "items": { + "type": "string", + "description": "Marketing tag." + } + } + }, + "nullable": true + }, + "giftRegistryData": { + "type": "object", + "description": "Information about [gift list](https://developers.vtex.com/docs/guides/creating-gift-lists).", + "nullable": true, + "properties": { + "giftRegistryId": { + "type": "string", + "description": "Gift list ID." + }, + "giftRegistryType": { + "type": "string", + "description": "[Gift list type](https://help.vtex.com/en/tutorial/creating-a-type-of-list)." + }, + "giftRegistryTypeName": { + "type": "string", + "description": "Gift list type name." + }, + "addressId": { + "type": "string", + "description": "Gift list shipping address ID." + }, + "description": { + "type": "string", + "description": "Gift list description." + } + } + }, + "clientProfileData": { + "type": "object", + "description": "Object with information on the client's profile.", + "properties": { + "id": { + "type": "string", + "description": "Object ID, the expected value is `clientProfileData`." + }, + "email": { + "type": "string", + "description": "Customer email." + }, + "firstName": { + "type": "string", + "description": "Customer first name." + }, + "lastName": { + "type": "string", + "description": "Customer last name." + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer." + }, + "document": { + "type": "string", + "description": "Document identification code informed by the customer." + }, + "phone": { + "type": "string", + "description": "Customer phone number." + }, + "corporateName": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, this field includes the corporate name." + }, + "tradeName": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, this field includes the trade name." + }, + "corporateDocument": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, this field includes the corporate document." + }, + "stateInscription": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, this field includes the state inscription." + }, + "corporatePhone": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, this field includes the company's phone number." + }, + "isCorporate": { + "type": "boolean", + "description": "Defines if the customer is a legal entity (`true`) or not (`false`)." + }, + "userProfileId": { + "type": "string", + "description": "Customer user profile ID." + }, + "userProfileVersion": { + "type": "string", + "nullable": true, + "description": "Customer user profile version." + }, + "customerClass": { + "type": "string", + "nullable": true, + "description": "Customer class identification." + }, + "customerCode": { + "type": "string", + "nullable": true, + "description": "Customer code." + } + } + }, + "items": { + "type": "array", + "description": "Information about order's items.", + "items": { + "type": "object", + "properties": { + "uniqueId": { + "type": "string", + "description": "Alphanumeric sequence that identifies an SKU in a given order." + }, + "id": { + "type": "string", + "description": "Unique SKU identifier." + }, + "productId": { + "type": "string", + "description": "ID of the product associated with the item." + }, + "ean": { + "type": "string", + "nullable": true, + "description": "EAN of the SKU." + }, + "lockId": { + "type": "string", + "description": "Reservation ID." + }, + "itemAttachment": { + "type": "object", + "description": "Item attachment information.", + "properties": { + "content": { + "type": "object", + "description": "Item attachment custom field for content." + }, + "name": { + "type": "string", + "nullable": true, + "description": "Item attachment name." + } + } + }, + "attachments": { + "type": "array", + "items": { + "type": "string", + "description": "Attachments information." + }, + "description": "Array containing information on attachments." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items." + }, + "seller": { + "type": "string", + "description": "Seller related to the order." + }, + "name": { + "type": "string", + "description": "Item's name." + }, + "refId": { + "type": "string", + "description": "Product referencial code associated with the item." + }, + "price": { + "type": "integer", + "description": "Item's price." + }, + "listPrice": { + "type": "integer", + "description": "Item's [list price](https://help.vtex.com/en/tracks/prices-101--6f8pwCns3PJHqMvQSugNfP/3XcXp0r5WrJvogB8KIX4Kx#list-price)." + }, + "manualPrice": { + "type": "string", + "nullable": true, + "description": "Item's [manual price](https://help.vtex.com/en/tutorial/change-the-price-of-an-item-in-the-shopping-cart--7Cd37aCAmtL1qmoZJJvjNf)." + }, + "priceTags": { + "type": "array", + "items": { + "type": "string", + "description": "Price modifiers." + }, + "description": "List of objects with item's price modifiers." + }, + "imageUrl": { + "type": "string", + "description": "SKU image URL." + }, + "detailUrl": { + "type": "string", + "description": "SKU slug." + }, + "components": { + "type": "array", + "items": { + "type": "string", + "description": "Components." + }, + "description": "Item's components." + }, + "bundleItems": { + "type": "array", + "items": { + "type": "object", + "description": "Item's offering details.", + "properties": { + "id": { + "type": "integer", + "description": "Offering ID." + }, + "quantity": { + "type": "integer", + "description": "Offering quantity." + } + } + }, + "description": "This field groups offerings (services) related to the item and displays their ID and quantity. A gift package is an example of an offering." + }, + "params": { + "type": "array", + "items": { + "type": "string", + "description": "Information about params." + }, + "description": "Array with information about params." + }, + "offerings": { + "type": "array", + "items": { + "type": "string", + "description": "Service name related to the item." + }, + "description": "Item's offerings, which are services related to the item. For example, guarantee or installation." + }, + "attachmentOfferings": { + "type": "array", + "description": "Array containing attachments details.", + "nullable": true, + "items": { + "type": "object", + "description": "Attachment details.", + "properties": { + "name": { + "type": "string", + "description": "Name of the attachment.", + "nullable": true + }, + "required": { + "type": "boolean", + "description": "Defines if the attachment is required (`true`) or not (`false`).", + "nullable": true + }, + "schema": { + "type": "object", + "description": "Schema of the content declared in the field `attachmentOfferings`.", + "nullable": true + } + } + } + }, + "sellerSku": { + "type": "string", + "description": "SKU ID from the seller perspective." + }, + "priceValidUntil": { + "type": "string", + "nullable": true, + "description": "Date until when the price is going to be valid if there is a promotion." + }, + "commission": { + "type": "integer", + "description": "Commission value registered for the seller." + }, + "tax": { + "type": "integer", + "description": "Item's tax." + }, + "preSaleDate": { + "type": "string", + "nullable": true, + "description": "Item's pre sale date." + }, + "additionalInfo": { + "type": "object", + "description": "Additional information about the item.", + "properties": { + "brandName": { + "type": "string", + "description": "Item's brand name." + }, + "brandId": { + "type": "string", + "description": "Item's brand ID." + }, + "categoriesIds": { + "type": "string", + "description": "Item's category ID." + }, + "categories": { + "type": "array", + "description": "Items categories information.", + "items": { + "type": "object", + "description": "Category information.", + "properties": { + "id": { + "type": "number", + "description": "Category ID." + }, + "name": { + "type": "string", + "description": "Category name." + } + } + } + }, + "productClusterId": { + "type": "string", + "description": "All product clusters related to the item." + }, + "commercialConditionId": { + "type": "string", + "description": "Commercial conditions ID." + }, + "dimension": { + "type": "object", + "description": "Item's dimensions.", + "properties": { + "cubicweight": { + "type": "number", + "description": "Item's cubic weight." + }, + "height": { + "type": "integer", + "description": "Item's height." + }, + "length": { + "type": "integer", + "description": "Item's length." + }, + "weight": { + "type": "integer", + "description": "Item's weight." + }, + "width": { + "type": "integer", + "description": "Item's width." + } + } + }, + "offeringInfo": { + "type": "string", + "nullable": true, + "description": "Information about services related to the item. For example: guarantee or installation." + }, + "offeringType": { + "type": "string", + "nullable": true, + "description": "Offering type." + }, + "offeringTypeId": { + "type": "string", + "nullable": true, + "description": "Offering type ID." + } + } + }, + "measurementUnit": { + "type": "string", + "description": "Item's measurement unit." + }, + "unitMultiplier": { + "type": "integer", + "description": "Item's unit multiplier." + }, + "sellingPrice": { + "type": "integer", + "description": "Item's selling price." + }, + "isGift": { + "type": "boolean", + "description": "This field is `true` when the item is a gift in order context and `false` when it is not." + }, + "shippingPrice": { + "type": "string", + "nullable": true, + "description": "Item's shipping price." + }, + "rewardValue": { + "type": "integer", + "description": "Item's reward value." + }, + "freightCommission": { + "type": "integer", + "description": "Value of the freight commission." + }, + "priceDefinitions": { + "type": "object", + "description": "Item's price information.", + "properties": { + "sellingPrices": { + "type": "array", + "description": "Details on item's selling price.", + "items": { + "type": "object", + "description": "Selling price.", + "properties": { + "value": { + "type": "integer", + "description": "Total value of items in cents." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items." + } + } + } + }, + "calculatedSellingPrice": { + "type": "integer", + "description": "Item's calculated unitary selling price in cents." + }, + "total": { + "type": "integer", + "description": "Total value of all item's units in cents." + } + } + }, + "taxCode": { + "type": "string", + "nullable": true, + "description": "Item's tax code." + }, + "parentItemIndex": { + "type": "integer", + "nullable": true, + "description": "Ranking number that shows how related items are indexed in between each other. It starts at `0` as the primary item reference and counts up to `1`, `2`, and so on. For example, a customer bought sunglasses and hired a warranty service. Since the sunglasses are index `0`, the warranty service (the [assembly option](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH)) is index `1` and has the `parentItemIndex` value `0`. This response is `null` for items that are not assembly options." + }, + "parentAssemblyBinding": { + "type": "string", + "nullable": true, + "description": "When items are indexed in between each other, this field returns the assembly option ID. This response is `null` for items that are not [assembly options](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH)." + }, + "callCenterOperator": { + "type": "string", + "description": "Identification code of the call center operator responsible for the order.", + "nullable": true + }, + "serialNumbers": { + "type": "string", + "description": "This field identifies the order in the `handling` status in the workflow, and it was used for VTEX internal control.", + "deprecated": true, + "nullable": true + }, + "assemblies": { + "type": "array", + "description": "Information about items customization.", + "nullable": true, + "items": { + "type": "string", + "description": "Customization information." + } + }, + "costPrice": { + "type": "integer", + "description": "Item's cost price." + } + }, + "description": "Items information." + } + }, + "marketplaceItems": { + "type": "array", + "description": "Array with marketplace items information.", + "items": { + "type": "string", + "description": "Marketplace items." + } + }, + "authorizationPolicyData": { + "$ref": "#/components/schemas/AuthorizationPolicyData" + } + } + }, + "example": { + "orderId": "1172452900788-01", + "sequence": "502556", + "marketplaceOrderId": "1172452900788-01", + "marketplaceServicesEndpoint": "http://oms.vtexinternal.com.br/api/oms?an=luxstore", + "sellerOrderId": "00-v502556llux-01", + "origin": "Marketplace", + "affiliateId": "GHB", + "salesChannel": "1", + "merchantName": "luxstore", + "status": "handling", + "workflowIsInError": false, + "statusDescription": "Preparando Entrega", + "value": 1160, + "creationDate": "2024-02-04T20:09:43.899958+00:00", + "lastChange": "2024-02-06T20:46:11.7010747+00:00", + "orderGroup": "1415461749731", + "followUpEmail": "david@luxstore.com", + "lastMessage": "Your payment was approved", + "hostname": "luxstore", + "isCompleted": true, + "roundingError": 0, + "orderFormId": "33c887b2-bf49-4a18-8a0a-acc6b0d724bf", + "allowCancellation": true, + "allowEdition": false, + "isCheckedIn": false, + "authorizedDate": "2024-02-04T20:46:11.7010747+00:00", + "invoicedDate": "2024-02-09T10:17:40.5322681+00:00", + "cancelReason": "Item size was too large.", + "checkedInPickupPointId": "storeNameExample_901", + "totals": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 99 + }, + { + "id": "Discounts", + "name": "Total dos Descontos", + "value": 0 + }, + { + "id": "Shipping", + "name": "Total do Frete", + "value": 300 + }, + { + "id": "Tax", + "name": "Total da Taxa", + "value": 0 + } + ], + "sellers": [ + { + "id": "1", + "name": "Lux Store", + "logo": "https://sellersLogo/images.png", + "fulfillmentEndpoint": "http://fulfillment.vtexcommerce.com.br/api/fulfillment?an=accountName" + } + ], + "clientPreferencesData": { + "locale": "en-US", + "optinNewsLetter": true + }, + "cancellationData": { + "RequestedByUser": true, + "RequestedBySystem": false, + "RequestedBySellerNotification": false, + "RequestedByPaymentNotification": false, + "Reason": "Item size was too large.", + "CancellationDate": "2024-02-11T09:14:41.3695207Z" + }, + "taxData": { + "areTaxesDesignatedByMarketplace": true, + "taxInfoCollection": [ + { + "itemIndex": 0, + "sku": "18", + "priceTags": [ + { + "identifier": "0a9df101-330c-41ad-a4c7-5a0bd521bc9u", + "isPercentual": false, + "name": "Taxes (Magazine Luisa)", + "value": 193, + "rawValue": 1.93 + } + ] + } + ] + }, + "subscriptionData": { + "SubscriptionGroupId": "A64AC73C0FB8693A7ADB4AC69CA4FD5F", + "Subscriptions": [ + { + "ExecutionCount": 724, + "PriceAtSubscriptionDate": 100, + "ItemIndex": 0, + "Plan": { + "type": "RECURRING_PAYMENT", + "frequency": { + "periodicity": "MONTH", + "interval": 1 + }, + "validity": { + "begin": "2024-02-09T09:14:41.3695207Z", + "end": "2026-02-11T09:14:41.3695207Z" + } + } + } + ] + }, + "itemMetadata": { + "Items": [ + { + "Id": "18", + "Seller": "1", + "Name": "Cat food", + "SkuName": "Cat food", + "ProductId": "6", + "RefId": "105", + "Ean": "43673557", + "ImageUrl": "http://store.vteximg.com.br/ids/155392-55-55/AlconKOI.jpg?v=635918402228600000", + "DetailUrl": "/catfood/p", + "AssemblyOptions": [ + { + "Id": "vtex.subscription.plan-ana", + "Name": "vtex.subscription.plan-ana", + "Required": false, + "InputValues": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 8, + "Domain": [ + "4 month", + "1 month" + ] + } + }, + "Composition": {} + }, + { + "Id": "vtex.subscription.daily", + "Name": "vtex.subscription.daily", + "Required": false, + "InputValues": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 5, + "Domain": [ + "1 day" + ] + } + }, + "Composition": null + }, + { + "Id": "vtex.subscription.weekly", + "Name": "vtex.subscription.weekly", + "Required": false, + "InputValues": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + }, + "Composition": null + } + ] + } + ] + }, + "marketplace": { + "baseURL": "http://oms.vtexinternal.com.br/api/oms?an=luxstore", + "isCertified": true, + "name": "luxstore" + }, + "storePreferencesData": { + "countryCode": "BRA", + "currencyCode": "BRL", + "currencyFormatInfo": { + "CurrencyDecimalDigits": 2, + "CurrencyDecimalSeparator": ",", + "CurrencyGroupSeparator": ".", + "CurrencyGroupSize": 3, + "StartsWithCurrencySymbol": true + }, + "currencyLocale": 1046, + "currencySymbol": "R$", + "timeZone": "E. South America Standard Time" + }, + "customData": { + "customApps": [ + { + "id": "integration-marketplace-example", + "major": 1, + "fields": { + "marketplacePaymentCnpjAcquirers": "11.222.333/0001-44", + "marketplacePaymentAuthorizationCodes": "XYZ", + "marketplacePaymentCreditCardBrands": "Visa", + "marketplacePaymentMethods": "CreditCard" + } + } + ], + "customFields": [ + { + "linkedEntity": { + "type": "item", + "id": "B2949D0A45244825B177D2F9F96DC711" + }, + "fields": [ + { + "name": "Cost Center", + "value": "CC3" + } + ] + } + ] + }, + "commercialConditionData": "Commercial conditions information.", + "openTextField": null, + "invoiceData": { + "userPaymentInfo": null, + "address": null, + "invoiceSubject": null + }, + "changesAttachment": { + "id": "changeAttachment", + "changesData": [ + { + "reason": "The customer wanted to change.", + "discountValue": 3290, + "incrementValue": 0, + "itemsAdded": [], + "itemsRemoved": [ + { + "id": "1234568358", + "name": "Bay Max L", + "quantity": 1, + "price": 3290, + "unitMultiplier": null + } + ], + "receipt": { + "date": "2019-02-06T20:46:04.4003606+00:00", + "orderId": "v502556llux-01", + "receipt": "029f9ab8-751a-4b1e-bf81-7dd25d14b49b" + } + } + ] + }, + "callCenterOperatorData": { + "id": "CallCenterOperatorAttachment", + "email": "sandra.daves@luxstore.com", + "userName": "sandraDaves" + }, + "packageAttachment": { + "packages": [ + { + "items": [ + { + "itemIndex": 0, + "quantity": 1, + "price": 0, + "description": "001", + "unitMultiplier": 0 + } + ], + "courier": "PAC Correios", + "invoiceNumber": "24382", + "invoiceValue": 1015, + "invoiceUrl": "https://luxstore.com/invoices/24382.pdf", + "issuanceDate": "2024-02-09T10:10:20.5322681+00:00", + "trackingNumber": "TRK-48960684", + "invoiceKey": "CFe35201100063960001504590006629690333214542150", + "trackingUrl": "https://tracking.fastdelivery.com/track/146/TRK-48960684-01/24382", + "embeddedInvoice": " 204 0 INVOICE 15/2/2024 12:00:00 AM 90", + "type": "Input", + "courierStatus": { + "status": "ok", + "finished": true, + "deliveredDate": "2024-02-15T10:17:40.5322681+00:00", + "data": [ + { + "lastChange": "2024-02-15T10:17:40.5322681+00:00", + "city": "Rio de Janeiro", + "state": "RJ", + "description": "Carrier received the package", + "createDate": "2024-02-13T10:12:55.5322681+00:00" + } + ] + }, + "cfop": "5100", + "restitutions": { + "Refund": { + "value": 1015, + "giftCardData": null, + "items": [ + { + "useFreight": false, + "isCompensation": false, + "compensationValue": 0, + "id": "7060874", + "quantity": 1, + "price": 0, + "description": "The size was too big." + } + ] + } + }, + "volumes": 1, + "EnableInferItems": false + } + ] + }, + "paymentData": { + "transactions": [ + { + "isActive": true, + "transactionId": "E4CFCEA1A2BF42AE9A3FAE8ED460CBFE", + "merchantName": "luxstore", + "payments": [ + { + "id": "A536832D9B95439DB73A11558B6F2C2C", + "paymentSystem": "2", + "paymentSystemName": "Visa", + "value": 3990, + "installments": 1, + "referenceValue": 3990, + "cardHolder": null, + "cardNumber": null, + "firstDigits": "444433", + "lastDigits": "1111", + "cvv2": "351", + "expireMonth": "12", + "expireYear": "2029", + "url": null, + "giftCardId": null, + "giftCardName": null, + "giftCardCaption": null, + "redemptionCode": null, + "group": "creditCard", + "tid": "65738757", + "dueDate": "12/29", + "connectorResponses": { + "authId": "738757", + "Tid": "65738757", + "ReturnCode": "200", + "Message": "857956" + }, + "giftCardProvider": "presentCard", + "giftCardAsDiscount": false, + "koinUrl": "koinURL", + "accountId": "5BC5C6B417FE432AB971B1D399F190C9", + "parentAccountId": "5BC5C6B417FE432AB971B1D399F190C9", + "bankIssuedInvoiceIdentificationNumber": "23797770100000019003099260100022107500729050", + "bankIssuedInvoiceIdentificationNumberFormatted": "32534.95739 75945.24534 54395.734214 5", + "bankIssuedInvoiceBarCodeNumber": "325349573975945245345439573421443986734065", + "bankIssuedInvoiceBarCodeType": "i25", + "billingAddress": { + "country": "BRA", + "street": "Brigadeiro Faria Lima Avenue", + "number": "4440", + "complement": "10th Floor", + "reference": null, + "geoCoordinates": [ + -51.065948486328125, + 0.014090900309383867 + ], + "neighborhood": "Itaim Bibi", + "postalCode": "04538132", + "city": "São Paulo", + "state": "SP" + }, + "paymentOrigin": "PayPal" + } + ] + } + ], + "giftCards": [] + }, + "shippingData": { + "id": "shippingData", + "address": { + "addressType": "residential", + "receiverName": "Rodrigo Smith", + "addressId": "3206601248910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "postalCode": "22630-011", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Lúcio Costa", + "number": "126", + "neighborhood": "Barra da Tijuca", + "complement": "10", + "reference": "apartment", + "geoCoordinates": [ + -43.3373718, + -23.0105873 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "lockTTL": "10d", + "price": 3000, + "listPrice": 3000, + "sellingPrice": 3000, + "deliveryWindow": null, + "deliveryCompany": "All CEPs", + "shippingEstimate": "4bd", + "shippingEstimateDate": "2024-03-09T10:13:40.1020453+00:00", + "slas": [ + { + "id": "Normal", + "name": "Normal", + "shippingEstimate": "4bd", + "deliveryWindow": null, + "price": 3000, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "region196", + "lockTTL": "10d", + "pickupPointId": "1_store-RJ", + "transitTime": "3d", + "pickupDistance": 0 + }, + { + "id": "Express", + "name": "Express", + "shippingEstimate": "2bd", + "deliveryWindow": null, + "price": 3000, + "deliveryChannel": "pickup-in-point", + "pickupStoreInfo": { + "additionalInfo": "Arrive soon", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "VTEX-RJ", + "versionId": null, + "entityId": null, + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "4th floor", + "reference": null, + "geoCoordinates": [ + -43.18259, + -22.94436 + ] + }, + "dockId": "Take away dock", + "friendlyName": "Store Name RJ", + "isPickupStore": true + }, + "polygonName": "", + "lockTTL": "10d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "0d", + "pickupDistance": 17.473064422607422 + } + ], + "shipsTo": [ + "BRA" + ], + "deliveryIds": [ + { + "courierId": "136769c", + "courierName": "Correios", + "dockId": "dock_1f95", + "quantity": 1, + "warehouseId": "warehouse_68d7", + "accountCarrierName": "recorrencia", + "kitItemDetails": [] + } + ], + "deliveryChannels": [ + { + "id": "delivery", + "stockBalance": 0 + }, + { + "id": "pickup-in-point", + "stockBalance": 0 + } + ], + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "addressId": "3206601248910", + "versionId": null, + "entityId": null, + "polygonName": "", + "pickupPointId": null, + "transitTime": "3d" + } + ], + "trackingHints": [ + { + "trackingId": "701-1947797-1739404_DBA", + "courierName": "Amazon Label", + "trackingUrl": "https://storeName.vtexcommercestable.com.br/api/integration-amazon/logistic-program/dba/labels?orderId=d9xsHobRJCIWbbub0", + "trackingLabel": "Amazon Label" + } + ], + "selectedAddresses": [ + { + "addressType": "residential", + "receiverName": "Rodrigo Smith", + "addressId": "3206601248910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "postalCode": "22630-011", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Lúcio Costa", + "number": "126", + "neighborhood": "Barra da Tijuca", + "complement": "10", + "reference": "4th floor", + "geoCoordinates": [ + -43.3373718, + -23.0105873 + ] + } + ], + "contactInformation": [ + { + "id": "0", + "email": "contact@email.com", + "firstName": "U**", + "lastName": "H*****", + "phone": "556196842267", + "document": "845.134.270-19", + "documentType": "cpf", + "entityId": "5e50b939-2797-4644-afc9-202069cec129", + "versionId": "9af7b09a-be4c-41a1-b0e9-47c54dd062b4" + } + ] + }, + "ratesAndBenefitsData": { + "id": "ratesAndBenefitsData", + "rateAndBenefitsIdentifiers": [ + { + "id": "2a7acc17-1eb9-4541-8ac6-2776ce9628e6", + "name": "Shipping promo $100", + "featured": true, + "description": "Promotion of the week", + "matchedParameters": { + "Free Shipping": "100" + }, + "additionalInfo": null + } + ] + }, + "marketingData": { + "id": "marketingData", + "utmSource": "fb", + "utmPartner": "utm partner name", + "utmMedium": "utm medium name", + "utmCampaign": "christmas", + "coupon": "sale", + "utmiCampaign": " ", + "utmipage": " ", + "utmiPart": " ", + "marketingTags": [ + "vtex-subscription" + ] + }, + "giftRegistryData": { + "giftRegistryId": "154", + "giftRegistryType": "9", + "giftRegistryTypeName": "Wedding list", + "addressId": "4352357942349", + "description": "Alanna & Daniel" + }, + "clientProfileData": { + "id": "clientProfile_6930", + "email": "rodrigo.smith@email.com", + "firstName": "Rodrigo", + "lastName": "Smith", + "documentType": "cpf", + "document": "845.134.270-19", + "phone": "+5561992227222", + "corporateName": null, + "tradeName": null, + "corporateDocument": null, + "stateInscription": null, + "corporatePhone": null, + "isCorporate": false, + "userProfileId": "5660c55f-714d-4b14-88a7-b03e9bfbdd2y", + "userProfileVersion": "b98d1d7b-4075-4d88-81e5-418d36b078g3", + "customerClass": null, + "customerCode": "933d29f5-c7c5-4d12-b0c8-c30079c33b21" + }, + "items": [ + { + "uniqueId": "94913BB553334977BFD669A24E678C69", + "id": "18", + "productId": "6", + "ean": "3256873", + "lockId": "00-1415461749731-01", + "itemAttachment": { + "content": {}, + "name": null + }, + "attachments": [], + "quantity": 1, + "seller": "1", + "name": "Bay Max L", + "refId": "BIGBML", + "price": 990, + "listPrice": 1990, + "manualPrice": null, + "priceTags": [], + "imageUrl": "https://luxstore.img.com.br/ids/155392-55-55/KOI.jpg?v=6359184022286", + "detailUrl": "/bay-max-9429485/p", + "components": [], + "bundleItems": [ + { + "id": 12, + "quantity": 2 + } + ], + "params": [], + "offerings": [], + "attachmentOfferings": [ + { + "name": "luxstore.subscription.weekly", + "required": false, + "schema": { + "luxstore.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + "2 week", + "3 week", + "4 week" + ] + } + } + } + ], + "sellerSku": "18", + "priceValidUntil": "2025-03-05T10:13:09.0000000+00:00", + "commission": 0, + "tax": 0, + "preSaleDate": null, + "additionalInfo": { + "brandName": "Lux Brand", + "brandId": "2000000", + "categoriesIds": "/9/", + "categories": [ + { + "id": 9, + "name": "Coach" + } + ], + "productClusterId": "135", + "commercialConditionId": "1", + "dimension": { + "cubicweight": 1, + "height": 10, + "length": 10, + "weight": 10, + "width": 10 + }, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "measurementUnit": "un", + "unitMultiplier": 1, + "sellingPrice": 990, + "isGift": false, + "shippingPrice": null, + "rewardValue": 1599, + "freightCommission": 0, + "priceDefinition": { + "sellingPrices": [ + { + "value": 990, + "quantity": 1 + } + ], + "calculatedSellingPrice": 990, + "total": 990, + "reason": null + }, + "taxCode": "product_Free", + "parentItemIndex": 0, + "parentAssemblyBinding": "assembly_product_warranty", + "callCenterOperator": null, + "serialNumbers": null, + "assemblies": [], + "costPrice": 520 + } + ], + "marketplaceItems": [] + } + } + } + } + } + } + }, + "/api/oms/pvt/orders/order-group/{orderGroup}": { + "get": { + "tags": [ + "Orders" + ], + "summary": "Get orders by order group ID", + "description": "Retrieves details about all orders related to the same purchase by searching by order group ID.\r\n\r\n>⚠️ Throttling: Each VTEX account can make up to 6000 requests per minute.\r\n\r\n> You can only access information from orders created in the last two years, and that same period is valid for customers through [My Account](https://help.vtex.com/en/tutorial/how-my-account-works--2BQ3GiqhqGJTXsWVuio3Xh).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| OMS - Full access | View order |\r\n| Checkout Admin | View order |\r\n| IntegrationProfile - Fulfillment Oms | View order |\r\n| OMS - Full access | Orders Full Access |\r\n| Checkout Admin | Orders Full Access |\r\n| IntegrationProfile - Fulfillment Oms | Orders Full Access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "parameters": [ + { + "name": "orderGroup", + "in": "path", + "description": "Order group ID is a part of the order ID that groups all orders related to the same purchase. For example, when an order is fullfilled by multiple sellers, each seller has its own order ID (`v71021570str-01` and `v71021570str-02`), but they share the same order group ID (`v71021570str`).", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "v71021570str" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of orders grouped by the order group ID.", + "items": { + "type": "object", + "description": "Information about an order related to the order group ID.", + "properties": { + "orderId": { + "type": "string", + "description": "Order ID." + }, + "sequence": { + "type": "string", + "description": "Sequence number part of the order ID. For example, in order `v70530116str-01`, the sequence is `70530116`." + }, + "marketplaceOrderId": { + "type": "string", + "description": "Order ID in the marketplace.", + "nullable": true + }, + "marketplaceServicesEndpoint": { + "type": "string", + "description": "Marketplace endpoint for post purchase communication.", + "nullable": true + }, + "sellerOrderId": { + "type": "string", + "description": "Seller order ID." + }, + "origin": { + "type": "string", + "description": "Order's [origin in the order flow](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196).", + "enum": [ + "Marketplace", + "Fulfillment", + "Chain" + ] + }, + "affiliateId": { + "type": "string", + "description": "Three-letter [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) code configured by the seller to identify a marketplace.", + "nullable": true + }, + "salesChannel": { + "type": "string", + "description": "Sales channel (or [trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) ID related to the order." + }, + "merchantName": { + "type": "string", + "description": "For a VTEX store, the merchant's name will be the same as the account name. An external seller can have a `merchantName`, but it will not be an account name.", + "nullable": true + }, + "status": { + "type": "string", + "description": "[Order status](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196) in the workflow." + }, + "statusDescription": { + "type": "string", + "description": "Status description displayed on the VTEX Admin. This field is obsolete and may not return any value.", + "nullable": true, + "deprecated": true + }, + "value": { + "type": "integer", + "description": "Order total value in cents." + }, + "creationDate": { + "type": "string", + "description": "Order creation date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "lastChange": { + "type": "string", + "description": "Order last change date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "orderGroup": { + "type": "string", + "description": "Order group ID, a segment of the order ID that groups all orders related to the same purchase. For example, in order ID `v71021570str-02`), the order group ID is `v71021570str`." + }, + "totals": { + "$ref": "#/components/schemas/TotalsUpdated" + }, + "items": { + "$ref": "#/components/schemas/ItemsUpdated" + }, + "marketplaceItems": { + "type": "array", + "description": "Array with marketplace items information.", + "items": { + "type": "string", + "description": "Marketplace items." + } + }, + "clientProfileData": { + "$ref": "#/components/schemas/ClientProfileDataUpdated" + }, + "giftRegistryData": { + "$ref": "#/components/schemas/GiftRegistryDataUpdated" + }, + "marketingData": { + "$ref": "#/components/schemas/MarketingDataUpdated" + }, + "ratesAndBenefitsData": { + "$ref": "#/components/schemas/RatesAndBenefitsDataUpdated" + }, + "shippingData": { + "$ref": "#/components/schemas/ShippingDataUpdated" + }, + "paymentData": { + "$ref": "#/components/schemas/PaymentDataUpdated" + }, + "packageAttachment": { + "$ref": "#/components/schemas/PackageAttachmentUpdated" + }, + "sellers": { + "$ref": "#/components/schemas/SellersUpdated" + }, + "callCenterOperatorData": { + "$ref": "#/components/schemas/CallCenterOperatorDataUpdated" + }, + "followUpEmail": { + "type": "string", + "description": "Email of the store employee responsible for managing the order." + }, + "lastMessage": { + "type": "string", + "description": "Last transactional message sent to the customer.", + "nullable": true + }, + "hostname": { + "type": "string", + "description": "Main [account name](https://help.vtex.com/en/tutorial/what-is-an-account-name--i0mIGLcg3QyEy8OCicEoC)." + }, + "invoiceData": { + "$ref": "#/components/schemas/InvoiceDataUpdated" + }, + "changesAttachment": { + "$ref": "#/components/schemas/ChangesAttachmentUpdated" + }, + "openTextField": { + "type": "object", + "description": "Optional field for additional information.", + "nullable": true, + "additionalProperties": { + "type": "string", + "description": "Additional information." + } + }, + "roundingError": { + "type": "integer", + "description": "Rounding error total value in cents, when applicable. For example, in orders with a discount over non-integer multiplier items, the rounding price is applied per item, not after the sum of all items, what can cause a difference in the total discount value." + }, + "orderFormId": { + "type": "string", + "description": "ID of the [orderForm](https://developers.vtex.com/docs/guides/orderform-fields), the main object processed by the VTEX Checkout." + }, + "commercialConditionData": { + "type": "string", + "description": "Commercial condition information.", + "nullable": true + }, + "isCompleted": { + "type": "boolean", + "description": "Defines if the order payment has been settled (`true`) or not (`false`)." + }, + "customData": { + "type": "object", + "description": "Customizable fields created by the store for the shopping cart. This field is useful for storing data not included in other fields. For example, a message for a gift or a name to be printed in a shirt.", + "nullable": true, + "properties": { + "customApps": { + "type": "array", + "description": "Customizable apps created by the store.", + "nullable": true, + "items": { + "type": "string", + "description": "Customizable apps details.", + "nullable": true + } + }, + "customFields": { + "type": "array", + "description": "Array with information about the custom fields.", + "items": { + "type": "object", + "description": "Object with information about the custom fields.", + "properties": { + "linkedEntity": { + "type": "object", + "description": "Linked entity information.", + "properties": { + "type": { + "type": "string", + "description": "Type of the linked entity such as `cart`, `item`, `address`." + }, + "id": { + "type": "string", + "description": "ID of the linked entity." + } + } + }, + "fields": { + "type": "array", + "description": "Array with information about the custom field's name and value.", + "items": { + "type": "object", + "description": "Custom field's name and value.", + "properties": { + "name": { + "type": "string", + "description": "Name of the custom field." + }, + "value": { + "type": "string", + "description": "Value of the custom field." + } + } + } + } + } + } + } + } + }, + "storePreferencesData": { + "$ref": "#/components/schemas/StorePreferencesDataUpdated" + }, + "allowCancellation": { + "type": "boolean", + "description": "Defines if order cancellation is allowed (`true`) or not anymore (`false`)." + }, + "allowEdition": { + "type": "boolean", + "description": "Defines if the order can be edited (`true`) or not anymore (`false`)." + }, + "isCheckedIn": { + "type": "boolean", + "description": "Defines if the order was placed via [VTEX Sales App](https://help.vtex.com/en/tracks/instore-getting-started-and-setting-up--zav76TFEZlAjnyBVL5tRc) (`true`) or not (`false`)." + }, + "marketplace": { + "$ref": "#/components/schemas/MarketplaceUpdated" + }, + "authorizedDate": { + "type": "string", + "description": "Order authorization date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + }, + "invoicedDate": { + "type": "string", + "description": "Order invoice date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + }, + "cancelReason": { + "type": "string", + "description": "Order cancellation reason.", + "nullable": true + }, + "itemMetadata": { + "$ref": "#/components/schemas/ItemMetadataUpdated" + }, + "subscriptionData": { + "$ref": "#/components/schemas/SubscriptionDataUpdated" + }, + "taxData": { + "$ref": "#/components/schemas/TaxDataUpdated" + }, + "checkedInPickupPointId": { + "type": "string", + "description": "When the order is created at a physical store which is configured as a pickup point, this field retrieves the pickup point ID.", + "nullable": true + }, + "cancellationData": { + "$ref": "#/components/schemas/CancellationDataUpdated" + }, + "cancellationRequests": { + "$ref": "#/components/schemas/CancellationRequestsUpdated" + }, + "clientPreferencesData": { + "$ref": "#/components/schemas/ClientPreferencesDataUpdated" + } + } + } + }, + "example": [ + { + "orderId": "v71425090str-01", + "sequence": "71425090", + "marketplaceOrderId": "", + "marketplaceServicesEndpoint": "http://oms.vtexinternal.com.br/api/oms?an=str", + "sellerOrderId": "00-v71425090str-01", + "origin": "Marketplace", + "affiliateId": "", + "salesChannel": "1", + "merchantName": null, + "status": "", + "statusDescription": null, + "value": 5458, + "creationDate": "2024-10-09T19:25:26.5838646+00:00", + "lastChange": "2024-10-09T19:26:29.6119318+00:00", + "orderGroup": "v71425090str", + "totals": [ + { + "id": "Items", + "name": "Total Items", + "value": 6999 + }, + { + "id": "Discounts", + "name": "Total Discounts", + "value": -1750 + }, + { + "id": "Shipping", + "name": "Total Freight", + "value": 209, + "alternativeTotals": [ + { + "id": "AlternativeShippingTotal", + "name": "Alternative Shipping Total", + "value": 2435 + }, + { + "id": "AlternativeShippingDiscount", + "name": "Alternative Shipping Discount", + "value": -2226 + } + ] + }, + { + "id": "Tax", + "name": "Total Tax", + "value": 0 + } + ], + "items": [ + { + "uniqueId": "E1CA66F73B8746B19AE2A9CFB2D2D260", + "id": "5830010", + "productId": "4301268", + "ean": null, + "lockId": "00-v71425090str-01", + "itemAttachment": { + "content": {}, + "name": null + }, + "attachments": [], + "quantity": 1, + "seller": "1", + "name": "white cotton shirt M", + "refId": "11167127", + "price": 6999, + "listPrice": 6999, + "manualPrice": null, + "manualPriceAppliedBy": null, + "priceTags": [ + { + "name": "DISCOUNT@MARKETPLACE", + "value": -1750, + "isPercentual": false, + "identifier": "026be20b-9839-486e-9e6e-8987a93eb92a", + "rawValue": -17.5, + "rate": null, + "jurisCode": null, + "jurisType": null, + "jurisName": null + } + ], + "imageUrl": "https://str.vteximg.com.br/files/ids/56901106-200-240/white-cotton-shirt.jpg?v=638108542148100000", + "detailUrl": "/white-cotton-shirt/p", + "components": [], + "bundleItems": [], + "params": [], + "offerings": [], + "attachmentOfferings": [], + "sellerSku": "5830010", + "priceValidUntil": null, + "commission": 0, + "tax": 0, + "preSaleDate": null, + "additionalInfo": { + "brandName": "STR", + "brandId": "1", + "categoriesIds": "/1000083/1004135/1004138/", + "categories": [ + { + "id": 1004138, + "name": "Shirts" + }, + { + "id": 1004135, + "name": "Clothes" + }, + { + "id": 1000083, + "name": "Male fashion" + } + ], + "productClusterId": "8896,9708,9922,10068,11240,13213,15891,16552,17287,17349,17415,17436,17465,17630,17775,17785,17822,17836,17992,18126,18187,18224,18231,18234,18265,18269,18292,18335,18348,18363,18379,18398,18410,18419,18422,18442,18472,18509,18519,18658,18674,18681,18695,18701,18715,18847,18855,18896,18912,18916,18927,18959,18969,18971,18999,19016,19023,19035,19072,19107,19147,19151,19206,19230,19242,19387,19422,19454,19481,19482,19588,19597,19603,19640,19660,19671,19681,19699,19721,19738,19739", + "commercialConditionId": "1", + "dimension": { + "cubicweight": 0.5208, + "height": 10, + "length": 25, + "weight": 210, + "width": 10 + }, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "measurementUnit": "un", + "unitMultiplier": 1, + "sellingPrice": 5249, + "isGift": false, + "shippingPrice": null, + "rewardValue": 0, + "freightCommission": 0, + "priceDefinition": { + "sellingPrices": [ + { + "value": 5249, + "quantity": 1 + } + ], + "calculatedSellingPrice": 5249, + "total": 5249, + "reason": null + }, + "taxCode": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "callCenterOperator": null, + "serialNumbers": null, + "assemblies": [], + "costPrice": 6998 + } + ], + "marketplaceItems": [], + "clientProfileData": { + "id": "clientProfileData", + "email": "cmlsmith@email.com", + "firstName": "Camila", + "lastName": "Smith", + "documentType": "cpf", + "document": "15586841755", + "phone": "+5521975366533", + "corporateName": null, + "tradeName": null, + "corporateDocument": null, + "stateInscription": null, + "corporatePhone": null, + "isCorporate": false, + "userProfileId": "e366889f-9d07-4076-a78d-72af8fdfd7e7", + "userProfileVersion": null, + "customerClass": null, + "customerCode": null + }, + "giftRegistryData": null, + "marketingData": { + "id": "marketingData", + "utmSource": "delorean", + "utmPartner": null, + "utmMedium": "mystr", + "utmCampaign": "johnvasconcelosg", + "coupon": "", + "utmiCampaign": "", + "utmipage": "", + "utmiPart": "", + "marketingTags": [ + "mstr_servicos", + "mstr_delorean", + "mstr_johnvasconcelosg", + "mstr_mystr", + "mobile", + "Delivery", + "STR" + ] + }, + "ratesAndBenefitsData": { + "id": "ratesAndBenefitsData", + "rateAndBenefitsIdentifiers": [ + { + "description": "ID\t518\nValis purchases\tMy STR;CRM;POM;\nWeek\t202441\nDate_begin\t07/10/2024 14:00\nDate_end\t22/10/2024\nName_promotion\t25%_3PC_W41_07-10-2024\n\nValid_for\tColection\t19738\nChannel\tApp;Site;\nName_requester\tJohn Carlos\nEmail_requester\tjohn.c@str.com\nAuthor\tGuilherme Verner", + "featured": false, + "id": "026be20b-9839-486e-9e6e-8987a93eb92a", + "name": "25%_3PC_W41_07-10-2024", + "matchedParameters": { + "Seller@CatalogSystem": "1|inclusive" + }, + "additionalInfo": null + } + ] + }, + "shippingData": { + "id": "shippingData", + "address": { + "addressType": "residential", + "receiverName": "Camila Smith", + "addressId": "968d3b10816145878aa09b320f7e688a", + "versionId": null, + "entityId": null, + "postalCode": "21020-402", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Couto", + "number": "29", + "neighborhood": "Penha", + "complement": "Bloco 5 apt 321", + "reference": "Next to the Shopping", + "geoCoordinates": [ + -43.27359390258789, + -22.835159301757812 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "itemId": "5830010", + "selectedDeliveryChannel": "delivery", + "selectedSla": "Normal", + "lockTTL": "12d", + "price": 209, + "listPrice": 2435, + "sellingPrice": 209, + "deliveryWindow": null, + "deliveryCompany": "ASAPLAG_CR", + "shippingEstimate": "2bd", + "shippingEstimateDate": "2024-10-11T18:00:00.0000000+00:00", + "slas": [ + { + "id": "Normal", + "name": "Normal", + "shippingEstimate": "2bd", + "shippingEstimateDate": "2024-10-11T18:00:00.0000000+00:00", + "deliveryWindow": null, + "availableDeliveryWindows": [], + "deliveryIds": [ + { + "courierId": "ASAPLAG_CR", + "courierName": "ASAPLAG_CR", + "dockId": "6", + "quantity": 1, + "warehouseId": "1_1", + "accountCarrierName": "str", + "kitItemDetails": [] + } + ], + "listPrice": 2435, + "price": 209, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "", + "lockTTL": "12d", + "pickupPointId": null, + "transitTime": "1bd", + "pickupDistance": 0 + }, + { + "id": "Gift", + "name": "Gift", + "shippingEstimate": "2bd", + "shippingEstimateDate": null, + "deliveryWindow": null, + "availableDeliveryWindows": [], + "deliveryIds": [ + { + "courierId": "ASAPLAG_CR_GIFT", + "courierName": "ASAPLAG_CR_GIFT", + "dockId": "1317c52", + "quantity": 1, + "warehouseId": "1_1", + "accountCarrierName": "str", + "kitItemDetails": [] + } + ], + "listPrice": 4435, + "price": 1399, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "", + "lockTTL": "12d", + "pickupPointId": null, + "transitTime": "1bd", + "pickupDistance": 0 + }, + { + "id": "Pickup at store (CAR)", + "name": "Pickup at store (CAR)", + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "deliveryWindow": null, + "availableDeliveryWindows": [], + "deliveryIds": [ + { + "courierId": "1", + "courierName": "Flexible shipping", + "dockId": "1", + "quantity": 1, + "warehouseId": "1_2", + "accountCarrierName": "strcar", + "kitItemDetails": [] + } + ], + "listPrice": 0, + "price": 0, + "deliveryChannel": "pickup-in-point", + "pickupStoreInfo": { + "additionalInfo": "{\"phoneNumber\":\"(21) 3317-6791 \",\"pickupInstructions\":\"Present document with photo\"}", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "CAR", + "versionId": null, + "entityId": null, + "postalCode": "21210000", + "city": "Rio De Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Avenida Vicente De Carvalho", + "number": "909", + "neighborhood": "Vicente De Carvalho", + "complement": "Store STR Store 101", + "reference": null, + "geoCoordinates": [ + -43.31001, + -22.84991 + ] + }, + "dockId": null, + "friendlyName": "STR Carioca Shopping - Pickup at store", + "isPickupStore": true + }, + "polygonName": "", + "lockTTL": "12d", + "pickupPointId": "strcar_CAR", + "transitTime": "1bd", + "pickupDistance": 4.076280117034912 + } + ], + "shipsTo": [ + "BRA" + ], + "deliveryIds": [ + { + "courierId": "ASAPLAG_CR", + "courierName": "ASAPLAG_CR", + "dockId": "6", + "quantity": 1, + "warehouseId": "1_1", + "accountCarrierName": "str", + "kitItemDetails": [] + } + ], + "deliveryChannels": [ + { + "id": "delivery", + "stockBalance": 0 + }, + { + "id": "pickup-in-point", + "stockBalance": 0 + } + ], + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "addressId": "968d3b10816145878aa09b320f7e688a", + "versionId": null, + "entityId": null, + "polygonName": "", + "pickupPointId": null, + "transitTime": "1bd" + } + ], + "trackingHints": null, + "selectedAddresses": [ + { + "addressId": "968d3b10816145878aa09b320f7e688a", + "versionId": null, + "entityId": null, + "addressType": "residential", + "receiverName": "Camila Smith", + "street": "Couto", + "number": "29", + "complement": "Building 3 apt 321", + "neighborhood": "Penha", + "postalCode": "21020-402", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "reference": "Next to the Shopping", + "geoCoordinates": [ + -43.27359390258789, + -22.835159301757812 + ] + } + ], + "availableAddresses": [ + { + "addressId": "968d3b10816145878aa09b320f7e688a", + "versionId": null, + "entityId": null, + "addressType": "residential", + "receiverName": "Camila Smith", + "street": "Couto", + "number": "29", + "complement": "Building 3 apt 321", + "neighborhood": "Penha", + "postalCode": "21020-402", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "reference": "Next to the Shopping", + "geoCoordinates": [ + -43.27359390258789, + -22.835159301757812 + ] + } + ], + "contactInformation": [] + }, + "paymentData": { + "giftCards": [], + "transactions": [ + { + "isActive": true, + "transactionId": "A599C01B84114016884B143BED05A3GG", + "merchantName": "STR", + "payments": [ + { + "id": "B004B117C52F405FB2AE82835373186D", + "paymentSystem": "125", + "paymentSystemName": "Pix", + "value": 22745, + "installments": 1, + "referenceValue": 22745, + "cardHolder": null, + "cardNumber": null, + "firstDigits": null, + "lastDigits": null, + "cvv2": null, + "expireMonth": null, + "expireYear": null, + "url": null, + "giftCardId": null, + "giftCardName": null, + "giftCardCaption": null, + "redemptionCode": null, + "group": "instantPayment", + "tid": "89781829739", + "dueDate": null, + "connectorResponses": { + "Tid": "89781829739", + "ReturnCode": null, + "Message": null, + "authId": "89781829739", + "nsu": "89781829739", + "acquirer": "paymarket" + }, + "giftCardProvider": null, + "giftCardAsDiscount": null, + "koinUrl": null, + "accountId": null, + "parentAccountId": null, + "bankIssuedInvoiceIdentificationNumber": null, + "bankIssuedInvoiceIdentificationNumberFormatted": null, + "bankIssuedInvoiceBarCodeNumber": null, + "bankIssuedInvoiceBarCodeType": null, + "billingAddress": null, + "paymentOrigin": null + } + ] + } + ] + }, + "packageAttachment": { + "packages": [] + }, + "sellers": [ + { + "id": "1", + "name": "STR", + "logo": "", + "fulfillmentEndpoint": "http://fulfillment.vtexcommerce.com.br/api/fulfillment?an=str" + } + ], + "callCenterOperatorData": null, + "followUpEmail": "90ea3ef8b6a64b2588f4bc6cb8617acd@ct.vtex.com", + "lastMessage": null, + "hostname": "str", + "invoiceData": null, + "changesAttachment": null, + "openTextField": null, + "roundingError": 0, + "orderFormId": "066ab2f7f65043a3aa396c749e202fd3", + "commercialConditionData": null, + "isCompleted": true, + "customData": { + "customFields": [ + { + "linkedEntity": { + "type": "item", + "id": "B2949D0A45244825B177D2F9F96DC711" + }, + "fields": [ + { + "name": "desktop", + "value": "DSK-NEW" + } + ] + } + ] + }, + "storePreferencesData": { + "countryCode": "BRA", + "currencyCode": "BRL", + "currencyFormatInfo": { + "CurrencyDecimalDigits": 2, + "CurrencyDecimalSeparator": ",", + "CurrencyGroupSeparator": ".", + "CurrencyGroupSize": 3, + "StartsWithCurrencySymbol": true + }, + "currencyLocale": 1046, + "currencySymbol": "R$", + "timeZone": "E. South America Standard Time" + }, + "allowCancellation": true, + "allowEdition": false, + "isCheckedIn": false, + "marketplace": { + "baseURL": "http://oms.vtexinternal.com.br/api/oms?an=str", + "isCertified": null, + "name": "str" + }, + "authorizedDate": null, + "invoicedDate": null, + "cancelReason": null, + "itemMetadata": { + "Items": [ + { + "Id": "6193892", + "Seller": "1", + "Name": "oversized tshirt brown", + "SkuName": "G", + "ProductId": "4451807", + "RefId": "11493357", + "Ean": null, + "ImageUrl": "https://str.vteximg.com.br/files/ids/58461640-200-240/photo-1.jpg?v=638446429959270000", + "DetailUrl": "/oversized-tshirt-brown_e2/p", + "AssemblyOptions": [] + }, + { + "Id": "5830010", + "Seller": "1", + "Name": "oversized tshirt blue", + "SkuName": "GG", + "ProductId": "4301268", + "RefId": "11167127", + "Ean": null, + "ImageUrl": "https://str.vteximg.com.br/files/ids/56901106-200-240/1045935-blue.jpg?v=638108542148100000", + "DetailUrl": "/oversized-tshirt-blue-1045935-branco/p", + "AssemblyOptions": [] + } + ] + }, + "subscriptionData": null, + "taxData": null, + "checkedInPickupPointId": null, + "cancellationData": null, + "cancellationRequests": null, + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": true + } + }, + { + "orderId": "v71425090str-02", + "sequence": "71425091", + "marketplaceOrderId": "", + "marketplaceServicesEndpoint": null, + "sellerOrderId": "SLR-v71425090str-02", + "origin": "Marketplace", + "affiliateId": "", + "salesChannel": "1", + "merchantName": null, + "status": "", + "statusDescription": null, + "value": 6208, + "creationDate": "2024-10-09T19:25:26.5841061+00:00", + "lastChange": "2024-10-09T19:26:29.6129583+00:00", + "orderGroup": "v71425090str", + "totals": [ + { + "id": "Items", + "name": "Total Items", + "value": 7999 + }, + { + "id": "Discounts", + "name": "Total Discounts", + "value": -2000 + }, + { + "id": "Shipping", + "name": "Total Freight", + "value": 209, + "alternativeTotals": [ + { + "id": "AlternativeShippingTotal", + "name": "Alternative Shipping Total", + "value": 2455 + }, + { + "id": "AlternativeShippingDiscount", + "name": "Alternative Shipping Discount", + "value": -2246 + } + ] + }, + { + "id": "Tax", + "name": "Total Tax", + "value": 0 + } + ], + "items": [ + { + "uniqueId": "54638748C4D54F6CBAA738737E65D594", + "id": "6229640", + "productId": "4460339", + "ean": null, + "lockId": null, + "itemAttachment": { + "content": {}, + "name": null + }, + "attachments": [], + "quantity": 1, + "seller": "strbar", + "name": "cropped brown G", + "refId": "11455795", + "price": 7999, + "listPrice": 7999, + "manualPrice": null, + "manualPriceAppliedBy": null, + "priceTags": [ + { + "name": "discount@price-026be20b-9839-486e-9e6e-8987a93eb92a#5420fe70-7470-4b79-9741-80d951e451b2", + "value": -2000, + "isPercentual": false, + "identifier": "026be20b-9839-486e-9e6e-8987a93eb92a", + "rawValue": -20, + "rate": null, + "jurisCode": null, + "jurisType": null, + "jurisName": null + } + ], + "imageUrl": "https://str.vteximg.com.br/files/ids/58845769-200-240/photo-0.jpg?v=638569102126000000", + "detailUrl": "/cropped-brown-1065805_e2/p", + "components": [], + "bundleItems": [], + "params": [], + "offerings": [], + "attachmentOfferings": [], + "sellerSku": "6229640", + "priceValidUntil": "2044-05-29T14:00:00.0000000+00:00", + "commission": 0, + "tax": 0, + "preSaleDate": null, + "additionalInfo": { + "brandName": "C&A", + "brandId": "1", + "categoriesIds": "/1000003/1004161/1004162/", + "categories": [ + { + "id": 1004162, + "name": "Tops" + }, + { + "id": 1004161, + "name": "Clothes" + }, + { + "id": 1000003, + "name": "Women Fashion" + } + ], + "productClusterId": "8896,9708,9922,10068,11240,11577,13213,14487,15891,18170,18224,19010,19107,19122,19132,19482,19500,19519,19588,19597,19720,19736,19738,19742", + "commercialConditionId": "1", + "dimension": { + "cubicweight": 1, + "height": 100, + "length": 100, + "weight": 200, + "width": 100 + }, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "measurementUnit": "un", + "unitMultiplier": 1, + "sellingPrice": 5999, + "isGift": false, + "shippingPrice": null, + "rewardValue": 0, + "freightCommission": 0, + "priceDefinition": { + "sellingPrices": [ + { + "value": 5999, + "quantity": 1 + } + ], + "calculatedSellingPrice": 5999, + "total": 5999, + "reason": null + }, + "taxCode": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "callCenterOperator": null, + "serialNumbers": null, + "assemblies": [], + "costPrice": null + } + ], + "marketplaceItems": [], + "clientProfileData": { + "id": "clientProfileData", + "email": "cmlsmith@email.com", + "firstName": "Camila", + "lastName": "Smith", + "documentType": "cpf", + "document": "15586841755", + "phone": "+5521975366533", + "corporateName": null, + "tradeName": null, + "corporateDocument": null, + "stateInscription": null, + "corporatePhone": null, + "isCorporate": false, + "userProfileId": "e366889f-9d07-4076-a78d-72af8fdfd7e7", + "userProfileVersion": null, + "customerClass": null, + "customerCode": null + }, + "giftRegistryData": null, + "marketingData": { + "id": "marketingData", + "utmSource": "delorean", + "utmPartner": null, + "utmMedium": "mystr", + "utmCampaign": "johnvasconcelosg", + "coupon": "", + "utmiCampaign": "", + "utmipage": "", + "utmiPart": "", + "marketingTags": [ + "mstr_servicos", + "mstr_delorean", + "mstr_johnvasconcelosg", + "mstr_mystr", + "mobile", + "Delivery", + "STR" + ] + }, + "ratesAndBenefitsData": { + "id": "ratesAndBenefitsData", + "rateAndBenefitsIdentifiers": [ + { + "description": "ID\t518\nValid purchases in\tMy STR;CRM;POM;\nWeek\t202441\nDate_begin\t07/10/2024 14:00\nDate_end\t22/10/2024 12:00\nName_promotion\t25%_3PC_W41_07-10-2024\nMecanic\t25% off\nSeller\tSTR\nValid_for\tColection\t19738\nChannel\tApp;Site;\nName_requester\tJohn Carlos\nEmail_requester\tjose.c@str.com\nAuthor\tGuilherme Verner", + "featured": false, + "id": "026be20b-9839-486e-9e6e-8987a93eb92a", + "name": "25%_3PC_W41_07-10-2024", + "matchedParameters": { + "Seller@CatalogSystem": "1|inclusive" + }, + "additionalInfo": null + } + ] + }, + "shippingData": { + "id": "shippingData", + "address": { + "addressType": "residential", + "receiverName": "Camila Smith", + "addressId": "968d3b10816145878aa09b320f7e688a", + "versionId": null, + "entityId": null, + "postalCode": "21020-402", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Couto", + "number": "29", + "neighborhood": "Penha", + "complement": "Building 3 apt 321", + "reference": "Next to the Shopping", + "geoCoordinates": [ + -43.27359390258789, + -22.835159301757812 + ] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "itemId": "6229640", + "selectedDeliveryChannel": "delivery", + "selectedSla": "Normal", + "lockTTL": "12d", + "price": 209, + "listPrice": 2455, + "sellingPrice": 209, + "deliveryWindow": null, + "deliveryCompany": "ASAPLAG_NORMAL", + "shippingEstimate": "2bd", + "shippingEstimateDate": "2024-10-11T20:00:00.0000000+00:00", + "slas": [ + { + "id": "Pickup at store (BAR)", + "name": "Pickup at store (BAR)", + "shippingEstimate": "1bd", + "shippingEstimateDate": null, + "deliveryWindow": null, + "availableDeliveryWindows": [], + "deliveryIds": [ + { + "courierId": "1", + "courierName": "Flexible shipping", + "dockId": "1", + "quantity": 1, + "warehouseId": "1_2", + "accountCarrierName": "strbar", + "kitItemDetails": [] + } + ], + "listPrice": 0, + "price": 0, + "deliveryChannel": "pickup-in-point", + "pickupStoreInfo": { + "additionalInfo": "{\"phoneNumber\":\"(21) 2107-0063\",\"pickupInstructions\":\"Present document with photo\"}", + "address": { + "addressType": "pickup", + "receiverName": null, + "addressId": "BAR", + "versionId": null, + "entityId": null, + "postalCode": "22631004", + "city": "Rio De Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Av. Das Americas", + "number": "4666", + "neighborhood": "Barra Da Tijuca", + "complement": "Store STR Store A - BAR 530", + "reference": null, + "geoCoordinates": [ + -43.35817, + -22.9973 + ] + }, + "dockId": null, + "friendlyName": "STR Barra Shopping - Pickup at store", + "isPickupStore": true + }, + "polygonName": "", + "lockTTL": "12d", + "pickupPointId": "strbar_BAR", + "transitTime": "1bd", + "pickupDistance": 20.0021915435791 + }, + { + "id": "Normal", + "name": "Normal", + "shippingEstimate": "2bd", + "shippingEstimateDate": "2024-10-11T20:00:00.0000000+00:00", + "deliveryWindow": null, + "availableDeliveryWindows": [], + "deliveryIds": [ + { + "courierId": "ASAPLAG_NORMAL", + "courierName": "ASAPLAG_NORMAL", + "dockId": "SFS_BAR", + "quantity": 1, + "warehouseId": "1_2", + "accountCarrierName": "strbar", + "kitItemDetails": [] + } + ], + "listPrice": 2455, + "price": 209, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "", + "lockTTL": "12d", + "pickupPointId": null, + "transitTime": "1bd", + "pickupDistance": null + } + ], + "shipsTo": [ + "BRA" + ], + "deliveryIds": [ + { + "courierId": "ASAPLAG_NORMAL", + "courierName": "ASAPLAG_NORMAL", + "dockId": "SFS_BAR", + "quantity": 1, + "warehouseId": "1_2", + "accountCarrierName": "strbar", + "kitItemDetails": [] + } + ], + "deliveryChannels": [ + { + "id": "delivery", + "stockBalance": 0 + }, + { + "id": "pickup-in-point", + "stockBalance": 0 + } + ], + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "addressId": "968d3b10816145878aa09b320f7e688a", + "versionId": null, + "entityId": null, + "polygonName": "", + "pickupPointId": null, + "transitTime": "1bd" + } + ], + "trackingHints": null, + "selectedAddresses": [ + { + "addressId": "968d3b10816145878aa09b320f7e688a", + "versionId": null, + "entityId": null, + "addressType": "residential", + "receiverName": "Camila Smith", + "street": "Couto", + "number": "29", + "complement": "Building 3 apt 321", + "neighborhood": "Penha", + "postalCode": "21020-402", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "reference": "Next to the Shopping", + "geoCoordinates": [ + -43.27359390258789, + -22.835159301757812 + ] + } + ], + "availableAddresses": [ + { + "addressId": "968d3b10816145878aa09b320f7e688a", + "versionId": null, + "entityId": null, + "addressType": "residential", + "receiverName": "Camila Smith", + "street": "Couto", + "number": "29", + "complement": "Building 3 apt 321", + "neighborhood": "Penha", + "postalCode": "21020-402", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "reference": "Next to the Shopping", + "geoCoordinates": [ + -43.27359390258789, + -22.835159301757812 + ] + } + ], + "contactInformation": [] + }, + "paymentData": { + "giftCards": [], + "transactions": [ + { + "isActive": true, + "transactionId": "A599C01B84114016884B143BED05A3GG", + "merchantName": "STR", + "payments": [ + { + "id": "B004B117C52F405FB2AE82835373186D", + "paymentSystem": "125", + "paymentSystemName": "Pix", + "value": 22745, + "installments": 1, + "referenceValue": 22745, + "cardHolder": null, + "cardNumber": null, + "firstDigits": null, + "lastDigits": null, + "cvv2": null, + "expireMonth": null, + "expireYear": null, + "url": null, + "giftCardId": null, + "giftCardName": null, + "giftCardCaption": null, + "redemptionCode": null, + "group": "instantPayment", + "tid": "89781829739", + "dueDate": null, + "connectorResponses": { + "Tid": "89781829739", + "ReturnCode": null, + "Message": null, + "authId": "89781829739", + "nsu": "89781829739", + "acquirer": "paymarket" + }, + "giftCardProvider": null, + "giftCardAsDiscount": null, + "koinUrl": null, + "accountId": null, + "parentAccountId": null, + "bankIssuedInvoiceIdentificationNumber": null, + "bankIssuedInvoiceIdentificationNumberFormatted": null, + "bankIssuedInvoiceBarCodeNumber": null, + "bankIssuedInvoiceBarCodeType": null, + "billingAddress": null, + "paymentOrigin": null + } + ] + } + ] + }, + "packageAttachment": { + "packages": [] + }, + "sellers": [ + { + "id": "strbar", + "name": "STR Barra Shopping", + "logo": "", + "fulfillmentEndpoint": "http://fulfillment.vtexcommerce.com.br/api/fulfillment?an=strbar&affiliateId=SLR&sc=1" + } + ], + "callCenterOperatorData": null, + "followUpEmail": "c76fef8c4de34725aae5ebb429af3768@ct.vtex.com", + "lastMessage": null, + "hostname": "str", + "invoiceData": null, + "changesAttachment": null, + "openTextField": null, + "roundingError": 0, + "orderFormId": "066ab2f7f65043a3aa396c749e202fd3", + "commercialConditionData": null, + "isCompleted": true, + "customData": null, + "storePreferencesData": { + "countryCode": "BRA", + "currencyCode": "BRL", + "currencyFormatInfo": { + "CurrencyDecimalDigits": 2, + "CurrencyDecimalSeparator": ",", + "CurrencyGroupSeparator": ".", + "CurrencyGroupSize": 3, + "StartsWithCurrencySymbol": true + }, + "currencyLocale": 1046, + "currencySymbol": "R$", + "timeZone": "E. South America Standard Time" + }, + "allowCancellation": true, + "allowEdition": false, + "isCheckedIn": false, + "marketplace": null, + "authorizedDate": null, + "invoicedDate": null, + "cancelReason": null, + "itemMetadata": { + "Items": [ + { + "Id": "6229640", + "Seller": "1", + "Name": "cropped brown G", + "SkuName": "GG", + "ProductId": "4460339", + "RefId": "11455795", + "Ean": null, + "ImageUrl": "https://str.vteximg.com.br/files/ids/58845769-200-240/photo-0.jpg?v=638569102126000000", + "DetailUrl": "/cropped-brown-1065805_e2/p", + "AssemblyOptions": [] + } + ] + }, + "subscriptionData": null, + "taxData": null, + "checkedInPickupPointId": null, + "cancellationData": null, + "cancellationRequests": null, + "clientPreferencesData": { + "locale": "pt-BR", + "optinNewsLetter": true + } + } + ] + } + } + } + }, + "operationId": "get_api_oms_pvt_orders_orderGroup_ByOrderGroup" + } + }, + "/api/oms/pvt/orders": { + "get": { + "tags": [ + "Orders" + ], + "summary": "List orders", + "description": "Retrieves a list of orders according to the filters described below. \r\n\r\nThe limit of information retrieval is 30 pages, the default number of orders per page is 15 and it is possible to configure it up to 100 using the `per_page` parameter. \r\n\r\nBe aware that since October 3rd, 2018, this endpoint does not return the `items` property. \r\n\r\n> You can only access information from orders created in the last two years, and that same period is valid for customers through [My Account](https://help.vtex.com/en/tutorial/how-my-account-works--2BQ3GiqhqGJTXsWVuio3Xh). \r\n\r\n> This endpoint should **not** be used for integrations. Use the [orders Feed or hook](https://developers.vtex.com/docs/guides/orders-feed) for this purpose. \r\n\r\nThis endpoint returns only orders that already have been indexed, which takes approximately four minutes. Because of this, the data retrieved may present inconsistencies. To get live up-to-date information and [build order integrations](https://developers.vtex.com/vtex-rest-api/docs/erp-integration-set-up-order-integration) use the [orders Feed or hook](https://developers.vtex.com/docs/guides/orders-feed).\r\n\r\n> **Onboarding guide** \r\n>\r\n> Check the new [Orders onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/orders-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Orders and is organized by focusing on the developer's journey. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **List Orders** |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| OMS - Full access | List Orders |\r\n| Checkout Admin | List Orders |\r\n| IntegrationProfile - Fulfillment Oms | List Orders |\r\n| OMS - Full access | Orders Full Access |\r\n| Checkout Admin | Orders Full Access |\r\n| IntegrationProfile - Fulfillment Oms | Orders Full Access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). \r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "ListOrders", + "parameters": [ + { + "name": "orderBy", + "in": "query", + "description": "You can retrieve orders lists filtering by an `OrderField` combined with an `OrderType`. To do so, you have to concatenate them: `orderBy={{OrderField}},{{OrderType}}`. \r\n- `OrderField` values accepted: `creationDate`, `orderId`, `items`, `totalValue` and `origin`. \r\n- `OrderType` values accepted: `asc` and `desc`.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "v502556llux-01,asc" + } + }, + { + "name": "page", + "in": "query", + "description": "Define the number of pages you wish to retrieve, restricted to the limit of 30 pages.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 10 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Quantity of orders for each page, the default value is 15 and it goes up to 100 orders per page. Be aware that the limit of retrieval ofthis endpoint is 30 pages.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "example": 15 + } + }, + { + "name": "f_hasInputInvoice", + "in": "query", + "description": "Filters list to return only orders with non `null` values for the `invoiceInput` field.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "example": false + } + }, + { + "name": "q", + "in": "query", + "description": "This parameter filters using Fulltext and accepts the values below. Be aware that the `+` caracter is not allowed in Fulltext Search. \r\n- Order Id \r\n- Client email \r\n- Client document \r\n- Client name", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "- OrderID: v212333lux-02 \r\n- Client email: taylor@email.com \r\n- Client document: 21133355524 \r\n- Client name: Taylor" + } + }, + { + "name": "f_shippingEstimate", + "in": "query", + "description": "You can filter orders by shipping estimate time in days by concatenating the desired number of days with the sufix `.days`. For example: \r\n- Next 7 days: `7.days` \r\n- Tomorrow: `1.days` \r\n- Today: `0.days` \r\n- Late: `-1.days`", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "0.days" + } + }, + { + "name": "f_invoicedDate", + "in": "query", + "description": "You can filter orders by invoiced date by concatenating the sufix `invoicedDate:` with the range date in Timestamp format. For example: \r\n- 1 Day: `invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]`\r\n- 1 Month: `invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-02-01T01:59:59.999Z]` \r\n- 1 Year: `invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-01T01:59:59.999Z]`", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]" + } + }, + { + "name": "f_creationDate", + "in": "query", + "description": "You can filter orders by creation date by concatenating the sufix `creationDate:` with the range date in Timestamp format. For example: \r\n- 1 Day: `creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]`\r\n- 1 Month: `creationDate:[2022-01-01T02:00:00.000Z TO 2022-02-01T01:59:59.999Z]` \r\n- 1 Year: `creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-01T01:59:59.999Z]`", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]" + } + }, + { + "name": "f_authorizedDate", + "in": "query", + "description": "You can filter orders by creation date by concatenating the sufix `authorizedDate:` with the range date in Timestamp format. For example: \r\n- 1 Day: `authorizedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]`\r\n- 1 Month: `authorizedDate:[2022-01-01T02:00:00.000Z TO 2022-02-01T01:59:59.999Z]` \r\n- 1 Year: `authorizedDate:[2022-01-01T02:00:00.000Z TO 2022-01-01T01:59:59.999Z]`", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]" + } + }, + { + "name": "f_UtmSource", + "in": "query", + "description": "You can filter orders by Urchin Tracking Module (UTM) source.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "christmas_campaign" + } + }, + { + "name": "f_sellerNames", + "in": "query", + "description": "You can filter orders by using a seller's name.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "SellerName" + } + }, + { + "name": "f_callCenterOperatorName", + "in": "query", + "description": "You can filter orders by using a Call Center Operator's identification.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "Operator%20Name" + } + }, + { + "name": "f_salesChannel", + "in": "query", + "description": "You can filter orders by sales channel's ([or trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) name.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "Main" + } + }, + { + "name": "salesChannelId", + "in": "query", + "description": "You can filter orders by sales channel's ([or trade policy](https://help.vtex.com/en/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) ID.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "f_affiliateId", + "in": "query", + "description": "You can filter orders by affiliate ID.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "WLM" + } + }, + { + "name": "f_status", + "in": "query", + "description": "You can filter orders by the following [order status](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196): \r\n- `waiting-for-sellers-confirmation` \r\n- `payment-pending` \r\n- `payment-approved` \r\n- `ready-for-handling` \r\n- `handling` \r\n- `invoiced` \r\n- `canceled`", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "ready-for-handling" + } + }, + { + "name": "incompleteOrders", + "in": "query", + "description": "When set as `true`, you retrieve [incomplete orders](https://help.vtex.com/en/tutorial/understanding-incomplete-orders), when set as `false`, you retrieve orders that are not incomplete.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "example": true + } + }, + { + "name": "f_paymentNames", + "in": "query", + "description": "You can filter orders by payment type.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "Visa" + } + }, + { + "name": "f_RnB", + "in": "query", + "description": "You can filter orders by rates and benefits (promotions).", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "Free+Shipping" + } + }, + { + "name": "searchField", + "in": "query", + "description": "You can search orders by using one of the following criterias: \r\n- SKU ID - `sku_Ids&sku_Ids` \r\n- Gift List ID - `listId&listId` \r\n- Transaction ID (TID) - `tid&tid` \r\n- PCI Connector's Transaction ID (TID) - `pci_tid&pci_tid` \r\n- Payment ID (PID) - `paymentId&paymentId` \r\n- Connector's NSU - `nsu&nsu`", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "- SKU ID: `25` \r\n- Gift List ID: `11223` \r\n- Transaction ID (TID): `54546300238810034995829230012` \r\n- PCI Connector's Transaction ID (TID): `7032909234899834298423209` \r\n- Payment ID (PID): `2` \r\n- Connector's NSU: `2437281`" + } + }, + { + "name": "f_isInstore", + "in": "query", + "description": "When set as `true`, this parameter filters orders made via [inStore](https://help.vtex.com/en/tracks/what-is-instore--zav76TFEZlAjnyBVL5tRc), and when set as `false`, it filters orders that were not made via inStore.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "example": true + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ListOrders" + }, + "example": { + "list": [ + { + "orderId": "1306331686122-01", + "creationDate": "2019-02-04T10:29:11+00:00", + "clientName": "J C", + "items": null, + "totalValue": 7453, + "paymentNames": "Boleto Bancário", + "status": "invoiced", + "statusDescription": "Faturado", + "marketPlaceOrderId": null, + "sequence": "502559", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Sua Nota Fiscal foi emitida. Referente ao Pedido #v502559llux-01 Olá, J. Estamos empacotando seu produto para providenci", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-02-07T21:29:54+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502556llux-01", + "creationDate": "2019-01-28T20:09:43+00:00", + "clientName": "Rodrigo VTEX", + "items": null, + "totalValue": 1160, + "paymentNames": "Boleto Bancário", + "status": "handling", + "statusDescription": "Preparando Entrega", + "marketPlaceOrderId": null, + "sequence": "502556", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store Seu pedido foi alterado! Pedido realizado em: 28/01/2019 Olá, Rodrigo. Seu pedido foi alterado. Seguem informações abaixo: ", + "ShippingEstimatedDate": "2019-02-04T20:33:46+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-01-28T20:33:04+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502553llux-01", + "creationDate": "2019-01-24T12:35:19+00:00", + "clientName": "test test", + "items": null, + "totalValue": 10150, + "paymentNames": "Mastercard", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": null, + "sequence": "502554", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Sua Nota Fiscal foi emitida. Referente ao Pedido #v502553llux-01 Olá, test. Estamos empacotando seu produto para provide", + "ShippingEstimatedDate": "2019-01-31T12:36:30+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-01-24T12:36:01+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502550llux-01", + "creationDate": "2019-01-23T16:39:45+00:00", + "clientName": "test test", + "items": null, + "totalValue": 10150, + "paymentNames": "Mastercard", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": null, + "sequence": "502551", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pagamento foi aprovado. Referente ao Pedido #v502550llux-01 Olá, test. Estamos providenciando a emissão da Nota Fisc", + "ShippingEstimatedDate": "2019-01-30T16:40:55+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-01-23T16:40:27+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502547llux-01", + "creationDate": "2019-01-23T16:34:20+00:00", + "clientName": "test test", + "items": null, + "totalValue": 10150, + "paymentNames": "Mastercard", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": null, + "sequence": "502548", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pagamento foi aprovado. Referente ao Pedido #v502547llux-01 Olá, test. Estamos providenciando a emissão da Nota Fisc", + "ShippingEstimatedDate": "2019-01-30T16:35:30+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-01-23T16:35:04+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502544llux-01", + "creationDate": "2018-12-28T18:15:28+00:00", + "clientName": "test test", + "items": null, + "totalValue": 8990, + "paymentNames": "Boleto Bancário", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": null, + "sequence": "502544", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pedido foi cancelado. Referente ao Pedido #v502544llux-01 Resumo Itens R$ 89,90 Total R$ 89,90 Produto Alavanca De M", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502541llux-01", + "creationDate": "2018-12-18T18:48:17+00:00", + "clientName": "Douglas Rodrigues", + "items": null, + "totalValue": 3290, + "paymentNames": "Boleto Bancário", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": null, + "sequence": "502541", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pedido foi cancelado. Referente ao Pedido #v502541llux-01 Resumo Itens R$ 32,90 Total R$ 32,90 Produto Bay Max L 1 u", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502538llux-01", + "creationDate": "2018-12-12T18:21:47+00:00", + "clientName": "test test", + "items": null, + "totalValue": 8990, + "paymentNames": "Mastercard", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": null, + "sequence": "502538", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pagamento foi aprovado. Referente ao Pedido #v502538llux-01 Olá, test. Estamos providenciando a emissão da Nota Fisc", + "ShippingEstimatedDate": "2018-12-19T18:22:26+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-12-12T18:22:22+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-880102018018-01", + "creationDate": "2018-11-30T17:34:01+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "880102018018-01", + "sequence": "502537", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": "cancelamento teste shp ", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-30T17:34:42+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-880091692043-01", + "creationDate": "2018-11-30T17:28:35+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "invoiced", + "statusDescription": "Faturado", + "marketPlaceOrderId": "880091692043-01", + "sequence": "502536", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-30T17:29:22+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-880091058221-01", + "creationDate": "2018-11-30T17:18:00+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "880091058221-01", + "sequence": "502535", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": "Teste de cancelamento do ShopFácil ", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-30T17:18:44+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-880090643370-01", + "creationDate": "2018-11-30T17:10:59+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": "880090643370-01", + "sequence": "502534", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": "2018-12-07T17:11:39+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-30T17:11:42+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-880090622238-01", + "creationDate": "2018-11-30T17:10:45+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "880090622238-01", + "sequence": "502533", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "MNC-877730530419-01", + "creationDate": "2018-11-20T21:09:01+00:00", + "clientName": "Carlos VTEX", + "items": null, + "totalValue": 11150, + "paymentNames": "", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "877730530419-01", + "sequence": "502532", + "salesChannel": "1", + "affiliateId": "MNC", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-20T21:13:06+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-876733475998-01", + "creationDate": "2018-11-16T16:58:18+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": "876733475998-01", + "sequence": "502531", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": "2018-11-23T16:58:48+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-16T16:58:53+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + } + ], + "facets": [], + "paging": { + "total": 84, + "pages": 6, + "currentPage": 1, + "perPage": 15 + }, + "stats": { + "stats": { + "totalValue": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 11150, + "Mean": 1395.5882352941176, + "Min": 1250, + "Missing": 0, + "StdDev": 1200.5513439298484, + "Sum": 94900, + "SumOfSquares": 229010000, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 21526180, + "Mean": 1373100.6875, + "Min": 1160, + "Missing": 0, + "StdDev": 5374326.141087491, + "Sum": 21969611, + "SumOfSquares": 463417210029853, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": null + } + } + } + }, + "totalItems": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 1, + "Mean": 1, + "Min": 1, + "Missing": 0, + "StdDev": 0, + "Sum": 68, + "SumOfSquares": 68, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 89, + "Mean": 7.4375, + "Min": 1, + "Missing": 0, + "StdDev": 21.92401651157926, + "Sum": 119, + "SumOfSquares": 8095, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": null + } + } + } + } + } + } + } + } + } + } + } + } + }, + "/api/oms/pvt/orders/{orderId}/start-handling": { + "post": { + "tags": [ + "Orders" + ], + "summary": "Start handling order", + "description": "Changes the status of an order to indicate that it is in `handling`.\n\r\n\r> Expect a `status 204` response with no content in case of a successful request. The store must validate this response to retry the call if the response differs from the `204` code, making this flow the store's responsibility. This endpoint can also respond with `status 500`. \r\n\r\n ## Permissions \r\n\r\n Any user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **Change order workflow status** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| OMS - Full access | Change order workflow status |\r\n| IntegrationProfile - Fulfillment Oms | Change order workflow status |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "StartHandling", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Order ID is a unique code that identifies an order.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + } + ], + "responses": { + "204": { + "description": "[No content](https://httpstatuses.com/204)" + }, + "401": { + "description": "[Unauthorized](https://httpstatuses.com/401)", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Root object", + "properties": { + "error": { + "description": "Object containing the error information.", + "type": "object", + "properties": { + "code": { + "description": "Error code in the Order Management System (OMS).", + "type": "string" + }, + "message": { + "description": "Error message.", + "type": "string" + }, + "exception": { + "description": "Exception information.", + "type": "string", + "nullable": true + } + } + } + } + }, + "example": { + "error": { + "code": "1", + "message": "Unauthorized access", + "exception": null + } + } + } + } + }, + "403": { + "description": "[Forbidden](https://httpstatuses.com/403)" + }, + "404": { + "description": "[Not found](https://httpstatuses.com/404)" + }, + "409": { + "description": "[Conflict](https://httpstatuses.com/409)", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Root object", + "properties": { + "error": { + "description": "Object containing the error information.", + "type": "object", + "properties": { + "code": { + "description": "Error code in the Order Management System (OMS).", + "type": "string" + }, + "message": { + "description": "Error message.", + "type": "string" + }, + "exception": { + "description": "Exception information.", + "type": "string", + "nullable": true + } + } + } + } + }, + "example": { + "error": { + "code": "OMS003", + "message": "Order status should be ready-for-handling to perform this action", + "exception": null + } + } + } + } + }, + "429": { + "description": "[Too many requests](https://httpstatuses.com/429)" + } + } + } + }, + "/api/oms/pvt/orders/{orderId}/cancel": { + "post": { + "tags": [ + "Orders" + ], + "summary": "Cancel order", + "description": "Cancels an order using its identification code (`orderId`). A common scenario is when the seller has a problem fulfilling the order and requests the marketplace to cancel it. \r\n\r\n## Orders that cannot be canceled \r\n\r\nThe following situations do not allow order cancellation: \r\n\r\n- **Partial invoices:** [Partially invoiced](https://help.vtex.com/en/tracks/orders--2xkTisx4SXOWXQel8Jg8sa/q9GPspTb9cHlMeAZfdEUe) orders cannot be canceled. However, the customer can [change the order](https://developers.vtex.com/docs/guides/change-order) to replace or remove items from it. \r\n\r\n- **Invoiced status:** Orders with `invoiced` [status](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196) cannot be canceled. If the order has already been invoiced, you can use the [Order invoice notification](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/invoice) endpoint to generate a return invoice. \r\n\r\n- **Incomplete orders:** [Incomplete orders](https://help.vtex.com/en/tutorial/how-incomplete-orders-work--tutorials_294) cannot be canceled. \r\n\r\n## Declining order cancelation \r\n\r\nThe order flow has a cancellation window (grace period) in which the customer can automatically cancel the order. Except for that period, the seller can [decline an order cancellation request](https://help.vtex.com/en/tutorial/declining-order-cancelation--F2n0h1TeQ5td540Gjyff4), regardless of whether the customer or the marketplace initiated it. \r\n\r\nFor more information, see [Order canceling improvements](https://developers.vtex.com/docs/guides/order-canceling-improvements). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **Cancel order** | \r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| OMS - Full access | Cancel order |\r\n| IntegrationProfile - Fulfillment Oms | Cancel order |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). \r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CancelOrder", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "ID that identifies the order in the seller.", + "example": "1172452900788-01", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "reason": { + "type": "string", + "description": "Reason for cancelling the order." + } + } + }, + "example": { + "reason": "Unexpected stock shortage" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Date and time when the notification was received." + }, + "orderId": { + "type": "string", + "description": "Identification of the order in the seller." + }, + "receipt": { + "type": "string", + "description": "Protocol code generated by the update. It may be `null`." + } + } + }, + "example": { + "date": "2024-02-07T15:22:56.7612218-02:00", + "orderId": "123543123", + "receipt": "38e0e47da2934847b489216d208cfd91" + } + } + } + }, + "403": { + "description": "[The credentials are not enabled to access the service](https://httpstatuses.com/403)" + }, + "404": { + "description": "[Value not found](https://httpstatuses.com/404)" + }, + "429": { + "description": "[Too many requests](https://httpstatuses.com/429)" + } + } + } + }, + "/api/oms/pvt/orders/{orderId}/changes": { + "post": { + "tags": [ + "Orders" + ], + "summary": "Register modifications on order", + "description": "This request allows [modifying an order](https://help.vtex.com/en/tutorial/changing-items-from-a-completed-order--tutorials_190) by:\r\n\r\n- Adding items to an order.\r\n\r\n- Removing items from an order.\r\n\r\n- Applying discounts to the total value of the order.\r\n\r\n- Incrementing the total value of the order. \r\n\r\n>❗ This endpoint is being deprecated in March 1st, 2026. We stopped providing support for this API since December 31st, 2025. If you wish to modify an order, you can use the [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) endpoint for an improved order modification experience.\r\n\r\n > **Timeout settings:** This is a synchronous API, which means the application requests data and waits until a value is returned. This behavior can cause timeout errors. To avoid them, we recommend setting the timeout in 20 seconds.\r\n\r\nIn order modifications scenarios, it is possible to insert a [Partial invoice](https://help.vtex.com/en/tracks/orders--2xkTisx4SXOWXQel8Jg8sa/q9GPspTb9cHlMeAZfdEUe). The total value of the order will be updated after the insertion of the invoice, even when there is a partial invoice scenario. The updated value is settled by the VTEX Payment Gateway, and the customer reimbursement is automatic. \r\n\r\nThis action can only be done for orders in the following status:\r\n\r\n- `handling`\r\n\r\n- `waiting-for-fulfillment`\r\n\r\n- `ready for invoicing` \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n| OMS | OMS access | **Cancel order** |\r\n| OMS | OMS access | **Change order** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Checkout Admin | Orders Full Access |\r\n| OMS - Full access |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Oms |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Gateway | Cancel order |\r\n| IntegrationProfile - Fulfillment Gateway Oms |

Cancel order

Change order

|\r\n| inStore Sales Person |

Cancel order

Change order

|\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "RegisterChange", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "ID that identifies the order in the seller.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "requestId", + "reason", + "discountValue", + "incrementValue" + ], + "properties": { + "requestId": { + "type": "string", + "description": "Request identification of the modification. Only the first modification made with each `requestId` will be effective on a given order. Use different IDs for different modifications to the same order." + }, + "reason": { + "type": "string", + "description": "Reason for order modification. This may be shown to the shopper in the UI or transactional emails." + }, + "discountValue": { + "type": "integer", + "description": "This field can be used to apply a discount to the total value of the order. Value in cents." + }, + "incrementValue": { + "type": "integer", + "description": "This field can be used to increment the total value of the order. Value in cents." + }, + "itemsRemoved": { + "type": "array", + "description": "List of items that should be removed from the order.", + "items": { + "type": "object", + "description": "Removed items' details.", + "required": [ + "id", + "price", + "quantity" + ], + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item being removed." + }, + "price": { + "type": "integer", + "description": "Price of the item being removed in cents." + }, + "quantity": { + "type": "integer", + "description": "Amount of items to be removed." + } + } + } + }, + "itemsAdded": { + "type": "array", + "description": "List of items that should be added to the order.", + "items": { + "type": "object", + "description": "Added items' details.", + "required": [ + "id", + "price", + "quantity" + ], + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item being added." + }, + "price": { + "type": "integer", + "description": "Price of the item being added in cents." + }, + "quantity": { + "type": "integer", + "description": "Amount of items to be added." + } + } + } + } + } + }, + "example": { + "requestId": "change-request-0123", + "reason": "Stock shortage", + "discountValue": 100, + "incrementValue": 100, + "itemsRemoved": [ + { + "id": "0", + "price": 2499, + "quantity": 1 + } + ], + "itemsAdded": [ + { + "id": "0", + "price": 2499, + "quantity": 1 + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Date of order modification." + }, + "orderId": { + "type": "string", + "description": "ID of the order." + }, + "receipt": { + "type": "string", + "description": "Receipt identification." + } + } + }, + "example": { + "date": "2024-02-08T13:54:33.6868469+00:00", + "orderId": "v502538llux-01", + "receipt": "535d4581-a2a2-4fd2-a206-1c61eae91b1e" + } + } + } + } + } + } + }, + "/api/oms/pvt/orders/{orderId}/interactions": { + "post": { + "tags": [ + "Orders" + ], + "summary": "Add log in orders", + "description": "Add a Log in Interactions Order Array. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "AddLog", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Unique code that identifies an order.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "source", + "message" + ], + "properties": { + "source": { + "type": "string", + "description": "Source information." + }, + "message": { + "type": "string", + "description": "Interactions message." + } + } + }, + "example": { + "source": "Postman", + "message": "Add interactions" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/oms/pvt/orders/{orderId}/invoice": { + "post": { + "tags": [ + "Invoice" + ], + "summary": "Order invoice notification", + "description": "This request is used for [invoicing an order](https://help.vtex.com/en/tracks/orders--2xkTisx4SXOWXQel8Jg8sa/2WgQrlHTyVo4hLjhUs1LMT). Entering the order's invoice means it was successfully completed, and the order status can be changed to `invoiced` in the [order flow](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196). Once an order is `invoiced`, its status cannot be changed. \r\n\r\nAfter the insertion of the invoice, the order's total value will be updated, even in [partial invoice](https://help.vtex.com/en/tracks/orders--2xkTisx4SXOWXQel8Jg8sa/q9GPspTb9cHlMeAZfdEUe) scenarios. \r\n\r\n>❗ To avoid rounding errors, we recommend always sending the object of items being invoiced. \r\n\r\n## Partial invoices \r\n\r\nAfter adding a [partial invoice](https://help.vtex.com/en/tracks/orders--2xkTisx4SXOWXQel8Jg8sa/q9GPspTb9cHlMeAZfdEUe), the order's value will be updated, corresponding to a partial settled value in the VTEX payment gateway. \r\n\r\nPartially invoiced orders cannot be canceled, and cancellation attempts will result in a `400` status code error. If the customer wants to replace or remove items, it is possible to [change the order](https://developers.vtex.com/docs/guides/change-order). \r\n\r\n> The partial invoices feature is available for all VTEX stores. The partial settlement in the gateway is in Beta, and requires a connector with the Payment Provider Protocol. \r\n\r\n## Returning items \r\n\r\nBesides using this endpoint for generating invoices for sold items, you can use it for generating invoices for returned items. You determine this in the request body `type` field by choosing one of the following values: \r\n\r\n- `Output`: selling order invoice. \r\n\r\n- `Input`: returning items invoice. \r\n\r\nBe aware of generating return invoices only after the full order amount was invoiced, otherwise, no refund will occur. \r\n\r\n >⚠️ Generating a return `(type: Input)` invoice with this endpoint will automatically create a refund without the need of additional API requests. \r\n\r\n## Changing the receipt code \r\n\r\nEvery time this endpoint is called using the same `invoiceNumber`, a new `receipt` code is generated, and it overrides the previous one. By doing this, you cannot change other information, only the `receipt` code.\r\n\r\n## Integration with marketplaces \r\n\r\nThe invoice should be pushed to the fulfillment account, not to the marketplace account. Once the order is invoiced, the seller should use this request to send the invoice information to the marketplace. \r\n\r\nThis endpoint is also used by the seller to send the order tracking information. However, this only should be done after the seller has the tracking information. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **Notify invoice** |\r\n| OMS | OMS access | **Notify refund** | \r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| OMS - Full access | Cancel order |\r\n| IntegrationProfile - Fulfillment Oms | Cancel order |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). \r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "InvoiceNotification", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Unique code that identifies the order whose invoice is being sent.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "type", + "issuanceDate", + "invoiceNumber", + "invoiceValue", + "items" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of invoice. There are two possible values: **Output** and **Input**. The Output type should be used when the invoice you are sending is a selling invoice. The Input type should be used when you send a return invoice.", + "enum": [ + "Output", + "Input" + ] + }, + "issuanceDate": { + "type": "string", + "description": "The invoice date is when the order was [invoiced](https://help.vtex.com/en/tracks/orders--2xkTisx4SXOWXQel8Jg8sa/2WgQrlHTyVo4hLjhUs1LMT) in the VTEX platform, and the `IssuanceDate` is the date when the merchant registers the order's invoice in the store's system. The `IssuanceDate` can be different from the invoice date, because the merchant can register the invoice days or even months after order invoicing. You must add date and time in this field." + }, + "invoiceNumber": { + "type": "string", + "description": "Unique code that identifies the invoice. When you call this endpoint using the same invoice number, you generate a new `receipt` code.", + "nullable": true + }, + "invoiceValue": { + "type": "string", + "description": "Total amount being invoiced in cents. Must be greater than 0. Do not use any decimal separator. For instance, `$24.99` should be represented as `2499`." + }, + "invoiceKey": { + "type": "string", + "nullable": true, + "description": "Information about invoice key." + }, + "invoiceUrl": { + "type": "string", + "description": "URL of the invoice. Can be used to send the URL of an XML file, for example, which is useful for some integrations.", + "nullable": true + }, + "embeddedInvoice": { + "type": "string", + "nullable": true, + "description": "XML text of the invoice, not the URL. This field is very important for external marketplace integrations such as Mercado Libre." + }, + "courier": { + "type": "string", + "nullable": false, + "description": "The name of the carrier responsible for delivering the order." + }, + "trackingNumber": { + "type": "string", + "nullable": true, + "description": "The number code that identifies the order tracking. *This field should only be used when sending the **tracking** information. When the request is used for sending the invoice, this field should be left empty (`\"\"`)*." + }, + "trackingUrl": { + "type": "string", + "nullable": true, + "description": "The URL used to track the order. *This field should only be used when sending the **tracking** information. When the request is used for sending the invoice, this field should be left empty (`\"\"`)*." + }, + "dispatchedDate": { + "type": "string", + "nullable": true, + "description": "Order dispatch date. May be `null`." + }, + "items": { + "type": "array", + "description": "Array containing the SKUs that are being invoiced.", + "items": { + "type": "object", + "description": "Information about a SKU being invoiced.", + "required": [ + "id", + "price", + "quantity" + ], + "properties": { + "id": { + "type": "string", + "description": "ID of the SKU being invoiced." + }, + "price": { + "type": "integer", + "description": "Price in cents of the SKU being invoiced. Do not use a decimal separator, for example, the price $24.99 corresponds to `2499`. You must insert the SKU unitary price because the VTEX system will multiply the price over the quantity." + }, + "description": { + "type": "string", + "description": "You can use this field for additional information about the SKU being invoiced." + }, + "quantity": { + "type": "integer", + "description": "Quantity currently in inventory of the SKU being invoiced." + } + } + } + } + } + }, + "example": { + "type": "Output", + "issuanceDate": "2024-01-31T18:25:43-05:00", + "invoiceNumber": "DFG-v7731485plzv-01", + "invoiceValue": "2499", + "invoiceKey": "CFe35201100063960001504590006629690333214542150", + "invoiceUrl": "https://luxstore.com/invoices/24382.pdf", + "embeddedInvoice": "\r\n\r\n\r\n37\r\n000005177\r\nVenda a vista\r\n0\r\n55\r\n1\r\n1\r\n2018-07-06\r\n2018-07-06\r\n0\r\n79950308\r\n1\r\n1\r\n3\r\n2\r\n1\r\n0\r\nNF-eletronica.com\r\n\r\n\r\n99999090998760\r\nNF-e Associacao NF-e\r\nNF-e\r\n\r\nRua Central\r\n100\r\nFundos\r\nDistrito Industrial\r\n0000000\r\nMunicípio\r\nSP\r\n0000000\r\n1058\r\nBrasil\r\n1733021717\r\n\r\n123456789012\r\n\r\n\r\n00000000000000\r\nDISTRIBUIDORA DE AGUAS MINERAIS\r\n\r\nAV DAS FONTES\r\n1777\r\n1001 ANDAR\r\nPARQUE\r\n0000000\r\nSao Paulo\r\nSP\r\n00000000\r\n1058\r\nBRASIL\r\n3900000000\r\n\r\n \r\n\r\n\r\n000000000004\r\nAV PAULISTA\r\n12345\r\nTERREO\r\nCERQUEIRA CESAR\r\n0000000\r\nSAO PAULO\r\nSP\r\n\r\n\r\n00000000299000194\r\nAV FARIA LIMA\r\n154400\r\n156 ANDAR\r\nPINHEIROS\r\n0000308\r\nSAO PAULO\r\nSP\r\n\r\n\r\n\r\n00001\r\n\r\nAgua Mineral\r\n5101\r\ndz\r\n1000000.0000\r\n1\r\n10000000.00\r\n\r\nund\r\n12000000.0000\r\n1\r\n\r\n\r\n\r\n\r\n0\r\n00\r\n0\r\n10000000.00\r\n18.00\r\n1800000.00\r\n\r\n\r\n\r\n\r\n01\r\n10000000.00\r\n0.65\r\n65000\r\n\r\n\r\n\r\n\r\n01\r\n10000000.00\r\n2.00\r\n200000.00\r\n\r\n\r\n\r\n\r\n\r\n\r\n00002\r\n\r\nAgua Mineral\r\n5101\r\npack\r\n5000000.0000\r\n2\r\n10000000.00\r\n\r\nund\r\n3000000.0000\r\n0.3333\r\n\r\n\r\n\r\n\r\n0\r\n00\r\n0\r\n10000000.00\r\n18.00\r\n1800000.00\r\n\r\n\r\n\r\n\r\n01\r\n10000000.00\r\n0.65\r\n65000\r\n\r\n\r\n\r\n\r\n01\r\n10000000.00\r\n2.00\r\n200000.00\r\n\r\n\r\n\r\n\r\n\r\n\r\n20000000.00\r\n18.00\r\n0\r\n0\r\n20000000.00\r\n0\r\n0\r\n0\r\n0\r\n0\r\n130000.00\r\n400000.00\r\n0\r\n20000000.00\r\n\r\n\r\n\r\n0\r\n\r\n00000000000000\r\nDistribuidora de Bebidas Fazenda de SP Ltda.\r\n00000000999119\r\nRua Central 100 - Fundos - Distrito Industrial\r\nSAO PAULO\r\nSP\r\n\r\n\r\nBXI1717\r\nSP\r\n123456789\r\n\r\n\r\nUUU0000\r\nSP\r\n123456789\r\n\r\n\r\n10000\r\nCAIXA\r\nLINDOYA\r\n500\r\n1000000000.000\r\n1200000000.000\r\n\r\nXYZ10231486\r\n\r\n\r\n\r\n\r\nNota Fiscal de exemplo NF-eletronica.com\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nxFzhgdgnhjSD1e9uqe04lnoHT4ZzLSY=\r\n\r\n\r\n\r\nIz5Z3PLQbzZt9jnBtr6xsmHZMOu/3plXG9xxfFjRCQYGnD1rjlhzBGrqt026Ca2VHHM/bHNepi6FuFkAi595GScKVuHREUotzifE2OIjgavvTOrMwbXG7+0LYgkwPFiPCao2S33UpZe7MneaxcmKQGKQZw1fP8fsWmaQ4cczZT8=\r\n\r\n\r\n\r\n\r\nMIIEuzCCA6OgAwIBAgIDMTMxMA0GasfFSDAGQUAMIGSMQswCQYDVQQGEwJCUjELMAkGA1UECBMCUlMxFTATBgNVBAcTDFBvcnRvIEFsZWdyZTEdMBsGA1UEChMUVGVzdGUgUHJvamV0byBORmUgUlMxHTAbBgNVBAsTFFRlc3RlIFByb2pldG8gTkZlIFJTMSEwHwYDVQQDExhORmUgLSBBQyBJbnRlcm1lZGlhcmlhIDEwHhcNMDgwNDI4MDkwMTAyWhcNMDkwNDMwMjM1OTU5WjCBnjELMAkGA1UECBMCUlMxHTAfvw4567DRhg76FByb2pldG8gTkZlIFJTMR0wGwYDVQQKExRUZXN0ZSBQcm9qZXRvIE5GZSBSUzEVMBMGA1UEBxMMUE9SVE8gQUxFR1JFMQswCQYDVQQGEwJCUjEtMCsGA1UEAxMkTkZlIC0gQXNzb2NpYWNhbyBORi1lOjk5OTk5MDkwOTEwMjcwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDh6RRv0bj4RYX+tDQrZRb5opa77LBVVs+6LphIfSF3TSWPfnKh0+xLlBFdmnB5YGgbbW9Uon6pZQTfaC8jZhRhI5eFRRofY/Ugoeo0NGt6PcIQNZQd6lLQ/ASd1qWwjqJoEa7udriKjy3h351Mf1bng1VxS1urqC3Dn39ZWIEwQIDAQABo4IBjjCCAYowIgYDVR0jAQEABBgwFoAUPT5TqhNWAm+ZpcVsvB7malDBjEQwDwYDVR0TAQH/BAUwAwEBADAPBgNVHQ8BAf8EBQMDAOAAMAwGA1UdIAEBAAQCMAAwgbwGA1UdEQEBAASBsTCBrqA4BgVgTAEDBKAvBC0wNzA4MTk1MTE1MTk0NTMxMDg3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCgHQYFYEwBAwKgFAQSRmVybmFuZG8gQ2FudG8gQWx0oBkGBWBMAQMDoBAEDjk5OTk5MDkwOTEwMjcwoBcGBWBMAQMHoA4EDDAwMDAwMDAwMDAwMIEfZmVybmFuZG8tYWx0QHByb2NlcmdzLnJzLmdvdi5icjAgBgNVHSUBAf8EFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwUwYDVR0fAQEABEkwRzBFoEOgQYY/aHR0cDovL25mZWNlcnRpZmljYWRvLnNlZmF6LnJzLmdvdi5ici9MQ1IvQUNJbnRlcm1lZGlhcmlhMzguY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCNPpaZ3Byu3/70nObXE8NiM53j1ddIFXsb+v2ghCVd4ffExv3hYc+/a3lfgV8H/WfQsdSCTzS2cHrd4Aasr/eXfclVDmf2hcWz+R7iysOHuT6B6r+DvV3JcMdJJCDdynR5REa+zViMnVZo1G3KuceQ7/y5X3WFNVq4kwHvonJ9oExsWyw8rTwUK5bsjz0A2yEwXkmkJIngnF41sP31+9jCImiqkXcmsesFhxzX7iurAQAQCZOm7iwMWxQKcAjXCZrgSZWRQy6mU224sX3HTArHahmLJ9Iw+WYAua5qBJsiN6PC7v5tfhdsgGD46DHMnOecxvkkPolDUyBa7d7xwgm\r\n\r\n\r\n\r\n\r\n", + "courier": "carrierOne", + "trackingNumber": "87658", + "trackingUrl": "https://www.tracking.com/url", + "dispatchedDate": "2019-02-08T13:16:13.4617653+00:00", + "items": [ + { + "id": "123", + "price": 2499, + "description": "335", + "quantity": 2 + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Date and time when the notification was received." + }, + "orderId": { + "type": "string", + "description": "Identification of the order in the seller." + }, + "receipt": { + "type": "string", + "description": "Protocol code generated by the update that identifies the receipt. Every time this endpoint is called using the same `invoiceNumber`, a new `receipt` code is generated, and it overrides the previous one." + } + } + }, + "example": { + "date": "2024-02-07T15:22:56.7612218-02:00", + "orderId": "123543123", + "receipt": "38e0e47da2934847b489216d208cfd91" + } + } + } + } + } + } + }, + "/api/oms/pvt/orders/{orderId}/invoice/{invoiceNumber}": { + "patch": { + "tags": [ + "Invoice" + ], + "summary": "Update order's partial invoice (send tracking number)", + "description": "Update a given order, adding its tracking number to its [Partial invoice](https://help.vtex.com/en/tracks/pedidos--2xkTisx4SXOWXQel8Jg8sa/q9GPspTb9cHlMeAZfdEUe).\n\r\n\rAfter using this call to add a tracking number to an order, you can use the [Update order tracking status](https://developers.vtex.com/docs/api-reference/orders-api#put-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-/tracking) API request to add tracking events. \r\n\r\n ## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **Notify invoice** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| OMS - Full access | Notify invoice |\r\n| IntegrationProfile - Fulfillment Oms | Notify invoice |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Updatepartialinvoice.SendTrackingNumber", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Unique code that identifies the order whose invoice is being sent.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + }, + { + "name": "invoiceNumber", + "in": "path", + "description": "Number that identifies the invoice.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "000030711" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Updatepartialinvoice.SendTrackingNumber.Request" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Updatepartialinvoice.SendTrackingNumber" + }, + "example": { + "date": "2019-02-08T13:16:13.4617653+00:00", + "orderId": "00-v5195004lux-01", + "receipt": "527b1ae251264ef1b7a9b597cd8f16b9" + } + } + } + } + } + } + }, + "/api/oms/pvt/orders/{orderId}/invoice/{invoiceNumber}/tracking": { + "put": { + "tags": [ + "Tracking" + ], + "summary": "Update order tracking status", + "description": "This endpoint sends a tracking event to an order that already has a tracking number registered to its invoice.\r\n\r\nThis request is not meant to send a tracking number and URL to the invoice. If you wish to send a tracking number and URL to an order, use the [Update order's partial invoice](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-) endpoint. For more information, see [Partial invoice](https://help.vtex.com/en/tracks/partial-invoices--2xkTisx4SXOWXQel8Jg8sa/q9GPspTb9cHlMeAZfdEUe) scenarios.\r\n\r\nThis endpoint applies to orders with any shipping type, whether delivery or [pickup](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **Notify invoice** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| OMS - Full access | Notify invoice |\r\n| IntegrationProfile - Fulfillment Oms | Notify invoice |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "UpdateTrackingStatus", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Order ID is a unique code that identifies an order.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + }, + { + "name": "invoiceNumber", + "in": "path", + "description": "Number that identifies the invoice.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "000030711" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateTrackingStatusRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/UpdateTrackingStatus" + }, + "example": { + "date": "2017-03-29T18:04:31.0521233+00:00", + "orderId": "v501245lspt-01", + "receipt": "f67d33a8029c42ce9a8f07fc17f54449" + } + } + } + } + } + } + }, + "/api/oms/pvt/orders/{orderId}/conversation-message": { + "get": { + "tags": [ + "Conversation" + ], + "summary": "Retrieve order conversation", + "description": "List all order conversations of an order by its order ID. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetConversation", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Order ID is a unique code that identifies an order.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetConversation" + } + }, + "example": [ + { + "id": "2023-01-23t09-23-08_619a80a05aa34efb982b309c7a1910e3", + "from": { + "conversationRelatedTo": "1305371685465-01", + "conversationSubject": "oms", + "emailAlias": "noreply@vtexcommerce.com.br-9814872b.ct.store.com.br", + "aliasMaskType": 0, + "email": "noreply@store.com.br", + "name": "no reply", + "role": "null" + }, + "to": [ + { + "conversationRelatedTo": "1305371685465-01", + "conversationSubject": "oms", + "emailAlias": "64d8bd8dbe5c4e7b93b8b3c237e50be1@ct.name.com.br", + "aliasMaskType": 0, + "email": "customer.name@email.com", + "name": "Mary John", + "role": "Customer" + } + ], + "subject": "Your payment has been aproved.", + "firstWords": "Your payment has been aproved and we are waiting for...", + "body": " recorrenciaqa

Seu pagamento foi aprovado.

Referente ao Pedido #1305371685465-01

Olá, jose. Estamos providenciando a emissão da Nota Fiscal do seu pedido e o envio do seu produto.

Pagamento

Visa final 1111
R$ 3,99 à vista

Atenciosamente,
Equipe recorrenciaqa

", + "hasAttachment": false, + "attachmentNames": [ + "attachments439505" + ], + "date": "2023-01-23T09:23:31.0000000+00:00" + } + ] + } + } + } + } + } + }, + "/api/oms/pvt/orders/{orderId}/payment-transaction": { + "get": { + "tags": [ + "Payment" + ], + "summary": "Retrieve payment transaction", + "description": "Retrieves transaction details by order ID. All events in the transaction will be registered in this call's response body. \n\nIn scenarios of [order changes](https://developers.vtex.com/vtex-rest-api/reference/registerchange), it is possible to insert a [Partial invoice](https://help.vtex.com/en/tracks/orders--2xkTisx4SXOWXQel8Jg8sa/q9GPspTb9cHlMeAZfdEUe). The total value of the order will be updated after the insertion of the invoice, even when there is a [Partial invoice](https://help.vtex.com/en/tracks/orders--2xkTisx4SXOWXQel8Jg8sa/q9GPspTb9cHlMeAZfdEUe) scenario. The updated value is settled by VTEX's Payment Gateway. The reimbursement for the shopper is automatic. \r\n\r\n>⚠️ At this time, this route does not support Fulfillment payment queries, only Marketplace orders. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| View order | View order |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or API keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "GetPaymenttransaction", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Order ID is a unique code that identifies an order.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetPaymenttransaction" + }, + "example": { + "status": "Finished", + "isActive": true, + "transactionId": "CB452D77E7D04099A4DB0479087B1D2C", + "merchantName": "LUXSTORE", + "payments": [ + { + "id": "721CBE1090324D12ABE301FE33DE775A", + "paymentSystem": "4", + "paymentSystemName": "Mastercard", + "value": 10150, + "installments": 1, + "referenceValue": 10150, + "cardHolder": null, + "cardNumber": null, + "firstDigits": "412341", + "lastDigits": "4123", + "url": null, + "giftCardId": null, + "giftCardName": null, + "cvv2": null, + "expireMonth": null, + "expireYear": null, + "giftCardCaption": null, + "redemptionCode": null, + "group": "creditCard", + "tid": "101770752", + "dueDate": null, + "connectorResponses": { + "Tid": "101770752", + "ReturnCode": "200", + "Message": "logMessage", + "authId": "170852" + } + } + ] + } + } + } + } + } + } + }, + "/api/oms/pvt/orders/{orderId}/payments/{paymentId}/payment-notification": { + "post": { + "tags": [ + "Payment" + ], + "summary": "Send payment notification", + "description": "Send a payment notification of a given order, by order ID. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **Notify payment** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| OMS - Full access | Notify payment |\r\n| IntegrationProfile - Fulfillment Oms | Notify payment |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "SendPaymentNotification", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Order ID is a unique code that identifies an order.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + }, + { + "name": "paymentId", + "in": "path", + "description": "VTEX payment identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "F5C1A4E20D3B4E07B7E871F5B5BC9F91" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "[Bad request](https://httpstatuses.com/400)" + }, + "403": { + "description": "[The credentials are not enabled to access the service](https://httpstatuses.com/403)" + }, + "404": { + "description": "[Value not found](https://httpstatuses.com/404)" + }, + "429": { + "description": "[Too many requests](https://httpstatuses.com/429)" + } + } + } + }, + "/api/oms/pvt/feed/orders/status": { + "get": { + "tags": [ + "Feed v2 (deprecated)" + ], + "summary": "Get feed order status", + "description": "Get feed order status (deprecated)", + "operationId": "Getfeedorderstatus", + "parameters": [ + { + "name": "maxLot", + "in": "query", + "description": "Maximum lot.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "{{maxLot}}" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/oms/user/orders": { + "get": { + "tags": [ + "User orders" + ], + "summary": "Retrieve user's orders", + "description": "Lists all orders from a given customer, filtering by their email. \r\n\r\n> You can only access information from orders created in the last two years, and that same period is valid for customers through [My Account](https://help.vtex.com/en/tutorial/how-my-account-works--2BQ3GiqhqGJTXsWVuio3Xh). \r\n\r\n> Note that this request should be made by an [user](https://developers.vtex.com/docs/guides/user-authentication-and-login) or [an appKey / appToken pair](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) that is associated with the [Call center operator](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy#call-center-operator) role. Otherwise, it will return only orders from the same email informed in the `clientEmail` query parameter. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| View My Contract Orders | My Account / OMS | **ViewMyContractOrders** |\r\n| View My Org Unit Orders | My Account / OMS | **ViewMyOrgUnitOrders** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Call center operator | View order |\r\n| OMS - Read only | View order |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or API keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "Userorderslist", + "parameters": [ + { + "name": "clientEmail", + "in": "query", + "description": "Customer email. This field is exclusive for B2C users.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "customer@mail.com" + } + }, + { + "name": "page", + "in": "query", + "description": "Page number for result pagination.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "15" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Page quantity for result pagination.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "15" + } + }, + { + "name": "text", + "in": "query", + "description": "Filter by text in existing order fields and custom fields. This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "PO24893" + } + }, + { + "name": "status", + "in": "query", + "description": "Order status. You can provide multiple values by repeating the query parameter. For example: \r\n\r\n - `status=payment-pending&status=handling` \r\n\r\n This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "ready-for-handling" + } + }, + { + "name": "creation_date", + "in": "query", + "description": "You can filter orders by creation date by concatenating the sufix `creationDate` with the range date in Timestamp format. This field accepts the value `*` for open ranges. For example: \r\n\r\n - `creationDate:[* TO 2025-04-08T23:59:59.999Z]` \r\n - `creationDate:[2025-01-01T02:00:00.000Z TO *]` \r\n\r\n This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "[2025-01-01T02:00:00.000Z TO 2025-04-08T23:59:59.999Z]" + } + }, + { + "name": "purchase_agent_id", + "in": "query", + "description": "ID of the purchase agent. You can provide multiple values by repeating the query parameter. For example: \r\n\r\n - `purchase_agent_id=848a994a-1b6b-4dbd-5555-0455af24e0f2&purchase_agent_id=848a994a-1b6b-4444-8498-0455af24e0f2` \r\n\r\n This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "848a994a-1b6b-4dbd-5555-0455af24e0f2" + } + }, + { + "name": "my_pending_approvals", + "in": "query", + "description": "You can filter orders that are pending approval by the current user or by an organizational unit associated with the current user if it has `ViewMyOrgUnitOrders` permission. This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "example": false + } + }, + { + "name": "contactsInformationHashed", + "in": "query", + "description": "You can filter orders by the presence of contact information in the order. This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "example": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Userorderslist" + }, + "example": { + "list": [ + { + "orderId": "v502556llux-01", + "creationDate": "2019-01-28T20:09:43+00:00", + "clientName": "Cunha VTEX", + "items": null, + "totalValue": 1160, + "paymentNames": "Boleto Bancário", + "status": "handling", + "statusDescription": "Preparando Entrega", + "marketPlaceOrderId": null, + "sequence": "502556", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store Seu pedido foi alterado! Pedido realizado em: 28/01/2019 Olá, Rodrigo. Seu pedido foi alterado. Seguem informações abaixo: ", + "ShippingEstimatedDate": "2019-02-04T20:33:46+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-01-28T20:33:04+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502449llux-02", + "creationDate": "2018-08-28T17:42:40+00:00", + "clientName": "Cunha VTEX", + "items": null, + "totalValue": 118588, + "paymentNames": "Promissory", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": null, + "sequence": "502452", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pedido foi cancelado. Referente ao Pedido #v502449llux-02 Resumo Itens R$ 1.178,98 Entrega R$ 6,90 Total R$ 1.185,88", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 12, + "currencyCode": "BRL" + }, + { + "orderId": "v502449llux-01", + "creationDate": "2018-08-28T17:42:28.9171556+00:00", + "clientName": "Cunha VTEX", + "items": [ + { + "seller": "1", + "quantity": 1, + "description": "Mangueira Reservatório Ao Cavalete", + "ean": null, + "refId": "TE3121110", + "id": "195", + "productId": "134", + "sellingPrice": 7390, + "price": 7390 + }, + { + "seller": "1", + "quantity": 1, + "description": "Mangueira Filtro", + "ean": null, + "refId": "XC459N610CA", + "id": "238", + "productId": "162", + "sellingPrice": 5190, + "price": 5190 + } + ], + "totalValue": 21526180, + "paymentNames": null, + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "", + "sequence": "502449", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 0, + "currencyCode": null + }, + { + "orderId": "v502058llux-01", + "creationDate": "2017-07-25T23:17:36.7963248+00:00", + "clientName": "Cunha VTEX", + "items": [ + { + "seller": "1", + "quantity": 1, + "description": "Aquecedor Britania 1500 Branco", + "ean": "1235567890143", + "refId": "branquinho", + "id": "1234568212", + "productId": "1000200", + "sellingPrice": 35599, + "price": 35599 + } + ], + "totalValue": 35599, + "paymentNames": null, + "status": "invoiced", + "statusDescription": "Faturado", + "marketPlaceOrderId": "", + "sequence": "502058", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": "2017-07-29T19:24:20.7444363+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 0, + "currencyCode": null + }, + { + "orderId": "v501538llux-01", + "creationDate": "2017-06-26T16:57:58.9986524+00:00", + "clientName": "Cunha VTEX", + "items": [ + { + "seller": "1", + "quantity": 1, + "description": "Boneco do Mário", + "ean": "bonecomario", + "refId": "bonecomario", + "id": "1234568183", + "productId": "1000257", + "sellingPrice": 150363, + "price": 150363 + }, + { + "seller": "1", + "quantity": 1, + "description": "Camiseta GG", + "ean": null, + "refId": "abc1234", + "id": "1234567894", + "productId": "1000187", + "sellingPrice": 899, + "price": 899 + } + ], + "totalValue": 151262, + "paymentNames": null, + "status": "invoiced", + "statusDescription": "Faturado", + "marketPlaceOrderId": "", + "sequence": "501538", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": "2017-06-27T13:59:49.7705236+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 0, + "currencyCode": null + }, + { + "orderId": "v501020llux-01", + "creationDate": "2016-11-21T19:57:54.0415289+00:00", + "clientName": "Cunha VTEX", + "items": [ + { + "seller": "1", + "quantity": 2, + "description": "Camiseta GG", + "ean": null, + "refId": "abc1234", + "id": "1234567894", + "productId": "1000187", + "sellingPrice": 899, + "price": 899 + } + ], + "totalValue": 3190, + "paymentNames": null, + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "", + "sequence": "501020", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": "2016-12-02T08:00:00+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 0, + "currencyCode": null + }, + { + "orderId": "v500973llux-01", + "creationDate": "2016-10-10T17:19:30.8562035+00:00", + "clientName": "Cunha VTEX", + "items": [ + { + "seller": "1", + "quantity": 1, + "description": "SMARTPHONE SAMSUNG GALAXY S7 FLAT SM-G930FZDLZTO 32GB DOURADO TELA 5.1\" 4G CÂMERA 12 MP", + "ean": null, + "refId": "testefnac", + "id": "1234568028", + "productId": "1000203", + "sellingPrice": 299000, + "price": 299000 + } + ], + "totalValue": 299900, + "paymentNames": null, + "status": "handling", + "statusDescription": "Preparando Entrega", + "marketPlaceOrderId": "", + "sequence": "500973", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": "2016-10-10T14:23:17.1897068+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 0, + "currencyCode": null + }, + { + "orderId": "v500970llux-01", + "creationDate": "2016-10-10T17:07:59.0889392+00:00", + "clientName": "Cunha VTEX", + "items": [ + { + "seller": "1", + "quantity": 1, + "description": "Camiseta GG", + "ean": null, + "refId": "abc1234", + "id": "1234567894", + "productId": "1000187", + "sellingPrice": 899, + "price": 899 + } + ], + "totalValue": 1799, + "paymentNames": null, + "status": "invoiced", + "statusDescription": "Faturado", + "marketPlaceOrderId": "", + "sequence": "500970", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": "2016-10-10T14:13:34.4927265+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 0, + "currencyCode": null + }, + { + "orderId": "v500890llux-01", + "creationDate": "2016-08-17T18:35:04.8659804+00:00", + "clientName": "Cunha VTEX", + "items": [ + { + "seller": "1", + "quantity": 1, + "description": "Botin Futbol Adidas 11Questra Fg Cesped Hombre Absolut - M", + "ean": "absolutm", + "refId": null, + "id": "549", + "productId": "9", + "sellingPrice": 1000, + "price": 1000 + } + ], + "totalValue": 1000, + "paymentNames": null, + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "", + "sequence": "500890", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 0, + "currencyCode": null + }, + { + "orderId": "v500838llux-01", + "creationDate": "2016-07-29T00:20:47.7736718+00:00", + "clientName": "Cunha VTEX", + "items": [ + { + "seller": "1", + "quantity": 1, + "description": "Rooibos Lavanda - Pouch - 50gr", + "ean": "198", + "refId": "10098", + "id": "98", + "productId": "1000025", + "sellingPrice": 5200, + "price": 5200 + } + ], + "totalValue": 6200, + "paymentNames": null, + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "", + "sequence": "500838", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 0, + "currencyCode": null + } + ], + "facets": [], + "paging": { + "total": 19, + "pages": 10, + "currentPage": 1, + "perPage": 2 + }, + "stats": { + "stats": { + "totalValue": { + "Count": 19, + "Max": 0, + "Mean": 0, + "Min": 0, + "Missing": 0, + "StdDev": 0, + "Sum": 0, + "SumOfSquares": 0, + "Facets": {} + }, + "totalItems": { + "Count": 19, + "Max": 0, + "Mean": 0, + "Min": 0, + "Missing": 0, + "StdDev": 0, + "Sum": 0, + "SumOfSquares": 0, + "Facets": {} + } + } + } + } + } + } + } + } + } + }, + "/api/oms/user/orders/{orderId}": { + "get": { + "tags": [ + "User orders" + ], + "summary": "Retrieve user order details", + "description": "Lists all details from an order, through the perspective of the customer who placed the order. \r\n\r\n> You can only access information from orders created in the last two years, and that same period is valid for customers through [My Account](https://help.vtex.com/en/tutorial/how-my-account-works--2BQ3GiqhqGJTXsWVuio3Xh). \r\n\r\n> Note that this request should be made by an [user](https://developers.vtex.com/docs/guides/user-authentication-and-login) or [an appKey / appToken pair](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) that is associated with the [Call center operator](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy#call-center-operator) role. Otherwise, it will return only orders from the same email informed in the `clientEmail` query parameter. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| View My Contract Orders | My Account / OMS | **ViewMyContractOrders** |\r\n| View My Org Unit Orders | My Account / OMS | **ViewMyOrgUnitOrders** |\r\n| OMS | OMS access | **View order** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Call center operator | View order |\r\n| OMS - Read only | View order |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or API keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "operationId": "Userorderdetails", + "parameters": [ + { + "name": "clientEmail", + "in": "query", + "description": "Customer email. This field is exclusive for B2C users.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "customer@mail.com" + } + }, + { + "name": "orderId", + "in": "path", + "description": "Order ID is a unique code that identifies an order.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1172452900788-01" + } + }, + { + "name": "text", + "in": "query", + "description": "Filter by text in existing order fields and custom fields. This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "Rio de Janeiro" + } + }, + { + "name": "status", + "in": "query", + "description": "Order status. You can provide multiple values by repeating the query parameter. For example: \r\n\r\n - `status=payment-pending&status=handling` \r\n\r\n This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "ready-for-handling" + } + }, + { + "name": "creation_date", + "in": "query", + "description": "You can filter orders by creation date by concatenating the sufix `creationDate` with the range date in Timestamp format. This field accepts the value `*` for open ranges. For example: \r\n\r\n - `creationDate:[* TO 2025-04-08T23:59:59.999Z]` \r\n - `creationDate:[2025-01-01T02:00:00.000Z TO *]` \r\n\r\n This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "[2025-01-01T02:00:00.000Z TO 2025-04-08T23:59:59.999Z]" + } + }, + { + "name": "purchase_agent_id", + "in": "query", + "description": "ID of the purchase agent. You can provide multiple values by repeating the query parameter. For example: \r\n\r\n - `purchase_agent_id=848a994a-1b6b-4dbd-5555-0455af24e0f2&purchase_agent_id=848a994a-1b6b-4444-8498-0455af24e0f2` \r\n\r\n This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "848a994a-1b6b-4dbd-5555-0455af24e0f2" + } + }, + { + "name": "my_pending_approvals", + "in": "query", + "description": "You can filter orders that are pending approval by the current user or by an organizational unit associated with the current user if it has `ViewMyOrgUnitOrders` permission. This field is exclusive for B2B Buyer Portal users.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "example": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Userorderdetails" + }, + "example": { + "orderId": "1172452900788-01", + "sequence": "502556", + "marketplaceOrderId": "", + "marketplaceServicesEndpoint": "http://oms.vtexinternal.com.br/api/oms?an=luxstore", + "sellerOrderId": "00-v502556llux-01", + "origin": "Marketplace", + "affiliateId": "GHB", + "salesChannel": "1", + "merchantName": "luxstore", + "status": "handling", + "statusDescription": "Preparando Entrega", + "value": 1160, + "creationDate": "2019-01-28T20:09:43.899958+00:00", + "lastChange": "2019-02-06T20:46:11.7010747+00:00", + "orderGroup": "v502556lspt", + "totals": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 3290 + }, + { + "id": "Discounts", + "name": "Total dos Descontos", + "value": 0 + }, + { + "id": "Shipping", + "name": "Total do Frete", + "value": 1160 + }, + { + "id": "Tax", + "name": "Total da Taxa", + "value": 0 + }, + { + "id": "Change", + "name": "Total das mudanças", + "value": -3290 + } + ], + "items": [ + { + "uniqueId": "87F0945396994B349158C7D9C9941442", + "id": "256", + "productId": "9429485", + "ean": "3256873", + "lockId": "00-v502556llux-01", + "itemAttachment": { + "content": {}, + "name": null + }, + "attachments": [], + "quantity": 1, + "seller": "1", + "name": "Bay Max L", + "refId": "BIGHEROBML", + "price": 3290, + "listPrice": 3290, + "manualPrice": null, + "priceTags": [], + "imageUrl": "http://luxstore.vteximg.com.br/arquivos/ids/159263-55-55/image-cc1aed75cbfa424a85a94900be3eacec.jpg?v=636795432619830000", + "detailUrl": "/bay-max-9429485/p", + "components": [], + "bundleItems": [], + "params": [], + "offerings": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + "1 week", + " 2 week", + " 3 week", + " 4 week" + ] + } + } + } + ], + "sellerSku": "1234568358", + "priceValidUntil": null, + "commission": 0, + "tax": 0, + "preSaleDate": null, + "additionalInfo": { + "brandName": "VTEX", + "brandId": "2000023", + "categoriesIds": "/1/", + "productClusterId": "135,142", + "commercialConditionId": "5", + "dimension": { + "cubicweight": 0.7031, + "height": 15, + "length": 15, + "weight": 15, + "width": 15 + }, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "measurementUnit": "un", + "unitMultiplier": 1, + "sellingPrice": 3290, + "isGift": false, + "shippingPrice": null, + "rewardValue": 0, + "freightCommission": 0, + "priceDefinitions": { + "sellingPrices": [ + { + "value": 99, + "quantity": 1 + } + ], + "calculatedSellingPrice": 99, + "total": 99 + }, + "taxCode": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "callCenterOperator": "callCenterOp5473869", + "serialNumbers": "3", + "assemblies": [], + "costPrice": 52 + } + ], + "marketplaceItems": [], + "clientProfileData": { + "id": "clientProfileData", + "email": "rodrigo.cunha@vtex.com.br", + "firstName": "Rodrigo", + "lastName": "Cunha", + "documentType": "cpf", + "document": "11047867702", + "phone": "+5521972321094", + "corporateName": null, + "tradeName": null, + "corporateDocument": null, + "stateInscription": null, + "corporatePhone": null, + "isCorporate": false, + "userProfileId": "5a3692de-358a-4bea-8885-044bce33bb93", + "customerClass": null + }, + "giftRegistryData": null, + "marketingData": { + "id": "marketingData", + "utmSource": "fb", + "utmPartner": "utm partner name", + "utmMedium": "utm medium name", + "utmCampaign": "christmas", + "coupon": "sale", + "utmiCampaign": " ", + "utmipage": " ", + "utmiPart": " ", + "marketingTags": [ + "vtex-subscription" + ] + }, + "ratesAndBenefitsData": { + "id": "ratesAndBenefitsData", + "rateAndBenefitsIdentifiers": [] + }, + "shippingData": { + "id": "shippingData", + "address": { + "addressType": "residential", + "receiverName": "Rodrigo Cunha", + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "518", + "neighborhood": "Botafogo", + "complement": "10", + "reference": null, + "geoCoordinates": [] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "lockTTL": "10d", + "price": 1160, + "listPrice": 1160, + "sellingPrice": 1160, + "deliveryWindow": null, + "deliveryCompany": "Todos os CEPS", + "shippingEstimate": "5bd", + "shippingEstimateDate": "2019-02-04T20:33:46.4595004+00:00", + "slas": [ + { + "id": "Normal", + "name": "Normal", + "shippingEstimate": "5bd", + "deliveryWindow": null, + "price": 1160, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "region196", + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d", + "pickupDistance": 0 + }, + { + "id": "Expressa", + "name": "Expressa", + "shippingEstimate": "5bd", + "deliveryWindow": null, + "price": 1160, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": null, + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d", + "pickupDistance": 0 + }, + { + "id": "Quebra Kit", + "name": "Quebra Kit", + "shippingEstimate": "2bd", + "deliveryWindow": null, + "price": 1392, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": null, + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d", + "pickupDistance": 0 + }, + { + "id": "Sob Encomenda", + "name": "Sob Encomenda", + "shippingEstimate": "32bd", + "deliveryWindow": null, + "price": 1392, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": null, + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d", + "pickupDistance": 0 + } + ], + "shipsTo": [ + "BRA" + ], + "deliveryIds": [ + { + "courierId": "197a56f", + "courierName": "Todos os CEPS", + "dockId": "1", + "quantity": 1, + "warehouseId": "1_1", + "accountCarrierName": "recorrenciaqa", + "kitItemDetails": [] + } + ], + "deliveryChannels": [ + { + "id": "delivery", + "stockBalance": 0 + } + ], + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "polygonName": null, + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d" + } + ], + "trackingHints": null, + "selectedAddresses": [ + { + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "addressType": "residential", + "receiverName": "Rodrigo Cunha", + "street": "Praia de Botafogo", + "number": "518", + "complement": "10", + "neighborhood": "Botafogo", + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "reference": null, + "geoCoordinates": [] + } + ] + }, + "paymentData": { + "giftCards": [], + "transactions": [ + { + "isActive": true, + "transactionId": "418213DE29634837A63DD693A937A696", + "merchantName": "luxstore", + "payments": [ + { + "id": "D3DEECAB3C6C4B9EAF8EF4C1FE062FF3", + "paymentSystem": "6", + "paymentSystemName": "Boleto Bancário", + "value": 4450, + "installments": 1, + "referenceValue": 4450, + "cardHolder": null, + "cardNumber": null, + "firstDigits": null, + "lastDigits": null, + "cvv2": null, + "expireMonth": null, + "expireYear": null, + "url": "https://luxstore.vtexpayments.com.br:443/BankIssuedInvoice/Transaction/418213DE29634837A63DD693A937A696/Payment/D3DEECAB3C6C4B9EAF8EF4C1FE062FF3/Installment/{Installment}", + "giftCardId": null, + "giftCardName": null, + "giftCardCaption": null, + "redemptionCode": null, + "group": "bankInvoice", + "tid": null, + "dueDate": "2019-02-02", + "connectorResponses": { + "Tid": "94857956", + "ReturnCode": "200", + "Message": "logMessage", + "authId": "857956" + }, + "giftCardProvider": "presentCard", + "giftCardAsDiscount": false, + "koinUrl": "koinURL", + "accountId": "5BC5C6B417FE432AB971B1D399F190C9", + "parentAccountId": "5BC5C6B417FE432AB971B1D399F190C9", + "bankIssuedInvoiceIdentificationNumber": "23797770100000019003099260100022107500729050", + "bankIssuedInvoiceIdentificationNumberFormatted": "32534.95739 75945.24534 54395.734214 5", + "bankIssuedInvoiceBarCodeNumber": "325349573975945245345439573421443986734065", + "bankIssuedInvoiceBarCodeType": "i25", + "billingAddress": {} + } + ] + } + ] + }, + "packageAttachment": { + "packages": [] + }, + "sellers": [ + { + "id": "1", + "name": "Lux Store", + "logo": "https://sellersLogo/images.png", + "fulfillmentEndpoint": "http://fulfillment.vtexcommerce.com.br/api/fulfillment?an=accountName" + } + ], + "callCenterOperatorData": null, + "followUpEmail": "7bf3a59bbc56402c810bda9521ba449e@ct.vtex.com.br", + "lastMessage": null, + "hostname": "luxstore", + "invoiceData": null, + "changesAttachment": { + "id": "changeAttachment", + "changesData": [ + { + "reason": "Blah", + "discountValue": 3290, + "incrementValue": 0, + "itemsAdded": [], + "itemsRemoved": [ + { + "id": "1234568358", + "name": "Bay Max L", + "quantity": 1, + "price": 3290, + "unitMultiplier": null + } + ], + "receipt": { + "date": "2019-02-06T20:46:04.4003606+00:00", + "orderId": "v502556llux-01", + "receipt": "029f9ab8-751a-4b1e-bf81-7dd25d14b49b" + } + } + ] + }, + "openTextField": null, + "roundingError": 0, + "orderFormId": "caae7471333e403f959fa5fd66951340", + "commercialConditionData": null, + "isCompleted": true, + "customData": null, + "storePreferencesData": { + "countryCode": "BRA", + "currencyCode": "BRL", + "currencyFormatInfo": { + "CurrencyDecimalDigits": 2, + "CurrencyDecimalSeparator": ",", + "CurrencyGroupSeparator": ".", + "CurrencyGroupSize": 3, + "StartsWithCurrencySymbol": true + }, + "currencyLocale": 1046, + "currencySymbol": "R$", + "timeZone": "E. South America Standard Time" + }, + "allowCancellation": true, + "allowEdition": false, + "isCheckedIn": false, + "marketplace": { + "baseURL": "http://oms.vtexinternal.com.br/api/oms?an=luxstore", + "isCertified": null, + "name": "luxstore" + }, + "authorizedDate": "2019-01-28T20:33:04+00:00", + "invoicedDate": null, + "cancelReason": "The size was too big.", + "itemMetadata": { + "Items": [ + { + "Id": "18", + "Seller": "1", + "Name": "Cat food", + "SkuName": "Cat food", + "ProductId": "6", + "RefId": "105", + "Ean": "43673557", + "ImageUrl": "http://store.vteximg.com.br/ids/155392-55-55/AlconKOI.jpg?v=635918402228600000", + "DetailUrl": "/catfood/p", + "AssemblyOptions": [ + { + "Id": "vtex.subscription.plan-ana", + "Name": "vtex.subscription.plan-ana", + "Required": false, + "InputValues": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 8, + "Domain": [ + "4 month", + "1 month" + ] + } + }, + "Composition": {} + } + ] + } + ] + }, + "subscriptionData": { + "SubscriptionGroupId": "A64AC73C0FB8693A7ADB4AC69CA4FD5F", + "Subscriptions": [ + { + "ExecutionCount": 724, + "PriceAtSubscriptionDate": 100, + "ItemIndex": 0, + "Plan": { + "type": "RECURRING_PAYMENT", + "frequency": { + "periodicity": "DAILY", + "interval": 1 + }, + "validity": { + "begin": "2022-01-10T00:00:00.0000000+00:00", + "end": "2024-02-03T00:00:00.0000000+00:00" + } + } + } + ] + }, + "taxData": { + "areTaxesDesignatedByMarketplace": true, + "taxInfoCollection": [ + { + "itemIndex": 0, + "sku": "COLOCAR_O_SKUID", + "priceTags": [ + { + "isPercentual": false, + "name": "Taxes (Magazine Luisa)", + "rawValue": "COLOCAR_O_VALOR_SEM_DECIMAL" + } + ] + } + ] + }, + "checkedInPickupPointId": "storeNameExample_901", + "cancellationData": { + "RequestedByUser": true, + "RequestedBySystem": false, + "RequestedBySellerNotification": false, + "RequestedByPaymentNotification": false, + "Reason": "Item was too big in the client.", + "CancellationDate": "2022-10--05T15:40:33" + }, + "clientPreferencesData": { + "locale": "en-US", + "optinNewsLetter": false + } + } + } + } + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "schemas": { + "TotalsUpdated": { + "type": "array", + "description": "Information about the order totals.", + "items": { + "type": "object", + "description": "Details about the order totals.", + "properties": { + "id": { + "type": "string", + "description": "Total ID, which defines what the total is about.", + "enum": [ + "Items", + "Discounts", + "Shipping", + "Tax" + ] + }, + "name": { + "type": "string", + "description": "Total name." + }, + "value": { + "type": "integer", + "description": "Total value in cents." + }, + "alternativeTotals": { + "type": "array", + "description": "Information about the order alternative totals, when applicable. For example, when there is a discount for items in the marketplace that results in a difference in the `Items` total value, the `alternativeTotals` can retrieve details about it.", + "nullable": true, + "items": { + "type": "object", + "description": "Details about the order alternative totals.", + "properties": { + "id": { + "type": "string", + "description": "Alternative total ID, which can be related to items, discounts, shipping or taxes." + }, + "name": { + "type": "string", + "description": "Alternative total name." + }, + "value": { + "type": "integer", + "description": "Alternative total value in cents." + } + } + } + } + } + } + }, + "ItemsUpdated": { + "type": "array", + "description": "Information on order items.", + "items": { + "type": "object", + "description": "Information on each order item.", + "properties": { + "uniqueId": { + "type": "string", + "description": "Order item unique ID." + }, + "id": { + "type": "string", + "description": "Item ID." + }, + "productId": { + "type": "string", + "description": "Product ID." + }, + "ean": { + "type": "string", + "description": "European Article Number (EAN) of the item.", + "nullable": true + }, + "lockId": { + "type": "string", + "description": "[Reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) ID.", + "nullable": true + }, + "attachments": { + "type": "array", + "description": "Information about [attachments](https://help.vtex.com/en/tutorial/what-is-an-attachment--aGICk0RVbqKg6GYmQcWUm).", + "nullable": true, + "items": { + "type": "object", + "description": "Information about a given attachment.", + "properties": { + "name": { + "type": "string", + "description": "Attachment name.", + "nullable": true + }, + "content": { + "type": "object", + "description": "Custom field for attachment content.", + "nullable": true, + "additionalProperties": { + "type": "string", + "description": "Attachment custom field content.", + "nullable": true + } + } + } + } + }, + "quantity": { + "type": "integer", + "description": "Item quantity." + }, + "seller": { + "type": "string", + "description": "Seller name. When the store acts both as marketplace and seller, this field corresponds to `1`, because every VTEX store is its own seller 1." + }, + "name": { + "type": "string", + "description": "SKU name." + }, + "refId": { + "type": "string", + "description": "Ref ID." + }, + "price": { + "type": "integer", + "description": "Item price in cents." + }, + "listPrice": { + "type": "integer", + "description": "List price in cents." + }, + "manualPrice": { + "type": "integer", + "description": "[Manual price](https://help.vtex.com/en/tutorial/change-the-price-of-an-item-in-the-shopping-cart--7Cd37aCAmtL1qmoZJJvjNf) in cents.", + "nullable": true + }, + "manualPriceAppliedBy": { + "type": "string", + "description": "ID of the user who applied the manual price.", + "nullable": true + }, + "priceTags": { + "type": "array", + "description": "Information about price tags. A price tag is a price modifier, like s discount or a promotion applicable to the item in the order context.", + "items": { + "type": "object", + "description": "Information about a given price tag.", + "properties": { + "name": { + "type": "string", + "description": "Price tag name." + }, + "value": { + "type": "number", + "description": "Price tag value in cents. Discounts correspond to negative numbers.", + "nullable": true + }, + "isPercentual": { + "type": "boolean", + "description": "Defines if the price tag value is applied through a percentage (`true`) or not (`false`)." + }, + "identifier": { + "type": "string", + "description": "Price tag identifier." + }, + "rawValue": { + "type": "number", + "description": "Price tag raw value." + }, + "rate": { + "type": "integer", + "description": "Price tag rate.", + "nullable": true + }, + "jurisCode": { + "type": "string", + "description": "Juris code.", + "nullable": true + }, + "jurisType": { + "type": "string", + "description": "Juris type.", + "nullable": true + }, + "jurisName": { + "type": "string", + "description": "Juris name.", + "nullable": true + } + } + } + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "detailUrl": { + "type": "string", + "description": "Detail URL." + }, + "components": { + "type": "array", + "description": "Item components.", + "nullable": true, + "items": { + "type": "string", + "description": "Component name.", + "nullable": true + } + }, + "bundleItems": { + "type": "array", + "description": "Information about services sold with the item. For example, a gift package.", + "nullable": true, + "items": { + "type": "object", + "description": "Information about a given service.", + "properties": { + "type": { + "type": "string", + "description": "Service type." + }, + "id": { + "type": "integer", + "description": "Service ID." + }, + "name": { + "type": "string", + "description": "Service name." + }, + "price": { + "type": "integer", + "description": "Service price in cents." + } + } + } + }, + "params": { + "type": "array", + "description": "Array with information about params.", + "items": { + "type": "string", + "description": "Param name." + } + }, + "offerings": { + "type": "array", + "description": "Information about offerings, which are services related to the item. For example, a warranty or installation.", + "nullable": true, + "items": { + "type": "string", + "description": "Name of the service related to the item.", + "nullable": true + } + }, + "attachmentOfferings": { + "type": "array", + "description": "Array containing attachments information.", + "nullable": true, + "items": { + "type": "object", + "description": "Attachment details.", + "nullable": true, + "properties": { + "name": { + "type": "string", + "description": "Attachment name.", + "nullable": true + }, + "required": { + "type": "boolean", + "description": "Defines if the attachment is required (`true`) or not (`false`).", + "nullable": true + }, + "schema": { + "type": "object", + "description": "Schema of the content declared in the field `attachmentOfferings`.", + "nullable": true, + "additionalProperties": { + "type": "string", + "description": "Attachment schema content.", + "nullable": true + } + } + } + } + }, + "sellerSku": { + "type": "string", + "description": "Seller SKU ID." + }, + "priceValidUntil": { + "type": "string", + "description": "Item price expiration date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + }, + "commission": { + "type": "integer", + "description": "Commission value registered for the seller." + }, + "tax": { + "type": "integer", + "description": "Tax value in cents." + }, + "preSaleDate": { + "type": "string", + "description": "Presale date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + }, + "additionalInfo": { + "type": "object", + "description": "Item additional information.", + "properties": { + "brandName": { + "type": "string", + "description": "Item brand name." + }, + "brandId": { + "type": "string", + "description": "Item brand ID." + }, + "categoriesIds": { + "type": "string", + "description": "Categories IDs." + }, + "categories": { + "type": "array", + "description": "Item [categories](https://help.vtex.com/tracks/catalog-101--5AF0XfnjfWeopIFBgs3LIQ/2gkZDjXRqfsq62TlAkj4uf) information.", + "items": { + "type": "object", + "description": "Information about a given category.", + "properties": { + "id": { + "type": "integer", + "description": "Category ID." + }, + "name": { + "type": "string", + "description": "Category name." + } + } + } + }, + "productClusterId": { + "type": "string", + "description": "All product clusters related to the item." + }, + "commercialConditionId": { + "type": "string", + "description": "Commercial condition ID." + }, + "dimension": { + "$ref": "#/components/schemas/Dimension" + }, + "offeringInfo": { + "type": "string", + "description": "Offering information.", + "nullable": true + }, + "offeringType": { + "type": "string", + "description": "Offering type.", + "nullable": true + }, + "offeringTypeId": { + "type": "string", + "description": "Offering type ID.", + "nullable": true + } + } + }, + "measurementUnit": { + "type": "string", + "description": "Item measurement unit." + }, + "unitMultiplier": { + "type": "number", + "description": "Item unit multiplier." + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price in cents. This field can present rounding discrepancies, so we recommend retrieving pricing information from the `priceDefinition` field." + }, + "isGift": { + "type": "boolean", + "description": "Defines it the item is a gift (`true`) or not (`false`)." + }, + "shippingPrice": { + "type": "integer", + "description": "Item shipping price in cents. This value does not account for the order total shipping price.", + "nullable": true + }, + "rewardValue": { + "type": "integer", + "description": "Reward value in cents." + }, + "freightCommission": { + "type": "integer", + "description": "Freight commission value in cents." + }, + "priceDefinition": { + "type": "object", + "description": "Item price information.", + "properties": { + "sellingPrices": { + "type": "array", + "description": "Item selling prices.", + "items": { + "type": "object", + "description": "Price value per quantity.", + "properties": { + "value": { + "type": "integer", + "description": "Item selling price value in cents." + }, + "quantity": { + "type": "integer", + "description": "Item quantity." + } + } + } + }, + "calculatedSellingPrice": { + "type": "integer", + "description": "Item calculated selling price in cents." + }, + "total": { + "type": "integer", + "description": "Item total price in cents." + }, + "reason": { + "type": "string", + "description": "Item price definition reason.", + "nullable": true + } + } + }, + "taxCode": { + "type": "string", + "description": " Item tax code.", + "nullable": true + }, + "parentItemIndex": { + "type": "integer", + "description": "Ranking number that shows how related items are indexed in between each other. It starts at `0` as the primary item reference and counts up to `1`, `2`, and so on. For example, a customer bought sunglasses and hired a warranty service. Since the sunglasses are index `0`, the warranty service (the [assembly option](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH)) is index `1` and has the `parentItemIndex` value `0`. This response is `null` for items that are not assembly options.", + "nullable": true + }, + "parentAssemblyBinding": { + "type": "string", + "description": "When items are indexed in between each other, this field returns the assembly option ID. This response is `null` for items that are not [assembly options](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH).", + "nullable": true + }, + "callCenterOperator": { + "type": "string", + "description": "Identification code of the call center operator that sold the item, when applicable.", + "nullable": true + }, + "serialNumbers": { + "type": "string", + "description": "This field identifies the order in the `handling` status in the workflow, and it was used for VTEX internal control.", + "deprecated": true, + "nullable": true + }, + "assemblies": { + "type": "array", + "description": "Information about the item customization, when applicable.", + "nullable": true, + "items": { + "type": "string", + "description": "Customization information.", + "nullable": true + } + }, + "costPrice": { + "type": "integer", + "description": "Item cost price in cents.", + "nullable": true + } + } + } + }, + "ClientProfileDataUpdated": { + "type": "object", + "description": "Information about the customer profile.", + "properties": { + "id": { + "type": "string", + "description": "Object ID, the expected value is `clientProfileData`." + }, + "email": { + "type": "string", + "description": "Customer email." + }, + "firstName": { + "type": "string", + "description": "Customer first name." + }, + "lastName": { + "type": "string", + "description": "Customer last name." + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer." + }, + "document": { + "type": "string", + "description": "Document identification code informed by the customer." + }, + "phone": { + "type": "string", + "description": "Customer phone number." + }, + "corporateName": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, this field includes the corporate name." + }, + "tradeName": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, this field includes the trade name." + }, + "corporateDocument": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, this field includes the corporate document." + }, + "stateInscription": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, this field includes the state inscription." + }, + "corporatePhone": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, this field includes the company's phone number." + }, + "isCorporate": { + "type": "boolean", + "description": "Defines if the customer is a legal entity (`true`) or not (`false`)." + }, + "userProfileId": { + "type": "string", + "description": "Customer user profile ID." + }, + "userProfileVersion": { + "type": "string", + "nullable": true, + "description": "Customer user profile version." + }, + "customerClass": { + "type": "string", + "nullable": true, + "description": "Customer class identification." + }, + "customerCode": { + "type": "string", + "nullable": true, + "description": "Customer code." + } + } + }, + "GiftRegistryDataUpdated": { + "type": "object", + "description": "[Gift list](https://developers.vtex.com/docs/guides/creating-gift-lists) information.", + "nullable": true, + "properties": { + "giftRegistryId": { + "type": "string", + "description": "Gift list ID." + }, + "giftRegistryType": { + "type": "string", + "description": "[Gift list type](https://help.vtex.com/en/tutorial/creating-a-type-of-list)." + }, + "giftRegistryTypeName": { + "type": "string", + "description": "Gift list type name." + }, + "addressId": { + "type": "string", + "description": "Gift list shipping address ID." + }, + "description": { + "type": "string", + "description": "Gift list description." + } + } + }, + "MarketingDataUpdated": { + "type": "object", + "description": "Information about marketing and promotions, such as coupon code and [Urchin Tracking Module (UTM)](https://help.vtex.com/en/tutorial/what-are-utm-source-utm-campaign-and-utm-medium--2wTz7QJ8KUG6skGAoAQuii).", + "nullable": true, + "properties": { + "id": { + "type": "string", + "description": "Object ID. The expected value is `marketingData`." + }, + "utmSource": { + "type": "string", + "description": "A UTM is an Urchin Tracking Module used to track traffic related to your store. This field is an UTM for tracking the traffic source, to know from which site, advertiser, or publication the customer came before reaching your site.", + "nullable": true + }, + "utmPartner": { + "type": "string", + "description": "UTM for tracking the partner.", + "nullable": true + }, + "utmMedium": { + "type": "string", + "description": "UTM for tracking the advertising or marketing media used to reach your site, such as banners and newsletters." + }, + "utmCampaign": { + "type": "string", + "description": "UTM for tracking the marketing campaign context.", + "nullable": true + }, + "coupon": { + "type": "string", + "description": "Coupon code used by the customer.", + "nullable": true + }, + "utmiCampaign": { + "type": "string", + "description": "Internal UTM for tracking the marketing campaign context.", + "nullable": true + }, + "utmipage": { + "type": "string", + "description": "A `utmi` is an internal Urchin Tracking Module (UTM) used to track traffic inside your site. This field is an internal UTM for tracking pages.", + "nullable": true + }, + "utmiPart": { + "type": "string", + "description": "Internal UTM for tracking the partner.", + "nullable": true + }, + "marketingTags": { + "type": "array", + "description": "List of marketing tags valid for the item.", + "items": { + "type": "string", + "description": "Marketing tag name." + } + } + } + }, + "RatesAndBenefitsDataUpdated": { + "type": "object", + "description": "Information on promotions and taxes that apply to the order.", + "properties": { + "id": { + "type": "string", + "description": "Object ID. The expected value is `ratesAndBenefitsData`." + }, + "rateAndBenefitsIdentifiers": { + "type": "array", + "description": "Information about order's promotions and taxes identifiers.", + "items": { + "type": "object", + "description": "Information about a given promotion or tax.", + "properties": { + "description": { + "type": "string", + "description": "Promotion or tax description.", + "nullable": true + }, + "featured": { + "type": "boolean", + "description": "Defines if the [target audience](https://help.vtex.com/en/tutorial/creating-a-campaign-audience--6cnuDZJzIkIeocewAQQK4K) is featured (`true`) or not (`false`)." + }, + "id": { + "type": "string", + "description": "Promotion or tax ID." + }, + "name": { + "type": "string", + "description": "Promotion or tax name." + }, + "matchedParameters": { + "type": "object", + "description": "Informs the criteria and conditions fulfilled so the promotion became valid.", + "additionalProperties": { + "type": "string", + "description": "Promotion or tax criteria content." + } + }, + "additionalInfo": { + "type": "object", + "description": "Object containing the promotion or tax additional information.", + "nullable": true, + "additionalProperties": { + "type": "string", + "description": "Additional information." + } + } + } + } + } + } + }, + "ShippingDataUpdated": { + "type": "object", + "description": "Order shipping information.", + "properties": { + "id": { + "type": "string", + "description": "Object ID. The expected value is `shippingData`." + }, + "address": { + "type": "object", + "description": "Shipping address details.", + "required": [ + "addressType", + "receiverName", + "addressId", + "postalCode", + "city", + "state", + "country", + "street", + "number", + "neighborhood", + "complement", + "reference", + "geoCoordinates" + ], + "properties": { + "addressType": { + "type": "string", + "description": "Shipping address type.", + "enum": [ + "residential", + "pickup" + ] + }, + "receiverName": { + "type": "string", + "description": "Full name of the order receiver." + }, + "addressId": { + "type": "string", + "description": "Shipping address ID." + }, + "versionId": { + "type": "string", + "description": "Shipping address version ID.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Shipping address entity ID.", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Shipping address postal code." + }, + "city": { + "type": "string", + "description": "Shipping address city." + }, + "state": { + "type": "string", + "description": "Shipping address state." + }, + "country": { + "type": "string", + "description": "Shipping address three-digit country code in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "street": { + "type": "string", + "description": "Shipping address street." + }, + "number": { + "type": "string", + "description": "Shipping address number." + }, + "neighborhood": { + "type": "string", + "description": "Shipping address neighborhood." + }, + "complement": { + "type": "string", + "description": "Shipping address complement.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Shipping address additional information.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Shipping address pair of geolocation coordinates, first longitude then latitude.", + "items": { + "type": "number", + "description": "Longitude or latitude." + } + } + } + }, + "logisticsInfo": { + "type": "array", + "description": "Logistics information regarding order items.", + "items": { + "type": "object", + "description": "Logistics information about an item.", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Each item in the order is identified by an index. The position starts in `0`, followed by `1`, `2`, and so on." + }, + "itemId": { + "type": "string", + "description": "SKU ID." + }, + "selectedSla": { + "type": "string", + "description": "Service Level Agreement (SLA), which corresponds to the shipping method selected by the customer, usually like normal or express." + }, + "lockTTL": { + "type": "string", + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time." + }, + "price": { + "type": "integer", + "description": "Item shipping price in cents. This value does not correspond to the order total shipping price." + }, + "listPrice": { + "type": "integer", + "description": "Item [list price](https://help.vtex.com/en/tracks/prices-101--6f8pwCns3PJHqMvQSugNfP/3XcXp0r5WrJvogB8KIX4Kx#list-price) in cents." + }, + "sellingPrice": { + "type": "integer", + "description": "Item selling price in cents." + }, + "deliveryWindow": { + "type": "string", + "description": "[Scheduled delivery](https://help.vtex.com/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) window information, when applicable.", + "nullable": true + }, + "deliveryCompany": { + "type": "string", + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) company name." + }, + "shippingEstimate": { + "type": "string", + "description": "Shipping estimate time in days. For instance, three business days is represented `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "Shipping estimate date, defined after order confirmation, in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "slas": { + "type": "array", + "description": "Service Level Agreements (SLA) corresponding to [shipping policies](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140).", + "items": { + "type": "object", + "description": "Service Level Agreement (SLA) information.", + "properties": { + "id": { + "type": "string", + "description": "ID of the shipping method used in the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140)." + }, + "name": { + "type": "string", + "description": "[Shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) name." + }, + "shippingEstimate": { + "type": "string", + "description": "Shipping estimate time in days. For instance, three business days is represented `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "SLA shipping estimate date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + }, + "deliveryWindow": { + "type": "string", + "description": "[Delivery window](https://help.vtex.com/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) information, when applicable.", + "nullable": true + }, + "availableDeliveryWindows": { + "type": "array", + "description": "Available delivery windows information, when applicable.", + "nullable": true, + "items": { + "type": "string", + "description": "Information about an available delivery window." + } + }, + "deliveryIds": { + "type": "array", + "description": "SLA delivery IDs information.", + "items": { + "type": "object", + "description": "Information about a delivery ID.", + "properties": { + "courierId": { + "type": "string", + "description": "Carrier ID." + }, + "courierName": { + "type": "string", + "description": "Carrier name." + }, + "dockId": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items being delivered." + }, + "warehouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID." + }, + "accountCarrierName": { + "type": "string", + "description": "Account carrier name." + }, + "kitItemDetails": { + "type": "array", + "description": "Information about [kit](https://help.vtex.com/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28) items, when applicable.", + "nullable": true, + "items": { + "type": "string", + "description": "Kit item information." + } + } + } + } + }, + "listPrice": { + "type": "integer", + "description": "SLA shipping list price in cents." + }, + "price": { + "type": "integer", + "description": "SLA shipping price in cents. Does not account for the order total shipping price." + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Defines if the delivery channel is delivery or [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "enum": [ + "delivery", + "pickup-in-point" + ] + }, + "pickupStoreInfo": { + "$ref": "#/components/schemas/PickupStoreInfoUpdated" + }, + "polygonName": { + "type": "string", + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the shipping policy.", + "nullable": true + }, + "lockTTL": { + "type": "string", + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time related to the SLA." + }, + "pickupPointId": { + "type": "string", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) ID related to the SLA.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Number of days the carrier takes in transit to deliver the order. For instance, three business days is represented `3bd`." + }, + "pickupDistance": { + "type": "number", + "description": "Distance in kilometers between the pickup point and the customer address. The distance is measured as a straight line.", + "nullable": true + } + } + } + }, + "shipsTo": { + "type": "array", + "description": "List of shipping address countries.", + "items": { + "type": "string", + "description": "Shipping address three-digit country code in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + } + }, + "deliveryIds": { + "type": "array", + "description": "Order delivery IDs information.", + "items": { + "type": "object", + "description": "Information about a delivery ID.", + "properties": { + "courierId": { + "type": "string", + "description": "Carrier ID." + }, + "courierName": { + "type": "string", + "description": "Carrier name." + }, + "dockId": { + "type": "string", + "description": "[Loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) ID." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items being delivered." + }, + "warehouseId": { + "type": "string", + "description": "[Warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb) ID." + }, + "accountCarrierName": { + "type": "string", + "description": "Account carrier name." + }, + "kitItemDetails": { + "type": "array", + "description": "Information about [kit](https://help.vtex.com/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28) items, when applicable.", + "nullable": true, + "items": { + "type": "string", + "description": "Kit item information." + } + } + } + } + }, + "deliveryChannels": { + "type": "array", + "description": "Delivery channels associated with the sales channel (or [trade policy](https://help.vtex.com/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)).", + "items": { + "type": "object", + "description": "Delivery channel information.", + "properties": { + "id": { + "type": "string", + "description": "Delivery channel shipping type.", + "enum": [ + "delivery", + "pickup-in-point" + ] + }, + "stockBalance": { + "type": "integer", + "description": "Stock check for SKU availability." + } + } + } + }, + "deliveryChannel": { + "type": "string", + "description": "Defines if the delivery channel is delivery or pickup. This field is deprecated and was replaced by the `deliveryChannels` field.", + "deprecated": true, + "enum": [ + "delivery", + "pickup-in-point" + ] + }, + "pickupStoreInfo": { + "$ref": "#/components/schemas/PickupStoreInfoUpdated" + }, + "addressId": { + "type": "string", + "description": "Shipping address ID.", + "nullable": true + }, + "versionId": { + "type": "string", + "description": "Shipping address version ID.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Shipping address entity ID.", + "nullable": true + }, + "polygonName": { + "type": "string", + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140).", + "nullable": true + }, + "pickupPointId": { + "type": "string", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) ID, when applicable.", + "nullable": true + }, + "transitTime": { + "type": "string", + "description": "Number of days the carrier takes in transit to deliver the order. For instance, three business days is represented `3bd`." + } + } + } + }, + "trackingHints": { + "type": "array", + "description": "List containing order shipping label information.", + "nullable": true, + "items": { + "type": "object", + "description": "Shipping label details.", + "properties": { + "trackingId": { + "type": "string", + "description": "Order tracking ID." + }, + "courierName": { + "type": "string", + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) name." + }, + "trackingUrl": { + "type": "string", + "description": "Order tracking URL." + }, + "trackingLabel": { + "type": "string", + "description": "Order tracking label." + } + } + } + }, + "selectedAddresses": { + "type": "array", + "description": "Selected adresses information.", + "items": { + "type": "object", + "description": "Details about a selected adress.", + "properties": { + "addressId": { + "type": "string", + "description": "Selected address ID." + }, + "versionId": { + "type": "string", + "description": "Selected address version ID.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Selected address entity ID.", + "nullable": true + }, + "addressType": { + "type": "string", + "description": "Selected adress shipping type.", + "enum": [ + "residential", + "pickup" + ] + }, + "receiverName": { + "type": "string", + "description": "Full name of the order receiver." + }, + "street": { + "type": "string", + "description": "Selected address street." + }, + "number": { + "type": "string", + "description": "Selected address number." + }, + "complement": { + "type": "string", + "description": "Selected address complement.", + "nullable": true + }, + "neighborhood": { + "type": "string", + "description": "Selected address neighborhood." + }, + "postalCode": { + "type": "string", + "description": "Selected address postal code." + }, + "city": { + "type": "string", + "description": "Selected address city." + }, + "state": { + "type": "string", + "description": "Selected address state." + }, + "country": { + "type": "string", + "description": "Selected address three-digit country code in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "reference": { + "type": "string", + "nullable": true, + "description": "Selected address additional information." + }, + "geoCoordinates": { + "type": "array", + "description": "Selected address pair of geolocation coordinates, first longitude then latitude.", + "items": { + "type": "number", + "description": "Longitude or latitude." + } + } + } + } + }, + "availableAddresses": { + "type": "array", + "description": "Available adresses information.", + "items": { + "type": "object", + "description": "Details about an available adress.", + "properties": { + "addressId": { + "type": "string", + "description": "Available address ID." + }, + "versionId": { + "type": "string", + "description": "Available address version ID.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Available address entity ID.", + "nullable": true + }, + "addressType": { + "type": "string", + "description": "Available adress shipping type.", + "enum": [ + "residential", + "pickup" + ] + }, + "receiverName": { + "type": "string", + "description": "Full name of the order receiver." + }, + "street": { + "type": "string", + "description": "Available address street." + }, + "number": { + "type": "string", + "description": "Available address number." + }, + "complement": { + "type": "string", + "description": "Available address complement.", + "nullable": true + }, + "neighborhood": { + "type": "string", + "description": "Available address neighborhood." + }, + "postalCode": { + "type": "string", + "description": "Available address postal code." + }, + "city": { + "type": "string", + "description": "Available address city." + }, + "state": { + "type": "string", + "description": "Available address state." + }, + "country": { + "type": "string", + "description": "Available address three-digit country code in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "reference": { + "type": "string", + "nullable": true, + "description": "Available address additional information." + }, + "geoCoordinates": { + "type": "array", + "description": "Available address pair of geolocation coordinates, first longitude then latitude.", + "items": { + "type": "number", + "description": "Longitude or latitude." + } + } + } + } + }, + "contactInformation": { + "type": "array", + "description": "Order contact information.", + "nullable": true, + "items": { + "type": "object", + "description": "Order contact details.", + "properties": { + "id": { + "type": "string", + "description": "Contact ID." + }, + "email": { + "type": "string", + "description": "Contact email." + }, + "firstName": { + "type": "string", + "description": "Contact first name." + }, + "lastName": { + "type": "string", + "description": "Contact last name." + }, + "document": { + "type": "string", + "description": "Contact document number." + }, + "phone": { + "type": "string", + "description": "Contact phone number." + }, + "documentType": { + "type": "string", + "description": "Contact document type." + } + } + } + } + } + }, + "PickupStoreInfoUpdated": { + "type": "object", + "description": "Information about a [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) that was transformed into a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "required": [ + "additionalInfo", + "address", + "dockId", + "friendlyName", + "isPickupStore" + ], + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "Defines if the shipping type was pickup (`true`) or not (`false`)." + }, + "friendlyName": { + "type": "string", + "description": "Name of the pickup point displayed at checkout.", + "nullable": true + }, + "address": { + "type": "object", + "description": "Pickup point address information.", + "nullable": true, + "properties": { + "postalCode": { + "type": "string", + "description": "Pickup point address postal code." + }, + "country": { + "type": "string", + "description": "Three-digit country code of the pickup point address in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "city": { + "type": "string", + "description": "Pickup point address city." + }, + "state": { + "type": "string", + "description": "Pickup point address state." + }, + "neighborhood": { + "type": "string", + "description": "Pickup point address neighborhood." + }, + "street": { + "type": "string", + "description": "Pickup point address street." + }, + "number": { + "type": "string", + "description": "Pickup point address number." + }, + "complement": { + "type": "string", + "description": "Pickup point address complement." + }, + "reference": { + "type": "string", + "description": "Pickup point address reference.", + "nullable": true + }, + "location": { + "type": "object", + "description": "Pickup point geolocation coordinates.", + "properties": { + "latitude": { + "type": "number", + "description": "Latitude coordinate." + }, + "longitude": { + "type": "number", + "description": "Longitude coordinate." + } + } + } + } + }, + "additionalInfo": { + "type": "string", + "description": "Additional information.", + "nullable": true + }, + "dockId": { + "type": "string", + "description": "ID of the loading dock related to the pickup point.", + "nullable": true + } + } + }, + "PaymentDataUpdated": { + "type": "object", + "description": "Payments information.", + "properties": { + "giftCards": { + "type": "array", + "description": "[Gift cards](https://developers.vtex.com/docs/guides/gift-card-integration-guide) information, when applicable.", + "nullable": true, + "items": { + "type": "object", + "description": "Gift card details.", + "properties": { + "id": { + "type": "string", + "description": "Gift card identification." + }, + "redemptionCode": { + "type": "string", + "description": "Gift card code used by the customer at checkout." + }, + "name": { + "type": "string", + "description": "Gift card name.", + "nullable": true + }, + "caption": { + "type": "string", + "description": "Gift card loyalty program, when applicable.", + "nullable": true + }, + "value": { + "type": "integer", + "description": "Gift card value in cents." + }, + "balance": { + "type": "number", + "description": "Gift card current balance. For newly created gift cards, the balance will be `0.0`." + }, + "provider": { + "type": "string", + "description": "Gift card provider name." + }, + "groupName": { + "type": "string", + "description": "Gift card group name.", + "nullable": true + }, + "inUse": { + "type": "boolean", + "description": "Defines if the gift card is in use (`true`) or not (`false`)." + }, + "isSpecialCard": { + "type": "boolean", + "description": "Defines if the gift card is a special card (`true`) or not (`false`)." + } + } + } + }, + "transactions": { + "type": "array", + "description": "Information about the order financial transactions.", + "items": { + "type": "object", + "description": "Information about a given transaction.", + "properties": { + "isActive": { + "type": "boolean", + "description": "Defines of the transaction is active (`true`) or inactive (`false`)." + }, + "transactionId": { + "type": "string", + "description": "Transaction ID." + }, + "merchantName": { + "type": "string", + "description": "Merchant name." + }, + "payments": { + "type": "array", + "description": "Payments information.", + "items": { + "type": "object", + "description": "Payment details.", + "properties": { + "id": { + "type": "string", + "description": "Payment unique identifier." + }, + "paymentSystem": { + "type": "string", + "description": "Payment system ID." + }, + "paymentSystemName": { + "type": "string", + "description": "Payment system name." + }, + "value": { + "type": "integer", + "description": "Order total payment value in cents." + }, + "installments": { + "type": "integer", + "description": "Number of payment installments." + }, + "referenceValue": { + "type": "integer", + "description": "Total payment reference value in cents." + }, + "cardHolder": { + "type": "string", + "nullable": true, + "description": "Name of the card owner." + }, + "cardNumber": { + "type": "string", + "nullable": true, + "description": "Card number." + }, + "firstDigits": { + "type": "string", + "nullable": true, + "description": "Card first four digits." + }, + "lastDigits": { + "type": "string", + "nullable": true, + "description": "Card last four digits." + }, + "cvv2": { + "type": "string", + "nullable": true, + "description": "Card Verification Value (CVV2) is a security code used by payment processors to reduce fraudulent credit and debit card transactions." + }, + "expireMonth": { + "type": "string", + "nullable": true, + "description": "Card expiration month in 2-digit format." + }, + "expireYear": { + "type": "string", + "description": "Card expiration year in 4-digit format.", + "nullable": true + }, + "url": { + "type": "string", + "description": "Payment URL.", + "nullable": true + }, + "giftCardId": { + "type": "string", + "description": "Gift card ID.", + "nullable": true + }, + "giftCardName": { + "type": "string", + "description": "Gift card name.", + "nullable": true + }, + "giftCardCaption": { + "type": "string", + "description": "Gift card caption.", + "nullable": true + }, + "redemptionCode": { + "type": "string", + "description": "Gift card code used by the customer at checkout.", + "nullable": true + }, + "group": { + "type": "string", + "description": "Transaction payment method, which can be credit card, debid card, bank invoice, promissory, gift card or pix (`instantPayment`).", + "enum": [ + "creditCard", + "debitCard", + "bankInvoice", + "promissory", + "giftCard", + "instantPayment" + ] + }, + "tid": { + "type": "string", + "description": "Provider unique identifier for the transaction." + }, + "dueDate": { + "type": "string", + "description": "Payment due date in `MM/YY` format.", + "nullable": true + }, + "connectorResponses": { + "type": "object", + "description": "Payment provider (connector) responses. The fields within this object can vary according to the order payment provider.", + "properties": { + "Message": { + "type": "string", + "description": "Provider operational message or error to be logged.", + "nullable": true + }, + "tid": { + "type": "string", + "description": "Provider unique identifier for the transaction." + }, + "authorizationId": { + "type": "string", + "description": "Provider authorization ID." + }, + "status": { + "type": "string", + "description": "Order payment status in the [transaction flow](https://help.vtex.com/en/tracks/payments--6GAS7ZzGAm7AGoEAwDbwJG/1xjzgJZvqwaI1rfxLMCC3Y)." + }, + "delayToAutoSettle": { + "type": "integer", + "description": "Total time (in seconds) before the auto settle, when the platform makes an automatic call to `/settlements`, regardless if the payment was approved by the merchant's anti-fraud provider. The maximum value allowed is `604800` seconds (7 days)." + }, + "ReturnCode": { + "type": "string", + "description": "Provider operational return code or error to be logged.", + "nullable": true + }, + "nsu": { + "type": "string", + "description": "Provider unique sequential number for the transaction." + }, + "code": { + "type": "string", + "description": "Provider operational code or error to be logged." + }, + "message": { + "type": "string", + "description": "Provider operational message or error to be logged." + }, + "Tid": { + "type": "string", + "description": "Provider unique identifier for the transaction." + }, + "acquirer": { + "type": "string", + "description": "[Acquirer](https://help.vtex.com/en/tracks/payments--6GAS7ZzGAm7AGoEAwDbwJG/kdPbEIWf8Xq8tESQvViMB#acquirer) name (mostly used for card payments)." + }, + "authId": { + "type": "string", + "description": "Authorization identification." + }, + "paymentId": { + "type": "string", + "description": "Payment ID." + }, + "delayToAutoSettleAfterAntifraud": { + "type": "string", + "description": "Total time (in seconds) before the auto settle, when the platform makes an automatic call to `/settlements`. This happens only after the payment was approved by the merchant's anti-fraud provider." + } + } + }, + "giftCardProvider": { + "type": "string", + "description": "Gift card provider ID.", + "nullable": true + }, + "giftCardAsDiscount": { + "type": "boolean", + "description": "Defines if the payment has a gift card discount (`true`) or not (`false`).", + "nullable": true + }, + "koinUrl": { + "type": "string", + "description": "Koin connector URL.", + "nullable": true + }, + "accountId": { + "type": "string", + "description": "Identification code of the account where the payment was made.", + "nullable": true + }, + "parentAccountId": { + "type": "string", + "description": "When the payment was made in a subaccount, this field retrieves the main account ID.", + "nullable": true + }, + "bankIssuedInvoiceIdentificationNumber": { + "type": "string", + "description": "Bank issued invoice numeric sequence.", + "nullable": true + }, + "bankIssuedInvoiceIdentificationNumberFormatted": { + "type": "string", + "description": "Bank issued invoice numeric sequence formatted as customers see.", + "nullable": true + }, + "bankIssuedInvoiceBarCodeNumber": { + "type": "string", + "description": "Bank issued invoice bar code number.", + "nullable": true + }, + "bankIssuedInvoiceBarCodeType": { + "type": "string", + "description": "Bank issued invoice bar code type.", + "nullable": true + }, + "billingAddress": { + "type": "object", + "description": "Billing address information.", + "nullable": true, + "properties": { + "postalCode": { + "type": "string", + "description": "Billing address postal code." + }, + "city": { + "type": "string", + "description": "Billing address city." + }, + "state": { + "type": "string", + "description": "Billing address state." + }, + "country": { + "type": "string", + "description": "Billing address three-digit country code in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "street": { + "type": "string", + "description": "Billing address street." + }, + "number": { + "type": "string", + "description": "Billing address number." + }, + "neighborhood": { + "type": "string", + "description": "Billing address neighborhood." + }, + "complement": { + "type": "string", + "description": "Billing address complement.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Billing address additional information.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Billing address pair of geolocation coordinates, first longitude then latitude.", + "items": { + "type": "number", + "description": "Longitude or latitude." + } + } + } + }, + "paymentOrigin": { + "type": "string", + "description": "Type of [wallet](https://help.vtex.com/en/tutorial/what-is-an-e-wallet--4v5wcOe4A0SiaimWM2cU60) used in the payment.", + "nullable": true + } + } + } + } + } + } + } + } + }, + "PackageAttachmentUpdated": { + "type": "object", + "description": "Information about shipping packages, which are created after order invoicing.", + "nullable": true, + "properties": { + "packages": { + "type": "array", + "description": "List with packages' information.", + "nullable": true, + "items": { + "type": "object", + "description": "Package details.", + "properties": { + "courier": { + "type": "string", + "description": "Name of the [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) responsible for the package shipping." + }, + "description": { + "type": "string", + "description": "Package description.", + "nullable": true + }, + "invoiceNumber": { + "type": "string", + "description": "Unique identification code of the package invoice." + }, + "invoiceValue": { + "type": "integer", + "description": "Package invoice value in cents." + }, + "invoiceUrl": { + "type": "string", + "description": "Package invoice URL." + }, + "issuanceDate": { + "type": "string", + "description": "Package invoice issuance date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "trackingNumber": { + "type": "string", + "description": "Package [tracking number](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-)." + }, + "invoiceKey": { + "type": "string", + "description": "Package invoice key." + }, + "trackingUrl": { + "type": "string", + "description": "Package tracking URL." + }, + "embeddedInvoice": { + "type": "string", + "description": "Package invoice text in [xml format](https://help.vtex.com/en/tutorial/configuring-xml--tutorials_242). This field is important for stores integrated with [external marketplaces](https://developers.vtex.com/docs/guides/external-marketplace-integration-guide)." + }, + "type": { + "type": "string", + "description": "Package invoice type, which can be:\r\n- `Output`: Selling order invoice.\r\n- `Input`: Returning items invoice.", + "enum": [ + "Output", + "Input" + ] + }, + "items": { + "type": "array", + "description": "Information on each item in the package.", + "items": { + "type": "object", + "description": "Package item details.", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Item index of the item position whithin the `items` array. The count starts at `0`." + }, + "id": { + "type": "string", + "description": "SKU ID." + }, + "quantity": { + "type": "integer", + "description": "Package item quantity." + }, + "price": { + "type": "integer", + "description": "Package item price in cents." + }, + "description": { + "type": "string", + "description": "Package item description." + }, + "unitMultiplier": { + "type": "number", + "description": "Package item unit multiplier." + } + } + } + }, + "courierStatus": { + "type": "object", + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) shipping information.", + "nullable": true, + "properties": { + "deliveredDate": { + "type": "string", + "description": "Package delivery date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "status": { + "type": "string", + "description": "Defines if a carrier was assigned for order shipping (`ok`) or not (`null`).", + "nullable": true + }, + "finished": { + "type": "boolean", + "description": "Defines if the carrier has already delivered the package (`true`) or not (`false`)." + }, + "data": { + "type": "array", + "description": "Package tracking information.", + "items": { + "type": "object", + "description": "Package tracking details.", + "properties": { + "lastChange": { + "type": "string", + "description": "Date since package tracking last change in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "city": { + "type": "string", + "description": "Package tracking city." + }, + "state": { + "type": "string", + "description": "Package tracking state in two-digit code format." + }, + "description": { + "type": "string", + "description": "Package tracking description." + }, + "createDate": { + "type": "string", + "description": "Package tracking creation date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + } + } + } + } + } + }, + "cfop": { + "type": "string", + "description": "[CFOP](https://www.gov.br/receitafederal/pt-br/acesso-a-informacao/acoes-e-programas/facilitacao/anexo-ecf-cfop) (_Código Fiscal de Operação e Prestação_) is a Brazilian fiscal code of operations and services that classifies business transaction types.", + "nullable": true + }, + "lastChange": { + "type": "string", + "description": "Date since package tracking last change in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "restitutions": { + "type": "object", + "description": "Information about a value being returned to the customer. This field applies only to invoices with the `Input` type because it relates to returning items.", + "nullable": true, + "properties": { + "refund": { + "type": "object", + "description": "Customer refund details.", + "properties": { + "value": { + "type": "integer", + "description": "Refund value in cents." + }, + "giftCardData": { + "type": "string", + "description": "Refund involving a [gift card](https://developers.vtex.com/docs/guides/gift-card-integration-guide).", + "nullable": true + }, + "items": { + "type": "array", + "description": "Information about the items being returned.", + "nullable": true, + "items": { + "type": "object", + "description": "Returned item details.", + "properties": { + "useFreight": { + "type": "boolean", + "description": "Defines if the refund includes freight values (`true`) or not (`false`).", + "nullable": true + }, + "isCompensation": { + "type": "boolean", + "description": "Defines if there are compensated unit tags in the package (`true`) or not (`false`)." + }, + "compensationValue": { + "type": "integer", + "description": "Compensational refund value in cents." + }, + "id": { + "type": "string", + "description": "SKU ID of the returned item." + }, + "quantity": { + "type": "integer", + "description": "Number of items being returned." + }, + "price": { + "type": "integer", + "description": "Returned item price in cents." + }, + "description": { + "type": "string", + "description": "Customer reason for returning the item." + } + } + } + } + } + } + } + }, + "volumes": { + "type": "integer", + "description": "Indicates the number of boxes (volumes) needed to contain the package items. For example, two refrigerators do not fit in a single volume, so this field would have value `2`.", + "nullable": true + } + } + } + } + } + }, + "SellersUpdated": { + "type": "array", + "description": "Information about the sellers associated with the order.", + "items": { + "type": "object", + "description": "Information about a given seller.", + "properties": { + "id": { + "type": "string", + "description": "Seller identifier." + }, + "name": { + "type": "string", + "description": "Seller name." + }, + "logo": { + "type": "string", + "description": "Seller logo URL.", + "nullable": true + }, + "fulfillmentEndpoint": { + "type": "string", + "description": "URL of the endpoint for fulfillment of seller's orders, which the marketplace use to communicate with the seller." + } + } + } + }, + "InvoiceDataUpdated": { + "type": "object", + "description": "Order invoices information.", + "nullable": true, + "properties": { + "address": { + "type": "object", + "description": "Invoice address information.", + "nullable": true, + "properties": { + "addressType": { + "type": "string", + "description": "Invoice address type, which can be `residential`, when the customer gives an address for delivery, or `pickup`, when the customer picks the order at a pickup point.", + "nullable": true, + "enum": [ + "residential", + "pickup" + ] + }, + "receiverName": { + "type": "string", + "description": "Full name of the order receiver.", + "nullable": true + }, + "addressId": { + "type": "string", + "description": "Invoice address ID.", + "nullable": true + }, + "versionId": { + "type": "string", + "description": "Invoice address version ID.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Invoice address entity ID.", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Invoice address postal code." + }, + "city": { + "type": "string", + "description": "Invoice address city." + }, + "state": { + "type": "string", + "description": "Invoice address state." + }, + "country": { + "type": "string", + "description": "Invoice address three-digit country code in [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "street": { + "type": "string", + "description": "Invoice address street." + }, + "number": { + "type": "string", + "description": "Invoice address number." + }, + "neighborhood": { + "type": "string", + "description": "Invoice address neighborhood." + }, + "complement": { + "type": "string", + "description": "Invoice address complement.", + "nullable": true + }, + "reference": { + "type": "string", + "description": "Invoice address additional information.", + "nullable": true + }, + "geoCoordinates": { + "type": "array", + "description": "Invoice address pair of geolocation coordinates, first longitude then latitude.", + "items": { + "type": "number", + "description": "Longitude or latitude." + } + }, + "contactId": { + "type": "string", + "description": "Contact unique identifier.", + "nullable": true + } + } + }, + "userPaymentInfo": { + "type": "object", + "description": "Invoice information regarding payment method.", + "nullable": true, + "properties": { + "paymentMethods": { + "type": "array", + "description": "List of the payment methods used by the customer in the purchase.", + "items": { + "type": "string", + "description": "Payment method name." + } + } + } + }, + "invoiceSubject": { + "type": "object", + "description": "Information about the invoice subject.", + "nullable": true, + "properties": { + "id": { + "type": "string", + "description": "Invoice subject ID." + }, + "email": { + "type": "string", + "description": "Invoice subject email address." + }, + "firstName": { + "type": "string", + "description": "Invoice subject first name." + }, + "lastName": { + "type": "string", + "description": "Invoice subject last name." + }, + "phone": { + "type": "string", + "description": "Invoice subject phone number." + } + } + } + } + }, + "ChangesAttachmentUpdated": { + "type": "object", + "description": "Information about changes in the order.", + "nullable": true, + "required": [ + "id", + "changesData" + ], + "properties": { + "id": { + "type": "string", + "description": "Order changes ID." + }, + "changesData": { + "type": "array", + "description": "Information about changes in the order.", + "items": { + "required": [ + "reason", + "discountValue", + "incrementValue", + "itemsAdded", + "itemsRemoved", + "receipt" + ], + "type": "object", + "description": "Details about an order change.", + "properties": { + "reason": { + "type": "string", + "description": "Text explaining why the order was changed. This information may be shown to the customer in the storefront or transactional emails." + }, + "discountValue": { + "type": "integer", + "description": "Order change discount value in cents.", + "nullable": true + }, + "incrementValue": { + "type": "integer", + "description": "Order change increment value in cents.", + "nullable": true + }, + "itemsAdded": { + "type": "array", + "description": "Information about items added to the order, when applicable.", + "nullable": true, + "items": { + "type": "object", + "description": "Information about an item added to the order.", + "properties": { + "id": { + "type": "string", + "description": "Added item SKU ID." + }, + "name": { + "type": "string", + "description": "Added item SKU name." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items added." + }, + "price": { + "type": "integer", + "description": "Added item price in cents." + }, + "unitMultiplier": { + "type": "string", + "description": "Added item unit multiplier.", + "nullable": true + } + } + } + }, + "itemsRemoved": { + "type": "array", + "description": "Information about items removed from the order, when applicable.", + "nullable": true, + "items": { + "type": "object", + "description": "Information about an item removed from the order.", + "required": [ + "id", + "name", + "quantity", + "price", + "unitMultiplier" + ], + "properties": { + "id": { + "type": "string", + "description": "Removed item SKU ID." + }, + "name": { + "type": "string", + "description": "Removed item name." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Quantity of removed items." + }, + "price": { + "type": "integer", + "format": "int32", + "description": "Removed item price in cents." + }, + "unitMultiplier": { + "type": "string", + "description": "Removed item unit multiplier.", + "nullable": true + } + } + } + }, + "receipt": { + "required": [ + "date", + "orderId", + "receipt" + ], + "type": "object", + "description": "Order changes receipt information.", + "properties": { + "date": { + "type": "string", + "description": "Receipt creation date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "orderId": { + "type": "string", + "description": "Order ID." + }, + "receipt": { + "type": "string", + "description": "Receipt unique identifier code." + } + } + } + } + } + } + } + }, + "CallCenterOperatorDataUpdated": { + "type": "object", + "description": "Information about the call center operator responsible for the order.", + "nullable": true, + "properties": { + "id": { + "type": "string", + "description": "Call center operator identification code." + }, + "email": { + "type": "string", + "description": "Call center operator email." + }, + "userName": { + "type": "string", + "description": "Call center operator user name." + } + } + }, + "StorePreferencesDataUpdated": { + "type": "object", + "description": "Store preferences in the [Account settings](https://help.vtex.com/en/tutorial/account-details-page--2vhUVOKfCaswqLguT2F9xq) page.", + "properties": { + "countryCode": { + "type": "string", + "description": "Country code in three-digit [ISO 3166 ALPHA-3](https://www.iban.com/country-codes) format." + }, + "currencyCode": { + "type": "string", + "description": "Currency code in [ISO 4217](https://www.iban.com/currency-codes) format." + }, + "currencyFormatInfo": { + "type": "object", + "description": "Currency format settings.", + "properties": { + "CurrencyDecimalDigits": { + "type": "integer", + "description": "Number of currency decimal digits." + }, + "CurrencyDecimalSeparator": { + "type": "string", + "description": "Character for currency decimal separation." + }, + "CurrencyGroupSeparator": { + "type": "string", + "description": "Character for currency group separation." + }, + "CurrencyGroupSize": { + "type": "integer", + "description": "Limit of characters that can be grouped for currency groups." + }, + "StartsWithCurrencySymbol": { + "type": "boolean", + "description": "Defines if the prices displayed for customers start with the currency symbol (`true`) or not (`false`)." + } + } + }, + "currencyLocale": { + "type": "integer", + "description": "Currency locale code in [LCID](https://learn.microsoft.com/en-us/openspecs/office_standards/ms-oe376/6c085406-a698-4e12-9d4d-c3b0ee3dbc4a) format." + }, + "currencySymbol": { + "type": "string", + "description": "Currency symbol characters." + }, + "timeZone": { + "type": "string", + "description": "Time zone considered for the store orders." + } + } + }, + "MarketplaceUpdated": { + "type": "object", + "description": "Information about the marketplace related to the order.", + "nullable": true, + "properties": { + "baseURL": { + "type": "string", + "description": "Marketplace base URL." + }, + "isCertified": { + "type": "boolean", + "nullable": true, + "description": "Defines if the marketplace is a [VTEX certified marketplace](https://help.vtex.com/en/tutorial/marketplace-strategies-at-vtex--tutorials_402#integrating-with-certified-marketplaces) (`true`) or not (`false`)." + }, + "name": { + "type": "string", + "description": "Marketplace name." + } + } + }, + "ItemMetadataUpdated": { + "type": "object", + "description": "Metadata information about items.", + "properties": { + "Items": { + "type": "array", + "description": "Metadata details about items.", + "items": { + "type": "object", + "description": "Metadata details about a given item", + "properties": { + "Id": { + "type": "string", + "description": "SKU ID." + }, + "Seller": { + "type": "string", + "description": "Seller ID." + }, + "Name": { + "type": "string", + "description": "Item name as displayed to customers in the storefront." + }, + "SkuName": { + "type": "string", + "description": "SKU name." + }, + "ProductId": { + "type": "string", + "description": "Product ID." + }, + "RefId": { + "type": "string", + "description": "SKU reference ID." + }, + "Ean": { + "type": "string", + "description": "European Article Number (EAN) of the item.", + "nullable": true + }, + "ImageUrl": { + "type": "string", + "description": "SKU image URL." + }, + "DetailUrl": { + "type": "string", + "description": "SKU slug." + }, + "AssemblyOptions": { + "type": "array", + "description": "[Assembly options](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH) information related to the item, when applicable.", + "nullable": true, + "items": { + "type": "object", + "description": "[Assembly option](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH) details.", + "properties": { + "Id": { + "type": "string", + "description": "Assembly option ID." + }, + "Name": { + "type": "string", + "description": "Assembly option name." + }, + "Required": { + "type": "boolean", + "description": "Defines if sending the attachment for the item purchased is required(`true`) or optional (`false`)." + }, + "InputValues": { + "type": "object", + "description": "Assembly option content.", + "nullable": true, + "additionalProperties": { + "type": "string", + "description": "Assembly option value.", + "nullable": true + } + }, + "Composition": { + "type": "object", + "description": "Assembly option composition.", + "nullable": true, + "additionalProperties": { + "type": "string", + "description": "Assembly option composition value." + } + } + } + } + } + } + } + } + } + }, + "SubscriptionDataUpdated": { + "type": "object", + "description": "Information about [subscriptions](https://help.vtex.com/en/tutorial/how-subscriptions-work--frequentlyAskedQuestions_4453), when applicable.", + "nullable": true, + "properties": { + "subscriptionGroupId": { + "type": "string", + "description": "Subscription group ID. If this field returns `null` and the `executionCount` is `0`, the order is the first subscription order.", + "nullable": true + }, + "subscriptions": { + "type": "array", + "description": "List with subscriptions details.", + "nullable": true, + "items": { + "type": "object", + "description": "Subscription details.", + "properties": { + "executionCount": { + "type": "integer", + "description": "Position of the order in the subscription cycle. The first order will have the value `0`, the second will have the value `1`, and so on." + }, + "priceAtSubscriptionDate": { + "type": "number", + "description": "Value of the order when the customer subscribed. Subscriptions created via VTEX Admin or [Subscriptions API](https://developers.vtex.com/docs/api-reference/subscriptions-api-v3) do not have an original order, so this field returns `0.0`.", + "nullable": true, + "deprecated": true + }, + "itemIndex": { + "type": "integer", + "description": "Each item in the subscription order is identified by an index. The position starts in `0`, followed by `1`, `2`, and so on." + }, + "plan": { + "type": "object", + "description": "Information about the [subscription plan](https://help.vtex.com/en/tutorial/subscription-plans-beta--5kczKRqHEsrs1tYtRcY8wR).", + "properties": { + "type": { + "type": "string", + "description": "Plan type." + }, + "frequency": { + "type": "object", + "description": "Information about the subscription recurrence.", + "properties": { + "periodicity": { + "type": "string", + "description": "Defines the subscription recurrence period.", + "enum": [ + "DAILY", + "WEEKLY", + "MONTHLY", + "YEARLY" + ] + }, + "interval": { + "type": "integer", + "description": "Time interval configured between subscription orders, which depends on the frequency. For a `DAY` frequency, the value will be days, for `MONTH` it will be months, and so on." + } + } + }, + "validity": { + "type": "object", + "description": "Information about the period during which the subscription will be valid.", + "properties": { + "begin": { + "type": "string", + "description": "Subscription plan beginning date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "end": { + "type": "string", + "description": "Subscription plan ending date and time in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + } + } + } + } + } + } + } + } + } + }, + "TaxDataUpdated": { + "type": "object", + "description": "Order taxes information.", + "required": [ + "areTaxesDesignatedByMarketplace", + "taxInfoCollection" + ], + "nullable": true, + "properties": { + "areTaxesDesignatedByMarketplace": { + "type": "boolean", + "description": "Defines if the taxes were applied by the marketplace (`true`) or not (`false`)." + }, + "taxInfoCollection": { + "type": "array", + "description": "Order taxes details.", + "items": { + "type": "object", + "description": "Information about a given tax.", + "required": [ + "itemIndex", + "sku", + "priceTags" + ], + "properties": { + "itemIndex": { + "type": "integer", + "description": "Item indexing number." + }, + "sku": { + "type": "string", + "description": "SKU ID." + }, + "priceTags": { + "type": "array", + "description": "Price tags information.", + "nullable": true, + "items": { + "type": "object", + "description": "Information about a given price tag.", + "properties": { + "identifier": { + "type": "string", + "description": "Price tag identifier code." + }, + "isPercentual": { + "type": "boolean", + "description": "Indicates whether price tag value is applied through a percentage (`true`) or not (`false`)." + }, + "name": { + "type": "string", + "description": "Price tag name." + }, + "value": { + "type": "integer", + "description": "Price tag value in cents." + }, + "rawValue": { + "type": "number", + "description": "Price tag raw value that can contain up to five decimals, separated by a period." + } + } + } + } + } + } + } + } + }, + "CancellationDataUpdated": { + "type": "object", + "description": "Information about [order cancellation](https://developers.vtex.com/docs/guides/order-canceling-improvements), when applicable.", + "nullable": true, + "properties": { + "requestedByUser": { + "type": "boolean", + "description": "Defines if the order cancellation was requested by the customer (`true`) or not (`false`)." + }, + "requestedBySystem": { + "type": "boolean", + "description": "Defines if the order cancellation was made by the system (`true`) or not (`false`). This type of order cancellation happens in [incomplete orders](https://help.vtex.com/en/tutorial/how-incomplete-orders-work--tutorials_294), for example.", + "nullable": true + }, + "requestedBySellerNotification": { + "type": "boolean", + "description": "Defines if the order cancellation was requested by the seller (`true`) or not (`false`).", + "nullable": true + }, + "requestedByPaymentNotification": { + "type": "boolean", + "description": "Defines if the order cancellation was requested by the payment gateway (`true`) or not (`false`).", + "nullable": true + }, + "reason": { + "type": "string", + "description": "Reason why the order was canceled." + }, + "cancellationDate": { + "type": "string", + "description": "Order cancellation date in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "cancellationRequestId": { + "type": "string", + "description": "ID that identifies the cancellation operation." + } + } + }, + "CancellationRequestsUpdated": { + "type": "array", + "description": "Information about the [seller order cancellation denials](https://developers.vtex.com/docs/guides/order-canceling-improvements), regardless if the cancellation request was made by the marketplace or the customer.", + "nullable": true, + "items": { + "type": "object", + "description": "Information about the seller denial to a given order cancellation request.", + "properties": { + "id": { + "type": "string", + "description": "ID that identifies the original cancellation operation made by the marketplaces or its customer care service using the [Cancel order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/cancel) endpoint." + }, + "reason": { + "type": "string", + "description": "Reason why there was a request to cancel the order." + }, + "cancellationRequestDate": { + "type": "string", + "description": "Date of when the order cancellation request was processed by the platform. The date format is [ISO 8601 time zone offset](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "requestedByUser": { + "type": "boolean", + "description": "Defines if the order cancellation was requested by the customer (`true`) or not (`false`)." + }, + "deniedBySeller": { + "type": "boolean", + "description": "Defines if the order cancellation request was [denied by the seller](https://developers.vtex.com/docs/guides/order-canceling-improvements) (`true`) or accepted by the seller (`false`)." + }, + "deniedBySellerReason": { + "type": "string", + "description": "Reason given by the seller for denying the order cancellation.", + "nullable": true + }, + "cancellationRequestDenyDate": { + "type": "string", + "description": "Date of when the platform processed the seller denial to an order cancellation request. The date format is [ISO 8601 time zone offset](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + } + } + } + }, + "ClientPreferencesDataUpdated": { + "type": "object", + "description": "Information about the customer preferences.", + "properties": { + "locale": { + "type": "string", + "description": "Language code of the customer preferred language while accessing the store." + }, + "optinNewsLetter": { + "type": "boolean", + "description": "Defines if the customer receives the store's newsletter (`true`) or not (`false`)." + } + } + }, + "Total": { + "required": [ + "id", + "name", + "value" + ], + "type": "object", + "description": "Object about order's totals.", + "properties": { + "id": { + "type": "string", + "description": "Code that identifies if the information is about `Items`, `Discounts`, `Shipping`, `Tax` or `Change`." + }, + "name": { + "type": "string", + "description": "Name of `Items`, `Discounts`, `Shipping`, `Tax` or `Change`." + }, + "value": { + "type": "integer", + "description": "Total amount of `Items`, `Discounts`, `Shipping`, `Tax` or `Change`." + } + } + }, + "Item": { + "required": [ + "uniqueId", + "id", + "productId", + "ean", + "lockId", + "itemAttachment", + "attachments", + "quantity", + "seller", + "name", + "refId", + "price", + "listPrice", + "manualPrice", + "priceTags", + "imageUrl", + "detailUrl", + "components", + "bundleItems", + "params", + "offerings", + "attachmentOfferings", + "sellerSku", + "priceValidUntil", + "commission", + "tax", + "preSaleDate", + "additionalInfo", + "measurementUnit", + "unitMultiplier", + "sellingPrice", + "isGift", + "shippingPrice", + "rewardValue", + "freightCommission", + "priceDefinitions", + "taxCode", + "parentItemIndex", + "parentAssemblyBinding", + "callCenterOperator", + "serialNumbers", + "assemblies", + "costPrice" + ], + "type": "object", + "description": "Item details.", + "properties": { + "uniqueId": { + "type": "string", + "description": "Unique ID is an alphanumeric sequence that identifies an SKU in a given order." + }, + "id": { + "type": "string", + "description": "Item's SKU ID, which is a unique numerical identifier." + }, + "productId": { + "type": "string", + "description": "ID of the Product associated with the item." + }, + "ean": { + "type": "string", + "nullable": true, + "description": "EAN of the SKU." + }, + "lockId": { + "type": "string", + "description": "Reservation ID." + }, + "itemAttachment": { + "$ref": "#/components/schemas/ItemAttachment" + }, + "attachments": { + "type": "array", + "items": { + "type": "string", + "description": "Attachment details." + }, + "description": "Array containing information on attachments." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items." + }, + "seller": { + "type": "string", + "description": "Seller related to the order." + }, + "name": { + "type": "string", + "description": "Item's name." + }, + "refId": { + "type": "string", + "description": "Product referencial code associated with the item." + }, + "price": { + "type": "integer", + "description": "Item's price." + }, + "listPrice": { + "type": "integer", + "description": "Item's list price." + }, + "manualPrice": { + "type": "string", + "nullable": true, + "description": "Item's manual price." + }, + "priceTags": { + "type": "array", + "items": { + "type": "string", + "description": "Price modifier." + }, + "description": "List of objects with item's price modifiers." + }, + "imageUrl": { + "type": "string", + "description": "Item's SKU image URL." + }, + "detailUrl": { + "type": "string", + "description": "URL slug of the item." + }, + "components": { + "type": "array", + "items": { + "type": "string", + "description": "A given component." + }, + "description": "Item's components." + }, + "bundleItems": { + "type": "array", + "items": { + "type": "string", + "description": "Item offering details." + }, + "description": "This field groups offerings (services) related to the item and displays their ID and quantity. A gift package is an example of an offering." + }, + "params": { + "type": "array", + "items": { + "type": "string", + "description": "Param name." + }, + "description": "Information about params." + }, + "offerings": { + "type": "array", + "items": { + "type": "string", + "description": "Name of the service related to the item. For example, guarantee or installation." + }, + "description": "Item's offerings, which are services related to the item. For example, guarantee or installation." + }, + "attachmentOfferings": { + "type": "array", + "description": "List of attachments details.", + "nullable": true, + "items": { + "type": "object", + "description": "Attachment details.", + "required": [ + "name", + "required", + "schema" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the attachment.", + "nullable": true + }, + "required": { + "type": "boolean", + "description": "If the attachment is required (`true`) or not (`false`).", + "nullable": true + }, + "schema": { + "type": "object", + "description": "Schema of the content declared in the field `attachmentOfferings`.", + "nullable": true + } + } + } + }, + "sellerSku": { + "type": "string", + "description": "SKU ID from the seller perspective." + }, + "priceValidUntil": { + "type": "string", + "nullable": true, + "description": "Date until when the price is going to be valid if there is a promotion." + }, + "commission": { + "type": "integer", + "description": "Commission value registered for the seller." + }, + "tax": { + "type": "integer", + "description": "Item's tax." + }, + "preSaleDate": { + "type": "string", + "nullable": true, + "description": "Item's pre sale date." + }, + "additionalInfo": { + "$ref": "#/components/schemas/AdditionalInfo" + }, + "measurementUnit": { + "type": "string", + "description": "Item's measurement unit." + }, + "unitMultiplier": { + "type": "integer", + "description": "Item's unit multiplier." + }, + "sellingPrice": { + "type": "integer", + "description": "Item's selling price." + }, + "isGift": { + "type": "boolean", + "description": "This field is `true` when the item is a gift in order context and `false` when it is not." + }, + "shippingPrice": { + "type": "string", + "nullable": true, + "description": "Item's shipping price." + }, + "rewardValue": { + "type": "integer", + "description": "Item's reward value." + }, + "freightCommission": { + "type": "integer", + "description": "Value of the freight commission." + }, + "priceDefinitions": { + "type": "object", + "description": "Item's price information.", + "required": [ + "sellingPrices", + "calculatedSellingPrice", + "total" + ], + "properties": { + "sellingPrices": { + "type": "array", + "items": { + "type": "object", + "description": "Item value and quantity.", + "required": [ + "value", + "quantity" + ], + "properties": { + "value": { + "type": "integer", + "description": "Total value of items in cents." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items." + } + } + }, + "description": "Details on item's selling price." + }, + "calculatedSellingPrice": { + "type": "integer", + "description": "Item's calculated unitary selling price in cents." + }, + "total": { + "type": "integer", + "description": "Total value of all item's units in cents." + } + } + }, + "taxCode": { + "type": "string", + "nullable": true, + "description": " Item's tax code." + }, + "parentItemIndex": { + "type": "string", + "nullable": true, + "description": "Parent item index." + }, + "parentAssemblyBinding": { + "type": "string", + "nullable": true, + "description": "Parent assembly binding." + }, + "callCenterOperator": { + "type": "string", + "description": "Call center operator responsible for the order.", + "nullable": true + }, + "serialNumbers": { + "type": "string", + "description": "This field identifies the order in the `handling` status in the workflow, and it was used for VTEX internal control.", + "deprecated": true, + "nullable": true + }, + "assemblies": { + "type": "array", + "description": "Retrieves information about orders item's customizations.", + "nullable": true, + "items": { + "type": "string", + "description": "Customization information." + } + }, + "costPrice": { + "type": "integer", + "description": "Item's cost price." + } + } + }, + "ItemAttachment": { + "title": "ItemAttachment", + "description": "Information about attachments, if it applies.", + "required": [ + "content", + "name" + ], + "type": "object", + "properties": { + "content": { + "type": "object", + "description": "Attachment's custom field for content." + }, + "name": { + "type": "string", + "nullable": true, + "description": "Attachment's name." + } + }, + "example": { + "content": {}, + "name": null + } + }, + "AdditionalInfo": { + "title": "AdditionalInfo", + "description": "Additional information about the item.", + "required": [ + "brandName", + "brandId", + "categoriesIds", + "productClusterId", + "commercialConditionId", + "dimension", + "offeringInfo", + "offeringType", + "offeringTypeId" + ], + "type": "object", + "properties": { + "brandName": { + "type": "string", + "description": "Item's brand name." + }, + "brandId": { + "type": "string", + "description": "Item's brand ID." + }, + "categoriesIds": { + "type": "string", + "description": "Item's category ID." + }, + "productClusterId": { + "type": "string", + "description": "All product clusters related to the item." + }, + "commercialConditionId": { + "type": "string", + "description": "Commercial conditions ID." + }, + "dimension": { + "$ref": "#/components/schemas/Dimension" + }, + "offeringInfo": { + "type": "string", + "nullable": true, + "description": "Information about services related to the item. For example: guarantee or installation." + }, + "offeringType": { + "type": "string", + "nullable": true, + "description": "Offering type." + }, + "offeringTypeId": { + "type": "string", + "nullable": true, + "description": "Offering type ID." + } + }, + "example": { + "brandName": "VTEX", + "brandId": "2000023", + "categoriesIds": "/1/", + "productClusterId": "135,142", + "commercialConditionId": "5", + "dimension": { + "cubicweight": 0.7031, + "height": 15, + "length": 15, + "weight": 15, + "width": 15 + }, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + } + }, + "Dimension": { + "type": "object", + "description": "Item dimensions.", + "required": [ + "cubicweight", + "height", + "length", + "weight", + "width" + ], + "properties": { + "cubicweight": { + "type": "number", + "description": "Item cubic weight." + }, + "height": { + "type": "number", + "description": "Item height." + }, + "length": { + "type": "number", + "description": "Item length." + }, + "weight": { + "type": "number", + "description": "Item weight." + }, + "width": { + "type": "number", + "description": "Item width." + } + } + }, + "ClientProfileData": { + "title": "ClientProfileData", + "description": "Object with information on the client's profile.", + "required": [ + "id", + "email", + "firstName", + "lastName", + "documentType", + "document", + "phone", + "corporateName", + "tradeName", + "corporateDocument", + "stateInscription", + "corporatePhone", + "isCorporate", + "userProfileId", + "customerClass" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Object ID, the expected value is `clientProfileData`." + }, + "email": { + "type": "string", + "description": "Customer's email." + }, + "firstName": { + "type": "string", + "description": "Customer's first name." + }, + "lastName": { + "type": "string", + "description": "Customer's last name." + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer." + }, + "document": { + "type": "string", + "description": "Document identification code informed by the customer." + }, + "phone": { + "type": "string", + "description": "Customers's phone number." + }, + "corporateName": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, here goes the corporate name." + }, + "tradeName": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, here goes the trade name." + }, + "corporateDocument": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, here goes the corporate document." + }, + "stateInscription": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, here goes the state inscription." + }, + "corporatePhone": { + "type": "string", + "nullable": true, + "description": "If the customer is a legal entity, here goes the corpany's phone number." + }, + "isCorporate": { + "type": "boolean", + "description": "The value is `true` when the customer is a legal entity and `false` when not." + }, + "userProfileId": { + "type": "string", + "description": "Customer user profile ID." + }, + "customerClass": { + "type": "string", + "nullable": true, + "description": "Identification of the class the customer belongs to." + } + }, + "example": { + "id": "clientProfileData", + "email": "rodrigo.cunha@vtex.com.br", + "firstName": "Rodrigo", + "lastName": "VTEX", + "documentType": "cpf", + "document": "11047867702", + "phone": "+5521972321094", + "corporateName": null, + "tradeName": null, + "corporateDocument": null, + "stateInscription": null, + "corporatePhone": null, + "isCorporate": false, + "userProfileId": "5a3692de-358a-4bea-8885-044bce33bb93", + "customerClass": null + } + }, + "RatesAndBenefitsData": { + "title": "RatesAndBenefitsData", + "description": "Information on promotions and taxes that apply to the order.", + "required": [ + "id", + "rateAndBenefitsIdentifiers" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the rate or benefit." + }, + "rateAndBenefitsIdentifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Information about order's promotions and taxes identifiers." + } + }, + "example": { + "id": "ratesAndBenefitsData", + "rateAndBenefitsIdentifiers": [] + } + }, + "ShippingData": { + "title": "ShippingData", + "description": "Object containing shipping data.", + "required": [ + "id", + "address", + "logisticsInfo", + "trackingHints", + "selectedAddresses" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Object ID, the expected value is `shippingData`." + }, + "address": { + "$ref": "#/components/schemas/Address" + }, + "logisticsInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogisticsInfo" + }, + "description": "Array of objects containing item's logistics information." + }, + "trackingHints": { + "type": "string", + "description": "List containing order shipping label information.", + "nullable": true + }, + "selectedAddresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SelectedAddress" + }, + "description": "Information about selected adresses." + } + }, + "example": { + "id": "shippingData", + "address": { + "addressType": "residential", + "receiverName": "Rodrigo Cunha", + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "3", + "reference": null, + "geoCoordinates": [] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "lockTTL": "10d", + "price": 1160, + "listPrice": 1160, + "sellingPrice": 1160, + "deliveryWindow": null, + "deliveryCompany": "Todos os CEPS", + "shippingEstimate": "5bd", + "shippingEstimateDate": "2019-02-04T20:33:46.4595004+00:00", + "slas": [ + { + "id": "Normal", + "name": "Normal", + "shippingEstimate": "5bd", + "deliveryWindow": null, + "price": 1160, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "", + "lockTTL": "12d", + "pickupPointId": "store35", + "transitTime": "3d", + "pickupDistance": 0 + }, + { + "id": "Expressa", + "name": "Expressa", + "shippingEstimate": "5bd", + "deliveryWindow": null, + "price": 1160, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "", + "lockTTL": "12d", + "pickupPointId": "store45", + "transitTime": "3d", + "pickupDistance": 0 + }, + { + "id": "Quebra Kit", + "name": "Quebra Kit", + "shippingEstimate": "2bd", + "deliveryWindow": null, + "price": 1392, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "", + "lockTTL": "12d", + "pickupPointId": "store45", + "transitTime": "3d", + "pickupDistance": 0 + }, + { + "id": "Sob Encomenda", + "name": "Sob Encomenda", + "shippingEstimate": "32bd", + "deliveryWindow": null, + "price": 1392, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "", + "lockTTL": "12d", + "pickupPointId": "store46", + "transitTime": "3d", + "pickupDistance": 0 + } + ], + "shipsTo": [ + "BRA" + ], + "deliveryIds": [ + { + "courierId": "197a56f", + "courierName": "Todos os CEPS", + "dockId": "1", + "quantity": 1, + "warehouseId": "1_1", + "accountCarrierName": "recorrenciaqa", + "kitItemDetails": [] + } + ], + "deliveryChannels": [ + { + "id": "delivery", + "stockBalance": 0 + } + ], + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "addressId": "4791759472332", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "polygonName": "", + "pickupPointId": "store67", + "transitTime": "3d" + } + ], + "trackingHints": null, + "selectedAddresses": [ + { + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "addressType": "residential", + "receiverName": "Rodrigo Cunha", + "street": "Praia de Botafogo", + "number": "518", + "complement": "10", + "neighborhood": "Botafogo", + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "reference": null, + "geoCoordinates": [] + } + ] + } + }, + "Address": { + "title": "Address", + "description": "Shipping address details.", + "required": [ + "addressType", + "receiverName", + "addressId", + "versionId", + "entityId", + "postalCode", + "city", + "state", + "country", + "street", + "number", + "neighborhood", + "complement", + "reference", + "geoCoordinates" + ], + "type": "object", + "properties": { + "addressType": { + "type": "string", + "description": "Type of address. For example, `Residential` or `Pickup`, among others." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order." + }, + "addressId": { + "type": "string", + "description": "Shipping address ID." + }, + "versionId": { + "type": "string", + "description": "Shipping address version ID.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Shipping address entity ID.", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code of the shipping address." + }, + "city": { + "type": "string", + "description": "City of the shipping address." + }, + "state": { + "type": "string", + "description": "State of the shipping address." + }, + "country": { + "type": "string", + "description": "Three letters ISO code of the country of the shipping address (ISO 3166 ALPHA-3)." + }, + "street": { + "type": "string", + "description": "Street of the shipping address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment in the shipping address." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the shipping address." + }, + "complement": { + "type": "string", + "description": "Complement to the shipping address when it applies." + }, + "reference": { + "type": "string", + "nullable": true, + "description": "Complement to help locate the shipping address, in case of delivery." + }, + "geoCoordinates": { + "type": "array", + "items": { + "type": "number" + }, + "description": "Array with two numbers with geocoordinates, first longitude then latitude." + } + }, + "example": { + "addressType": "residential", + "receiverName": "Rodrigo Cunha", + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "300", + "neighborhood": "Botafogo", + "complement": "3", + "reference": null, + "geoCoordinates": [] + } + }, + "LogisticsInfo": { + "title": "LogisticsInfo", + "required": [ + "itemIndex", + "selectedSla", + "lockTTL", + "price", + "listPrice", + "sellingPrice", + "deliveryWindow", + "deliveryCompany", + "shippingEstimate", + "shippingEstimateDate", + "slas", + "shipsTo", + "deliveryIds", + "deliveryChannels", + "deliveryChannel", + "pickupStoreInfo", + "addressId", + "versionId", + "entityId", + "polygonName", + "pickupPointId", + "transitTime" + ], + "type": "object", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index of the item starting from 0." + }, + "selectedSla": { + "type": "string", + "description": "Selected shipping option." + }, + "lockTTL": { + "type": "string", + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time." + }, + "price": { + "type": "integer", + "description": "Shipping price for the item in cents. Does not account for the whole order's shipping price." + }, + "listPrice": { + "type": "integer", + "description": "SKU's optional price for a specific trade policy." + }, + "sellingPrice": { + "type": "integer", + "description": "Item's selling price." + }, + "deliveryWindow": { + "type": "string", + "nullable": true, + "description": "[Scheduled delivery](https://help.vtex.com/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) window information, if it applies to the item." + }, + "deliveryCompany": { + "type": "string", + "description": "[Carrier](https://help.vtex.com/en/tutorial/transportadoras-na-vtex--7u9duMD5UQa2QQwukAWMcE) company's name." + }, + "shippingEstimate": { + "type": "string", + "description": "Total shipping estimate time in days. For instance, three business days is represented `3bd`." + }, + "shippingEstimateDate": { + "type": "string", + "description": "Shipping estimate date. It is defined only after the confirmation of the order." + }, + "slas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sla" + }, + "description": "Information on Service Level Agreement (SLA), corresponding to [shipping policies](https://help.vtex.com/tutorial/shipping-policy--tutorials_140)." + }, + "shipsTo": { + "type": "array", + "items": { + "type": "string", + "description": "Three letters ISO code." + }, + "description": "Three letters ISO code of the country of the shipping address (ISO 3166 ALPHA-3)." + }, + "deliveryIds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryId" + }, + "description": "Information about delivery IDs." + }, + "deliveryChannels": { + "type": "array", + "description": "List of delivery channels associated with the trade policy.", + "items": { + "type": "object", + "required": [ + "id", + "stockBalance" + ], + "properties": { + "id": { + "type": "string", + "description": "Delivery channel's shipping type, which can be `delivery` or `pickup-in-point`." + }, + "stockBalance": { + "type": "integer", + "description": "Stock check for an SKU availability." + } + } + } + }, + "deliveryChannel": { + "type": "string", + "description": "If the delivery channel is `delivery` or `pickup-in-point`." + }, + "pickupStoreInfo": { + "$ref": "#/components/schemas/PickupStoreInfo" + }, + "addressId": { + "type": "string", + "description": "Address ID." + }, + "versionId": { + "type": "string", + "description": "Shipping address version ID.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Shipping address entity ID." + }, + "polygonName": { + "type": "string", + "nullable": true, + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the shipping policy." + }, + "pickupPointId": { + "type": "string", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R)'s ID." + }, + "transitTime": { + "type": "string", + "description": "Duration in business days of the time the carrier takes in transit to fulfill the order. For example, three business days is represented `3bd`." + } + }, + "example": { + "itemIndex": 0, + "selectedSla": "Normal", + "lockTTL": "10d", + "price": 1160, + "listPrice": 1160, + "sellingPrice": 1160, + "deliveryWindow": null, + "deliveryCompany": "Todos os CEPS", + "shippingEstimate": "5bd", + "shippingEstimateDate": "2019-02-04T20:33:46.4595004+00:00", + "slas": [ + { + "id": "Normal", + "name": "Normal", + "shippingEstimate": "5bd", + "deliveryWindow": null, + "price": 1160, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "region196", + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d", + "pickupDistance": 0 + }, + { + "id": "Expressa", + "name": "Expressa", + "shippingEstimate": "5bd", + "deliveryWindow": null, + "price": 1160, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "region196", + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d", + "pickupDistance": 0 + }, + { + "id": "Quebra Kit", + "name": "Quebra Kit", + "shippingEstimate": "2bd", + "deliveryWindow": null, + "price": 1392, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "region196", + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d", + "pickupDistance": 0 + }, + { + "id": "Sob Encomenda", + "name": "Sob Encomenda", + "shippingEstimate": "32bd", + "deliveryWindow": null, + "price": 1392, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "region196", + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d", + "pickupDistance": 0 + } + ], + "shipsTo": [ + "BRA" + ], + "deliveryIds": [ + { + "courierId": "197a56f", + "courierName": "Todos os CEPS", + "dockId": "1", + "quantity": 1, + "warehouseId": "1_1", + "accountCarrierName": "recorrenciaqa", + "kitItemDetails": [] + } + ], + "deliveryChannels": [ + { + "id": "delivery", + "stockBalance": 0 + } + ], + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "polygonName": null, + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d" + } + }, + "Sla": { + "title": "Sla", + "required": [ + "id", + "name", + "shippingEstimate", + "deliveryWindow", + "price", + "deliveryChannel", + "pickupStoreInfo", + "polygonName", + "lockTTL", + "pickupPointId", + "transitTime", + "pickupDistance" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the shipping method used in the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140)." + }, + "name": { + "type": "string", + "description": "Name of the shipping policy." + }, + "shippingEstimate": { + "type": "string", + "description": "Total shipping estimate time in days. For instance, three business days is represented `3bd`." + }, + "deliveryWindow": { + "type": "string", + "nullable": true, + "description": "[Scheduled delivery window](https://help.vtex.com/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) information, if it applies to the item." + }, + "price": { + "type": "integer", + "description": "Shipping price for the item in cents. Does not account for the whole order's shipping price." + }, + "deliveryChannel": { + "type": "string", + "description": "If the delivery channel is `delivery` or `pickup-in-point`." + }, + "pickupStoreInfo": { + "$ref": "#/components/schemas/PickupStoreInfo" + }, + "polygonName": { + "type": "string", + "nullable": true, + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the shipping policy." + }, + "lockTTL": { + "type": "string", + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time of the SLA." + }, + "pickupPointId": { + "type": "string", + "description": "[Pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) ID related to the SLA." + }, + "transitTime": { + "type": "string", + "description": "Duration in business days of the time the carrier takes in transit to fulfill the order. For example, three business days is represented `3bd`." + }, + "pickupDistance": { + "type": "number", + "description": "Distance in kilometers between the pickup point and the customer's address. The distance is measured as a straight line." + } + }, + "example": { + "id": "Normal", + "name": "Normal", + "shippingEstimate": "5bd", + "deliveryWindow": null, + "price": 1160, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": null, + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d", + "pickupDistance": 0 + } + }, + "PickupStoreInfo": { + "title": "PickupStoreInfo", + "description": "Detailed information about a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "required": [ + "additionalInfo", + "address", + "dockId", + "friendlyName", + "isPickupStore" + ], + "type": "object", + "properties": { + "additionalInfo": { + "type": "string", + "nullable": true, + "description": "Additional information about the pickup point." + }, + "address": { + "type": "string", + "nullable": true, + "description": "Pickup point's address." + }, + "dockId": { + "type": "string", + "nullable": true, + "description": "ID of the [loading dock](https://help.vtex.com/pt/tutorial/doca--5DY8xHEjOLYDVL41Urd5qj) related to the delivery or the pickup point." + }, + "friendlyName": { + "type": "string", + "nullable": true, + "description": "Name of the pickup point displayed at checkout." + }, + "isPickupStore": { + "type": "boolean", + "description": "If this field is set `true`, it means the type of shipping is pickup, and if set as `false`, it is not." + } + }, + "example": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + } + }, + "DeliveryId": { + "title": "DeliveryId", + "description": "Information about delivery IDs.", + "required": [ + "courierId", + "courierName", + "dockId", + "quantity", + "warehouseId", + "accountCarrierName", + "kitItemDetails" + ], + "type": "object", + "properties": { + "courierId": { + "type": "string", + "description": "[Carrier](https://help.vtex.com/en/tutorial/transportadoras-na-vtex--7u9duMD5UQa2QQwukAWMcE)'s ID." + }, + "courierName": { + "type": "string", + "description": "Carrier's name." + }, + "dockId": { + "type": "string", + "description": "ID of the [loading dock](https://help.vtex.com/pt/tutorial/doca--5DY8xHEjOLYDVL41Urd5qj)." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items." + }, + "warehouseId": { + "type": "string", + "description": "ID of the [warehouse](https://help.vtex.com/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb)." + }, + "accountCarrierName": { + "type": "string", + "description": "Name of the account's [carrier](https://help.vtex.com/en/tutorial/transportadoras-na-vtex--7u9duMD5UQa2QQwukAWMcE)." + }, + "kitItemDetails": { + "type": "array", + "description": "Information about [kits](https://help.vtex.com/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28), if there are any.", + "nullable": true, + "items": { + "type": "string" + } + } + }, + "example": { + "courierId": "197a56f", + "courierName": "Todos os CEPS", + "dockId": "1", + "quantity": 1, + "warehouseId": "1_1", + "accountCarrierName": "recorrenciaqa", + "kitItemDetails": [] + } + }, + "SelectedAddress": { + "title": "SelectedAddress", + "required": [ + "addressId", + "versionId", + "entityId", + "addressType", + "receiverName", + "street", + "number", + "complement", + "neighborhood", + "postalCode", + "city", + "state", + "country", + "reference", + "geoCoordinates" + ], + "type": "object", + "properties": { + "addressId": { + "type": "string", + "description": "Selected address ID." + }, + "versionId": { + "type": "string", + "description": "Shipping address version ID of the selected address.", + "nullable": true + }, + "entityId": { + "type": "string", + "description": "Shipping address entity ID of the selected address.", + "nullable": true + }, + "addressType": { + "type": "string", + "description": "Selected adress's shipping type, which can be `pickup`, `residential`, `invoice`, `search`, `inStore`, `commercial` or `giftRegistry`." + }, + "receiverName": { + "type": "string", + "description": "Name of the person who is going to receive the order in the selected address." + }, + "street": { + "type": "string", + "description": "Street of the selected address." + }, + "number": { + "type": "string", + "description": "Number of the building, house or apartment of the selected address." + }, + "complement": { + "type": "string", + "description": "Complement to the selected address if it applies." + }, + "neighborhood": { + "type": "string", + "description": "Neighborhood of the selected address." + }, + "postalCode": { + "type": "string", + "description": "Postal code of the selected address." + }, + "city": { + "type": "string", + "description": "City of the selected address." + }, + "state": { + "type": "string", + "description": "State of the selected address." + }, + "country": { + "type": "string", + "description": "Three letters ISO code of the country of the selected address (ISO 3166 ALPHA-3)." + }, + "reference": { + "type": "string", + "nullable": true, + "description": "Complement to help locate the selected address." + }, + "geoCoordinates": { + "type": "array", + "items": { + "type": "number" + }, + "description": "Array with two numbers with the selected address's geocoordinates, first longitude then latitude." + } + }, + "example": { + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "addressType": "residential", + "receiverName": "Rodrigo Cunha", + "street": "Praia de Botafogo", + "number": "518", + "complement": "10", + "neighborhood": "Botafogo", + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "reference": null, + "geoCoordinates": [] + } + }, + "PaymentData": { + "title": "PaymentData", + "description": "Object with information about the payment.", + "required": [ + "transactions" + ], + "type": "object", + "properties": { + "giftCards": { + "type": "array", + "description": "Array with information about Gift Cards.", + "items": { + "type": "string" + } + }, + "transactions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Transaction" + }, + "description": "Information about financial transactions." + } + }, + "example": { + "giftCards": [], + "transactions": [ + { + "isActive": true, + "transactionId": "418213DE29634837A63DD693A937A696", + "merchantName": "luxstore", + "payments": [ + { + "id": "D3DEECAB3C6C4B9EAF8EF4C1FE062FF3", + "paymentSystem": "6", + "paymentSystemName": "Boleto Bancário", + "value": 4450, + "installments": 1, + "referenceValue": 4450, + "cardHolder": null, + "cardNumber": null, + "firstDigits": null, + "lastDigits": null, + "cvv2": null, + "expireMonth": null, + "expireYear": null, + "url": "https://luxstore.vtexpayments.com.br:443/BankIssuedInvoice/Transaction/418213DE29634837A63DD693A937A696/Payment/D3DEECAB3C6C4B9EAF8EF4C1FE062FF3/Installment/{Installment}", + "giftCardId": null, + "giftCardName": null, + "giftCardCaption": null, + "redemptionCode": null, + "group": "bankInvoice", + "tid": null, + "dueDate": "2019-02-02", + "connectorResponses": { + "Tid": "94857956", + "ReturnCode": "200", + "Message": "logMessage", + "authId": "857956" + }, + "giftCardProvider": "presentCard", + "giftCardAsDiscount": false, + "koinUrl": "koinURL", + "accountId": "5BC5C6B417FE432AB971B1D399F190C9", + "parentAccountId": "5BC5C6B417FE432AB971B1D399F190C9", + "bankIssuedInvoiceIdentificationNumber": "23797770100000019003099260100022107500729050", + "bankIssuedInvoiceIdentificationNumberFormatted": "32534.95739 75945.24534 54395.734214 5", + "bankIssuedInvoiceBarCodeNumber": "325349573975945245345439573421443986734065", + "bankIssuedInvoiceBarCodeType": "i25", + "billingAddress": {} + } + ] + } + ] + } + }, + "Transaction": { + "title": "Transaction", + "description": "Financial transaction details.", + "required": [ + "isActive", + "transactionId", + "merchantName", + "payments" + ], + "type": "object", + "properties": { + "isActive": { + "type": "boolean", + "description": "When this field is set as `true`, the payment is active, and when it is `false`, the payment is inactive." + }, + "transactionId": { + "type": "string", + "description": "ID of the transaction." + }, + "merchantName": { + "type": "string", + "description": "Name of the merchant that will receive the payment." + }, + "payments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Payment" + }, + "description": "Detailed information about payment." + } + }, + "example": { + "isActive": true, + "transactionId": "418213DE29634837A63DD693A937A696", + "merchantName": "luxstore", + "payments": [ + { + "id": "D3DEECAB3C6C4B9EAF8EF4C1FE062FF3", + "paymentSystem": "6", + "paymentSystemName": "Boleto Bancário", + "value": 4450, + "installments": 1, + "referenceValue": 4450, + "cardHolder": null, + "cardNumber": null, + "firstDigits": null, + "lastDigits": null, + "cvv2": null, + "expireMonth": null, + "expireYear": null, + "url": "https://luxstore.vtexpayments.com.br:443/BankIssuedInvoice/Transaction/418213DE29634837A63DD693A937A696/Payment/D3DEECAB3C6C4B9EAF8EF4C1FE062FF3/Installment/{Installment}", + "giftCardId": null, + "giftCardName": null, + "giftCardCaption": null, + "redemptionCode": null, + "group": "bankInvoice", + "tid": null, + "dueDate": "2019-02-02", + "connectorResponses": { + "Tid": "94857956", + "ReturnCode": "200", + "Message": "logMessage", + "authId": "857956" + }, + "giftCardProvider": "presentCard", + "giftCardAsDiscount": false, + "koinUrl": "koinURL", + "accountId": "5BC5C6B417FE432AB971B1D399F190C9", + "parentAccountId": "5BC5C6B417FE432AB971B1D399F190C9", + "bankIssuedInvoiceIdentificationNumber": "23797770100000019003099260100022107500729050", + "bankIssuedInvoiceIdentificationNumberFormatted": "32534.95739 75945.24534 54395.734214 5", + "bankIssuedInvoiceBarCodeNumber": "325349573975945245345439573421443986734065", + "bankIssuedInvoiceBarCodeType": "i25", + "billingAddress": {} + } + ] + } + }, + "Payment": { + "title": "Payment", + "description": "Payment details.", + "required": [ + "id", + "paymentSystem", + "paymentSystemName", + "value", + "installments", + "referenceValue", + "cardHolder", + "cardNumber", + "firstDigits", + "lastDigits", + "cvv2", + "expireMonth", + "expireYear", + "url", + "giftCardId", + "giftCardName", + "giftCardCaption", + "redemptionCode", + "group", + "tid", + "dueDate", + "connectorResponses", + "giftCardProvider", + "giftCardAsDiscount", + "koinUrl", + "accountId", + "parentAccountId", + "bankIssuedInvoiceIdentificationNumber", + "bankIssuedInvoiceIdentificationNumberFormatted", + "bankIssuedInvoiceBarCodeNumber", + "bankIssuedInvoiceBarCodeType", + "billingAddress" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "VTEX payment ID that can be used as unique identifier." + }, + "paymentSystem": { + "type": "string", + "description": "Payment system's ID." + }, + "paymentSystemName": { + "type": "string", + "description": "Payment system's name." + }, + "value": { + "type": "integer", + "description": "Payment's final amount in cents." + }, + "installments": { + "type": "integer", + "description": "Number of payment installments." + }, + "referenceValue": { + "type": "integer", + "description": "Payment's reference value in cents." + }, + "cardHolder": { + "type": "string", + "nullable": true, + "description": "Name of the person who owns the card." + }, + "cardNumber": { + "type": "string", + "nullable": true, + "description": "Numeric sequence of the card used in the transaction." + }, + "firstDigits": { + "type": "string", + "nullable": true, + "description": "Fist digits of the card used in the transaction." + }, + "lastDigits": { + "type": "string", + "nullable": true, + "description": "Last digits of the card used in the transaction." + }, + "cvv2": { + "type": "string", + "nullable": true, + "description": "Card Verification Value (CVV2) is a security code used by payment processors to reduce fraudulent credit and debit card transactions." + }, + "expireMonth": { + "type": "string", + "nullable": true, + "description": "Expire month of the card used in the transaction (2-digits)." + }, + "expireYear": { + "type": "string", + "nullable": true, + "description": "Expire year of the card used in the transaction (4-digits)." + }, + "url": { + "type": "string", + "description": "Payment's URL." + }, + "giftCardId": { + "type": "string", + "nullable": true, + "description": "Gift Card's ID." + }, + "giftCardName": { + "type": "string", + "nullable": true, + "description": "Gift Card's name." + }, + "giftCardCaption": { + "type": "string", + "nullable": true, + "description": "Gift Card's caption." + }, + "redemptionCode": { + "type": "string", + "nullable": true, + "description": "Code for the customer to use the Gift Card." + }, + "group": { + "type": "string", + "description": "Name of the collection the Gift Card belongs to." + }, + "tid": { + "type": "string", + "nullable": true, + "description": "Provider's unique identifier for the transaction." + }, + "dueDate": { + "type": "string", + "description": "Payment due date, with the format `yyyy-mm-dd`." + }, + "connectorResponses": { + "type": "object", + "description": "Information about the connector responses.", + "required": [ + "Tid", + "ReturnCode", + "Message", + "authId" + ], + "properties": { + "Tid": { + "type": "string", + "description": "Provider's unique identifier for the transaction." + }, + "ReturnCode": { + "type": "string", + "description": "Provider's operation/error code to be logged." + }, + "Message": { + "type": "string", + "description": "Provider's operation/error message to be logged." + }, + "authId": { + "type": "string", + "description": "Connector's authorization ID." + } + } + }, + "giftCardProvider": { + "type": "string", + "description": "Gift Card provider's ID." + }, + "giftCardAsDiscount": { + "type": "boolean", + "description": "When this field is set as `true`, the Gift Card is a discount over the price, and when set as `false`, it is not a discount." + }, + "koinUrl": { + "type": "string", + "description": "Payment's account ID." + }, + "accountId": { + "type": "string", + "description": "Payment's account ID." + }, + "parentAccountId": { + "type": "string", + "description": "This field retrieves the main account if the payment was made in a subaccount." + }, + "bankIssuedInvoiceIdentificationNumber": { + "type": "string", + "description": "Numeric sequence that identifies the bank issued invoice." + }, + "bankIssuedInvoiceIdentificationNumberFormatted": { + "type": "string", + "description": "Bank issued invoice ID formatted." + }, + "bankIssuedInvoiceBarCodeNumber": { + "type": "string", + "description": "Number of the bank issued invoice bar code." + }, + "bankIssuedInvoiceBarCodeType": { + "type": "string", + "description": "Type of the bank issued invoice bar code." + }, + "billingAddress": { + "type": "object", + "description": "Billing address information." + } + }, + "example": { + "id": "D3DEECAB3C6C4B9EAF8EF4C1FE062FF3", + "paymentSystem": "6", + "paymentSystemName": "Boleto Bancário", + "value": 4450, + "installments": 1, + "referenceValue": 4450, + "cardHolder": null, + "cardNumber": null, + "firstDigits": null, + "lastDigits": null, + "cvv2": null, + "expireMonth": null, + "expireYear": null, + "url": "https://luxstore.vtexpayments.com.br:443/BankIssuedInvoice/Transaction/418213DE29634837A63DD693A937A696/Payment/D3DEECAB3C6C4B9EAF8EF4C1FE062FF3/Installment/{Installment}", + "giftCardId": null, + "giftCardName": null, + "giftCardCaption": null, + "redemptionCode": null, + "group": "bankInvoice", + "tid": null, + "dueDate": "2019-02-02", + "connectorResponses": { + "Tid": "94857956", + "ReturnCode": "200", + "Message": "logMessage", + "authId": "857956" + }, + "giftCardProvider": "presentCard", + "giftCardAsDiscount": false, + "koinUrl": "koinURL", + "accountId": "5BC5C6B417FE432AB971B1D399F190C9", + "parentAccountId": "5BC5C6B417FE432AB971B1D399F190C9", + "bankIssuedInvoiceIdentificationNumber": "23797770100000019003099260100022107500729050", + "bankIssuedInvoiceIdentificationNumberFormatted": "32534.95739 75945.24534 54395.734214 5", + "bankIssuedInvoiceBarCodeNumber": "325349573975945245345439573421443986734065", + "bankIssuedInvoiceBarCodeType": "i25", + "billingAddress": {} + } + }, + "PackageAttachment": { + "title": "PackageAttachment", + "description": "Package object populated after order invoiced.", + "required": [ + "packages" + ], + "type": "object", + "properties": { + "packages": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Packages details." + } + }, + "example": { + "packages": [] + } + }, + "Seller": { + "title": "Seller", + "description": "Information about the seller associated with the order.", + "required": [ + "id", + "name", + "logo", + "fulfillmentEndpoint" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Seller ID that identifies the seller." + }, + "name": { + "type": "string", + "description": "Seller's name." + }, + "logo": { + "type": "string", + "description": "URL of the seller's logo." + }, + "fulfillmentEndpoint": { + "type": "string", + "description": "URL of the endpoint for fulfillment of seller's orders." + } + }, + "example": { + "id": "1", + "name": "Loja do Suporte", + "logo": "https://sellersLogo/images.png", + "fulfillmentEndpoint": "http://fulfillment.vtexcommerce.com.br/api/fulfillment?an=accountName" + } + }, + "ChangesAttachment": { + "title": "ChangesAttachment", + "description": "Information about changes in the order.", + "required": [ + "id", + "changesData" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Object ID, the expect value is `changeAttachment`." + }, + "changesData": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChangesDatum" + }, + "description": "Order change details." + } + }, + "example": { + "id": "changeAttachment", + "changesData": [ + { + "reason": "Blah", + "discountValue": 3290, + "incrementValue": 0, + "itemsAdded": [], + "itemsRemoved": [ + { + "id": "1234568358", + "name": "Bay Max L", + "quantity": 1, + "price": 3290, + "unitMultiplier": null + } + ], + "receipt": { + "date": "2019-02-06T20:46:04.4003606+00:00", + "orderId": "v5195004lux-01", + "receipt": "029f9ab8-751a-4b1e-bf81-7dd25d14b49b" + } + } + ] + } + }, + "ChangesDatum": { + "title": "ChangesDatum", + "required": [ + "reason", + "discountValue", + "incrementValue", + "itemsAdded", + "itemsRemoved", + "receipt" + ], + "type": "object", + "properties": { + "reason": { + "type": "string", + "description": "Text explaining why there was a change in the order. This information may be shown to the customer in the UI or transactional emails." + }, + "discountValue": { + "type": "integer", + "description": "Order change discount value." + }, + "incrementValue": { + "type": "integer", + "description": "Order change increment value." + }, + "itemsAdded": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of items added to the order." + }, + "itemsRemoved": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsRemoved" + }, + "description": "List of items removed from the order." + }, + "receipt": { + "$ref": "#/components/schemas/Receipt" + } + }, + "example": { + "reason": "Blah", + "discountValue": 3290, + "incrementValue": 0, + "itemsAdded": [], + "itemsRemoved": [ + { + "id": "1234568358", + "name": "Bay Max L", + "quantity": 1, + "price": 3290, + "unitMultiplier": null + } + ], + "receipt": { + "date": "2019-02-06T20:46:04.4003606+00:00", + "orderId": "v5195004lux-01", + "receipt": "029f9ab8-751a-4b1e-bf81-7dd25d14b49b" + } + } + }, + "ItemsRemoved": { + "title": "ItemsRemoved", + "required": [ + "id", + "name", + "quantity", + "price", + "unitMultiplier" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item removed from the order." + }, + "name": { + "type": "string", + "description": "Name of the item removed from the order." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items removed from the order." + }, + "price": { + "type": "integer", + "description": "Total amount of items removed from the order." + }, + "unitMultiplier": { + "type": "string", + "nullable": true, + "description": "Unit multiplier of the item removed from the order." + } + }, + "example": { + "id": "1234568358", + "name": "Bay Max L", + "quantity": 1, + "price": 3290, + "unitMultiplier": null + } + }, + "Receipt": { + "title": "Receipt", + "description": "Information about the receipt for modified orders.", + "required": [ + "date", + "orderId", + "receipt" + ], + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "Date when the receipt was created." + }, + "orderId": { + "type": "string", + "description": "ID of the order." + }, + "receipt": { + "type": "string", + "description": "Receipt's unique identifier code." + } + }, + "example": { + "date": "2019-02-06T20:46:04.4003606+00:00", + "orderId": "v5195004lux-01", + "receipt": "029f9ab8-751a-4b1e-bf81-7dd25d14b49b" + } + }, + "StorePreferencesData": { + "title": "StorePreferencesData", + "description": "Object with data from the store's configuration - stored in VTEX's License Manager.", + "required": [ + "countryCode", + "currencyCode", + "currencyFormatInfo", + "currencyLocale", + "currencySymbol", + "timeZone" + ], + "type": "object", + "properties": { + "countryCode": { + "type": "string", + "description": "Three letters ISO code of the country (ISO 3166 ALPHA-3)." + }, + "currencyCode": { + "type": "string", + "description": "Currency code in ISO 4217. For example, `BRL`." + }, + "currencyFormatInfo": { + "$ref": "#/components/schemas/CurrencyFormatInfo" + }, + "currencyLocale": { + "type": "integer", + "description": "Currency Locale Code in LCID in decimal." + }, + "currencySymbol": { + "type": "string", + "description": "Currency symbol." + }, + "timeZone": { + "type": "string", + "description": "Time zone from where the order was made." + } + }, + "example": { + "countryCode": "BRA", + "currencyCode": "BRL", + "currencyFormatInfo": { + "CurrencyDecimalDigits": 2, + "CurrencyDecimalSeparator": ",", + "CurrencyGroupSeparator": ".", + "CurrencyGroupSize": 3, + "StartsWithCurrencySymbol": true + }, + "currencyLocale": 1046, + "currencySymbol": "R$", + "timeZone": "E. South America Standard Time" + } + }, + "CurrencyFormatInfo": { + "title": "CurrencyFormatInfo", + "description": "Object with currency format details.", + "required": [ + "CurrencyDecimalDigits", + "CurrencyDecimalSeparator", + "CurrencyGroupSeparator", + "CurrencyGroupSize", + "StartsWithCurrencySymbol" + ], + "type": "object", + "properties": { + "CurrencyDecimalDigits": { + "type": "integer", + "description": "Quantity of currency decimal digits." + }, + "CurrencyDecimalSeparator": { + "type": "string", + "description": "Defines what currency decimal separator will be applied." + }, + "CurrencyGroupSeparator": { + "type": "string", + "description": "Defines what currency group separator will be applied." + }, + "CurrencyGroupSize": { + "type": "integer", + "description": "Defines how many characters will be grouped." + }, + "StartsWithCurrencySymbol": { + "type": "boolean", + "description": "Defines if all prices will be initiated with the currency symbol (`true`) or not (`false`)." + } + }, + "example": { + "CurrencyDecimalDigits": 2, + "CurrencyDecimalSeparator": ",", + "CurrencyGroupSeparator": ".", + "CurrencyGroupSize": 3, + "StartsWithCurrencySymbol": true + } + }, + "Marketplace": { + "title": "Marketplace", + "description": "Details about the marketplace related to the order.", + "required": [ + "baseURL", + "isCertified", + "name" + ], + "type": "object", + "properties": { + "baseURL": { + "type": "string", + "description": "Marketplace base URL." + }, + "isCertified": { + "type": "string", + "nullable": true, + "description": "If is a certified marketplace." + }, + "name": { + "type": "string", + "description": "Name of the marketplace." + } + }, + "example": { + "baseURL": "http://oms.vtexinternal.com.br/api/oms?an=luxstore", + "isCertified": null, + "name": "luxstore" + } + }, + "ListOrders": { + "title": "ListOrders", + "required": [ + "list", + "facets", + "paging", + "stats" + ], + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/components/schemas/List" + }, + "description": "Array containing list information." + }, + "facets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array containing facets information." + }, + "paging": { + "$ref": "#/components/schemas/Paging" + }, + "stats": { + "$ref": "#/components/schemas/Stats" + } + }, + "example": { + "list": [ + { + "orderId": "v502559llux-01", + "creationDate": "2019-02-04T10:29:11+00:00", + "clientName": "J C", + "items": null, + "totalValue": 7453, + "paymentNames": "Boleto Bancário", + "status": "invoiced", + "statusDescription": "Faturado", + "marketPlaceOrderId": null, + "sequence": "502559", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Sua Nota Fiscal foi emitida. Referente ao Pedido #v502559llux-01 Olá, J. Estamos empacotando seu produto para providenci", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-02-07T21:29:54+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502556llux-01", + "creationDate": "2019-01-28T20:09:43+00:00", + "clientName": "Rodrigo VTEX", + "items": null, + "totalValue": 1160, + "paymentNames": "Boleto Bancário", + "status": "handling", + "statusDescription": "Preparando Entrega", + "marketPlaceOrderId": null, + "sequence": "502556", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store Seu pedido foi alterado! Pedido realizado em: 28/01/2019 Olá, Rodrigo. Seu pedido foi alterado. Seguem informações abaixo: ", + "ShippingEstimatedDate": "2019-02-04T20:33:46+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-01-28T20:33:04+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502553llux-01", + "creationDate": "2019-01-24T12:35:19+00:00", + "clientName": "test test", + "items": null, + "totalValue": 10150, + "paymentNames": "Mastercard", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": null, + "sequence": "502554", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Sua Nota Fiscal foi emitida. Referente ao Pedido #v502553llux-01 Olá, test. Estamos empacotando seu produto para provide", + "ShippingEstimatedDate": "2019-01-31T12:36:30+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-01-24T12:36:01+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502550llux-01", + "creationDate": "2019-01-23T16:39:45+00:00", + "clientName": "test test", + "items": null, + "totalValue": 10150, + "paymentNames": "Mastercard", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": null, + "sequence": "502551", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pagamento foi aprovado. Referente ao Pedido #v502550llux-01 Olá, test. Estamos providenciando a emissão da Nota Fisc", + "ShippingEstimatedDate": "2019-01-30T16:40:55+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-01-23T16:40:27+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502547llux-01", + "creationDate": "2019-01-23T16:34:20+00:00", + "clientName": "test test", + "items": null, + "totalValue": 10150, + "paymentNames": "Mastercard", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": null, + "sequence": "502548", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pagamento foi aprovado. Referente ao Pedido #v502547llux-01 Olá, test. Estamos providenciando a emissão da Nota Fisc", + "ShippingEstimatedDate": "2019-01-30T16:35:30+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-01-23T16:35:04+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502544llux-01", + "creationDate": "2018-12-28T18:15:28+00:00", + "clientName": "test test", + "items": null, + "totalValue": 8990, + "paymentNames": "Boleto Bancário", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": null, + "sequence": "502544", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pedido foi cancelado. Referente ao Pedido #v502544llux-01 Resumo Itens R$ 89,90 Total R$ 89,90 Produto Alavanca De M", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502541llux-01", + "creationDate": "2018-12-18T18:48:17+00:00", + "clientName": "Douglas Rodrigues", + "items": null, + "totalValue": 3290, + "paymentNames": "Boleto Bancário", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": null, + "sequence": "502541", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pedido foi cancelado. Referente ao Pedido #v502541llux-01 Resumo Itens R$ 32,90 Total R$ 32,90 Produto Bay Max L 1 u", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "v502538llux-01", + "creationDate": "2018-12-12T18:21:47+00:00", + "clientName": "test test", + "items": null, + "totalValue": 8990, + "paymentNames": "Mastercard", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": null, + "sequence": "502538", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Seu pagamento foi aprovado. Referente ao Pedido #v502538llux-01 Olá, test. Estamos providenciando a emissão da Nota Fisc", + "ShippingEstimatedDate": "2018-12-19T18:22:26+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-12-12T18:22:22+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-880102018018-01", + "creationDate": "2018-11-30T17:34:01+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "880102018018-01", + "sequence": "502537", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": "cancelamento teste shp ", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-30T17:34:42+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-880091692043-01", + "creationDate": "2018-11-30T17:28:35+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "invoiced", + "statusDescription": "Faturado", + "marketPlaceOrderId": "880091692043-01", + "sequence": "502536", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-30T17:29:22+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-880091058221-01", + "creationDate": "2018-11-30T17:18:00+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "880091058221-01", + "sequence": "502535", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": "Teste de cancelamento do ShopFácil ", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-30T17:18:44+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-880090643370-01", + "creationDate": "2018-11-30T17:10:59+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": "880090643370-01", + "sequence": "502534", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": "2018-12-07T17:11:39+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-30T17:11:42+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-880090622238-01", + "creationDate": "2018-11-30T17:10:45+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "880090622238-01", + "sequence": "502533", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": null, + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "MNC-877730530419-01", + "creationDate": "2018-11-20T21:09:01+00:00", + "clientName": "Carlos VTEX", + "items": null, + "totalValue": 11150, + "paymentNames": "", + "status": "canceled", + "statusDescription": "Cancelado", + "marketPlaceOrderId": "877730530419-01", + "sequence": "502532", + "salesChannel": "1", + "affiliateId": "MNC", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-20T21:13:06+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + }, + { + "orderId": "SCP-876733475998-01", + "creationDate": "2018-11-16T16:58:18+00:00", + "clientName": "roberta grecco", + "items": null, + "totalValue": 1250, + "paymentNames": "", + "status": "ready-for-handling", + "statusDescription": "Pronto para o manuseio", + "marketPlaceOrderId": "876733475998-01", + "sequence": "502531", + "salesChannel": "1", + "affiliateId": "SCP", + "origin": "Fulfillment", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": null, + "ShippingEstimatedDate": "2018-11-23T16:58:48+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2018-11-16T16:58:53+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + } + ], + "facets": [], + "paging": { + "total": 84, + "pages": 6, + "currentPage": 1, + "perPage": 15 + }, + "stats": { + "stats": { + "totalValue": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 11150, + "Mean": 1395.5882352941176, + "Min": 1250, + "Missing": 0, + "StdDev": 1200.5513439298484, + "Sum": 94900, + "SumOfSquares": 229010000, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 21526180, + "Mean": 1373100.6875, + "Min": 1160, + "Missing": 0, + "StdDev": 5374326.141087491, + "Sum": 21969611, + "SumOfSquares": 463417210029853, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": null + } + } + } + }, + "totalItems": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 1, + "Mean": 1, + "Min": 1, + "Missing": 0, + "StdDev": 0, + "Sum": 68, + "SumOfSquares": 68, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 89, + "Mean": 7.4375, + "Min": 1, + "Missing": 0, + "StdDev": 21.92401651157926, + "Sum": 119, + "SumOfSquares": 8095, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": null + } + } + } + } + } + } + } + }, + "List": { + "title": "List", + "required": [ + "orderId", + "creationDate", + "clientName", + "items", + "totalValue", + "paymentNames", + "status", + "statusDescription", + "marketPlaceOrderId", + "sequence", + "salesChannel", + "affiliateId", + "origin", + "workflowInErrorState", + "workflowInRetry", + "lastMessageUnread", + "ShippingEstimatedDate", + "ShippingEstimatedDateMax", + "ShippingEstimatedDateMin", + "orderIsComplete", + "listId", + "listType", + "authorizedDate", + "callCenterOperatorName", + "totalItems", + "currencyCode" + ], + "type": "object", + "properties": { + "orderId": { + "type": "string" + }, + "creationDate": { + "type": "string" + }, + "clientName": { + "type": "string" + }, + "items": { + "type": "string", + "nullable": true + }, + "totalValue": { + "type": "integer" + }, + "paymentNames": { + "type": "string" + }, + "status": { + "type": "string" + }, + "statusDescription": { + "type": "string", + "description": "`Deprecated`. Status description which is displayed on the Admin panel. This field is obsolete and may not return any value." + }, + "marketPlaceOrderId": { + "type": "string", + "nullable": true + }, + "sequence": { + "type": "string" + }, + "salesChannel": { + "type": "string" + }, + "affiliateId": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "workflowInErrorState": { + "type": "boolean" + }, + "workflowInRetry": { + "type": "boolean" + }, + "lastMessageUnread": { + "type": "string", + "nullable": true + }, + "ShippingEstimatedDate": { + "type": "string", + "nullable": true + }, + "ShippingEstimatedDateMax": { + "type": "string", + "nullable": true + }, + "ShippingEstimatedDateMin": { + "type": "string", + "nullable": true + }, + "orderIsComplete": { + "type": "boolean" + }, + "listId": { + "type": "string", + "nullable": true + }, + "listType": { + "type": "string", + "nullable": true + }, + "authorizedDate": { + "type": "string", + "nullable": true + }, + "callCenterOperatorName": { + "type": "string", + "nullable": true + }, + "totalItems": { + "type": "integer" + }, + "currencyCode": { + "type": "string" + } + }, + "example": { + "orderId": "v502559llux-01", + "creationDate": "2019-02-04T10:29:11+00:00", + "clientName": "J C", + "items": null, + "totalValue": 7453, + "paymentNames": "Boleto Bancário", + "status": "invoiced", + "statusDescription": "Faturado", + "marketPlaceOrderId": null, + "sequence": "502559", + "salesChannel": "1", + "affiliateId": "", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store 96 Sua Nota Fiscal foi emitida. Referente ao Pedido #v502559llux-01 Olá, J. Estamos empacotando seu produto para providenci", + "ShippingEstimatedDate": null, + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-02-07T21:29:54+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + } + }, + "Paging": { + "type": "object", + "description": "Pagination information.", + "required": [ + "total", + "pages", + "currentPage", + "perPage" + ], + "properties": { + "total": { + "type": "integer", + "description": "Total number of orders." + }, + "pages": { + "type": "integer", + "description": "Total number of pages." + }, + "currentPage": { + "type": "integer", + "description": "Number of the current page." + }, + "perPage": { + "type": "integer", + "description": "Number of orders per page." + } + } + }, + "Stats": { + "title": "Stats", + "required": [ + "stats" + ], + "type": "object", + "properties": { + "stats": { + "$ref": "#/components/schemas/Stats1" + } + }, + "example": { + "stats": { + "totalValue": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 11150, + "Mean": 1395.5882352941176, + "Min": 1250, + "Missing": 0, + "StdDev": 1200.5513439298484, + "Sum": 94900, + "SumOfSquares": 229010000, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 21526180, + "Mean": 1373100.6875, + "Min": 1160, + "Missing": 0, + "StdDev": 5374326.141087491, + "Sum": 21969611, + "SumOfSquares": 463417210029853, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": null + } + } + } + }, + "totalItems": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 1, + "Mean": 1, + "Min": 1, + "Missing": 0, + "StdDev": 0, + "Sum": 68, + "SumOfSquares": 68, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 89, + "Mean": 7.4375, + "Min": 1, + "Missing": 0, + "StdDev": 21.92401651157926, + "Sum": 119, + "SumOfSquares": 8095, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": null + } + } + } + } + } + } + }, + "Stats1": { + "title": "Stats1", + "required": [ + "totalValue", + "totalItems" + ], + "type": "object", + "properties": { + "totalValue": { + "$ref": "#/components/schemas/TotalValue" + }, + "totalItems": { + "$ref": "#/components/schemas/TotalItems" + } + }, + "example": { + "totalValue": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 11150, + "Mean": 1395.5882352941176, + "Min": 1250, + "Missing": 0, + "StdDev": 1200.5513439298484, + "Sum": 94900, + "SumOfSquares": 229010000, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 21526180, + "Mean": 1373100.6875, + "Min": 1160, + "Missing": 0, + "StdDev": 5374326.141087491, + "Sum": 21969611, + "SumOfSquares": 463417210029853, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": null + } + } + } + }, + "totalItems": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 1, + "Mean": 1, + "Min": 1, + "Missing": 0, + "StdDev": 0, + "Sum": 68, + "SumOfSquares": 68, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 89, + "Mean": 7.4375, + "Min": 1, + "Missing": 0, + "StdDev": 21.92401651157926, + "Sum": 119, + "SumOfSquares": 8095, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": null + } + } + } + } + } + }, + "TotalValue": { + "title": "TotalValue", + "required": [ + "Count", + "Max", + "Mean", + "Min", + "Missing", + "StdDev", + "Sum", + "SumOfSquares", + "Facets" + ], + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Max": { + "type": "integer" + }, + "Mean": { + "type": "number" + }, + "Min": { + "type": "integer" + }, + "Missing": { + "type": "integer" + }, + "StdDev": { + "type": "number" + }, + "Sum": { + "type": "integer" + }, + "SumOfSquares": { + "type": "integer" + }, + "Facets": { + "$ref": "#/components/schemas/Facets" + } + }, + "example": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 11150, + "Mean": 1395.5882352941176, + "Min": 1250, + "Missing": 0, + "StdDev": 1200.5513439298484, + "Sum": 94900, + "SumOfSquares": 229010000, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 21526180, + "Mean": 1373100.6875, + "Min": 1160, + "Missing": 0, + "StdDev": 5374326.141087491, + "Sum": 21969611, + "SumOfSquares": 463417210029853, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": null + } + } + } + } + }, + "Facets": { + "title": "Facets", + "required": [ + "origin", + "currencyCode" + ], + "type": "object", + "properties": { + "origin": { + "$ref": "#/components/schemas/Origin" + }, + "currencyCode": { + "$ref": "#/components/schemas/CurrencyCode" + } + }, + "example": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 11150, + "Mean": 1395.5882352941176, + "Min": 1250, + "Missing": 0, + "StdDev": 1200.5513439298484, + "Sum": 94900, + "SumOfSquares": 229010000, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 21526180, + "Mean": 1373100.6875, + "Min": 1160, + "Missing": 0, + "StdDev": 5374326.141087491, + "Sum": 21969611, + "SumOfSquares": 463417210029853, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": null + } + } + } + }, + "Origin": { + "title": "Origin", + "required": [ + "Fulfillment", + "Marketplace" + ], + "type": "object", + "properties": { + "Fulfillment": { + "$ref": "#/components/schemas/Fulfillment" + }, + "Marketplace": { + "$ref": "#/components/schemas/Marketplace1" + } + }, + "example": { + "Fulfillment": { + "Count": 68, + "Max": 11150, + "Mean": 1395.5882352941176, + "Min": 1250, + "Missing": 0, + "StdDev": 1200.5513439298484, + "Sum": 94900, + "SumOfSquares": 229010000, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 21526180, + "Mean": 1373100.6875, + "Min": 1160, + "Missing": 0, + "StdDev": 5374326.141087491, + "Sum": 21969611, + "SumOfSquares": 463417210029853, + "Facets": null + } + } + }, + "Fulfillment": { + "title": "Fulfillment", + "required": [ + "Count", + "Max", + "Mean", + "Min", + "Missing", + "StdDev", + "Sum", + "SumOfSquares", + "Facets" + ], + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Max": { + "type": "integer" + }, + "Mean": { + "type": "number" + }, + "Min": { + "type": "integer" + }, + "Missing": { + "type": "integer" + }, + "StdDev": { + "type": "number" + }, + "Sum": { + "type": "integer" + }, + "SumOfSquares": { + "type": "integer" + }, + "Facets": { + "type": "string", + "nullable": true + } + }, + "example": { + "Count": 68, + "Max": 11150, + "Mean": 1395.5882352941176, + "Min": 1250, + "Missing": 0, + "StdDev": 1200.5513439298484, + "Sum": 94900, + "SumOfSquares": 229010000, + "Facets": null + } + }, + "Marketplace1": { + "title": "Marketplace1", + "required": [ + "Count", + "Max", + "Mean", + "Min", + "Missing", + "StdDev", + "Sum", + "SumOfSquares", + "Facets" + ], + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Max": { + "type": "integer" + }, + "Mean": { + "type": "number" + }, + "Min": { + "type": "integer" + }, + "Missing": { + "type": "integer" + }, + "StdDev": { + "type": "number" + }, + "Sum": { + "type": "integer" + }, + "SumOfSquares": { + "type": "integer" + }, + "Facets": { + "type": "string", + "nullable": true + } + }, + "example": { + "Count": 16, + "Max": 21526180, + "Mean": 1373100.6875, + "Min": 1160, + "Missing": 0, + "StdDev": 5374326.141087491, + "Sum": 21969611, + "SumOfSquares": 463417210029853, + "Facets": null + } + }, + "CurrencyCode": { + "title": "CurrencyCode", + "required": [ + "BRL" + ], + "type": "object", + "properties": { + "BRL": { + "$ref": "#/components/schemas/BRL" + } + }, + "example": { + "BRL": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": null + } + } + }, + "BRL": { + "title": "BRL", + "required": [ + "Count", + "Max", + "Mean", + "Min", + "Missing", + "StdDev", + "Sum", + "SumOfSquares", + "Facets" + ], + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Max": { + "type": "integer" + }, + "Mean": { + "type": "number" + }, + "Min": { + "type": "integer" + }, + "Missing": { + "type": "integer" + }, + "StdDev": { + "type": "number" + }, + "Sum": { + "type": "integer" + }, + "SumOfSquares": { + "type": "integer" + }, + "Facets": { + "type": "string", + "nullable": true + } + }, + "example": { + "Count": 84, + "Max": 21526180, + "Mean": 262672.75, + "Min": 1160, + "Missing": 0, + "StdDev": 2348087.3869179883, + "Sum": 22064511, + "SumOfSquares": 463417439039853, + "Facets": null + } + }, + "TotalItems": { + "title": "TotalItems", + "required": [ + "Count", + "Max", + "Mean", + "Min", + "Missing", + "StdDev", + "Sum", + "SumOfSquares", + "Facets" + ], + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Max": { + "type": "integer" + }, + "Mean": { + "type": "number" + }, + "Min": { + "type": "integer" + }, + "Missing": { + "type": "integer" + }, + "StdDev": { + "type": "number" + }, + "Sum": { + "type": "integer" + }, + "SumOfSquares": { + "type": "integer" + }, + "Facets": { + "$ref": "#/components/schemas/Facets1" + } + }, + "example": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 1, + "Mean": 1, + "Min": 1, + "Missing": 0, + "StdDev": 0, + "Sum": 68, + "SumOfSquares": 68, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 89, + "Mean": 7.4375, + "Min": 1, + "Missing": 0, + "StdDev": 21.92401651157926, + "Sum": 119, + "SumOfSquares": 8095, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": null + } + } + } + } + }, + "Facets1": { + "title": "Facets1", + "required": [ + "origin", + "currencyCode" + ], + "type": "object", + "properties": { + "origin": { + "$ref": "#/components/schemas/Origin1" + }, + "currencyCode": { + "$ref": "#/components/schemas/CurrencyCode1" + } + }, + "example": { + "origin": { + "Fulfillment": { + "Count": 68, + "Max": 1, + "Mean": 1, + "Min": 1, + "Missing": 0, + "StdDev": 0, + "Sum": 68, + "SumOfSquares": 68, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 89, + "Mean": 7.4375, + "Min": 1, + "Missing": 0, + "StdDev": 21.92401651157926, + "Sum": 119, + "SumOfSquares": 8095, + "Facets": null + } + }, + "currencyCode": { + "BRL": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": null + } + } + } + }, + "Origin1": { + "title": "Origin1", + "required": [ + "Fulfillment", + "Marketplace" + ], + "type": "object", + "properties": { + "Fulfillment": { + "$ref": "#/components/schemas/Fulfillment1" + }, + "Marketplace": { + "$ref": "#/components/schemas/Marketplace2" + } + }, + "example": { + "Fulfillment": { + "Count": 68, + "Max": 1, + "Mean": 1, + "Min": 1, + "Missing": 0, + "StdDev": 0, + "Sum": 68, + "SumOfSquares": 68, + "Facets": null + }, + "Marketplace": { + "Count": 16, + "Max": 89, + "Mean": 7.4375, + "Min": 1, + "Missing": 0, + "StdDev": 21.92401651157926, + "Sum": 119, + "SumOfSquares": 8095, + "Facets": null + } + } + }, + "Fulfillment1": { + "title": "Fulfillment1", + "required": [ + "Count", + "Max", + "Mean", + "Min", + "Missing", + "StdDev", + "Sum", + "SumOfSquares", + "Facets" + ], + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Max": { + "type": "integer" + }, + "Mean": { + "type": "integer" + }, + "Min": { + "type": "integer" + }, + "Missing": { + "type": "integer" + }, + "StdDev": { + "type": "integer" + }, + "Sum": { + "type": "integer" + }, + "SumOfSquares": { + "type": "integer" + }, + "Facets": { + "type": "string", + "nullable": true + } + }, + "example": { + "Count": 68, + "Max": 1, + "Mean": 1, + "Min": 1, + "Missing": 0, + "StdDev": 0, + "Sum": 68, + "SumOfSquares": 68, + "Facets": null + } + }, + "Marketplace2": { + "title": "Marketplace2", + "required": [ + "Count", + "Max", + "Mean", + "Min", + "Missing", + "StdDev", + "Sum", + "SumOfSquares", + "Facets" + ], + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Max": { + "type": "integer" + }, + "Mean": { + "type": "number" + }, + "Min": { + "type": "integer" + }, + "Missing": { + "type": "integer" + }, + "StdDev": { + "type": "number" + }, + "Sum": { + "type": "integer" + }, + "SumOfSquares": { + "type": "integer" + }, + "Facets": { + "type": "string", + "nullable": true + } + }, + "example": { + "Count": 16, + "Max": 89, + "Mean": 7.4375, + "Min": 1, + "Missing": 0, + "StdDev": 21.92401651157926, + "Sum": 119, + "SumOfSquares": 8095, + "Facets": null + } + }, + "CurrencyCode1": { + "title": "CurrencyCode1", + "required": [ + "BRL" + ], + "type": "object", + "properties": { + "BRL": { + "$ref": "#/components/schemas/BRL1" + } + }, + "example": { + "BRL": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": null + } + } + }, + "BRL1": { + "title": "BRL1", + "required": [ + "Count", + "Max", + "Mean", + "Min", + "Missing", + "StdDev", + "Sum", + "SumOfSquares", + "Facets" + ], + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Max": { + "type": "integer" + }, + "Mean": { + "type": "number" + }, + "Min": { + "type": "integer" + }, + "Missing": { + "type": "integer" + }, + "StdDev": { + "type": "number" + }, + "Sum": { + "type": "integer" + }, + "SumOfSquares": { + "type": "integer" + }, + "Facets": { + "type": "string", + "nullable": true + } + }, + "example": { + "Count": 84, + "Max": 89, + "Mean": 2.2261904761904763, + "Min": 1, + "Missing": 0, + "StdDev": 9.660940100525016, + "Sum": 187, + "SumOfSquares": 8163, + "Facets": null + } + }, + "Updatepartialinvoice.SendTrackingNumber.Request": { + "title": "Updatepartialinvoice.SendTrackingNumber.Request", + "required": [ + "trackingNumber", + "trackingUrl", + "courier", + "dispatchedDate" + ], + "type": "object", + "properties": { + "trackingNumber": { + "type": "string", + "description": "The number code that identifies the order tracking." + }, + "trackingUrl": { + "type": "string", + "nullable": true, + "description": "Package tracking URL." + }, + "dispatchedDate": { + "type": "string", + "nullable": true, + "description": "Date when the package was dispatched. For example, 2023-01-08T13:16:13.4617653+00:00." + }, + "courier": { + "type": "string", + "nullable": true, + "description": "The name of the carrier responsible for delivering the order." + } + }, + "example": { + "trackingNumber": "87658", + "trackingUrl": "https://www.tracking.com/url", + "courier": "carrierOne", + "dispatchedDate": "2022-02-08T13:16:13.4617653+00:00" + } + }, + "Updatepartialinvoice.SendTrackingNumber": { + "title": "Updatepartialinvoice.SendTrackingNumber", + "required": [ + "date", + "orderId", + "receipt" + ], + "type": "object", + "properties": { + "date": { + "type": "string" + }, + "orderId": { + "type": "string" + }, + "receipt": { + "type": "string" + } + }, + "example": { + "date": "2019-02-08T13:16:13.4617653+00:00", + "orderId": "00-v5195004lux-01", + "receipt": "527b1ae251264ef1b7a9b597cd8f16b9" + } + }, + "UpdateTrackingStatusRequest": { + "title": "UpdateTrackingStatusRequest", + "required": [ + "isDelivered", + "deliveredDate", + "events" + ], + "type": "object", + "properties": { + "isDelivered": { + "type": "boolean", + "description": "When set as `true`, it means the order got to its final shipping address, whether by delivery or pickup shipping type. When set as `false`, the order is still in transit to its shipping address.", + "example": false + }, + "deliveredDate": { + "type": "string", + "nullable": true, + "description": "Date and time of when the package was delivered. Note that it is different from the tracking date parameter. The `deliveredDate` format is `yyyy-mm-dd hh:mm`.", + "example": "2022-10-01 21:15" + }, + "events": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event" + }, + "description": "Array containing events information." + } + }, + "example": { + "isDelivered": false, + "deliveredDate": null, + "events": [ + { + "city": "Rio de Janeiro", + "state": "RJ", + "description": "Coletado pela transportadora", + "date": "2015-06-23" + }, + { + "city": "Sao Paulo", + "state": "SP", + "description": "A caminho de Curitiba", + "date": "2015-06-24" + } + ] + } + }, + "Event": { + "title": "Event", + "required": [ + "city", + "state", + "description", + "date" + ], + "type": "object", + "properties": { + "city": { + "type": "string" + }, + "state": { + "type": "string" + }, + "description": { + "type": "string" + }, + "date": { + "type": "string" + } + }, + "example": { + "city": "Rio de Janeiro", + "state": "RJ", + "description": "Coletado pela transportadora", + "date": "2015-06-23" + } + }, + "UpdateTrackingStatus": { + "title": "UpdateTrackingStatus", + "required": [ + "date", + "orderId", + "receipt" + ], + "type": "object", + "properties": { + "date": { + "type": "string" + }, + "orderId": { + "type": "string" + }, + "receipt": { + "type": "string" + } + }, + "example": { + "date": "2017-03-29T18:04:31.0521233+00:00", + "orderId": "v501245lspt-01", + "receipt": "f67d33a8029c42ce9a8f07fc17f54449" + } + }, + "GetConversation": { + "title": "GetConversation", + "required": [ + "id", + "from", + "to", + "subject", + "firstWords", + "body", + "hasAttachment", + "attachmentNames", + "date" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Conversation ID.", + "example": "2023-01-23t09-23-08_619a80a05aa34efb982b309c7a1910e3" + }, + "from": { + "$ref": "#/components/schemas/From" + }, + "to": { + "type": "array", + "items": { + "$ref": "#/components/schemas/To" + }, + "description": "Conversation receiver." + }, + "subject": { + "type": "string", + "description": "Conversation content subject.", + "example": "Your payment has been aproved." + }, + "firstWords": { + "type": "string", + "description": "First words of Conversation content.", + "example": "Your payment has been aproved and we are waiting for..." + }, + "body": { + "type": "string", + "description": "Conversation content body.", + "example": " recorrenciaqa

Seu pagamento foi aprovado.

Referente ao Pedido #1305371685465-01

Olá, jose. Estamos providenciando a emissão da Nota Fiscal do seu pedido e o envio do seu produto.

Pagamento

Visa final 1111
R$ 3,99 à vista

Atenciosamente,
Equipe recorrenciaqa

" + }, + "hasAttachment": { + "type": "boolean", + "description": "When set as `true`, it means there are attachments, when set as `false`, there are not.", + "example": false + }, + "attachmentNames": { + "type": "array", + "items": { + "type": "string", + "description": "Name of the attachment.", + "example": "attachments439505" + }, + "description": "List with attachments' names, if there are any." + }, + "date": { + "type": "string", + "description": "Conversation date.", + "example": "2023-01-23T09:23:31.0000000+00:00" + } + }, + "example": { + "id": "2023-01-23t09-23-08_619a80a05aa34efb982b309c7a1910e3", + "from": { + "conversationRelatedTo": "1305371685465-01", + "conversationSubject": "oms", + "emailAlias": "noreply@vtexcommerce.com.br-9814872b.ct.store.com.br", + "aliasMaskType": 0, + "email": "noreply@store.com.br", + "name": "no reply", + "role": "null" + }, + "to": [ + { + "conversationRelatedTo": "1305371685465-01", + "conversationSubject": "oms", + "emailAlias": "64d8bd8dbe5c4e7b93b8b3c237e50be1@ct.name.com.br", + "aliasMaskType": 0, + "email": "customer.name@email.com", + "name": "Mary John", + "role": "Customer" + } + ], + "subject": "Your payment has been aproved.", + "firstWords": "Your payment has been aproved and we are waiting for...", + "body": " recorrenciaqa

Seu pagamento foi aprovado.

Referente ao Pedido #1305371685465-01

Olá, jose. Estamos providenciando a emissão da Nota Fiscal do seu pedido e o envio do seu produto.

Pagamento

Visa final 1111
R$ 3,99 à vista

Atenciosamente,
Equipe recorrenciaqa

", + "hasAttachment": false, + "attachmentNames": [ + "attachments439505" + ], + "date": "2023-01-23T09:23:31.0000000+00:00" + } + }, + "From": { + "title": "From", + "description": "Conversation sender.", + "required": [ + "conversationRelatedTo", + "conversationSubject", + "emailAlias", + "aliasMaskType", + "email", + "name", + "role" + ], + "type": "object", + "properties": { + "conversationRelatedTo": { + "type": "string", + "description": "Related order ID.", + "example": "1305371685465-01" + }, + "conversationSubject": { + "type": "string", + "description": "Conversation subject.", + "example": "oms" + }, + "emailAlias": { + "type": "string", + "description": "Sender transactional tracker email.", + "example": "64d8bd8dbe5c4e7b93b8b3c237e50be1@ct.name.com.br" + }, + "aliasMaskType": { + "type": "integer", + "description": "Conversation tracker mask type.", + "example": 0 + }, + "email": { + "type": "string", + "description": "Sender's email.", + "example": "noreply@store.com.br" + }, + "name": { + "type": "string", + "description": "Sender's name.", + "example": "no reply" + }, + "role": { + "type": "string", + "nullable": true, + "description": "If it is a client or null, for transactional emails.", + "example": "null" + } + }, + "example": { + "conversationRelatedTo": "1305371685465-01", + "conversationSubject": "oms", + "emailAlias": "noreply@vtexcommerce.com.br-9814872b.ct.store.com.br", + "aliasMaskType": 0, + "email": "noreply@store.com.br", + "name": "no reply", + "role": "null" + } + }, + "To": { + "title": "To", + "description": "Conversation receiver.", + "required": [ + "conversationRelatedTo", + "conversationSubject", + "emailAlias", + "aliasMaskType", + "email", + "name", + "role" + ], + "type": "object", + "properties": { + "conversationRelatedTo": { + "type": "string", + "description": "Related order ID.", + "example": "1305371685465-01" + }, + "conversationSubject": { + "type": "string", + "description": "Conversation subject.", + "example": "oms" + }, + "emailAlias": { + "type": "string", + "description": "Sender transactional tracker email.", + "example": "64d8bd8dbe5c4e7b93b8b3c237e50be1@ct.name.com.br" + }, + "aliasMaskType": { + "type": "integer", + "description": "Conversation tracker mask type.", + "example": 0 + }, + "email": { + "type": "string", + "description": "Receiver's email.", + "example": "customer.name@email.com" + }, + "name": { + "type": "string", + "description": "Receiver's name.", + "example": "Mary John" + }, + "role": { + "type": "string", + "description": "If it is a customer or null, for transactional emails.", + "example": "Customer" + } + }, + "example": { + "conversationRelatedTo": "1305371685465-01", + "conversationSubject": "oms", + "emailAlias": "64d8bd8dbe5c4e7b93b8b3c237e50be1@ct.name.com.br", + "aliasMaskType": 0, + "email": "customer.name@email.com", + "name": "Mary John", + "role": "Customer" + } + }, + "GetPaymenttransaction": { + "required": [ + "status", + "isActive", + "transactionId", + "merchantName", + "payments" + ], + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Transaction status." + }, + "isActive": { + "type": "boolean", + "description": "If it is an active transaction (`true`) or not (`false`)." + }, + "transactionId": { + "type": "string", + "description": "Transaction ID." + }, + "merchantName": { + "type": "string", + "description": "Transaction merchant's name." + }, + "payments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Payment1" + }, + "description": "Payments' details object." + } + } + }, + "Payment1": { + "title": "Payment1", + "required": [ + "id", + "paymentSystem", + "paymentSystemName", + "value", + "installments", + "referenceValue", + "cardHolder", + "cardNumber", + "firstDigits", + "lastDigits", + "cvv2", + "expireMonth", + "expireYear", + "url", + "giftCardId", + "giftCardName", + "giftCardCaption", + "redemptionCode", + "group", + "tid", + "dueDate", + "connectorResponses" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Payment ID." + }, + "paymentSystem": { + "type": "string", + "description": "Payment system ID." + }, + "paymentSystemName": { + "type": "string", + "description": "Payment system name." + }, + "value": { + "type": "integer", + "description": "Payment value." + }, + "installments": { + "type": "integer", + "description": "Payment Installments quantity." + }, + "referenceValue": { + "type": "integer", + "description": "Payment reference Value." + }, + "cardHolder": { + "type": "string", + "nullable": true, + "description": "Payment card holder." + }, + "cardNumber": { + "type": "string", + "nullable": true, + "description": "Payment card number." + }, + "firstDigits": { + "type": "string", + "description": "Payment card first digits." + }, + "lastDigits": { + "type": "string", + "description": "Payment card last digits." + }, + "cvv2": { + "type": "string", + "nullable": true, + "description": "Card Verification Value (CVV2) is a security code used by payment processors to reduce fraudulent credit and debit card transactions." + }, + "expireMonth": { + "type": "string", + "nullable": true, + "description": "Payment card expire month." + }, + "expireYear": { + "type": "string", + "nullable": true, + "description": "Payment card expire year." + }, + "url": { + "type": "string", + "nullable": true, + "description": "Payment URL." + }, + "giftCardId": { + "type": "string", + "nullable": true, + "description": "Gift Card ID." + }, + "giftCardName": { + "type": "string", + "nullable": true, + "description": "Gift Card name." + }, + "giftCardCaption": { + "type": "string", + "nullable": true, + "description": "Gift Card caption." + }, + "redemptionCode": { + "type": "string", + "nullable": true, + "description": "Code for the customer to use the Gift Card." + }, + "group": { + "type": "string", + "description": "It represents the payment method. For each method, it can have the following values: \n\r\n- **Credit card:** `creditCard` \r\n\r\n- **Debid card:** `debitCard`\r\n\r\n- **Bank invoice:** `bankInvoice`\r\n\r\n- **Promissory:** `promissory` \r\n\r\n- **Gift card:** `giftCard` \n\r\n- **Pix:** `instantPayment`." + }, + "tid": { + "type": "string", + "description": "Payment transaction ID." + }, + "dueDate": { + "type": "string", + "nullable": true, + "description": "Payment due date." + }, + "connectorResponses": { + "$ref": "#/components/schemas/ConnectorResponses" + } + }, + "example": { + "id": "721CBE1090324D12ABE301FE33DE775A", + "paymentSystem": "4", + "paymentSystemName": "Mastercard", + "value": 10150, + "installments": 1, + "referenceValue": 10150, + "cardHolder": null, + "cardNumber": null, + "firstDigits": "412341", + "lastDigits": "4123", + "cvv2": null, + "expireMonth": null, + "expireYear": null, + "url": null, + "giftCardId": null, + "giftCardName": null, + "giftCardCaption": null, + "redemptionCode": null, + "group": "creditCard", + "tid": "101770752", + "dueDate": null, + "connectorResponses": { + "Tid": "101770752", + "ReturnCode": "200", + "Message": "logMessage", + "authId": "170852" + } + } + }, + "ConnectorResponses": { + "title": "ConnectorResponses", + "required": [ + "Tid", + "ReturnCode", + "Message", + "authId" + ], + "type": "object", + "properties": { + "Tid": { + "type": "string", + "description": "Connector transaction ID." + }, + "ReturnCode": { + "type": "string", + "nullable": true, + "description": "Connector return code." + }, + "Message": { + "type": "string", + "nullable": true, + "description": "Information about the connector's responses." + }, + "authId": { + "type": "string", + "description": "Connector authorization ID." + } + }, + "example": { + "Tid": "101770752", + "ReturnCode": null, + "Message": null, + "authId": "170852" + } + }, + "Userorderslist": { + "title": "Userorderslist", + "required": [ + "list", + "facets", + "paging", + "stats" + ], + "type": "object", + "description": "Order list object.", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/components/schemas/List1" + }, + "description": "List with user's orders details." + }, + "facets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array containing facets information." + }, + "paging": { + "$ref": "#/components/schemas/Paging" + }, + "stats": { + "$ref": "#/components/schemas/Stats2" + } + } + }, + "List1": { + "title": "List1", + "required": [ + "orderId", + "creationDate", + "clientName", + "items", + "totalValue", + "paymentNames", + "status", + "statusDescription", + "marketPlaceOrderId", + "sequence", + "salesChannel", + "affiliateId", + "origin", + "workflowInErrorState", + "workflowInRetry", + "lastMessageUnread", + "ShippingEstimatedDate", + "ShippingEstimatedDateMax", + "ShippingEstimatedDateMin", + "orderIsComplete", + "listId", + "listType", + "authorizedDate", + "callCenterOperatorName", + "totalItems", + "currencyCode" + ], + "type": "object", + "properties": { + "orderId": { + "type": "string", + "description": "Order ID is a unique code that identifies an order." + }, + "creationDate": { + "type": "string", + "description": "Order's creation date." + }, + "clientName": { + "type": "string", + "description": "Order's customer name." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Item2" + }, + "description": "Information about order's items.", + "nullable": true, + "deprecated": true + }, + "totalValue": { + "type": "integer", + "description": "Total value amount." + }, + "paymentNames": { + "type": "string", + "nullable": true, + "description": "Payment system name." + }, + "status": { + "type": "string", + "description": "Order [status](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196)." + }, + "statusDescription": { + "type": "string", + "description": "Status description which is displayed on the Admin panel. This field is deprecated and may not return any value.", + "deprecated": true + }, + "marketPlaceOrderId": { + "type": "string", + "nullable": true, + "description": "Marketplace order ID." + }, + "sequence": { + "type": "string", + "description": "Six-digit string that follows the order ID. For example, in order `1268540501456-01 (501456)`, the sequence is `501456`." + }, + "salesChannel": { + "type": "string", + "description": "Sales channel (or [trade policy](https://help.vtex.com/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) ID related to the order." + }, + "affiliateId": { + "type": "string", + "description": "Corresponds to the three-digits [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) identification code of the seller responsible for the order." + }, + "origin": { + "type": "string", + "description": "Order's [origin in the order flow](https://developers.vtex.com/docs/guides/orders-overview#understanding-order-flow-types), which can be `Marketplace`, `Fulfillment` or `Chain`." + }, + "workflowInErrorState": { + "type": "boolean", + "description": "If there is a work flow error (`true`) or not (`false`)." + }, + "workflowInRetry": { + "type": "boolean", + "description": "If the order is in a work flow retry (`true`) or not (`false`)." + }, + "lastMessageUnread": { + "type": "string", + "nullable": true, + "description": "Last sent transactional message." + }, + "ShippingEstimatedDate": { + "type": "string", + "nullable": true, + "description": "Estimate shipping date." + }, + "ShippingEstimatedDateMax": { + "type": "string", + "nullable": true, + "description": "The most extended shipping estimation possible." + }, + "ShippingEstimatedDateMin": { + "type": "string", + "nullable": true, + "description": "The least extended shipping estimation possible." + }, + "orderIsComplete": { + "type": "boolean", + "description": "If it is a completed order (`true`) or not (`false`). For more information, see [Order flow and status](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196)." + }, + "listId": { + "type": "string", + "nullable": true, + "description": "Related Gift List ID." + }, + "listType": { + "type": "string", + "nullable": true, + "description": "Related Gift list type." + }, + "authorizedDate": { + "type": "string", + "nullable": true, + "description": "Authorized order date." + }, + "callCenterOperatorName": { + "type": "string", + "nullable": true, + "description": "Call center operator responsible for the order." + }, + "totalItems": { + "type": "integer", + "description": "Order's total amount of items." + }, + "currencyCode": { + "type": "string", + "nullable": true, + "description": "Currency code in ISO 4217. For example, `BRL`." + } + }, + "example": { + "orderId": "1172452900788-01", + "creationDate": "2019-01-28T20:09:43+00:00", + "clientName": "Cunha VTEX", + "items": [ + { + "seller": "1", + "quantity": 1, + "description": "Reservoir hose", + "ean": null, + "refId": "TE3121110", + "id": "195", + "productId": "134", + "sellingPrice": 7390, + "price": 7390 + }, + { + "seller": "1", + "quantity": 1, + "description": "Reservoir filter", + "ean": null, + "refId": "XC459N610CA", + "id": "238", + "productId": "162", + "sellingPrice": 5190, + "price": 5190 + } + ], + "totalValue": 1160, + "paymentNames": "Boleto Bancário", + "status": "handling", + "statusDescription": "Preparing for delivery", + "marketPlaceOrderId": null, + "sequence": "502556", + "salesChannel": "1", + "affiliateId": "GTB", + "origin": "Marketplace", + "workflowInErrorState": false, + "workflowInRetry": false, + "lastMessageUnread": " Lux Store Seu pedido foi alterado! Pedido realizado em: 28/01/2019 Olá, Rodrigo. Seu pedido foi alterado. Seguem informações abaixo: ", + "ShippingEstimatedDate": "2019-02-04T20:33:46+00:00", + "ShippingEstimatedDateMax": null, + "ShippingEstimatedDateMin": null, + "orderIsComplete": true, + "listId": null, + "listType": null, + "authorizedDate": "2019-01-28T20:33:04+00:00", + "callCenterOperatorName": null, + "totalItems": 1, + "currencyCode": "BRL" + } + }, + "Item2": { + "title": "Item2", + "required": [ + "seller", + "quantity", + "description", + "ean", + "refId", + "id", + "productId", + "sellingPrice", + "price" + ], + "type": "object", + "properties": { + "seller": { + "type": "string", + "description": "Seller related to the order." + }, + "quantity": { + "type": "integer", + "description": "Quantity of SKUs." + }, + "description": { + "type": "string", + "description": "Description of items." + }, + "ean": { + "type": "string", + "nullable": true, + "description": "EAN of the SKU." + }, + "refId": { + "type": "string", + "nullable": true, + "description": "Item's reference ID." + }, + "id": { + "type": "string", + "description": "Item's SKU ID, which is a unique numerical identifier." + }, + "productId": { + "type": "string", + "description": "ID of the Product associated with the item." + }, + "sellingPrice": { + "type": "integer", + "description": "Details on item's selling price." + }, + "price": { + "type": "integer", + "description": "Item's price." + } + }, + "example": { + "seller": "1", + "quantity": 1, + "description": "Mangueira Reservatório Ao Cavalete", + "ean": null, + "refId": "TE3121110", + "id": "195", + "productId": "134", + "sellingPrice": 7390, + "price": 7390 + } + }, + "Stats2": { + "title": "Stats2", + "required": [ + "stats" + ], + "type": "object", + "properties": { + "stats": { + "$ref": "#/components/schemas/Stats3" + } + }, + "example": { + "stats": { + "totalValue": { + "Count": 19, + "Max": 0, + "Mean": 0, + "Min": 0, + "Missing": 0, + "StdDev": 0, + "Sum": 0, + "SumOfSquares": 0, + "Facets": {} + }, + "totalItems": { + "Count": 19, + "Max": 0, + "Mean": 0, + "Min": 0, + "Missing": 0, + "StdDev": 0, + "Sum": 0, + "SumOfSquares": 0, + "Facets": {} + } + } + } + }, + "Stats3": { + "title": "Stats3", + "required": [ + "totalValue", + "totalItems" + ], + "type": "object", + "properties": { + "totalValue": { + "$ref": "#/components/schemas/TotalValue1" + }, + "totalItems": { + "$ref": "#/components/schemas/TotalItems1" + } + }, + "example": { + "totalValue": { + "Count": 19, + "Max": 0, + "Mean": 0, + "Min": 0, + "Missing": 0, + "StdDev": 0, + "Sum": 0, + "SumOfSquares": 0, + "Facets": {} + }, + "totalItems": { + "Count": 19, + "Max": 0, + "Mean": 0, + "Min": 0, + "Missing": 0, + "StdDev": 0, + "Sum": 0, + "SumOfSquares": 0, + "Facets": {} + } + } + }, + "TotalValue1": { + "title": "TotalValue1", + "required": [ + "Count", + "Max", + "Mean", + "Min", + "Missing", + "StdDev", + "Sum", + "SumOfSquares", + "Facets" + ], + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Max": { + "type": "integer" + }, + "Mean": { + "type": "integer" + }, + "Min": { + "type": "integer" + }, + "Missing": { + "type": "integer" + }, + "StdDev": { + "type": "integer" + }, + "Sum": { + "type": "integer" + }, + "SumOfSquares": { + "type": "integer" + }, + "Facets": { + "type": "object" + } + }, + "example": { + "Count": 19, + "Max": 0, + "Mean": 0, + "Min": 0, + "Missing": 0, + "StdDev": 0, + "Sum": 0, + "SumOfSquares": 0, + "Facets": {} + } + }, + "TotalItems1": { + "title": "TotalItems1", + "required": [ + "Count", + "Max", + "Mean", + "Min", + "Missing", + "StdDev", + "Sum", + "SumOfSquares", + "Facets" + ], + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Max": { + "type": "integer" + }, + "Mean": { + "type": "integer" + }, + "Min": { + "type": "integer" + }, + "Missing": { + "type": "integer" + }, + "StdDev": { + "type": "integer" + }, + "Sum": { + "type": "integer" + }, + "SumOfSquares": { + "type": "integer" + }, + "Facets": { + "type": "object" + } + }, + "example": { + "Count": 19, + "Max": 0, + "Mean": 0, + "Min": 0, + "Missing": 0, + "StdDev": 0, + "Sum": 0, + "SumOfSquares": 0, + "Facets": {} + } + }, + "Userorderdetails": { + "title": "Userorderdetails", + "required": [ + "orderId", + "sequence", + "marketplaceOrderId", + "marketplaceServicesEndpoint", + "sellerOrderId", + "origin", + "affiliateId", + "salesChannel", + "merchantName", + "status", + "statusDescription", + "value", + "creationDate", + "lastChange", + "orderGroup", + "totals", + "items", + "marketplaceItems", + "clientProfileData", + "giftRegistryData", + "marketingData", + "ratesAndBenefitsData", + "shippingData", + "paymentData", + "packageAttachment", + "sellers", + "callCenterOperatorData", + "followUpEmail", + "lastMessage", + "hostname", + "invoiceData", + "changesAttachment", + "openTextField", + "roundingError", + "orderFormId", + "commercialConditionData", + "isCompleted", + "customData", + "storePreferencesData", + "allowCancellation", + "allowEdition", + "isCheckedIn", + "marketplace", + "authorizedDate", + "invoicedDate", + "cancelReason", + "itemMetadata", + "subscriptionData", + "taxData", + "checkedInPickupPointId", + "cancellationData", + "clientPreferencesData" + ], + "type": "object", + "properties": { + "orderId": { + "type": "string", + "description": "Order ID is a unique code that identifies an order." + }, + "sequence": { + "type": "string", + "description": "Sequence is a six-digit string that follows the order ID. For example, in order `1268540501456-01 (501456)`, the sequence is `501456`." + }, + "marketplaceOrderId": { + "type": "string", + "description": "Marketplace order ID." + }, + "marketplaceServicesEndpoint": { + "type": "string", + "description": "Marketplace services endpoint." + }, + "sellerOrderId": { + "type": "string", + "description": "ID of the seller related to the order. It can be a VTEX seller or an external seller." + }, + "origin": { + "type": "string", + "description": "Order's [origin in the order flow](https://developers.vtex.com/docs/guides/orders-overview#understanding-order-flow-types), which can be `Marketplace`, `Fulfillment` or `Chain`." + }, + "affiliateId": { + "type": "string", + "description": "Corresponds to the three-digit [affiliate](https://help.vtex.com/en/tutorial/configuring-affiliates--tutorials_187) identification code of the seller responsible for the order." + }, + "salesChannel": { + "type": "string", + "description": "Sales channel (or [trade policy](https://help.vtex.com/tutorial/how-trade-policies-work--6Xef8PZiFm40kg2STrMkMV)) ID related to the order." + }, + "merchantName": { + "type": "string", + "description": "Name of the merchant." + }, + "status": { + "type": "string", + "description": "Order [status](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196)." + }, + "statusDescription": { + "type": "string", + "description": "`Deprecated`. Status description which is displayed on the Admin panel. This field is obsolete and may not return any value.", + "deprecated": true + }, + "value": { + "type": "integer", + "description": "Order's total amount." + }, + "creationDate": { + "type": "string", + "description": "Order's creation date." + }, + "lastChange": { + "type": "string", + "description": "Order's last change date." + }, + "orderGroup": { + "type": "string", + "description": "Order's group ID." + }, + "totals": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Total" + }, + "description": "List with details about orders' totals." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Item" + }, + "description": "Information about order's items." + }, + "marketplaceItems": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Marketplace details object." + }, + "clientProfileData": { + "$ref": "#/components/schemas/ClientProfileData" + }, + "giftRegistryData": { + "type": "string", + "nullable": true, + "description": "Information about gift list, when it applies." + }, + "marketingData": { + "type": "object", + "description": "Information about promotions and marketing. For example, coupon tracking information and internal or external UTMs.", + "required": [ + "id", + "utmSource", + "utmPartner", + "utmMedium", + "utmCampaign", + "coupon", + "utmiCampaign", + "utmipage", + "utmiPart", + "marketingTags" + ], + "properties": { + "id": { + "type": "string", + "description": "Object ID which expected value is `marketingData`." + }, + "utmSource": { + "type": "string", + "description": "Value of the `utm_source` parameter of the URL that led to the request." + }, + "utmPartner": { + "type": "string", + "description": "UTM Source Parameters." + }, + "utmMedium": { + "type": "string", + "description": "Value of the `utm_medium` parameter of the URL that led to the request." + }, + "utmCampaign": { + "type": "string", + "description": "Value of the `utm_campaign` parameter of the URL that led to the request." + }, + "coupon": { + "type": "string", + "description": "Coupon's code information." + }, + "utmiCampaign": { + "type": "string", + "description": "Internal UTM value `utmi_cp`." + }, + "utmipage": { + "type": "string", + "description": "Internal UTM value `utmi_p`." + }, + "utmiPart": { + "type": "string", + "description": "Internal UTM value `utmi_pc`." + }, + "marketingTags": { + "type": "array", + "description": "Marketing tags information. This field can be used to register campaign data or informative tags regarding promotions.", + "items": { + "type": "string" + } + } + } + }, + "ratesAndBenefitsData": { + "$ref": "#/components/schemas/RatesAndBenefitsData" + }, + "shippingData": { + "$ref": "#/components/schemas/ShippingData" + }, + "paymentData": { + "$ref": "#/components/schemas/PaymentData" + }, + "packageAttachment": { + "$ref": "#/components/schemas/PackageAttachment" + }, + "sellers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Seller" + }, + "description": "List of all sellers associated with the order." + }, + "callCenterOperatorData": { + "type": "string", + "nullable": true, + "description": "Call center operator responsible for the order." + }, + "followUpEmail": { + "type": "string", + "description": "Email of the store's employee responsible for managing the order." + }, + "lastMessage": { + "type": "string", + "nullable": true, + "description": "Last sent transactional message." + }, + "hostname": { + "type": "string", + "description": "Account Hostname registered in License Manager." + }, + "invoiceData": { + "type": "object", + "description": "Information pertinent to the order's invoice.", + "nullable": true + }, + "changesAttachment": { + "$ref": "#/components/schemas/ChangesAttachment" + }, + "openTextField": { + "type": "string", + "description": "Optional field with order's additional information. This field must be filled in using the following format: \n\r```\n\r{\r\n \"fieldExample\": \"ValueExample\"\r\n }\n\r```\n\r.", + "nullable": true + }, + "roundingError": { + "type": "integer", + "description": "Rounding error total amount, if it applies. For example, in orders with a discount over non-integer multiplier items, the rounding price is performed per item, not after the sum of all items. That can cause a difference in the total discount amount, which is informed in this field." + }, + "orderFormId": { + "type": "string", + "description": "[Order form](https://developers.vtex.com/docs/guides/orderform-fields) ID." + }, + "commercialConditionData": { + "type": "string", + "nullable": true, + "description": "Information about commercial conditions." + }, + "isCompleted": { + "type": "boolean", + "description": "When set as `true`, the order's payment has been settled, and when set as `false`, it has not been settled yet." + }, + "customData": { + "type": "string", + "nullable": true, + "description": "Custom information in the order. This field is useful for storing data not included in other fields, for example, a message for a gift or a name to be printed in a shirt." + }, + "storePreferencesData": { + "$ref": "#/components/schemas/StorePreferencesData" + }, + "allowCancellation": { + "type": "boolean", + "description": "When set as `true`, the order can be canceled, and when set as `false`, it is no longer possible to cancel the order." + }, + "allowEdition": { + "type": "boolean", + "description": "When set as `true`, the order can be edited, and when set as `false`, it is no longer possible to edit the order." + }, + "isCheckedIn": { + "type": "boolean", + "description": "This field is set `true` when the order was made via inStore and `false` when it was not." + }, + "marketplace": { + "$ref": "#/components/schemas/Marketplace" + }, + "authorizedDate": { + "type": "string", + "description": "Authorized order date." + }, + "invoicedDate": { + "type": "string", + "nullable": true, + "description": "Order's invoice date." + }, + "cancelReason": { + "type": "string", + "description": "Reason for order cancellation.", + "nullable": true + }, + "itemMetadata": { + "type": "object", + "description": "Metadata information about the order's items.", + "required": [ + "Items" + ], + "properties": { + "Items": { + "type": "array", + "description": "Metadata items.", + "items": { + "type": "object", + "required": [ + "Id", + "Seller", + "Name", + "SkuName", + "ProductId", + "RefId", + "Ean", + "ImageUrl", + "DetailUrl", + "AssemblyOptions" + ], + "properties": { + "Id": { + "type": "string", + "description": "Item's SKU ID, which is a unique numerical identifier." + }, + "Seller": { + "type": "string", + "description": "Seller ID that identifies the seller the item belongs to." + }, + "Name": { + "type": "string", + "description": "Name of the item as displayed to customers in the storefront." + }, + "SkuName": { + "type": "string", + "description": "Name of the SKU corresponding to the item." + }, + "ProductId": { + "type": "string", + "description": "ID of the Product associated with the item." + }, + "RefId": { + "type": "string", + "description": "Item's reference ID." + }, + "Ean": { + "type": "string", + "description": "EAN of the item." + }, + "ImageUrl": { + "type": "string", + "description": "Item's SKU image URL." + }, + "DetailUrl": { + "type": "string", + "description": "URL slug of the item." + }, + "AssemblyOptions": { + "type": "array", + "description": "Displays information about [assembly options](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH) related to the item, if there are any.", + "items": { + "required": [ + "Id", + "Name", + "Required", + "InputValues", + "Composition" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "ID of the attachment related to the order." + }, + "Name": { + "type": "string", + "description": "Name of the attachment related to the order." + }, + "Required": { + "type": "boolean", + "description": "If this field is set as `true`, when the customer purchases the item sending the attachment is required, and when set as `false`, sending the attachment is optional." + }, + "InputValues": { + "type": "object", + "description": "Displays the attachment's content.", + "nullable": true + }, + "Composition": { + "type": "object", + "description": "Displays the attachment's composition.", + "nullable": true + } + } + } + } + } + } + } + } + }, + "subscriptionData": { + "type": "object", + "description": "Information about [subscriptions](https://help.vtex.com/tutorial/how-subscriptions-work--frequentlyAskedQuestions_4453).", + "nullable": true, + "required": [ + "SubscriptionGroupId", + "Subscriptions" + ], + "properties": { + "SubscriptionGroupId": { + "type": "string", + "description": "ID of the subscription's group. If this field returns `null` and the `executionCount` is `0`, the order is the first one with subscriptions." + }, + "Subscriptions": { + "type": "array", + "description": "List with subscriptions and their details.", + "nullable": true, + "items": { + "type": "object", + "required": [ + "ExecutionCount", + "PriceAtSubscriptionDate", + "ItemIndex", + "Plan" + ], + "properties": { + "ExecutionCount": { + "type": "integer", + "description": "Position of the order in the subscription cycle. The first order will have the value `0`, the second will have the value `1`, and so on." + }, + "PriceAtSubscriptionDate": { + "type": "number", + "description": "Price of the order when the customer signed up for subscriptions. Subscriptions created from Admin UI or APIs do not have an original order, so the field returns `0.0`. This field was valid only for Subscriptions v2 and is deprecated in Subscriptions v3.", + "deprecated": true + }, + "ItemIndex": { + "type": "integer", + "description": "Each item in the subscriptions' order is identified by an index. The position starts in`0`, followed by `1`, `2`, and so on." + }, + "Plan": { + "type": "object", + "description": "Information about the subscription's validility and frequency.", + "required": [ + "type", + "frequency", + "validity" + ], + "properties": { + "type": { + "type": "string", + "description": "Type of plan." + }, + "frequency": { + "type": "object", + "description": "Information about subscriptions' recurrence.", + "required": [ + "periodicity", + "interval" + ], + "properties": { + "periodicity": { + "type": "string", + "description": "Defines the subscriptions recurrence period. The possible values are `DAILY`,`WEEKLY`, `MONTHLY` and `YEARLY`." + }, + "interval": { + "type": "integer", + "description": "Number of the time interval configured between subscription orders, which depends on the periodicity. For a `DAILY` periodicity, the field's value will correspond to days, for `MONTHLY` to months, and so on." + } + } + }, + "validity": { + "type": "object", + "description": "Information about the period during which the subscription will be valid.", + "required": [ + "begin", + "end" + ], + "properties": { + "begin": { + "type": "string", + "description": "Subscriptions' beginning date with the format `yyyy-mm-ddThh:mm:ss`." + }, + "end": { + "type": "string", + "description": "Subscriptions' ending date with the format `yyyy-mm-ddThh:mm:ss`." + } + } + } + } + } + } + } + } + } + }, + "taxData": { + "type": "object", + "description": "Order's tax information.", + "required": [ + "areTaxesDesignatedByMarketplace", + "taxInfoCollection" + ], + "properties": { + "areTaxesDesignatedByMarketplace": { + "type": "boolean", + "description": "If the taxes were designated by the marketplace (`true`) or not (`false`)." + }, + "taxInfoCollection": { + "type": "array", + "description": "Array with taxes' details.", + "items": { + "type": "object", + "required": [ + "itemIndex", + "sku", + "priceTags" + ], + "properties": { + "itemIndex": { + "type": "integer", + "description": "Item's indexing number." + }, + "sku": { + "type": "string", + "description": "Alphanumeric sequence that identifies an SKU." + }, + "priceTags": { + "type": "array", + "description": "Price tag information.", + "items": { + "type": "object", + "required": [ + "isPercentual", + "name", + "rawValue" + ], + "properties": { + "isPercentual": { + "type": "boolean", + "description": "If the tax is a percentage (`true`) or note (`false`)." + }, + "name": { + "type": "string", + "description": "Name that identifies the tax." + }, + "rawValue": { + "type": "string", + "description": "The amount that corresponds to the tax." + } + } + } + } + } + } + } + } + }, + "checkedInPickupPointId": { + "type": "string", + "description": "If the field `isCheckedIn` is set as `true`, the `checkedInPickupPointId` will retrieve the ID of the physical store where the order was made." + }, + "cancellationData": { + "type": "object", + "description": "Information about order cancellation, when it applies.", + "required": [ + "RequestedByUser", + "RequestedBySystem", + "RequestedBySellerNotification", + "RequestedByPaymentNotification", + "Reason", + "CancellationDate" + ], + "properties": { + "RequestedByUser": { + "type": "boolean", + "description": "If the order cancellation was requested by the costumer (`true`) or not (`false`)." + }, + "RequestedBySystem": { + "type": "boolean", + "description": "If the order cancellation was made by the system (`true`) or not (`false`). This type of order cancellation happens in [incomplete orders](https://help.vtex.com/en/tutorial/how-incomplete-orders-work--tutorials_294), for example." + }, + "RequestedBySellerNotification": { + "type": "boolean", + "description": "If the order cancellation was requested by the seller (`true`) or not (`false`)." + }, + "RequestedByPaymentNotification": { + "type": "boolean", + "description": "If the order cancellation was requested by the payment gateway (`true`) or not (`false`)." + }, + "Reason": { + "type": "string", + "description": "The reason why the order was cancelled." + }, + "CancellationDate": { + "type": "string", + "description": "The date when the order was cancelled." + } + } + }, + "clientPreferencesData": { + "type": "object", + "description": "Information about customer's preferences.", + "required": [ + "locale", + "optinNewsLetter" + ], + "properties": { + "locale": { + "type": "string", + "description": "Customer's prefered language while accessing the store." + }, + "optinNewsLetter": { + "type": "boolean", + "description": "When set as `true`, this field indicates customers opted to receive the newsletters, and when set as `false`, it means they did not." + } + } + } + }, + "example": { + "orderId": "v502556llux-01", + "sequence": "502556", + "marketplaceOrderId": "", + "marketplaceServicesEndpoint": "http://oms.vtexinternal.com.br/api/oms?an=luxstore", + "sellerOrderId": "00-v502556llux-01", + "origin": "Marketplace", + "affiliateId": "", + "salesChannel": "1", + "merchantName": "luxstore", + "status": "handling", + "statusDescription": "Preparando Entrega", + "value": 1160, + "creationDate": "2019-01-28T20:09:43.899958+00:00", + "lastChange": "2019-02-06T20:46:11.7010747+00:00", + "orderGroup": "v502556lspt", + "totals": [ + { + "id": "Items", + "name": "Total dos Itens", + "value": 3290 + }, + { + "id": "Discounts", + "name": "Total dos Descontos", + "value": 0 + }, + { + "id": "Shipping", + "name": "Total do Frete", + "value": 1160 + }, + { + "id": "Tax", + "name": "Total da Taxa", + "value": 0 + }, + { + "id": "Change", + "name": "Total das mudanças", + "value": -3290 + } + ], + "items": [ + { + "uniqueId": "87F0945396994B349158C7D9C9941442", + "id": "1234568358", + "productId": "9429485", + "ean": null, + "lockId": "00-v502556llux-01", + "itemAttachment": { + "content": {}, + "name": null + }, + "attachments": [], + "quantity": 1, + "seller": "1", + "name": "Bay Max L", + "refId": "BIGHEROBML", + "price": 3290, + "listPrice": 3290, + "manualPrice": null, + "priceTags": [], + "imageUrl": "http://luxstore.vteximg.com.br/arquivos/ids/159263-55-55/image-cc1aed75cbfa424a85a94900be3eacec.jpg?v=636795432619830000", + "detailUrl": "/bay-max-9429485/p", + "components": [], + "bundleItems": [], + "params": [], + "offerings": [], + "attachmentOfferings": [ + { + "name": "vtex.subscription.weekly", + "required": false, + "schema": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 7, + "Domain": [ + " 1 week", + " 2 week", + " 3 week", + " 4 week" + ] + } + } + } + ], + "sellerSku": "1234568358", + "priceValidUntil": null, + "commission": 0, + "tax": 0, + "preSaleDate": null, + "additionalInfo": { + "brandName": "VTEX", + "brandId": "2000023", + "categoriesIds": "/1/", + "productClusterId": "135,142", + "commercialConditionId": "5", + "dimension": { + "cubicweight": 0.7031, + "height": 15, + "length": 15, + "weight": 15, + "width": 15 + }, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null + }, + "measurementUnit": "un", + "unitMultiplier": 1, + "sellingPrice": 3290, + "isGift": false, + "shippingPrice": null, + "rewardValue": 0, + "freightCommission": 0, + "priceDefinitions": { + "sellingPrices": [ + { + "value": 99, + "quantity": 1 + } + ], + "calculatedSellingPrice": 99, + "total": 99 + }, + "taxCode": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "callCenterOperator": "callCenterOp5473869", + "serialNumbers": "3", + "assemblies": [], + "costPrice": 52 + } + ], + "marketplaceItems": [], + "clientProfileData": { + "id": "clientProfileData", + "email": "rodrigo.cunha@vtex.com.br", + "firstName": "Rodrigo", + "lastName": "Cunha", + "documentType": "cpf", + "document": "11047867702", + "phone": "+5521972321094", + "corporateName": null, + "tradeName": null, + "corporateDocument": null, + "stateInscription": null, + "corporatePhone": null, + "isCorporate": false, + "userProfileId": "5a3692de-358a-4bea-8885-044bce33bb93", + "customerClass": null + }, + "giftRegistryData": null, + "marketingData": { + "id": "marketingData", + "utmSource": "fb", + "utmPartner": "utm partner", + "utmMedium": "utm medium", + "utmCampaign": "christmas", + "coupon": "sale", + "utmiCampaign": " ", + "utmipage": " ", + "utmiPart": " ", + "marketingTags": [ + "vtex-subscription" + ] + }, + "ratesAndBenefitsData": { + "id": "ratesAndBenefitsData", + "rateAndBenefitsIdentifiers": [] + }, + "shippingData": { + "id": "shippingData", + "address": { + "addressType": "residential", + "receiverName": "Rodrigo Cunha", + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "street": "Praia de Botafogo", + "number": "518", + "neighborhood": "Botafogo", + "complement": "10", + "reference": null, + "geoCoordinates": [] + }, + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Normal", + "lockTTL": "10d", + "price": 1160, + "listPrice": 1160, + "sellingPrice": 1160, + "deliveryWindow": null, + "deliveryCompany": "Todos os CEPS", + "shippingEstimate": "5bd", + "shippingEstimateDate": "2019-02-04T20:33:46.4595004+00:00", + "slas": [ + { + "id": "Normal", + "name": "Normal", + "shippingEstimate": "5bd", + "deliveryWindow": null, + "price": 1160, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "region13", + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "0d", + "pickupDistance": 29.861602783203125 + }, + { + "id": "Expressa", + "name": "Expressa", + "shippingEstimate": "5bd", + "deliveryWindow": null, + "price": 1160, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "region13", + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "0d", + "pickupDistance": 29.861602783203125 + }, + { + "id": "Quebra Kit", + "name": "Quebra Kit", + "shippingEstimate": "2bd", + "deliveryWindow": null, + "price": 1392, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "region13", + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "0d", + "pickupDistance": 29.861602783203125 + }, + { + "id": "Sob Encomenda", + "name": "Sob Encomenda", + "shippingEstimate": "32bd", + "deliveryWindow": null, + "price": 1392, + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "polygonName": "region13", + "lockTTL": "12d", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "0d", + "pickupDistance": 29.861602783203125 + } + ], + "shipsTo": [ + "BRA" + ], + "deliveryIds": [ + { + "courierId": "197a56f", + "courierName": "Todos os CEPS", + "dockId": "1", + "quantity": 1, + "warehouseId": "1_1", + "accountCarrierName": "recorrenciaqa", + "kitItemDetails": [] + } + ], + "deliveryChannels": [ + { + "id": "delivery", + "stockBalance": 0 + } + ], + "deliveryChannel": "delivery", + "pickupStoreInfo": { + "additionalInfo": null, + "address": null, + "dockId": null, + "friendlyName": null, + "isPickupStore": false + }, + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "polygonName": "region56", + "pickupPointId": "1_VTEX-RJ", + "transitTime": "3d" + } + ], + "trackingHints": null, + "selectedAddresses": [ + { + "addressId": "-1425945657910", + "versionId": "e9c3bec2-125d-4b96-a021-316c3aa9f14f", + "entityId": "eabfb564-99d6-40d8-bd6c-bddbd4990aad", + "addressType": "residential", + "receiverName": "Rodrigo Cunha", + "street": "Praia de Botafogo", + "number": "518", + "complement": "10", + "neighborhood": "Botafogo", + "postalCode": "22250-040", + "city": "Rio de Janeiro", + "state": "RJ", + "country": "BRA", + "reference": null, + "geoCoordinates": [] + } + ] + }, + "paymentData": { + "transactions": [ + { + "isActive": true, + "transactionId": "418213DE29634837A63DD693A937A696", + "merchantName": "luxstore", + "payments": [ + { + "id": "D3DEECAB3C6C4B9EAF8EF4C1FE062FF3", + "paymentSystem": "6", + "paymentSystemName": "Boleto Bancário", + "value": 4450, + "installments": 1, + "referenceValue": 4450, + "cardHolder": null, + "cardNumber": null, + "firstDigits": null, + "lastDigits": null, + "cvv2": null, + "expireMonth": null, + "expireYear": null, + "url": "https://luxstore.vtexpayments.com.br:443/BankIssuedInvoice/Transaction/418213DE29634837A63DD693A937A696/Payment/D3DEECAB3C6C4B9EAF8EF4C1FE062FF3/Installment/{Installment}", + "giftCardId": null, + "giftCardName": null, + "giftCardCaption": null, + "redemptionCode": null, + "group": "bankInvoice", + "tid": null, + "dueDate": "2019-02-02", + "connectorResponses": { + "Tid": "94857956", + "ReturnCode": "200", + "Message": "logMessage", + "authId": "857956" + }, + "giftCardProvider": "presentCard", + "giftCardAsDiscount": false, + "koinUrl": "koinURL", + "accountId": "5BC5C6B417FE432AB971B1D399F190C9", + "parentAccountId": "5BC5C6B417FE432AB971B1D399F190C9", + "bankIssuedInvoiceIdentificationNumber": "23797770100000019003099260100022107500729050", + "bankIssuedInvoiceIdentificationNumberFormatted": "32534.95739 75945.24534 54395.734214 5", + "bankIssuedInvoiceBarCodeNumber": "325349573975945245345439573421443986734065", + "bankIssuedInvoiceBarCodeType": "i25", + "billingAddress": {} + } + ] + } + ] + }, + "packageAttachment": { + "packages": [] + }, + "sellers": [ + { + "id": "1", + "name": "Lux Store", + "logo": "https://sellersLogo/images.png", + "fulfillmentEndpoint": "http://fulfillment.vtexcommerce.com.br/api/fulfillment?an=accountName" + } + ], + "callCenterOperatorData": null, + "followUpEmail": "7bf3a59bbc56402c810bda9521ba449e@ct.vtex.com.br", + "lastMessage": null, + "hostname": "luxstore", + "invoiceData": null, + "changesAttachment": { + "id": "changeAttachment", + "changesData": [ + { + "reason": "Blah", + "discountValue": 3290, + "incrementValue": 0, + "itemsAdded": [], + "itemsRemoved": [ + { + "id": "1234568358", + "name": "Bay Max L", + "quantity": 1, + "price": 3290, + "unitMultiplier": null + } + ], + "receipt": { + "date": "2019-02-06T20:46:04.4003606+00:00", + "orderId": "v502556llux-01", + "receipt": "029f9ab8-751a-4b1e-bf81-7dd25d14b49b" + } + } + ] + }, + "openTextField": null, + "roundingError": 0, + "orderFormId": "caae7471333e403f959fa5fd66951340", + "commercialConditionData": null, + "isCompleted": true, + "customData": null, + "storePreferencesData": { + "countryCode": "BRA", + "currencyCode": "BRL", + "currencyFormatInfo": { + "CurrencyDecimalDigits": 2, + "CurrencyDecimalSeparator": ",", + "CurrencyGroupSeparator": ".", + "CurrencyGroupSize": 3, + "StartsWithCurrencySymbol": true + }, + "currencyLocale": 1046, + "currencySymbol": "R$", + "timeZone": "E. South America Standard Time" + }, + "allowCancellation": true, + "allowEdition": false, + "isCheckedIn": false, + "marketplace": { + "baseURL": "http://oms.vtexinternal.com.br/api/oms?an=luxstore", + "isCertified": null, + "name": "luxstore" + }, + "authorizedDate": "2019-01-28T20:33:04+00:00", + "invoicedDate": null, + "cancelReason": "The size was too big.", + "itemMetadata": { + "Items": [ + { + "Id": "18", + "Seller": "1", + "Name": "Cat food", + "SkuName": "Cat food", + "ProductId": "6", + "RefId": "105", + "Ean": "43673557", + "ImageUrl": "http://store.vteximg.com.br/ids/155392-55-55/AlconKOI.jpg?v=635918402228600000", + "DetailUrl": "/catfood/p", + "AssemblyOptions": [ + { + "Id": "vtex.subscription.plan-ana", + "Name": "vtex.subscription.plan-ana", + "Required": false, + "InputValues": { + "vtex.subscription.key.frequency": { + "MaximumNumberOfCharacters": 8, + "Domain": [ + "4 month", + "1 month" + ] + } + }, + "Composition": {} + } + ] + } + ] + }, + "subscriptionData": { + "SubscriptionGroupId": "A64AC73C0FB8693A7ADB4AC69CA4FD5F", + "Subscriptions": [ + { + "ExecutionCount": 724, + "PriceAtSubscriptionDate": 100, + "ItemIndex": 0, + "Plan": { + "type": "RECURRING_PAYMENT", + "frequency": { + "periodicity": "DAILY", + "interval": 1 + }, + "validity": { + "begin": "2022-01-10T00:00:00.0000000+00:00", + "end": "2024-02-03T00:00:00.0000000+00:00" + } + } + } + ] + }, + "taxData": { + "areTaxesDesignatedByMarketplace": true, + "taxInfoCollection": [ + { + "itemIndex": 0, + "sku": "COLOCAR_O_SKUID", + "priceTags": [ + { + "isPercentual": false, + "name": "Taxes (Magazine Luisa)", + "rawValue": "COLOCAR_O_VALOR_SEM_DECIMAL" + } + ] + } + ] + }, + "checkedInPickupPointId": "storeNameExample_901", + "cancellationData": { + "RequestedByUser": true, + "RequestedBySystem": false, + "RequestedBySellerNotification": false, + "RequestedByPaymentNotification": false, + "Reason": "Item was too big in the client.", + "CancellationDate": "2022-10--05T15:40:33" + }, + "clientPreferencesData": { + "locale": "en-US", + "optinNewsLetter": false + } + } + }, + "AuthorizationPolicyData": { + "type": "array", + "description": "Information about the order authorization policy. When the store doesn't have any policies, the status will always be `accepted`.", + "items": { + "type": "object", + "description": "Details about the order authorization policy", + "properties": { + "status": { + "type": "string", + "description": "Status of the order's authorization policy.", + "enum": [ + "accepted", + "denied", + "pending" + ] + }, + "deniedPolicies": { + "type": "array", + "description": "Information about the order's denied policies.", + "items": { + "type": "object", + "description": "Details about the order's denied policies.", + "minItems": 0, + "properties": { + "policyId": { + "type": "string", + "description": "Unique identifier of the denied policy." + }, + "policyName": { + "type": "string", + "description": "Name of denied policy." + }, + "requireAllPoliciesAcceptance": { + "type": "boolean", + "description": "Defines whether all listed policies in the policy group must be accepted." + }, + "policyGroupId": { + "type": "string", + "description": "Unique identifier of the policy group." + }, + "policyGroupName": { + "type": "string", + "description": "Name of the policy group." + }, + "policyGroupUnitId": { + "type": "string", + "description": "Identifier of the business unit this policy group belongs to." + }, + "authorizationData": { + "type": "array", + "description": "Information about the order's authorization data.", + "nullable": true, + "items": { + "type": "object", + "description": "Details about the order's authorization data.", + "properties": { + "requireAllApprovals": { + "type": "boolean", + "description": "Defines whether the policy requires approval by all authorizers." + }, + "authorizers": { + "type": "array", + "description": "Information about the order's authorizers.", + "nullable": true, + "items": { + "type": "object", + "description": "Details about the order's authorizers.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the authorizer." + }, + "type": { + "type": "string", + "description": "Type of the authorizer.", + "enum": [ + "User", + "Unit" + ] + }, + "authorizationDate": { + "type": "string", + "description": "Date of the authorization.", + "nullable": true + } + } + } + } + } + } + } + } + } + }, + "pendingPolicies": { + "type": "array", + "description": "Information about the order's pending policies.", + "items": { + "type": "object", + "description": "Details about the order's pending policies.", + "minItems": 0, + "properties": { + "policyId": { + "type": "string", + "description": "Unique identifier of the pending policy." + }, + "policyName": { + "type": "string", + "description": "Name of pending policy." + }, + "requireAllPoliciesAcceptance": { + "type": "boolean", + "description": "Defines whether all listed policies must be accepted." + }, + "policyGroupId": { + "type": "string", + "description": "Unique identifier of the policy group." + }, + "policyGroupName": { + "type": "string", + "description": "Name of the policy group." + }, + "policyGroupUnitId": { + "type": "string", + "description": "Identifier of the business unit this policy group belongs to." + }, + "authorizationData": { + "type": "array", + "description": "Information about the order's authorization data.", + "nullable": true, + "items": { + "type": "object", + "description": "Details about the order's authorization data.", + "properties": { + "requireAllApprovals": { + "type": "boolean", + "description": "Defines whether the policy requires approval by all authorizers." + }, + "authorizers": { + "type": "array", + "description": "Information about the order's authorizers.", + "nullable": true, + "items": { + "type": "object", + "description": "Details about the order's authorizers.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the authorizer." + }, + "type": { + "type": "string", + "description": "Type of the authorizer.", + "enum": [ + "User", + "Unit" + ] + }, + "authorizationDate": { + "type": "string", + "description": "Date of the authorization.", + "nullable": true + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "tags": [ + { + "name": "Orders" + }, + { + "name": "Order modifications" + }, + { + "name": "Invoice" + }, + { + "name": "Tracking" + }, + { + "name": "Conversation" + }, + { + "name": "Payment" + }, + { + "name": "Feed v2 (deprecated)" + }, + { + "name": "Feed v3" + }, + { + "name": "Order hook" + }, + { + "name": "User orders" + }, + { + "name": "Change seller" + } + ] +} diff --git a/clients/manitou/output/orders.order-system.json b/clients/manitou/output/orders.order-system.json new file mode 100644 index 0000000000..795967a286 --- /dev/null +++ b/clients/manitou/output/orders.order-system.json @@ -0,0 +1,4916 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Orders API (Order System)", + "description": "Each purchase a customer makes in your store generates an [order](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196) on VTEX. With the Orders API, you can view orders statuses and manage multiple aspects involved in order fulfillment, such as financial transactions, invoicing, shipping, and subscriptions. You can also [modify orders](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) and make configurations to allow or forbid marketplaces and sellers to change or cancel orders.\r\n\r\n## Order integration\n\r\nTo automate actions related to order processing, you can [integrate orders](https://developers.vtex.com/docs/guides/erp-integration-guide) with systems like ERP (Enterprise Resource Planning) and WMS (Warehouse Management System) using [Feed and Hook](https://developers.vtex.com/docs/guides/orders-feed).\r\n\r\n## Orders API Index\r\n\r\n### Orders\r\n\r\n- `GET` [Get order](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-)\r\n- `GET` [Get orders by order group ID](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/order-group/-orderGroup-)\r\n- `GET` [List orders](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders)\r\n- `POST` [Start handling order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/start-handling)\r\n- `POST` [Cancel order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/cancel)\r\n- `POST` [Register modifications on order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/changes)\r\n\r\n### Order modifications\r\n\r\n- `PATCH` [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes)\r\n- `POST` [Preview order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/preview)\r\n- `GET`[Get order modifications details](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-)\r\n- `GET`[Get order modifications history](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes)\r\n- `GET` [Get order modifications summary](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/pvt/document/-changeOrderId-/change-summary) \r\n- `POST` [Retry order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-/retry)\r\n- `POST`[Cancel order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-/cancel)\r\n- `PUT`[Update Order modifications settings](https://developers.vtex.com/docs/api-reference/orders-api#put-/api/order-system/orders/changes/settings)\r\n- `GET` [Get Order modifications settings](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/changes/settings)\r\n\r\n### Invoice\r\n\r\n- `POST` [Order invoice notification](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/invoice)\r\n- `PATCH` [Update order's partial invoice (send tracking number)](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-)\r\n\r\n### Tracking\r\n\r\n- `PUT` [Update order tracking status](https://developers.vtex.com/docs/api-reference/orders-api#put-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-/tracking)\r\n\r\n### Conversation\r\n\r\n- `GET` [Retrieve order conversation](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-/conversation-message)\r\n\r\n### Payment\r\n\r\n- `GET` [Retrieve payment transaction](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-/payment-transaction)\r\n- `POST` [Send payment notification](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/payments/-paymentId-/payment-notification)\r\n\r\n### Feed v2 (deprecated)\r\n\r\n- `GET` [Get feed order status](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/feed/orders/status)\r\n\r\n### Feed v3\r\n\r\n- `GET` [Get feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/feed/config)\r\n- `POST` [Create or update feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/feed/config)\r\n- `DELETE` [Delete feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#delete-/api/orders/feed/config)\r\n- `GET` [Retrieve feed items](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/feed)\r\n- `POST` [Commit feed items](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/feed)\r\n- `POST` [Test JSONata expression](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/expressions/jsonata)\r\n\r\n### Order hook\r\n\r\n- `GET` [Get hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/hook/config)\r\n- `POST` [Create or update hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/hook/config)\r\n- `DELETE` [Delete hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#delete-/api/orders/hook/config)\r\n\r\n### User orders\r\n\r\n- `GET` [Retrieve user's orders](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/user/orders)\r\n- `GET` [Retrieve user order details](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/user/orders/-orderId-)\r\n\r\n### Change seller\r\n\r\n- `GET` [Get window to change seller](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/checkout/pvt/configuration/window-to-change-seller)\r\n- `POST` [Update window to change seller](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/checkout/pvt/configuration/window-to-change-seller)\r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| :---: | :--- | :--- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/order-system/orders/{changeOrderId}/changes": { + "patch": { + "tags": [ + "Order modifications" + ], + "summary": "Create order modifications", + "operationId": "Createchange", + "description": "[Order modifications](https://help.vtex.com/en/tutorial/how-change-order-works-beta--56TO0bOFXsfmpc7YZ3wIUZ) feature allows you to modify an order, whether the modification is motivated by customer mistakes, product unavailability, or others. Both sellers and marketplaces can use this endpoint and modify orders in multiple scenarios, and it is possible to make a single modification or combine multiple ones in the same request. \r\nThe possible order modifications operations you can perform are the following:\r\n- **Add:** Adding items, quantity, or product weight.\r\n- **Remove:** Removing a part of items or the total quantity.\r\n- **Replace:** Changing items' quantity, weight, or price. You can also replace one or more items with different ones, including weighable products. In addition, you can change your clients's data. \r\n\r\n>❗ When removing or adding items to an order, your [inventory](https://help.vtex.com/en/tutorial/inventory-management--tutorials_139) is not automatically updated. You can use the [Update inventory by SKU and warehouse](https://developers.vtex.com/docs/api-reference/logistics-api#put-/api/logistics/pvt/inventory/skus/-skuId-/warehouses/-warehouseId-) endpoint.\r\n\r\n >⚠️ The Order modifications feature isn't applicable to the Catalog API - Seller Portal.\r\n\r\nThe next sections are listed below:\r\n- Number of modifications per order \r\n- Acceptable order status for modifications \r\n- Order modifications and price \r\n- Combining multiple operations \r\n\r\n## Number of modifications per order\r\nBesides being able to combine multiple modification operations - add, remove, and replace - in a single request, you can make different modification requests, and there is no limit to how many times an order can be modified.\r\n\r\nEach order has its modifications history, you can retrieve it using the [Get order modifications history](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes) endpoint.\r\n\r\n## Acceptable order status for modifications\r\nYou can only modify an order when it is one of the following [order flow](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196) status:\r\n- `handling`\r\n- `waiting-for-fulfillment` \r\n- `ready for invoicing` \r\n\r\nIt is not possible to modify an order when the payment transaction is complete.\r\n\r\n## Order modifications and price\r\nWhen you add, remove or replace items using this endpoint, the order and payment transaction values are automatically updated. Order modifications calculates the update of the following values:\r\n- Item value\r\n- Total value \r\n\r\n**Example:** If you send the request body for replacing items without the unit multiplier (`unitMultiplier`) or measurement (`measurementUnit`), Order modifications will get this information on your store's Catalog, Pricing and Payment systems. \r\n>⚠️ Increasing the price of an order is allowed only when the order was paid by credit card, [payable notes](https:/help.vtex.com/en/tutorial/setting-up-payments-with-promissory--5pW7avTwtyQcMu4uiW8quQ), cash, or [credit control](https:/help.vtex.com/en/tutorial/customer-credit-overview--1uIqTjWxIIIEW0COMg4uE0). In addition, the [acquirer](https:/help.vtex.com/en/tutorial/what-is-an-acquirer--7N1oRTG8dGmOiIugC0cs4E) must allow transactions without the CVV code and two charging transactions in the same order. \r\n\r\nFor order modifications with discounts, Order Management System (OMS) considers that you still can modify the order's transactional value, as long as its status in Transaction Details is not `Finished`. \r\n\r\n## Order modifications and payment transaction flow \r\n\r\nAn order's [transaction flow](https://help.vtex.com/tracks/payments--6GAS7ZzGAm7AGoEAwDbwJG/1xjzgJZvqwaI1rfxLMCC3Y) goes through various payment statuses before its conclusion. Within certain conditions, it is possible to modify settled orders. The requirements are the following:\r\n\r\n- The order's [payment method](https://help.vtex.com/en/tutorial/difference-between-payment-methods-and-payment-conditions--3azJenhGFyUy2gsocms42Q) is a credit card.\r\n- The settlement occurs before the order is invoiced.\r\n- The payment connector is configured to allow partial refunds.\r\n\r\n> Currently, [Adyen](https://help.vtex.com/en/tutorial/configuring-payment-with-adyenv3--7xAz67E2Eg63LWCQNjVdwv) is the only payment connector that supports that operation.\r\n\r\nIf the order modification increases or decreases the cost for the customer, the platform has the following behavior:\r\n\r\n- **Smaller price after order modification:**\r\n - If the payment is marked as `settled` in the [transaction flow](https://help.vtex.com/tracks/payments--6GAS7ZzGAm7AGoEAwDbwJG/1xjzgJZvqwaI1rfxLMCC3Y), an automatic notification is sent to the payment [gateway](https://help.vtex.com/tracks/payments--6GAS7ZzGAm7AGoEAwDbwJG/kdPbEIWf8Xq8tESQvViMB#gateway) to reimburse the customer for the difference.\r\n - If the payment hasn't been settled, an automatic notification is sent to the payment gateway to change the order's total amount.\r\n- **Higher price after order modification:** An automatic notification is sent to the payment gateway to require the customer to pay for the additional cost.\r\n\r\n## Combining multiple operations\r\nYou can use this endpoint to make a single change operation or combine them in the same request. See some examples below.\r\n\r\n### Adding request body example:\r\n\r\n```json\r\n{\r\n \"add\": {\r\n \"items\": [\r\n {\r\n \"id\": \"8\",\r\n \"quantity\": 1,\r\n \"measurementUnit\": \"un\",\r\n \"unitMultiplier\": 1\r\n }\r\n ]\r\n }\r\n}\r\n```\r\n\r\n### Removing request body example:\r\n\r\n```json\r\n{\r\n \"reason\": \"The client wants to remove a product.\",\r\n \"remove\": {\r\n \"items\": [\r\n {\r\n \"id\": \"8\",\r\n \"quantity\": 2,\r\n \"measurementUnit\": \"un\",\r\n \"unitMultiplier\": 1\r\n }\r\n ]\r\n }\r\n}\r\n```\r\n\r\n### Replacing request body example:\r\n```json\r\n{\r\n \"reason\": \"The client wants to increase the product weight.\",\r\n \"replace\": [\r\n {\r\n \"from\": {\r\n \"items\": [\r\n {\r\n \"id\": \"1\",\r\n \"quantity\": 1\r\n }\r\n ]\r\n },\r\n \"to\": {\r\n \"items\": [\r\n {\r\n \"id\": \"2\",\r\n \"quantity\": 1,\r\n \"measurementUnit\": \"kg\",\r\n \"unitMultiplier\": 1.0\r\n }\r\n ],\r\n \"shippingData\": {\r\n \"logisticsInfo\": [\r\n {\r\n \"itemIndex\": 0,\r\n \"selectedSla\": \"Normal\",\r\n \"selectedDeliveryChannel\": \"delivery\",\r\n \"addressId\": \"12334048475146857\",\r\n \"price\": 1000\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n}\r\n```\r\n\r\n\r\n### Adding, removing and replacing request body example:\r\n\r\n\r\n```json\r\n{\r\n \"reason\": \"The client wants to add, remove and replace a weighable product.\",\r\n \"manualDiscountValue\": 0,\r\n \"add\": {\r\n \"items\": [\r\n {\r\n \"id\": \"8\",\r\n \"quantity\": 1,\r\n \"measurementUnit\": \"un\",\r\n \"unitMultiplier\": 1\r\n }\r\n ]\r\n },\r\n \"remove\": {\r\n \"items\": [\r\n {\r\n \"id\": \"31\",\r\n \"quantity\": 1,\r\n \"measurementUnit\": \"un\",\r\n \"unitMultiplier\": 1\r\n }\r\n ]\r\n },\r\n \"replace\": [\r\n {\r\n \"from\": {\r\n \"items\": [\r\n {\r\n \"id\": \"1\",\r\n \"quantity\": 1\r\n }\r\n ]\r\n },\r\n \"to\": {\r\n \"items\": [\r\n {\r\n \"id\": \"2\",\r\n \"quantity\": 1,\r\n \"measurementUnit\": \"kg\",\r\n \"unitMultiplier\": 1.0\r\n }\r\n ],\r\n \"shippingData\": {\r\n \"logisticsInfo\": [\r\n {\r\n \"itemIndex\": 0,\r\n \"selectedSla\": \"Normal\",\r\n \"selectedDeliveryChannel\": \"delivery\",\r\n \"addressId\": \"12334048475146857\",\r\n \"price\": 1000\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n}\r\n```\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n| OMS | OMS access | **Cancel order** |\r\n| OMS | OMS access | **Change order** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Checkout Admin | Orders Full Access |\r\n| OMS - Full access |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Oms |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Gateway | Cancel order |\r\n| IntegrationProfile - Fulfillment Gateway Oms |

Cancel order

Change order

|\r\n| inStore Sales Person |

Cancel order

Change order

|\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "accountName", + "in": "query", + "description": "Name of the VTEX account that created the order.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "storeName" + } + }, + { + "name": "changeOrderId", + "in": "path", + "description": "Order ID of the order you wish to modify.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "v12772213qst-02" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Createchange" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/response202" + }, + "example": { + "requestId": "e8532a32-7f7e-434a-88ec-29609f0ede46", + "workflowId": "74f40e7a-68c6-4699-b874-a8a297fb3f6a", + "reason": "The client did not like the size.", + "manualDiscountValue": 0, + "manualIncrementValue": 0, + "totalChangeValue": 0, + "totals": [], + "add": null, + "remove": null, + "replace": [ + { + "from": { + "paymentData": { + "transactions": [] + }, + "items": [ + { + "id": "31", + "quantity": 1, + "price": null, + "measurementUnit": null, + "unitMultiplier": 0, + "sellingPrice": null, + "name": null, + "detailUrl": null, + "imageUrl": null + } + ], + "shippingData": { + "logisticsInfo": [] + } + }, + "to": { + "items": [ + { + "uniqueId": "40E763F4378E4F40AD1FE915FE1078E1", + "id": "1", + "productId": null, + "productRefId": null, + "refId": null, + "ean": null, + "name": null, + "skuName": null, + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": null, + "tax": 0, + "price": null, + "listPrice": null, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": null, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": null, + "brandId": null, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null, + "categoriesIds": null, + "productClusterId": null, + "commercialConditionId": null + }, + "preSaleDate": null, + "productCategoryIds": null, + "productCategories": {}, + "quantity": 1, + "seller": null, + "sellerChain": [ + null + ], + "imageUrl": null, + "detailUrl": null, + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [], + "offerings": [], + "priceTags": [], + "availability": null, + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": null + } + ], + "paymentData": { + "transactions": [] + }, + "receiptData": null, + "shippingData": { + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Lenta", + "selectedDeliveryChannel": "delivery", + "addressId": "9ec276fd3a604eb1aa151b5333ca5db6", + "slas": [ + { + "id": "Lenta", + "deliveryChannel": "delivery", + "name": "Lenta", + "deliveryIds": [], + "shippingEstimate": null, + "shippingEstimateDate": null, + "lockTTL": null, + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 600, + "listPrice": 600, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": null, + "transitTime": null + } + ], + "shipsTo": [], + "itemId": "1", + "deliveryChannels": [], + "price": 600, + "listPrice": 600, + "shippingEstimate": null, + "dockEstimate": null, + "shippingEstimateDate": null, + "lockTTL": null, + "deliveryCompany": null, + "polygonName": null, + "transitTime": null, + "sellingPrice": 600, + "deliveryIds": [], + "deliveryWindow": null, + "pickupPointId": null, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupDistance": null + } + ] + } + } + } + ], + "date": "2023-07-27T17:52:18.6483116Z", + "origin": { + "account": "qastore", + "orderId": "v12772213qst-02", + "component": "MarketplaceComponent" + }, + "settings": { + "customPaymentSystemsAllowed": [ + "201" + ] + } + } + } + } + } + } + }, + "get": { + "tags": [ + "Order modifications" + ], + "summary": "Get order modifications history", + "operationId": "GetChangeHistory", + "description": "This endpoint retrieves a history of every successful [Create order modifications request](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) made to an order and provides detailed information about each request.\r\n\r\nYou can access an order's history using the `changeOrderId`, which corresponds to its `orderId`.\r\n\r\n> If you want detailed information about a single modification request, you can use the endpoint [Get order modifications details](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https:/developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https:/help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n| OMS | OMS access | **Cancel order** |\r\n| OMS | OMS access | **Change order** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Checkout Admin | Orders Full Access |\r\n| OMS - Full access |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Oms |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Gateway | Cancel order |\r\n| IntegrationProfile - Fulfillment Gateway Oms |

Cancel order

Change order

|\r\n| inStore Sales Person |

Cancel order

Change order

|\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account that created the order.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "storeName" + } + }, + { + "name": "changeOrderId", + "in": "path", + "description": "Order ID of the order you wish to get the modifications history.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "v12772213qst-02" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "requests", + "actions" + ], + "properties": { + "requests": { + "type": "array", + "description": "Array with order modifications requests details.", + "items": { + "required": [ + "requestId", + "workflowId", + "reason", + "manualDiscountValue", + "manualIncrementValue", + "totalChangeValue", + "totals", + "add", + "remove", + "replace", + "date", + "origin", + "settings" + ], + "type": "object", + "description": "Information about each order modification request.", + "properties": { + "requestId": { + "type": "string", + "description": "Unique code that identifies an order modification." + }, + "workflowId": { + "type": "string", + "description": "Code that identifies the transaction of modifying the orders in the [order flow](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196)." + }, + "reason": { + "type": "string", + "description": "Reason that motivated the order modifications." + }, + "manualDiscountValue": { + "type": "integer", + "description": "This field shows if it was applied a manual price for the total order amount. The value is in cents." + }, + "manualIncrementValue": { + "type": "integer", + "description": "This field shows if an increment value was applied to the total order amount. The value is in cents." + }, + "totalChangeValue": { + "type": "integer", + "description": "This field shows how much the order total price is, considering that price modifications might have been made. The value is in cents." + }, + "totals": { + "type": "array", + "description": "Array containing total costs information.", + "items": { + "type": "object", + "description": "Total changing price details for a given type of cost.", + "properties": { + "id": { + "type": "string", + "description": "Changing price type, for example the item price or shipping costs." + }, + "name": { + "type": "string", + "description": "Changing price name." + }, + "value": { + "type": "number", + "description": "Changing price value in cents." + } + } + } + }, + "add": { + "type": "object", + "nullable": true, + "description": "Information about an `add` operation, when there was one. It will have the same schema of `request.replace.to`." + }, + "remove": { + "type": "object", + "nullable": true, + "description": "Information about a `remove` operation, when there was one. It will have the same schema of `request.replace.from`." + }, + "replace": { + "type": "array", + "description": "Array with information about the replacement operation performed.", + "items": { + "type": "object", + "description": "Replacing operation object.", + "required": [ + "from", + "to" + ], + "properties": { + "from": { + "$ref": "#/components/schemas/From2" + }, + "to": { + "$ref": "#/components/schemas/To2" + } + } + } + }, + "date": { + "type": "string", + "description": "Date and time of the request. The value is in UTC ISO 8601 format `yyyy-mm-ddThh:mm:ss.sssZ`." + }, + "origin": { + "$ref": "#/components/schemas/OriginV2" + }, + "settings": { + "$ref": "#/components/schemas/Settings" + } + } + } + }, + "actions": { + "type": "array", + "description": "Array containing previous changing order actions history.", + "items": { + "type": "object", + "description": "Changing order action details, with a schema like the `requests` property.", + "nullable": true + } + } + } + }, + "example": { + "requests": [ + { + "requestId": "e8532a32-7f7e-434a-88ec-29609f0ede46", + "workflowId": "74f40e7a-68c6-4699-b874-a8a297fb3f6a", + "reason": "The client did not like the size.", + "manualDiscountValue": 0, + "manualIncrementValue": 0, + "totalChangeValue": 0, + "totals": [ + { + "id": "ManualValues", + "name": "Manual Values Total", + "value": -1000 + } + ], + "add": null, + "remove": null, + "replace": [ + { + "from": { + "paymentData": { + "transactions": [] + }, + "items": [ + { + "id": "31", + "quantity": 1, + "price": 5000, + "measurementUnit": "un", + "unitMultiplier": 1, + "sellingPrice": 5000, + "name": "Small toy", + "detailUrl": "/small-toy-24/p", + "imageUrl": "http://storename.com/arquivos/ids/155431-55-55/image-bdab69af1e5c41cdbc498d02e370b376.jpg?v=636579391945870000" + } + ], + "shippingData": { + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Economic", + "selectedDeliveryChannel": "delivery", + "addressId": "9ec276fd3a604eb1aa151b5333ca5db6", + "slas": [ + { + "id": "Economic", + "deliveryChannel": "delivery", + "name": "Economic", + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "DeliverClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 180, + "listPrice": 180, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "3bd" + }, + { + "id": "Pickup", + "deliveryChannel": "delivery", + "name": "Pickup", + "deliveryIds": [ + { + "courierId": "ech018654", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Pickup", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 700, + "listPrice": 700, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + } + ], + "shipsTo": [ + "BRA" + ], + "itemId": "31", + "deliveryChannels": [ + { + "id": "delivery" + } + ], + "price": 180, + "listPrice": 180, + "shippingEstimate": "25bd", + "dockEstimate": null, + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "deliveryCompany": null, + "polygonName": "", + "transitTime": "25bd", + "sellingPrice": 180, + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": null, + "accountCarrierName": "qastoreecho" + } + ], + "deliveryWindow": null, + "pickupPointId": null, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupDistance": null + } + ] + } + }, + "to": { + "items": [ + { + "uniqueId": "40E763F4378E4F40AD1FE915FE1078E1", + "id": "1", + "productId": "1", + "productRefId": "", + "refId": "codrefxicaraazul", + "ean": "8745121641", + "name": "Blue cup", + "skuName": "cup", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": null, + "tax": 0, + "price": 5000, + "listPrice": null, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 5000, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": null, + "brandId": null, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null, + "categoriesIds": null, + "productClusterId": null, + "commercialConditionId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Category" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://storename.com/arquivos/ids/155394-55-55/cup.jpg?v=636565506415770000", + "detailUrl": "/xicara/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [], + "offerings": [], + "priceTags": [], + "availability": null, + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 5000, + "total": 5000, + "sellingPrices": [ + { + "value": 5000, + "quantity": 1 + } + ] + } + } + ], + "paymentData": { + "transactions": [] + }, + "receiptData": null, + "shippingData": { + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Economic", + "selectedDeliveryChannel": "delivery", + "addressId": "9ec276fd3a604eb1aa151b5333ca5db6", + "slas": [ + { + "id": "Economic", + "deliveryChannel": "delivery", + "name": "Economic", + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 600, + "listPrice": 180, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "3bd" + }, + { + "id": "Pickup", + "deliveryChannel": "delivery", + "name": "Pickup", + "deliveryIds": [ + { + "courierId": "ech018654", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Pickup", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 700, + "listPrice": 700, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + } + ], + "shipsTo": [ + "BRA" + ], + "itemId": "1", + "deliveryChannels": [ + { + "id": "delivery" + } + ], + "price": 600, + "listPrice": 180, + "shippingEstimate": "25bd", + "dockEstimate": null, + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "deliveryCompany": null, + "polygonName": "", + "transitTime": "25bd", + "sellingPrice": 600, + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": null, + "accountCarrierName": "qastoreecho" + } + ], + "deliveryWindow": null, + "pickupPointId": null, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupDistance": null + } + ] + } + } + } + ], + "date": "2024-07-27T17:52:18.6483116Z", + "origin": { + "account": "qastore", + "orderId": "v12772213qst-02", + "component": "MarketplaceComponent" + }, + "settings": { + "customPaymentSystemsAllowed": [ + "201" + ] + } + } + ], + "actions": [] + } + } + } + } + } + } + }, + "/api/order-system/orders/{changeOrderId}/changes/{changeRequestId}": { + "get": { + "tags": [ + "Order modifications" + ], + "summary": "Get order modifications details", + "description": "This endpoint retrieves detailed information about a specific order modification. So after creating multiple modifications, you can get information on each one of them by its `changeRequestId`, the unique identification code generated by the [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) endpoint.\r\n\r\nThe successful status code is `200 OK`, and its response body schema is very similar to the [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) endpoint, with some additional fields:\r\n\r\n- `status`: The modification request status in the workflow, which progresses in the following order:\r\n - `waiting-acknowledgement`\r\n - `waiting-confirmation`\r\n - `done`\r\n - `canceled`\r\n\r\n- `inProgress`: When set as `true`, the order is still progressing in the order flow, when set as `false`, it is complete, whether by cancellation or because the customer received it.\r\n\r\n- `logs`: Lists the workflow processing logs.\r\n\r\n> If you want information about all the modifications made to an order, use the [Get order modifications history](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes) endpoint.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n| OMS | OMS access | **Cancel order** |\r\n| OMS | OMS access | **Change order** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Checkout Admin | Orders Full Access |\r\n| OMS - Full access |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Oms |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Gateway | Cancel order |\r\n| IntegrationProfile - Fulfillment Gateway Oms |

Cancel order

Change order

|\r\n| inStore Sales Person |

Cancel order

Change order

|\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).", + "operationId": "GetChangeDetail", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account that created the order.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "storeName" + } + }, + { + "name": "changeOrderId", + "in": "path", + "description": "Order ID of the order you wish to get the modification detail.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "v12772213qst-02" + } + }, + { + "name": "changeRequestId", + "in": "path", + "description": "Once you make an order modification, you generate a `requestId` code that identifies the modifications made to that order. This field should be filled with that code. There are no limits to modifications you can perform using the same `changeRequestId`, and we recommend keeping all modifications of a given order grouped by the same `changeRequestId`, so you will have a unified modification history.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "e8532a32-7f7e-434a-88ec-29609f0ede46" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "requestId", + "workflowId", + "status", + "inProgress", + "reason", + "manualDiscountValue", + "manualIncrementValue", + "totalChangeValue", + "totals", + "add", + "remove", + "replace", + "date", + "origin", + "settings" + ], + "type": "object", + "properties": { + "requestId": { + "type": "string", + "description": "Unique code that identifies an order modification request." + }, + "workflowId": { + "type": "string", + "description": "Code that identifies the transaction of changing the orders in the [order flow](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196)." + }, + "status": { + "type": "string", + "description": "Order status in the [order flow](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196)." + }, + "inProgress": { + "type": "boolean", + "description": "When set as `true`, the order is still progressing in the [order flow](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196), when set as `false`, it is complete, whether by cancellation or because the customer received it." + }, + "reason": { + "type": "string", + "description": "Reason that motivated the order modifications." + }, + "manualDiscountValue": { + "type": "integer", + "description": "This field shows if a manual price was applied to the total order amount. The value is in cents." + }, + "manualIncrementValue": { + "type": "integer", + "description": "This field shows if an increment value was applied to the total order amount. The value is in cents." + }, + "totalChangeValue": { + "type": "integer", + "description": "This field shows how much is the order total price considering that price modifications might have been made. The value is in cents." + }, + "totals": { + "type": "array", + "description": "Array containing total costs information.", + "items": { + "type": "object", + "description": "Total changing price details for a given type of cost.", + "properties": { + "id": { + "type": "string", + "description": "Changing price type, for example the item price or shipping costs." + }, + "name": { + "type": "string", + "description": "Changing price name." + }, + "value": { + "type": "number", + "description": "Changing price value in cents." + } + } + } + }, + "add": { + "type": "array", + "description": "Array with information about the `add` operation, when applicable. The schema will correspond to the object `to` inside the `replace` array.", + "nullable": true, + "items": { + "type": "string", + "description": "Adding operation information, when applicable." + } + }, + "remove": { + "type": "array", + "description": "Array with information about the `remove` operation, when applicable. The schema will correspond to the object `from` inside the `replace` array.", + "nullable": true, + "items": { + "type": "string", + "description": "Removing operation information, when applicable." + } + }, + "replace": { + "type": "array", + "description": "Array with information about the `replace` operation, when applicable.", + "items": { + "$ref": "#/components/schemas/Replace1" + } + }, + "date": { + "type": "string", + "description": "Date and time of the request in UTC ISO 8601 format, as in `yyyy-mm-ddThh:mm:ss.sssZ`." + }, + "origin": { + "$ref": "#/components/schemas/OriginV2" + }, + "settings": { + "$ref": "#/components/schemas/Settings" + } + } + }, + "example": { + "requestId": "e8532a32-7f7e-434a-88ec-29609f0ede46", + "workflowId": "74f40e7a-68c6-4699-b874-a8a297fb3f6a", + "status": "done", + "inProgress": false, + "reason": "The client did not like the size.", + "manualDiscountValue": 0, + "manualIncrementValue": 0, + "totalChangeValue": 0, + "totals": [ + { + "id": "ManualValues", + "name": "Manual Values Total", + "value": -1000 + } + ], + "add": null, + "remove": null, + "replace": [ + { + "from": { + "paymentData": { + "transactions": [] + }, + "items": [ + { + "id": "31", + "quantity": 1, + "price": 5000, + "measurementUnit": "un", + "unitMultiplier": 1, + "sellingPrice": 5000, + "name": "Small toy", + "detailUrl": "/small-toy-24/p", + "imageUrl": "http://storename.com/arquivos/ids/155431-55-55/image-bdab69af1e5c41cdbc498d02e370b376.jpg?v=636579391945870000" + } + ], + "shippingData": { + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Economic", + "selectedDeliveryChannel": "delivery", + "addressId": "9ec276fd3a604eb1aa151b5333ca5db6", + "slas": [ + { + "id": "Economic", + "deliveryChannel": "delivery", + "name": "Economic", + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "DeliverClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 180, + "listPrice": 180, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "3bd" + }, + { + "id": "Pickup", + "deliveryChannel": "delivery", + "name": "Pickup", + "deliveryIds": [ + { + "courierId": "ech018654", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Pickup", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 700, + "listPrice": 700, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + } + ], + "shipsTo": [ + "BRA" + ], + "itemId": "31", + "deliveryChannels": [ + { + "id": "delivery" + } + ], + "price": 180, + "listPrice": 180, + "shippingEstimate": "25bd", + "dockEstimate": null, + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "deliveryCompany": null, + "polygonName": "", + "transitTime": "25bd", + "sellingPrice": 180, + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": null, + "accountCarrierName": "qastoreecho" + } + ], + "deliveryWindow": null, + "pickupPointId": null, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupDistance": null + } + ] + } + }, + "to": { + "items": [ + { + "uniqueId": "40E763F4378E4F40AD1FE915FE1078E1", + "id": "1", + "productId": "1", + "productRefId": "", + "refId": "codrefxicaraazul", + "ean": "8745121641", + "name": "Blue cup", + "skuName": "cup", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": null, + "tax": 0, + "price": 5000, + "listPrice": null, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 5000, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": null, + "brandId": null, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null, + "categoriesIds": null, + "productClusterId": null, + "commercialConditionId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Category" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://storename.com/arquivos/ids/155394-55-55/cup.jpg?v=636565506415770000", + "detailUrl": "/xicara/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [], + "offerings": [], + "priceTags": [], + "availability": null, + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "firstName": "first-name", + "lastName": "last-name", + "documentType": "cpf", + "document": "123456789", + "phone": "+55110988887777", + "corporateName": null, + "tradeName": null, + "corporateDocument": null, + "stateInscription": null, + "corporatePhone": null, + "isCorporate": false, + "priceDefinition": { + "calculatedSellingPrice": 5000, + "total": 5000, + "sellingPrices": [ + { + "value": 5000, + "quantity": 1 + } + ] + } + } + ], + "paymentData": { + "transactions": [] + }, + "receiptData": null, + "shippingData": { + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Economic", + "selectedDeliveryChannel": "delivery", + "addressId": "9ec276fd3a604eb1aa151b5333ca5db6", + "slas": [ + { + "id": "Economic", + "deliveryChannel": "delivery", + "name": "Economic", + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 600, + "listPrice": 180, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "3bd" + }, + { + "id": "Pickup", + "deliveryChannel": "delivery", + "name": "Pickup", + "deliveryIds": [ + { + "courierId": "ech018654", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Pickup", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 700, + "listPrice": 700, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + } + ], + "shipsTo": [ + "BRA" + ], + "itemId": "1", + "deliveryChannels": [ + { + "id": "delivery" + } + ], + "price": 600, + "listPrice": 180, + "shippingEstimate": "25bd", + "dockEstimate": null, + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "deliveryCompany": null, + "polygonName": "", + "transitTime": "25bd", + "sellingPrice": 600, + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": null, + "accountCarrierName": "qastoreecho" + } + ], + "deliveryWindow": null, + "pickupPointId": null, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupDistance": null + } + ] + } + } + } + ], + "date": "2024-07-27T17:52:18.6483116Z", + "origin": { + "account": "qastore", + "orderId": "v12772213qst-02", + "component": "MarketplaceComponent" + }, + "settings": { + "customPaymentSystemsAllowed": [ + "201" + ] + } + } + } + } + } + } + } + }, + "/api/order-system/orders/{changeOrderId}/changes/preview": { + "post": { + "tags": [ + "Order modifications" + ], + "summary": "Preview order modifications", + "operationId": "PreviewChange", + "description": "This endpoint allows you to simulate an order modification and preview what the real modification will look like if you use the [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) endpoint. A preview is especially useful for more complex scenarios, such as orders with multiple items and combinations of change operations — add, remove, and replace. Ensuring you get the desired results before making the actual modification helps prevent mistakes.\r\n\r\nThe request body is the same one to be used in the [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) endpoint, and the response body of a successful request provides a preview of the order modifications effect.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n| OMS | OMS access | **Cancel order** |\r\n| OMS | OMS access | **Change order** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Checkout Admin | Orders Full Access |\r\n| OMS - Full access |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Oms |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Gateway | Cancel order |\r\n| IntegrationProfile - Fulfillment Gateway Oms |

Cancel order

Change order

|\r\n| inStore Sales Person |

Cancel order

Change order

|\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account that created the order.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "storeName" + } + }, + { + "name": "changeOrderId", + "in": "path", + "description": "Order ID of the order you wish to preview modification.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "v12772213qst-02" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "reason", + "replace" + ], + "type": "object", + "properties": { + "reason": { + "type": "string", + "description": "Reason why you wish to modify the order. Since you can make several modifications to an order, filling this field with a clear explanation helps organize the order modifications history. The shopper can view this field value in [transactional emails](https://help.vtex.com/en/tutorial/order-transactional-email-templates--3g2S2kqBOoSGcCaqMYK2my) and [My Account](https://help.vtex.com/en/tutorial/how-my-account-works--2BQ3GiqhqGJTXsWVuio3Xh).", + "example": "The client wants to change a weighable product." + }, + "replace": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Replace" + }, + "description": "Name of the change operation you are performing, which can be `replace`, `add` or `remove`. If you want, you can combine all change operations in a single request." + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "reason", + "manualDiscountValue", + "manualIncrementValue", + "totalChangeValue", + "totals", + "add", + "remove", + "replace", + "date", + "origin", + "settings" + ], + "properties": { + "reason": { + "type": "string", + "description": "Reason why you wish to modify the order. Since you can make several modifications to an order, filling this field with a clear explanation helps organize the order modifications history. The shopper can view this field value in [transactional emails](https://help.vtex.com/en/tutorial/order-transactional-email-templates--3g2S2kqBOoSGcCaqMYK2my) and [My Account](https://help.vtex.com/en/tutorial/how-my-account-works--2BQ3GiqhqGJTXsWVuio3Xh)." + }, + "manualDiscountValue": { + "type": "integer", + "description": "This field shows if a manual price was applied to the total order amount. The value is in cents." + }, + "manualIncrementValue": { + "type": "integer", + "description": "This field shows if an increment value was applied to the total order amount. The value is in cents." + }, + "totalChangeValue": { + "type": "integer", + "description": "This field shows how much is the order total price considering that price modifications might have been made. The value is in cents." + }, + "totals": { + "type": "array", + "description": "Array containing total costs information.", + "items": { + "type": "object", + "description": "Total changing price details for a given type of cost.", + "properties": { + "id": { + "type": "string", + "description": "Changing price type, for example the item price or shipping costs." + }, + "name": { + "type": "string", + "description": "Changing price name." + }, + "value": { + "type": "number", + "description": "Changing price value in cents." + } + } + } + }, + "add": { + "type": "array", + "description": "Array with information about the `add` operation, when applicable. The schema will correspond to the object `to` inside the `replace` array.", + "nullable": true, + "items": { + "type": "string", + "description": "Adding operation information, when applicable." + } + }, + "remove": { + "type": "array", + "description": "Array with information about the `remove` operation, when applicable. The schema will correspond to the object `from` inside the `replace` array.", + "nullable": true, + "items": { + "type": "string", + "description": "Removing operation information, when applicable." + } + }, + "replace": { + "type": "array", + "description": "Array with information about the `replace` operation, when applicable.", + "items": { + "type": "object", + "description": "Replacing operation object.", + "required": [ + "from", + "to" + ], + "properties": { + "from": { + "$ref": "#/components/schemas/From2" + }, + "to": { + "$ref": "#/components/schemas/To2" + } + } + } + }, + "date": { + "type": "string", + "description": "Date and time of the request in UTC ISO 8601 format, as in `yyyy-mm-ddThh:mm:ss.sssZ`." + }, + "origin": { + "$ref": "#/components/schemas/OriginV2" + }, + "settings": { + "$ref": "#/components/schemas/Settings" + } + } + }, + "example": { + "reason": "I would like to receive a preview.", + "manualDiscountValue": 0, + "manualIncrementValue": 0, + "totalChangeValue": 420, + "totals": [ + { + "id": "ManualValues", + "name": "Manual Values Total", + "value": 0 + }, + { + "id": "Shipping", + "name": "Shipping Total", + "value": 420 + } + ], + "add": null, + "remove": null, + "replace": [ + { + "from": { + "paymentData": { + "transactions": [] + }, + "items": [ + { + "id": "31", + "quantity": 1, + "price": 5000, + "measurementUnit": "un", + "unitMultiplier": 1, + "sellingPrice": 5000, + "name": "Small toy", + "detailUrl": "/small-toy-24/p", + "imageUrl": "http://storename.com/arquivos/ids/155431-55-55/image-bdab69af1e5c41cdbc498d02e370b376.jpg?v=636579391945870000" + } + ], + "shippingData": { + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Economic", + "selectedDeliveryChannel": "delivery", + "addressId": "9ec276fd3a604eb1aa151b5333ca5db6", + "slas": [ + { + "id": "Economic", + "deliveryChannel": "delivery", + "name": "Economic", + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "DeliverClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 180, + "listPrice": 180, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "3bd" + }, + { + "id": "Pickup", + "deliveryChannel": "delivery", + "name": "Pickup", + "deliveryIds": [ + { + "courierId": "ech018654", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Pickup", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 700, + "listPrice": 700, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + } + ], + "shipsTo": [ + "BRA" + ], + "itemId": "31", + "deliveryChannels": [ + { + "id": "delivery" + } + ], + "price": 180, + "listPrice": 180, + "shippingEstimate": "25bd", + "dockEstimate": null, + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "deliveryCompany": null, + "polygonName": "", + "transitTime": "25bd", + "sellingPrice": 180, + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": null, + "accountCarrierName": "qastoreecho" + } + ], + "deliveryWindow": null, + "pickupPointId": null, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupDistance": null + } + ] + } + }, + "to": { + "items": [ + { + "uniqueId": "40E763F4378E4F40AD1FE915FE1078E1", + "id": "1", + "productId": "1", + "productRefId": "", + "refId": "codrefxicaraazul", + "ean": "8745121641", + "name": "Blue cup", + "skuName": "cup", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": null, + "tax": 0, + "price": 5000, + "listPrice": null, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 5000, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": null, + "brandId": null, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null, + "categoriesIds": null, + "productClusterId": null, + "commercialConditionId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Category" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://storename.com/arquivos/ids/155394-55-55/cup.jpg?v=636565506415770000", + "detailUrl": "/xicara/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [], + "offerings": [], + "priceTags": [], + "availability": null, + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 5000, + "total": 5000, + "sellingPrices": [ + { + "value": 5000, + "quantity": 1 + } + ] + } + } + ], + "paymentData": { + "transactions": [] + }, + "receiptData": null, + "shippingData": { + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Economic", + "selectedDeliveryChannel": "delivery", + "addressId": "9ec276fd3a604eb1aa151b5333ca5db6", + "slas": [ + { + "id": "Economic", + "deliveryChannel": "delivery", + "name": "Economic", + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 600, + "listPrice": 180, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "CourierClass", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "3bd" + }, + { + "id": "Pickup", + "deliveryChannel": "delivery", + "name": "Pickup", + "deliveryIds": [ + { + "courierId": "ech018654", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Pickup", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 700, + "listPrice": 700, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + } + ], + "shipsTo": [ + "BRA" + ], + "itemId": "1", + "deliveryChannels": [ + { + "id": "delivery" + } + ], + "price": 600, + "listPrice": 180, + "shippingEstimate": "25bd", + "dockEstimate": null, + "shippingEstimateDate": "2024-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "deliveryCompany": null, + "polygonName": "", + "transitTime": "25bd", + "sellingPrice": 600, + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": null, + "accountCarrierName": "qastoreecho" + } + ], + "deliveryWindow": null, + "pickupPointId": null, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupDistance": null + } + ] + } + } + } + ], + "date": "2024-07-27T17:52:18.6483116Z", + "origin": { + "account": "qastore", + "orderId": "v12772213qst-02", + "component": "MarketplaceComponent" + }, + "settings": { + "customPaymentSystemsAllowed": [ + "201" + ] + } + } + } + } + } + } + } + }, + "/api/order-system/orders/{changeOrderId}/changes/{changeRequestId}/retry": { + "post": { + "tags": [ + "Order modifications" + ], + "summary": "Retry order modifications", + "operationId": "RetryChange", + "description": "This endpoint makes a new attempt to perform an order modification previously made using the [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) endpoint that, for some reason, was not completely processed.\r\n\r\nTo make this request, you need the `changeRequestId`, a unique change identification code that you get when you make a [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) request. When you retry to modify an order using the `changeRequestId`, instead of creating a new modification, you avoid duplications.\r\n\r\nThis endpoint's successful response status code is `204 No Content`, therefore with no response body.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n| OMS | OMS access | **Cancel order** |\r\n| OMS | OMS access | **Change order** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Checkout Admin | Orders Full Access |\r\n| OMS - Full access |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Oms |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Gateway | Cancel order |\r\n| IntegrationProfile - Fulfillment Gateway Oms |

Cancel order

Change order

|\r\n| inStore Sales Person |

Cancel order

Change order

|\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account that created the order.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "storeName" + } + }, + { + "name": "changeOrderId", + "in": "path", + "description": "Order ID of the order you wish to retry modification.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "v12772213qst-02" + } + }, + { + "name": "changeRequestId", + "in": "path", + "description": "Once you make an order modification, you generate a `requestId` code that identifies the modifications made to that order. This field should be filled with that code.\r\n\r\nThere are no limits to modifications you can perform using the same `changeRequestId`, and we recommend keeping all modifications of a given order grouped by the same `changeRequestId`, so you will have a unified modification history.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "e8532a32-7f7e-434a-88ec-29609f0ede46" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Createchange" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/api/order-system/orders/{changeOrderId}/changes/{changeRequestId}/cancel": { + "post": { + "tags": [ + "Order modifications" + ], + "summary": "Cancel order modifications", + "operationId": "CancelChangeStoppedonError", + "description": "This endpoint cancels an [order modification](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes). It is meant for when, due to an error, a modification was not completely processed, and you do not wish to [retry](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-/retry) it. For this request, you need the order's `changeRequestId`, the unique identification code generated by the [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) endpoint.\r\n\r\n>⚠️ Once an order modification has been successfully processed, canceling it is no longer possible. If you wish to revert the modifications made to an order, you will have to [create a new order modification](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n| OMS | OMS access | **Cancel order** |\r\n| OMS | OMS access | **Change order** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Checkout Admin | Orders Full Access |\r\n| OMS - Full access |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Oms |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Gateway | Cancel order |\r\n| IntegrationProfile - Fulfillment Gateway Oms |

Cancel order

Change order

|\r\n| inStore Sales Person |

Cancel order

Change order

|\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "Name of the VTEX account that created the order.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "storeName" + } + }, + { + "name": "changeOrderId", + "in": "path", + "description": "Order ID of the order with the modifications you wish to cancel.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "v12772213qst-02" + } + }, + { + "name": "changeRequestId", + "in": "path", + "description": "Once you make an order modification, you generate a `requestId` code that identifies the modifications made to that order. This field should be filled with that code. After cancelling an order modification, the `changeRequestId` will no longer be valid.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "e8532a32-7f7e-434a-88ec-29609f0ede46" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "reason" + ], + "properties": { + "reason": { + "type": "string", + "description": "Reason why you wish to cancel the order modification. The customer will not view the value inserted in this field.", + "example": "I want to cancel this order modification request because it's stopped on a blocking error." + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/order-system/orders/changes/settings": { + "put": { + "tags": [ + "Order modifications" + ], + "summary": "Update Order modifications settings", + "description": "Updates the [Order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) settings from a store.\r\n\r\n>ℹ️ To know more about **Order modifications**, see [How Order modifications works](https://help.vtex.com/en/tutorial/how-change-order-works-beta--56TO0bOFXsfmpc7YZ3wIUZ).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/authentication-overview#api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n| OMS | OMS access | **Cancel order** |\r\n| OMS | OMS access | **Change order** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Checkout Admin | Orders Full Access |\r\n| OMS - Full access |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Oms |

Cancel order

Change order

|\r\n| IntegrationProfile - Fulfillment Gateway | Cancel order |\r\n| IntegrationProfile - Fulfillment Gateway Oms |

Cancel order

Change order

|\r\n| inStore Sales Person |

Cancel order

Change order

|\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "VTEX [account name](https://help.vtex.com/en/tutorial/what-is-an-account-name--i0mIGLcg3QyEy8OCicEoC).", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "storename" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "paymentConfiguration": { + "type": "object", + "description": "[Order modifications](https://help.vtex.com/en/tutorial/how-change-order-works-beta--56TO0bOFXsfmpc7YZ3wIUZ) payment configurations.", + "properties": { + "customPaymentSystemsAllowed": { + "type": "array", + "description": "List of custom payment system IDs configured for the VTEX account.", + "items": { + "type": "string", + "description": "Payment system ID.", + "example": "201" + } + } + } + }, + "rolloutConfiguration": { + "type": "object", + "description": "**Order modifications** settings regarding VTEX Admin, [Orders API](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes?endpoint=patch-/api/order-system/orders/-changeOrderId-/changes) and **My Account** feature.", + "properties": { + "enableApi": { + "type": "boolean", + "description": "Defines if the account enabled the [Order modifications API](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) (`true`) or not (`false`). The account can only use the [Order modifications via VTEX Admin](https://help.vtex.com/en/tutorial/how-to-change-orders-beta--7btlG91rb6sHpW1dkd2kBw) or [via API](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) if this field is set to `true`.", + "default": false, + "example": true + }, + "enableAdminOrders": { + "type": "object", + "description": "Object about enabling the [Order modifications feature via VTEX Admin](https://help.vtex.com/en/tutorial/how-to-change-orders-beta--7btlG91rb6sHpW1dkd2kBw).", + "properties": { + "enabledWorkspaces": { + "type": "array", + "description": "List with the workspaces' names that have the **Order modifications** feature enabled via VTEX Admin.", + "items": { + "type": "string", + "description": "Name of the workspace with **Order modifications** enabled via VTEX Admin. The asterisk `*` value includes all of the account's workspaces.", + "example": "*" + } + } + } + }, + "enableMyOrders": { + "type": "object", + "description": "Object about enabling the **Order modifications** feature via [My Account](https://help.vtex.com/en/tutorial/how-my-account-works--2BQ3GiqhqGJTXsWVuio3Xh).", + "properties": { + "enabledWorkspaces": { + "type": "array", + "description": "List with the workspaces' names that have the **Order modifications** feature enabled via **My Account**.", + "items": { + "type": "string", + "description": "Name of the workspace with **Order modifications** enabled via **My Account**. The asterisk `*` value includes all of the account's workspaces.", + "example": "storename" + } + } + } + } + } + }, + "pipelineConfiguration": { + "type": "object", + "description": "**Order modifications** settings related to taxes and shipping calculation.", + "properties": { + "enableTaxHubRecalculation": { + "type": "boolean", + "description": "Defines if the tax calculation is enabled for **Order modifications** (`true`) or not (`false`).", + "default": false, + "example": false + }, + "compensateShippingChanges": { + "type": "boolean", + "description": "Defines if the orders modified will have zero shipping cost (`true`) or not (`false`). Merchants can enable this configuration to modify only items and prices, without impacting the orders' original freight costs.", + "default": false, + "example": true + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeOrderSettingsResponse" + }, + "example": { + "paymentConfiguration": { + "customPaymentSystemsAllowed": [ + "201", + "125" + ] + }, + "rolloutConfiguration": { + "usingDefaultBehavior": false, + "enableApi": true, + "enableAdminOrders": { + "enabledWorkspaces": [ + "*" + ] + }, + "enableMyOrders": { + "enabledWorkspaces": [ + "*" + ] + } + }, + "pipelineConfiguration": { + "enableTaxHubRecalculation": false, + "compensateShippingChanges": true + } + } + } + } + } + }, + "operationId": "put_api_orderSystem_orders_changes_settings" + }, + "get": { + "tags": [ + "Order modifications" + ], + "summary": "Get Order modifications settings", + "description": "Retrieves the [Order modifications settings](https://developers.vtex.com/docs/api-reference/orders-api#put-/api/order-system/orders/changes/settings) from a store.\r\n\r\n>ℹ️ To know more about **Order modifications**, see [How Order modifications works](https://help.vtex.com/en/tutorial/how-change-order-works-beta--56TO0bOFXsfmpc7YZ3wIUZ).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n\r\nYou can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| OMS - Full access | View order |\r\n| Checkout Admin | View order |\r\n| IntegrationProfile - Fulfillment Oms | View order |\r\n| OMS - Full access | Orders Full Access |\r\n| Checkout Admin | Orders Full Access |\r\n| IntegrationProfile - Fulfillment Oms | Orders Full Access |\r\n\r\n>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm). To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).", + "parameters": [ + { + "name": "an", + "in": "query", + "description": "VTEX [account name](https://help.vtex.com/en/tutorial/what-is-an-account-name--i0mIGLcg3QyEy8OCicEoC).", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "mystore" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeOrderSettingsResponse" + }, + "example": { + "paymentConfiguration": { + "customPaymentSystemsAllowed": [ + "201", + "125" + ] + }, + "rolloutConfiguration": { + "usingDefaultBehavior": false, + "enableApi": true, + "enableAdminOrders": { + "enabledWorkspaces": [ + "*" + ] + }, + "enableMyOrders": { + "enabledWorkspaces": [ + "*" + ] + } + }, + "pipelineConfiguration": { + "enableTaxHubRecalculation": false, + "compensateShippingChanges": true + } + } + } + } + } + }, + "operationId": "get_api_orderSystem_orders_changes_settings" + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "schemas": { + "Createchange": { + "required": [ + "reason" + ], + "type": "object", + "properties": { + "reason": { + "type": "string", + "description": "Reason why you wish to modify order. Since you can make several modifications to an order, filling this field with a clear explanation helps organize the order modifications history. The shopper can view this field value in [transactional emails](https://help.vtex.com/en/tutorial/order-transactional-email-templates--3g2S2kqBOoSGcCaqMYK2my) and [My Account](https://help.vtex.com/en/tutorial/how-my-account-works--2BQ3GiqhqGJTXsWVuio3Xh).", + "example": "The client wants to change a weighable product." + }, + "replace": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Replace" + }, + "description": "Array containing `replace` change information. Besides `replace`, you can `add` or `remove` items from an order.\r\n\r\n- `add`: the schema will correspond to the object `to` inside the `replace` array.\r\n\r\n- `remove`: the schema will correspond to the object `from` inside the `replace` array.\r\n\r\nYou will find request body examples of both cases in the endpoint description on the top of the page. The successful response `202 - Accepted` schema is the same for all three operations, whether they are used separately or combined in the same request." + } + } + }, + "Replace": { + "required": [ + "from", + "to" + ], + "type": "object", + "description": "Replacing operation object.", + "properties": { + "from": { + "required": [ + "items" + ], + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "required": [ + "id", + "quantity" + ], + "type": "object", + "description": "Information about item being modified.", + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item that will be modified.", + "example": "1" + }, + "uniqueId": { + "type": "string", + "description": "Unique ID of the item being modified. This field is mandatory when modifying an order that contains items with the same `id`.", + "example": "1D6A12BD177140B2BAF0C042D2FAEE54" + }, + "quantity": { + "type": "integer", + "description": "Quantity of the item being modified. Must be greater than 0.", + "example": 1 + }, + "price": { + "type": "integer", + "description": "Price of the item being changed in cents. Must be 0 or greater.", + "example": 2499 + } + } + }, + "description": "Array with information about the item to be replaced." + }, + "customData": { + "type": "object", + "description": "Object with information about the custom data.", + "properties": { + "customFields": { + "type": "array", + "description": "Array with information about the custom fields.", + "items": { + "type": "object", + "description": "Object with information about the custom fields.", + "properties": { + "linkedEntity": { + "type": "object", + "description": "Object with information about the linked entity. If you wish to modify the linked entity `type` and `id`, you must first use this endpoint to `remove` the old `type` and `id`, then you call this same endpoint to `add` the new `type` and `id`.", + "properties": { + "type": { + "type": "string", + "description": "Type of the linked entity such as `cart`, `item`, `address`.", + "example": "item" + }, + "id": { + "type": "string", + "description": "ID of the linked entity.", + "example": "B2949D0A45244825B177D2F9F96DC711" + } + } + }, + "fields": { + "type": "array", + "description": "Array with information about the custom field's name and value.", + "items": { + "type": "object", + "description": "Object with information about the custom field's name and value. If you wish to modify the custom field's `name` and `value`, you must use the original `name` and `value` on the object `to` inside the `replace` array and use the updated `name` and `value` on the object `from` inside the `replace` array.", + "properties": { + "name": { + "type": "string", + "description": "Name of the custom field.", + "example": "desktop" + }, + "value": { + "type": "string", + "description": "Value of the custom field.", + "example": "DSK-OLD" + } + } + } + } + } + } + } + } + } + }, + "description": "Object with information about the items been replaced. If instead of an order `replace` you wish to `remove` items, you will use the same schema naming the object `remove` instead of `from`. For a complete example, see the description at the top of the page." + }, + "to": { + "required": [ + "items" + ], + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "required": [ + "id", + "quantity" + ], + "type": "object", + "description": "Replacing item details.", + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item that will replace the previous one. If you only wish to replace the product weight, you will repeat the SKU ID used in `from`.", + "example": "1" + }, + "uniqueId": { + "type": "string", + "description": "Unique ID of the item being modified. This field is mandatory when modifying an order that contains items with the same `id`.", + "example": "1D6A12BD177140B2BAF0C042D2FAEE54" + }, + "quantity": { + "type": "integer", + "description": "Updated quantity of the item being modified. Must be greater than 0.", + "example": 1 + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit of the new item. The values accepted are the measurement units registered in the store's catalog. For example, `kg` for kilograms or `un` for unitary items. When you don't specify a value, the request gets the information from the Catalog.", + "example": "kg" + }, + "unitMultiplier": { + "type": "number", + "description": "Unit multiplier for item update. For example, if you wish to increase an order with three times more items than a single one, you would fill in with `3.0`.", + "example": 3 + }, + "manualDiscountValue": { + "type": "integer", + "description": "This field shows if a manual price was applied to the total order amount. The value is in cents. Must be 0 or greater.", + "example": 0 + }, + "manualIncrementValue": { + "type": "integer", + "description": "This field shows if an increment value was applied to the total order amount. The value is in cents. Must be 0 or greater.", + "example": 0 + }, + "clientProfileData": { + "type": "array", + "items": { + "type": "object", + "description": "Object with information on the client's profile.", + "properties": { + "firstName": { + "type": "string", + "description": "Customer's first name.", + "example": "first-name" + }, + "lastName": { + "type": "string", + "description": "Customer's last name.", + "example": "last-name" + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer.", + "example": "cpf" + }, + "document": { + "type": "string", + "description": "Document number informed by the customer.", + "example": "123456789" + }, + "phone": { + "type": "string", + "description": "Customer's phone number.", + "example": "55110988887777" + }, + "corporateName": { + "type": "string", + "description": "If it's a legal entity, here goes the company name.", + "example": null + }, + "tradeName": { + "type": "string", + "description": "If it's a legal entity, here goes the trade name.", + "example": null + }, + "corporateDocument": { + "type": "string", + "description": "If it's a legal entity, here goes the corporate document.", + "example": null + }, + "stateInscription": { + "type": "string", + "description": "If it's a legal entity, here goes the state inscription.", + "example": null + }, + "corporatePhone": { + "type": "string", + "description": "If it's a legal entity, here goes the company phone.", + "example": null + }, + "isCorporate": { + "type": "boolean", + "description": "It has the value `true` if it's a legal entity.", + "example": false + } + } + } + } + } + }, + "description": "Array with information about the replacing items." + }, + "customData": { + "type": "object", + "description": "Object with information about the custom data.", + "properties": { + "customFields": { + "type": "array", + "description": "Array with information about the custom fields.", + "items": { + "type": "object", + "description": "Object with information about the custom fields.", + "properties": { + "linkedEntity": { + "type": "object", + "description": "Object with information about the linked entity. If you wish to modify the linked entity `type` and `id`, you must first use this endpoint to `remove` the old `type` and `id`, then you call this same endpoint to `add` the new `type` and `id`.", + "properties": { + "type": { + "type": "string", + "description": "Type of the linked entity such as `cart`, `item`, `address`.", + "example": "item" + }, + "id": { + "type": "string", + "description": "ID of the linked entity.", + "example": "B2949D0A45244825B177D2F9F96DC711" + } + } + }, + "fields": { + "type": "array", + "description": "Array with information about the custom field's name and value.", + "items": { + "type": "object", + "description": "Object with information about the custom field's name and value. If you wish to modify the custom field's `name` and `value`, you must use the original `name` and `value` on the object `to` inside the `replace` array and use the updated `name` and `value` on the object `from` inside the `replace` array.", + "properties": { + "name": { + "type": "string", + "description": "Name of the custom field.", + "example": "desktop" + }, + "value": { + "type": "string", + "description": "Value of the custom field.", + "example": "DSK-NEW" + } + } + } + } + } + } + } + } + }, + "shippingData": { + "required": [ + "logisticsInfo" + ], + "type": "object", + "description": "Shipping data object.", + "properties": { + "logisticsInfo": { + "type": "array", + "items": { + "required": [ + "itemIndex", + "selectedSla", + "selectedDeliveryChannel", + "addressId", + "price" + ], + "type": "object", + "description": "Shipping details of the modified order.", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index that identifies the position of this item in the original array, starting from `0`.", + "example": 0 + }, + "selectedSla": { + "type": "string", + "description": "Shipping method of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) used in the order.", + "example": "Normal" + }, + "selectedDeliveryChannel": { + "type": "string", + "description": "Order shipping type, which can be `pickup-in-point` for [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R), and `delivery` for delivery.", + "enum": [ + "delivery", + "pickup-in-point" + ], + "example": "delivery" + }, + "addressId": { + "type": "string", + "description": "Shipping address ID.", + "example": "9ec276fd3a604eb1aa151b5333ca5db7" + }, + "price": { + "type": "integer", + "description": "Shipping price for the item in cents. Does not account for the whole order's shipping price.", + "example": 1000 + } + } + }, + "description": "Array containing information about the shipping address of the modified order. This field is optional, when you don't send it the request body, the system assumes there were no modifications in shipping." + } + } + } + }, + "description": "Object with information about the new replacing items. If instead of an order `replace` you wish to `add` items, you will use the same schema naming the object `add` instead of `to`. For a complete example, see the description at the top of the page." + } + } + }, + "response202": { + "required": [ + "requestId", + "workflowId", + "reason", + "manualDiscountValue", + "manualIncrementValue", + "totalChangeValue", + "totals", + "add", + "remove", + "replace", + "date", + "origin", + "settings" + ], + "type": "object", + "properties": { + "requestId": { + "type": "string", + "description": "Unique code that identifies an order modification request." + }, + "workflowId": { + "type": "string", + "description": "Code that identifies the transaction of modifying the orders in the [order flow](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196)." + }, + "reason": { + "type": "string", + "description": "Reason that motivated the order modifications." + }, + "manualDiscountValue": { + "type": "integer", + "description": "This field shows if a manual price was applied to the total order amount. The value is in cents." + }, + "manualIncrementValue": { + "type": "integer", + "description": "This field shows if an increment value was applied to the total order amount. The value is in cents." + }, + "totalChangeValue": { + "type": "integer", + "description": "This field shows how much the order total price is considering that price modifications might have been made. The value is in cents." + }, + "totals": { + "type": "array", + "items": { + "type": "string", + "description": "Item changing price details." + }, + "description": "Array containing information about change prices per item." + }, + "add": { + "type": "array", + "description": "Array with information about the `add` operation, when applicable. The schema will correspond to the object `to` inside the `replace` array.", + "nullable": true, + "items": { + "type": "string", + "description": "Adding details." + } + }, + "remove": { + "type": "array", + "description": "Array with information about the `remove` operation, when applicable. The schema will correspond to the object `from` inside the `replace` array.", + "nullable": true, + "items": { + "type": "string", + "description": "Removal details." + } + }, + "replace": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Replace1" + }, + "description": "Array with information about the `replace` operation, when applicable.", + "nullable": true + }, + "date": { + "type": "string", + "description": "Date and time of the request. The value is in UTC ISO 8601 format `yyyy-mm-ddThh:mm:ss.sssZ`." + }, + "origin": { + "$ref": "#/components/schemas/OriginV2" + }, + "settings": { + "$ref": "#/components/schemas/Settings" + } + } + }, + "Replace1": { + "required": [ + "from", + "to" + ], + "type": "object", + "description": "Details about what will be replaced.", + "properties": { + "from": { + "required": [ + "paymentData", + "items", + "shippingData" + ], + "type": "object", + "properties": { + "paymentData": { + "$ref": "#/components/schemas/PaymentDataV2" + }, + "items": { + "type": "array", + "description": "Array with items information.", + "items": { + "required": [ + "id", + "quantity", + "price", + "measurementUnit", + "unitMultiplier", + "sellingPrice", + "name", + "detailUrl", + "imageUrl" + ], + "type": "object", + "description": "Details about a given item.", + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item being replaced." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items been replaced." + }, + "price": { + "type": "integer", + "nullable": true, + "description": "Shipping price for the replaced item, in cents. It does not account for the whole order's shipping price." + }, + "measurementUnit": { + "type": "string", + "nullable": true, + "description": "Measurement unit of the item being replaced. For example, `kg` for kilograms or `un` for unitary items." + }, + "unitMultiplier": { + "type": "integer", + "description": "Unit multiplier for item being updated." + }, + "sellingPrice": { + "type": "string", + "description": "Selling price of the item being replaced.", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true, + "description": "Name of the item being replaced." + }, + "detailUrl": { + "type": "string", + "nullable": true, + "description": "URL slug of the item being replaced." + }, + "imageUrl": { + "type": "string", + "nullable": true, + "description": "Image URL slug of the item being replaced." + } + } + } + }, + "shippingData": { + "$ref": "#/components/schemas/ShippingData1" + } + }, + "description": "Information about what items were replaced." + }, + "to": { + "required": [ + "items", + "paymentData", + "receiptData", + "shippingData" + ], + "type": "object", + "description": "Information about items that replaced the previous one.", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Item3" + }, + "description": "Array containing information about the item replacing the previous one." + }, + "paymentData": { + "$ref": "#/components/schemas/PaymentDataV2" + }, + "receiptData": { + "type": "object", + "nullable": true, + "description": "Information about the receipt after order modifications." + }, + "shippingData": { + "type": "object", + "description": "Shipping data object.", + "required": [ + "logisticsInfo" + ], + "properties": { + "logisticsInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogisticsInfo1" + }, + "description": "Array with shipping information." + } + } + }, + "clientProfileData": { + "type": "array", + "items": { + "type": "object", + "description": "Object with information on the client's profile.", + "properties": { + "firstName": { + "type": "string", + "description": "Customer's first name." + }, + "lastName": { + "type": "string", + "description": "Customer's last name." + }, + "documentType": { + "type": "string", + "description": "Type of the document informed by the customer." + }, + "document": { + "type": "string", + "description": "Document number informed by the customer." + }, + "phone": { + "type": "string", + "description": "Customer's phone number." + }, + "corporateName": { + "type": "string", + "description": "If it's a legal entity, here goes the company name." + }, + "tradeName": { + "type": "string", + "description": "If it's a legal entity, here goes the trade name." + }, + "corporateDocument": { + "type": "string", + "description": "If it's a legal entity, here goes the corporate document." + }, + "stateInscription": { + "type": "string", + "description": "If it's a legal entity, here goes the state inscription." + }, + "corporatePhone": { + "type": "string", + "description": "If it's a legal entity, here goes the company phone." + }, + "isCorporate": { + "type": "boolean", + "description": "It has the value `true` if it's a legal entity." + } + } + } + } + } + } + } + }, + "PaymentDataV2": { + "type": "object", + "description": "Payment data object.", + "required": [ + "transactions" + ], + "properties": { + "transactions": { + "type": "array", + "description": "Information about financial transactions.", + "items": { + "type": "string", + "description": "Array containing financial information. This is an optional field.", + "example": "creditcard" + } + } + } + }, + "ShippingData1": { + "description": "Shipping data object.", + "required": [ + "logisticsInfo" + ], + "type": "object", + "properties": { + "logisticsInfo": { + "type": "array", + "description": "Array with logistics information about the order been replaced. If not sent in the original request, it will be an empty array in the response.", + "items": { + "type": "string", + "description": "Logistics details." + } + } + } + }, + "Item3": { + "type": "object", + "description": "Object with item details.", + "required": [ + "uniqueId", + "id", + "productId", + "productRefId", + "refId", + "ean", + "name", + "skuName", + "modalType", + "parentItemIndex", + "parentAssemblyBinding", + "assemblies", + "priceValidUntil", + "tax", + "price", + "listPrice", + "manualPrice", + "manualPriceAppliedBy", + "sellingPrice", + "rewardValue", + "isGift", + "additionalInfo", + "preSaleDate", + "productCategoryIds", + "productCategories", + "quantity", + "seller", + "sellerChain", + "imageUrl", + "detailUrl", + "components", + "bundleItems", + "attachments", + "attachmentOfferings", + "offerings", + "priceTags", + "availability", + "measurementUnit", + "unitMultiplier", + "manufacturerCode", + "priceDefinition" + ], + "properties": { + "uniqueId": { + "type": "string", + "description": "Item's unique ID in the order modifications request.", + "example": "40E763F4378E4F40AD1FE915FE1078E1" + }, + "id": { + "type": "string", + "description": "SKU ID of the item replacing the previous one.", + "example": "3" + }, + "productId": { + "type": "string", + "nullable": true, + "description": "Product ID of the item replacing the previous one.", + "example": "7" + }, + "productRefId": { + "type": "string", + "nullable": true, + "description": "Product Ref ID of the item replacing the previous one.", + "example": "smallcup" + }, + "refId": { + "type": "string", + "nullable": true, + "description": "Reference ID of the item replacing the previous one.", + "example": "356" + }, + "ean": { + "type": "string", + "nullable": true, + "description": "European Article Number (EAN) of the item replacing the previous one.", + "example": "8745121641680" + }, + "name": { + "type": "string", + "nullable": true, + "description": "Name of the Product associated with the item replacing the previous one.", + "example": "Small cup of coffee with pink logo" + }, + "skuName": { + "type": "string", + "nullable": true, + "description": "Name of the SKU replacing the previous one.", + "example": "Small blue cup" + }, + "modalType": { + "type": "string", + "nullable": true, + "description": "A [modal](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) attaches an unusual product, such as meat or glass, to a carrier specialized in shipping it.", + "example": "GLASS" + }, + "parentItemIndex": { + "type": "integer", + "nullable": true, + "description": "Parent item index of the item replacing the previous one.", + "example": 0 + }, + "parentAssemblyBinding": { + "type": "string", + "nullable": true, + "description": "Parent assembly binding of the item replacing the previous one.", + "example": null + }, + "assemblies": { + "type": "array", + "description": "Array with information about services that may be offered for the item replacing the previous one. For example, the assembly of a piece of furniture or warranty.", + "nullable": true, + "items": { + "type": "string", + "description": "Customization information." + } + }, + "priceValidUntil": { + "type": "string", + "nullable": true, + "description": "Price expiration date of item replacing the previous one. The value is in the format `yyyy-mm-ddThh:mm:ss.sss`.", + "example": "2023-03-01T22:58:28.143" + }, + "tax": { + "type": "integer", + "description": "Tax in cents of the item replacing the previous one, when applicable.", + "example": 0 + }, + "price": { + "type": "integer", + "nullable": true, + "description": "Final price of the item replacing the previous one, calculated in cents.", + "example": 600 + }, + "listPrice": { + "type": "integer", + "nullable": true, + "description": "Item's price list for the item replacing the previous one.", + "example": 600 + }, + "manualPrice": { + "type": "integer", + "nullable": true, + "description": "Manual price of the item replacing the previous one. It is calculated in cents.", + "example": 6500 + }, + "manualPriceAppliedBy": { + "type": "string", + "nullable": true, + "description": "User ID or appKey that made the manual price modification of the item replacing the previous one.", + "example": "4cc81d44-e42e-464b-8199-1e883bf4ab6b" + }, + "sellingPrice": { + "type": "integer", + "nullable": true, + "description": "Selling price of the item replacing the previous one. It is calculated in cents.", + "example": 600 + }, + "rewardValue": { + "type": "integer", + "description": "Reward value of the item replacing the previous one. It is calculated in cents.", + "example": 50 + }, + "isGift": { + "type": "boolean", + "description": "This field is `true` when the replacing item is a gift in the order context and `false` when it is not.", + "example": false + }, + "additionalInfo": { + "$ref": "#/components/schemas/AdditionalInfoV2" + }, + "preSaleDate": { + "type": "string", + "nullable": true, + "description": "Pre sale date of the item replacing the previous one.", + "example": "2023-01-01T00:00:00.0000000+00:00" + }, + "productCategoryIds": { + "type": "string", + "nullable": true, + "description": "Replacing item's category path composed of category IDs separated by `/`. For example: `/3/15/`.", + "example": "/2/" + }, + "productCategories": { + "type": "object", + "description": "Object containing product categories of the replacing item. Structure: `{CategoryID}: {CategoryName}`. Both the key and the value are strings.", + "example": { + "2": "Clothes" + } + }, + "quantity": { + "type": "integer", + "description": "Quantity of replacing items.", + "example": 1 + }, + "seller": { + "type": "string", + "nullable": true, + "description": "Seller ID that identifies the seller the replacing item belongs to.", + "example": "1" + }, + "sellerChain": { + "type": "array", + "description": "Array containing information about sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://developers.vtex.com/docs/guides/multilevel-omnichannel-inventory) order.", + "nullable": true, + "items": { + "type": "string", + "description": "Seller identification.", + "nullable": true + } + }, + "imageUrl": { + "type": "string", + "nullable": true, + "description": "Image URL slug of the replacing item.", + "example": "http://store.com.br/ids/155419-55-55//cupcoffee.png?v=6368858582363" + }, + "detailUrl": { + "type": "string", + "nullable": true, + "description": "URL slug of the replacing item.", + "example": "/cup-coffee/p" + }, + "components": { + "type": "array", + "items": { + "type": "string", + "description": "Replacing item's component." + }, + "description": "Array with information about replacing item's components." + }, + "bundleItems": { + "type": "array", + "items": { + "type": "string", + "description": "Service sold with the replacing item." + }, + "description": "Array with information about services sold along with the replacing item, such as a gift package." + }, + "attachments": { + "type": "array", + "items": { + "type": "string", + "description": "Information about a given attachment." + }, + "description": "Array containing information on attachments." + }, + "attachmentOfferings": { + "type": "array", + "items": { + "type": "string", + "description": "Information about a given offering." + }, + "description": "Array with the properties of the content declared in the field `attachments`." + }, + "offerings": { + "type": "array", + "items": { + "type": "string", + "description": "Item's offering." + }, + "description": "Array with replacing items Item's offerings." + }, + "priceTags": { + "type": "array", + "items": { + "type": "string", + "description": "Item modifier." + }, + "description": "Array containing objects with replacing item's price modifiers." + }, + "availability": { + "type": "string", + "nullable": true, + "description": "Availability to fulfill the order with the item.", + "example": "available" + }, + "measurementUnit": { + "type": "string", + "description": "Replacing item's measurement unit.", + "example": "un" + }, + "unitMultiplier": { + "type": "integer", + "description": "Replacing item's unit multiplier.", + "example": 1 + }, + "manufacturerCode": { + "type": "string", + "nullable": true, + "description": "Provided by the manufacturers to identify their product. This field must be completed if the replacing item has a manufacturer's code.", + "example": "manf-00005" + }, + "priceDefinition": { + "type": "string", + "nullable": true, + "description": "Replacing item's price information.", + "example": null + } + } + }, + "AdditionalInfoV2": { + "type": "object", + "description": "Additional information object.", + "required": [ + "dimension", + "brandName", + "brandId", + "offeringInfo", + "offeringType", + "offeringTypeId", + "categoriesIds", + "productClusterId", + "commercialConditionId" + ], + "properties": { + "dimension": { + "type": "string", + "nullable": true, + "description": "Replacing item's dimensions in the measure unit configured in the catalog.", + "example": null + }, + "brandName": { + "type": "string", + "nullable": true, + "description": "Replacing item's brand name.", + "example": "Special coffee cup" + }, + "brandId": { + "type": "string", + "nullable": true, + "description": "Replacing item's brand ID.", + "example": "2000001" + }, + "offeringInfo": { + "type": "string", + "nullable": true, + "description": "Offering information.", + "example": null + }, + "offeringType": { + "type": "string", + "nullable": true, + "description": "Offering type.", + "example": null + }, + "offeringTypeId": { + "type": "string", + "nullable": true, + "description": "Offering type ID.", + "example": null + }, + "categoriesIds": { + "type": "string", + "nullable": true, + "description": "ID of the replacing item product category.", + "example": null + }, + "productClusterId": { + "type": "string", + "nullable": true, + "description": "All product clusters related to the replacing item.", + "example": "135,137,143,518,1272" + }, + "commercialConditionId": { + "type": "string", + "nullable": true, + "description": "Replacing item commercial conditions ID.", + "example": "5" + } + } + }, + "LogisticsInfo1": { + "type": "object", + "description": "Logistics information object.", + "required": [ + "itemIndex", + "selectedSla", + "addressId", + "slas", + "shipsTo", + "itemId", + "deliveryChannels", + "price", + "listPrice", + "shippingEstimate", + "dockEstimate", + "shippingEstimateDate", + "lockTTL", + "deliveryCompany", + "polygonName", + "transitTime", + "sellingPrice", + "deliveryIds", + "deliveryWindow", + "pickupPointId", + "pickupStoreInfo", + "pickupDistance" + ], + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index that identifies the position of the replacing item in the array, starting from `0`.", + "example": 0 + }, + "selectedSla": { + "type": "string", + "description": "Shipping method of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) used in the replacing order.", + "example": "Normal" + }, + "addressId": { + "type": "string", + "description": "Shipping address ID of the replacing item.", + "example": "9ec276fd3a604eb1aa151b5333ca5db7" + }, + "slas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SlaV2" + }, + "description": "Information on Service Level Agreement (SLA) of the order modifications shipping policy." + }, + "shipsTo": { + "type": "array", + "items": { + "type": "string", + "description": "Country name represented in a three letters code ISO 3166 ALPHA-3.", + "example": "BRA" + }, + "description": "List of countries of the order modification shipping address." + }, + "itemId": { + "type": "string", + "description": "Replacing item's SKU ID, which is a unique numerical identifier.", + "example": "3" + }, + "deliveryChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryChannel" + }, + "description": "Array with the delivery channels associated with the trade policy." + }, + "price": { + "type": "integer", + "description": "Replacing item's final price, calculated in cents.", + "example": 600 + }, + "listPrice": { + "type": "integer", + "description": "Replacing item's price list, calculated in cents.", + "example": 600 + }, + "shippingEstimate": { + "type": "string", + "nullable": true, + "description": "Replacing item's shipping estimate date. The value is in UTC ISO 8601 format `yyyy-mm-ddThh:mm:ss.sssZ`.", + "example": "2023-07-29T17:52:18.6483116Z" + }, + "dockEstimate": { + "type": "string", + "nullable": true, + "description": "Replacing item's estimate duration of the [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) time. For instance, one business day is represented as `1bd`.", + "example": "1bd" + }, + "shippingEstimateDate": { + "type": "string", + "nullable": true, + "description": "Replacing item's total shipping duration estimated in days. For instance, three business days are represented as `3bd`.", + "example": "3bd" + }, + "lockTTL": { + "type": "string", + "nullable": true, + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time of the SLA. For instance, one business day is represented as `1bd`.", + "example": "1bd" + }, + "deliveryCompany": { + "type": "string", + "nullable": true, + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) company's name.", + "example": "Correios" + }, + "polygonName": { + "type": "string", + "nullable": true, + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the shipping policy.", + "example": "114 - Polanco _ H-05" + }, + "transitTime": { + "type": "string", + "nullable": true, + "description": "Duration in business days of the time the [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) takes in transit to fulfill the order. For example, three business days are represented as `3bd`.", + "example": "3bd" + }, + "sellingPrice": { + "type": "integer", + "description": "Change item's selling price.", + "example": 600 + }, + "deliveryIds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryIdV2" + }, + "description": "Array with delivery information." + }, + "deliveryWindow": { + "type": "string", + "nullable": true, + "description": "Order modification [scheduled delivery](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) information, when applicable.", + "example": null + }, + "pickupPointId": { + "type": "string", + "nullable": true, + "description": "ID of the [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "example": "pup215rkw" + }, + "pickupStoreInfo": { + "$ref": "#/components/schemas/PickupStoreInfoV2" + }, + "pickupDistance": { + "type": "number", + "nullable": true, + "description": "Distance in kilometers between the pickup point and the customer's address. The distance is measured as a straight line.", + "example": "1.0" + } + } + }, + "SlaV2": { + "description": "Service Level Agreement (SLA) object.", + "required": [ + "id", + "deliveryChannel", + "name", + "deliveryIds", + "shippingEstimate", + "shippingEstimateDate", + "lockTTL", + "availableDeliveryWindows", + "deliveryWindow", + "price", + "listPrice", + "tax", + "pickupStoreInfo", + "pickupPointId", + "pickupDistance", + "polygonName", + "transitTime" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Shipping method of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) used in the order delivery or pickup.", + "example": "Normal" + }, + "deliveryChannel": { + "type": "string", + "description": "Order shipping type, which can be `pickup-in-point` for [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R), and `delivery` for delivery.", + "example": "delivery" + }, + "name": { + "type": "string", + "description": "Shipping method of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) used in the order delivery or pickup. It corresponds to the `id` value.", + "example": "Normal" + }, + "deliveryIds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryIdV2" + }, + "description": "Information about delivery IDs." + }, + "shippingEstimate": { + "type": "string", + "nullable": true, + "description": "Total shipping duration estimated in days. For instance, three business days is represented as `3bd`.", + "example": "3bd" + }, + "shippingEstimateDate": { + "type": "string", + "nullable": true, + "description": "Shipping estimate date. The value is in UTC ISO 8601 format `yyyy-mm-ddThh:mm:ss.sssZ`.", + "example": "2023-07-27T17:52:18.6483116Z" + }, + "lockTTL": { + "type": "string", + "nullable": true, + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time of the SLA. For instance, one business day is represented as `1bd`.", + "example": "1bd" + }, + "availableDeliveryWindows": { + "type": "array", + "items": { + "type": "string", + "description": "Delivery window." + }, + "description": "Available [scheduled delivery](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) information, for when the shipping policy has shipping windows configurations." + }, + "deliveryWindow": { + "type": "object", + "nullable": true, + "description": "[Scheduled delivery](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) information, when applicable.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting date and time in [UTC ISO 8601 format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "example": "2024-03-14T00:00:00+00:00" + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending date and time in [UTC ISO 8601 format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "example": "2024-03-14T23:59:59+00:00" + } + } + }, + "price": { + "type": "integer", + "description": "Shipping price for the item in cents. Does not account for the whole order's shipping price.", + "example": 600 + }, + "listPrice": { + "type": "integer", + "description": "Item's price list for a specific trade policy.", + "example": 600 + }, + "tax": { + "type": "integer", + "description": "Tax in cents, when applicable.", + "example": 0 + }, + "pickupStoreInfo": { + "$ref": "#/components/schemas/PickupStoreInfoV2" + }, + "pickupPointId": { + "type": "string", + "nullable": true, + "description": "Pickup point ID is the unique identifier of the [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) related to the SLA.", + "example": "pup215rkw" + }, + "pickupDistance": { + "type": "number", + "nullable": true, + "description": "Distance in kilometers between the pickup point and the customer's address. The distance is measured as a straight line.", + "example": 1 + }, + "polygonName": { + "type": "string", + "nullable": true, + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the shipping policy.", + "example": "114 - Polanco _ H-05" + }, + "transitTime": { + "type": "string", + "nullable": true, + "description": "Duration in business days of the time the [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) takes in transit to fulfill the order. For example, three business days is represented as `3bd`.", + "example": "3bd" + } + } + }, + "PickupStoreInfoV2": { + "type": "object", + "description": "Information about a loading dock that was transformed into a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "required": [ + "isPickupStore", + "friendlyName", + "address", + "additionalInfo", + "dockId" + ], + "deprecated": true, + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "This field is related to converting a loading dock into a pickup point. It should always correspond to `false` because it has been deprecated.", + "example": false, + "nullable": true, + "deprecated": true + }, + "friendlyName": { + "type": "string", + "description": "Name of the loading dock converted to pickup point to be displayed at checkout. This field has been deprecated.", + "example": null, + "nullable": true, + "deprecated": true + }, + "address": { + "type": "string", + "nullable": true, + "description": "Address of the loading dock converted to pickup point. This field has been deprecated.", + "example": null, + "deprecated": true + }, + "additionalInfo": { + "type": "string", + "nullable": true, + "description": "Additional information about the loading dock converted to pickup point. This field has been deprecated.", + "example": null, + "deprecated": true + }, + "dockId": { + "type": "string", + "nullable": true, + "description": "ID of the loading dock converted to pickup point. This field has been deprecated.", + "example": "dockAjs28", + "deprecated": true + } + } + }, + "OriginV2": { + "required": [ + "account", + "orderId", + "component" + ], + "type": "object", + "properties": { + "account": { + "type": "string", + "description": "Name of the account where the order was made." + }, + "orderId": { + "type": "string", + "description": "Order ID is a unique code that identifies an order." + }, + "component": { + "type": "string", + "description": "Component information." + } + }, + "description": "Object containing information about the order origin." + }, + "Settings": { + "required": [ + "customPaymentSystemsAllowed" + ], + "type": "object", + "description": "Object with account settings information, such as custom payment.", + "properties": { + "customPaymentSystemsAllowed": { + "type": "array", + "description": "Store's [custom payment](https://help.vtex.com/tutorial/how-to-configure-a-custom-payment--tutorials_451) information. Applicable only for stores that configured custom payment options.", + "items": { + "type": "string", + "description": "Custom payment code." + } + } + } + }, + "From2": { + "type": "object", + "description": "What the order is changing from.", + "required": [ + "paymentData", + "items", + "shippingData" + ], + "properties": { + "paymentData": { + "$ref": "#/components/schemas/PaymentDataV2" + }, + "items": { + "type": "array", + "description": "Items information from before the order change.", + "items": { + "$ref": "#/components/schemas/Item4" + } + }, + "shippingData": { + "$ref": "#/components/schemas/ShippingData3" + } + } + }, + "Item4": { + "title": "Item4", + "required": [ + "id", + "quantity", + "price", + "measurementUnit", + "unitMultiplier", + "sellingPrice", + "name", + "detailUrl", + "imageUrl" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item.", + "example": "1" + }, + "quantity": { + "type": "integer", + "description": "Quantity of items been replaced.", + "example": 1 + }, + "price": { + "type": "string", + "nullable": true, + "description": "Item's shipping price. It does not account for the whole order's shipping price and is presented in cents.", + "example": 1000 + }, + "measurementUnit": { + "type": "string", + "nullable": true, + "description": "Item's measurement unit. For example, `kg` for kilograms or `un` for unitary items.", + "example": "kg" + }, + "unitMultiplier": { + "type": "integer", + "description": "Item's unit multiplier.", + "example": 3 + }, + "sellingPrice": { + "type": "string", + "description": "Item's selling price.", + "example": 100 + }, + "name": { + "type": "string", + "nullable": true, + "description": "Item's name.", + "example": "T-shirt with logo" + }, + "detailUrl": { + "type": "string", + "nullable": true, + "description": "Item's URL slug.", + "example": "/tshirt-logo/p" + }, + "imageUrl": { + "type": "string", + "nullable": true, + "description": "Item's image URL slug.", + "example": "http://store.com.br/ids/155419-55-55//tshirt-logo.png?v=6378858562367" + } + }, + "example": { + "id": "31", + "quantity": 1, + "price": 5000, + "measurementUnit": "un", + "unitMultiplier": 1, + "sellingPrice": 5000, + "name": "Fusca miniatura Fusca preto", + "detailUrl": "/fusca-miniatura-24/p", + "imageUrl": "http://qastore.vteximg.com.br/arquivos/ids/155431-55-55/image-bdab69af1e5c41cdbc498d02e370b376.jpg?v=636579391945870000" + } + }, + "ShippingData3": { + "title": "ShippingData3", + "required": [ + "logisticsInfo" + ], + "type": "object", + "properties": { + "logisticsInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogisticsInfo2" + }, + "description": "Array with shipping information." + } + }, + "example": { + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Lenta", + "selectedDeliveryChannel": "delivery", + "addressId": "9ec276fd3a604eb1aa151b5333ca5db6", + "slas": [ + { + "id": "Lenta", + "deliveryChannel": "delivery", + "name": "Lenta", + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": "2023-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 180, + "listPrice": 180, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "3bd" + }, + { + "id": "Pickup", + "deliveryChannel": "delivery", + "name": "Pickup", + "deliveryIds": [ + { + "courierId": "ech018654", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Retirada", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 700, + "listPrice": 700, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + } + ], + "shipsTo": [ + "BRA" + ], + "itemId": "31", + "deliveryChannels": [ + { + "id": "delivery" + } + ], + "price": 180, + "listPrice": 180, + "shippingEstimate": "25bd", + "dockEstimate": null, + "shippingEstimateDate": "2023-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "deliveryCompany": null, + "polygonName": "", + "transitTime": "25bd", + "sellingPrice": 180, + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": null, + "accountCarrierName": "qastoreecho" + } + ], + "deliveryWindow": null, + "pickupPointId": null, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupDistance": null + } + ] + } + }, + "LogisticsInfo2": { + "title": "LogisticsInfo2", + "required": [ + "itemIndex", + "selectedSla", + "addressId", + "slas", + "shipsTo", + "itemId", + "deliveryChannels", + "price", + "listPrice", + "shippingEstimate", + "dockEstimate", + "shippingEstimateDate", + "lockTTL", + "deliveryCompany", + "polygonName", + "transitTime", + "sellingPrice", + "deliveryIds", + "deliveryWindow", + "pickupPointId", + "pickupStoreInfo", + "pickupDistance" + ], + "type": "object", + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index that identifies the position of the replacing item in the array, starting from `0`.", + "example": 0 + }, + "selectedSla": { + "type": "string", + "description": "Shipping method of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) used in the replacing order.", + "example": "Normal" + }, + "addressId": { + "type": "string", + "description": "Shipping address ID.", + "example": "9ec276fd3a604eb1aa151b5333ca5db7" + }, + "slas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SlaV2" + }, + "description": "Information on Service Level Agreement (SLA) of the order modifications." + }, + "shipsTo": { + "type": "array", + "items": { + "type": "string", + "description": "Country name represented in a three letters code ISO 3166 ALPHA-3.", + "example": "BRA" + }, + "description": "List of countries of the order modifications shipping address." + }, + "itemId": { + "type": "string", + "description": "Replacing item's SKU ID, which is a unique numerical identifier.", + "example": "3" + }, + "deliveryChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryChannel" + }, + "description": "Array with the delivery channels associated with the trade policy." + }, + "price": { + "type": "integer", + "description": "Item's final price, calculated in cents.", + "example": 600 + }, + "listPrice": { + "type": "integer", + "description": "Item's price list, calculated in cents.", + "example": 600 + }, + "shippingEstimate": { + "type": "string", + "nullable": true, + "description": "Item's shipping estimate date. The value is in UTC ISO 8601 format `yyyy-mm-ddThh:mm:ss.sssZ`.", + "example": "2023-07-29T17:52:18.6483116Z" + }, + "dockEstimate": { + "type": "string", + "nullable": true, + "description": "Item's estimate duration of the [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) time. For instance, one business day is represented as `1bd`.", + "example": "1bd" + }, + "shippingEstimateDate": { + "type": "string", + "nullable": true, + "description": "Replacing item's total shipping duration estimated in days. For instance, three business days are represented as `3bd`.", + "example": "3bd" + }, + "lockTTL": { + "type": "string", + "nullable": true, + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time of the SLA. For instance, one business day is represented as `1bd`.", + "example": "1bd" + }, + "deliveryCompany": { + "type": "string", + "nullable": true, + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) company's name.", + "example": "Correios" + }, + "polygonName": { + "type": "string", + "nullable": true, + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the shipping policy.", + "example": "114 - Polanco _ H-05" + }, + "transitTime": { + "type": "string", + "nullable": true, + "description": "Duration in business days of the time the [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) takes in transit to fulfill the order. For example, three business days are represented as `3bd`.", + "example": "3bd" + }, + "sellingPrice": { + "type": "integer", + "description": "Item's selling price.", + "example": 600 + }, + "deliveryIds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryIdV2" + }, + "description": "Array with delivery information." + }, + "deliveryWindow": { + "type": "string", + "nullable": true, + "description": "Order modifications [scheduled delivery](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) information, when applicable.", + "example": null + }, + "pickupPointId": { + "type": "string", + "nullable": true, + "description": "ID of the [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "example": "pup215rkw" + }, + "pickupStoreInfo": { + "$ref": "#/components/schemas/PickupStoreInfoV2" + }, + "pickupDistance": { + "type": "number", + "nullable": true, + "description": "Distance in kilometers between the pickup point and the customer's address. The distance is measured as a straight line.", + "example": 1 + } + }, + "example": { + "itemIndex": 0, + "selectedSla": "Lenta", + "selectedDeliveryChannel": "delivery", + "addressId": "9ec276fd3a604eb1aa151b5333ca5db6", + "slas": [ + { + "id": "Lenta", + "deliveryChannel": "delivery", + "name": "Lenta", + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": "2023-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 180, + "listPrice": 180, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "3bd" + }, + { + "id": "Pickup", + "deliveryChannel": "delivery", + "name": "Pickup", + "deliveryIds": [ + { + "courierId": "ech018654", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Retirada", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 700, + "listPrice": 700, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + } + ], + "shipsTo": [ + "BRA" + ], + "itemId": "31", + "deliveryChannels": [ + { + "id": "delivery" + } + ], + "price": 180, + "listPrice": 180, + "shippingEstimate": "25bd", + "dockEstimate": null, + "shippingEstimateDate": "2023-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "deliveryCompany": null, + "polygonName": "", + "transitTime": "25bd", + "sellingPrice": 180, + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": null, + "accountCarrierName": "qastoreecho" + } + ], + "deliveryWindow": null, + "pickupPointId": null, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupDistance": null + } + }, + "DeliveryIdV2": { + "title": "DeliveryIdV2", + "required": [ + "courierId", + "warehouseId", + "dockId", + "courierName", + "quantity", + "kitItemDetails", + "accountCarrierName" + ], + "type": "object", + "properties": { + "courierId": { + "type": "string", + "description": "ID of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140).", + "example": "136769c" + }, + "warehouseId": { + "type": "string", + "description": "ID of the [warehouse](https://help.vtex.com/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).", + "example": "w_156" + }, + "dockId": { + "type": "string", + "description": "ID of the [loading dock](https://help.vtex.com/pt/tutorial/doca--5DY8xHEjOLYDVL41Urd5qj).", + "example": "ld931" + }, + "courierName": { + "type": "string", + "description": "Name of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140).", + "example": "Crossborder" + }, + "quantity": { + "type": "integer", + "description": "Quantity of items.", + "example": 1 + }, + "kitItemDetails": { + "type": "array", + "items": { + "type": "string", + "description": "Information about [kits](https://help.vtex.com/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28), when applicable to the order.", + "example": null, + "nullable": true + } + }, + "accountCarrierName": { + "type": "string", + "nullable": true, + "description": "Name of the account's [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE).", + "example": "vtexlog" + } + }, + "example": { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + }, + "DeliveryChannel": { + "title": "DeliveryChannel", + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Order modifications shipping type, which can be `pickup-in-point` for [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R), and `delivery` for delivery.", + "example": "delivery" + } + }, + "example": { + "id": "delivery" + } + }, + "To2": { + "title": "To2", + "required": [ + "items", + "paymentData", + "receiptData", + "shippingData" + ], + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Item3" + }, + "description": "Array containing information about the item replacing the previous one." + }, + "paymentData": { + "$ref": "#/components/schemas/PaymentDataV2" + }, + "receiptData": { + "type": "object", + "nullable": true, + "description": "Information about the receipt after order modifications.", + "example": null + }, + "shippingData": { + "$ref": "#/components/schemas/ShippingData3" + } + }, + "example": { + "items": [ + { + "uniqueId": "40E763F4378E4F40AD1FE915FE1078E1", + "id": "1", + "productId": "1", + "productRefId": "", + "refId": "codrefxicaraazul", + "ean": "8745121641", + "name": "xícara azul", + "skuName": "azul", + "modalType": null, + "parentItemIndex": null, + "parentAssemblyBinding": null, + "assemblies": [], + "priceValidUntil": null, + "tax": 0, + "price": 5000, + "listPrice": null, + "manualPrice": null, + "manualPriceAppliedBy": null, + "sellingPrice": 5000, + "rewardValue": 0, + "isGift": false, + "additionalInfo": { + "dimension": null, + "brandName": null, + "brandId": null, + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null, + "categoriesIds": null, + "productClusterId": null, + "commercialConditionId": null + }, + "preSaleDate": null, + "productCategoryIds": "/1/", + "productCategories": { + "1": "Category" + }, + "quantity": 1, + "seller": "1", + "sellerChain": [ + "1" + ], + "imageUrl": "http://qastore.vteximg.com.br/arquivos/ids/155394-55-55/xicara.jpg?v=636565506415770000", + "detailUrl": "/xicara/p", + "components": [], + "bundleItems": [], + "attachments": [], + "attachmentOfferings": [], + "offerings": [], + "priceTags": [], + "availability": null, + "measurementUnit": "un", + "unitMultiplier": 1, + "manufacturerCode": null, + "priceDefinition": { + "calculatedSellingPrice": 5000, + "total": 5000, + "sellingPrices": [ + { + "value": 5000, + "quantity": 1 + } + ] + } + } + ], + "paymentData": { + "transactions": [] + }, + "receiptData": null, + "shippingData": { + "logisticsInfo": [ + { + "itemIndex": 0, + "selectedSla": "Lenta", + "selectedDeliveryChannel": "delivery", + "addressId": "9ec276fd3a604eb1aa151b5333ca5db6", + "slas": [ + { + "id": "Lenta", + "deliveryChannel": "delivery", + "name": "Lenta", + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": "2023-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 600, + "listPrice": 180, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + }, + { + "id": "Normal", + "deliveryChannel": "delivery", + "name": "Normal", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "3bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 500, + "listPrice": 500, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "3bd" + }, + { + "id": "Pickup", + "deliveryChannel": "delivery", + "name": "Pickup", + "deliveryIds": [ + { + "courierId": "ech018654", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Retirada", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + ], + "shippingEstimate": "25bd", + "shippingEstimateDate": null, + "lockTTL": "12d", + "availableDeliveryWindows": [], + "deliveryWindow": null, + "price": 700, + "listPrice": 700, + "tax": 0, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupPointId": null, + "pickupDistance": null, + "polygonName": "", + "transitTime": "25bd" + } + ], + "shipsTo": [ + "BRA" + ], + "itemId": "1", + "deliveryChannels": [ + { + "id": "delivery" + } + ], + "price": 600, + "listPrice": 180, + "shippingEstimate": "25bd", + "dockEstimate": null, + "shippingEstimateDate": "2023-08-30T10:17:24.6436519Z", + "lockTTL": "12d", + "deliveryCompany": null, + "polygonName": "", + "transitTime": "25bd", + "sellingPrice": 600, + "deliveryIds": [ + { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": null, + "accountCarrierName": "qastoreecho" + } + ], + "deliveryWindow": null, + "pickupPointId": null, + "pickupStoreInfo": { + "isPickupStore": false, + "friendlyName": null, + "address": null, + "additionalInfo": null, + "dockId": null + }, + "pickupDistance": null + } + ] + } + } + }, + "ChangeOrderSettingsResponse": { + "type": "object", + "description": "Object with all VTEX account settings related to the **Order modifications** feature.", + "properties": { + "paymentConfiguration": { + "type": "object", + "description": "[Order modifications](https://help.vtex.com/en/tutorial/how-change-order-works-beta--56TO0bOFXsfmpc7YZ3wIUZ) payment configurations.", + "properties": { + "customPaymentSystemsAllowed": { + "type": "array", + "description": "List of custom payment system IDs configured for the VTEX account.", + "items": { + "type": "string", + "description": "Payment system ID." + } + } + } + }, + "rolloutConfiguration": { + "type": "object", + "description": "**Order modifications** settings regarding VTEX Admin, [Orders API](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes?endpoint=patch-/api/order-system/orders/-changeOrderId-/changes) and **My Account** feature.", + "properties": { + "usingDefaultBehavior": { + "type": "boolean", + "description": "Defines if the **Order modifications** configurations are the default behaviour (`true`) or if the account made customizations to it (`false`). Subaccounts will have the same configurations as the main account.", + "default": false + }, + "enableApi": { + "type": "boolean", + "description": "Defines if the account enabled the [Order modifications API](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) (`true`) or not (`false`). The account can only use the [Order modifications via VTEX Admin](https://help.vtex.com/en/tutorial/how-to-change-orders-beta--7btlG91rb6sHpW1dkd2kBw) or [via API](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) if this field is set to `true`.", + "default": false + }, + "enableAdminOrders": { + "type": "object", + "description": "Object about enabling the [Order modifications feature via VTEX Admin](https://help.vtex.com/en/tutorial/how-to-change-orders-beta--7btlG91rb6sHpW1dkd2kBw).", + "properties": { + "enabledWorkspaces": { + "type": "array", + "description": "List with the workspaces' names that have the **Order modifications** feature enabled via VTEX Admin.", + "items": { + "type": "string", + "description": "Name of the workspace with **Order modifications** enabled via VTEX Admin. The asterisk `*` value includes all of the account's workspaces." + } + } + } + }, + "enableMyOrders": { + "type": "object", + "description": "Object about enabling the **Order modifications** feature via [My Account](https://help.vtex.com/en/tutorial/how-my-account-works--2BQ3GiqhqGJTXsWVuio3Xh).", + "properties": { + "enabledWorkspaces": { + "type": "array", + "description": "List with the workspace names that have the **Order modifications** feature enabled via **My Account**.", + "items": { + "type": "string", + "description": "Name of the workspace with **Order modifications** enabled via **My Account**. The asterisk `*` value includes all of the account's workspaces." + } + } + } + } + } + }, + "pipelineConfiguration": { + "type": "object", + "description": "**Order modifications** settings related to taxes and shipping calculation.", + "properties": { + "enableTaxHubRecalculation": { + "type": "boolean", + "description": "Defines if the tax calculation is enabled for **Order modifications** (`true`) or not (`false`).", + "default": false + }, + "compensateShippingChanges": { + "type": "boolean", + "description": "Defines if orders changed will have zero shipping cost (`true`) or not (`false`). Merchants usually enable this configuration to change only items and prices, without impacting the orders original freight costs.", + "default": false + } + } + } + } + } + } + }, + "tags": [ + { + "name": "Orders" + }, + { + "name": "Order modifications" + }, + { + "name": "Invoice" + }, + { + "name": "Tracking" + }, + { + "name": "Conversation" + }, + { + "name": "Payment" + }, + { + "name": "Feed v2 (deprecated)" + }, + { + "name": "Feed v3" + }, + { + "name": "Order hook" + }, + { + "name": "User orders" + }, + { + "name": "Change seller" + } + ] +} diff --git a/clients/manitou/output/orders.orders.json b/clients/manitou/output/orders.orders.json new file mode 100644 index 0000000000..7c7307a646 --- /dev/null +++ b/clients/manitou/output/orders.orders.json @@ -0,0 +1,2433 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Orders API (Orders)", + "description": "Each purchase a customer makes in your store generates an [order](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196) on VTEX. With the Orders API, you can view orders statuses and manage multiple aspects involved in order fulfillment, such as financial transactions, invoicing, shipping, and subscriptions. You can also [modify orders](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) and make configurations to allow or forbid marketplaces and sellers to change or cancel orders.\r\n\r\n## Order integration\n\r\nTo automate actions related to order processing, you can [integrate orders](https://developers.vtex.com/docs/guides/erp-integration-guide) with systems like ERP (Enterprise Resource Planning) and WMS (Warehouse Management System) using [Feed and Hook](https://developers.vtex.com/docs/guides/orders-feed).\r\n\r\n## Orders API Index\r\n\r\n### Orders\r\n\r\n- `GET` [Get order](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-)\r\n- `GET` [Get orders by order group ID](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/order-group/-orderGroup-)\r\n- `GET` [List orders](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders)\r\n- `POST` [Start handling order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/start-handling)\r\n- `POST` [Cancel order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/cancel)\r\n- `POST` [Register modifications on order](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/changes)\r\n\r\n### Order modifications\r\n\r\n- `PATCH` [Create order modifications](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes)\r\n- `POST` [Preview order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/preview)\r\n- `GET`[Get order modifications details](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-)\r\n- `GET`[Get order modifications history](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes)\r\n- `GET` [Get order modifications summary](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/pvt/document/-changeOrderId-/change-summary) \r\n- `POST` [Retry order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-/retry)\r\n- `POST`[Cancel order modifications](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/order-system/orders/-changeOrderId-/changes/-changeRequestId-/cancel)\r\n- `PUT`[Update Order modifications settings](https://developers.vtex.com/docs/api-reference/orders-api#put-/api/order-system/orders/changes/settings)\r\n- `GET` [Get Order modifications settings](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/changes/settings)\r\n\r\n### Invoice\r\n\r\n- `POST` [Order invoice notification](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/invoice)\r\n- `PATCH` [Update order's partial invoice (send tracking number)](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-)\r\n\r\n### Tracking\r\n\r\n- `PUT` [Update order tracking status](https://developers.vtex.com/docs/api-reference/orders-api#put-/api/oms/pvt/orders/-orderId-/invoice/-invoiceNumber-/tracking)\r\n\r\n### Conversation\r\n\r\n- `GET` [Retrieve order conversation](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-/conversation-message)\r\n\r\n### Payment\r\n\r\n- `GET` [Retrieve payment transaction](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/orders/-orderId-/payment-transaction)\r\n- `POST` [Send payment notification](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/oms/pvt/orders/-orderId-/payments/-paymentId-/payment-notification)\r\n\r\n### Feed v2 (deprecated)\r\n\r\n- `GET` [Get feed order status](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/pvt/feed/orders/status)\r\n\r\n### Feed v3\r\n\r\n- `GET` [Get feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/feed/config)\r\n- `POST` [Create or update feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/feed/config)\r\n- `DELETE` [Delete feed configuration](https://developers.vtex.com/docs/api-reference/orders-api#delete-/api/orders/feed/config)\r\n- `GET` [Retrieve feed items](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/feed)\r\n- `POST` [Commit feed items](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/feed)\r\n- `POST` [Test JSONata expression](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/expressions/jsonata)\r\n\r\n### Order hook\r\n\r\n- `GET` [Get hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/orders/hook/config)\r\n- `POST` [Create or update hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/hook/config)\r\n- `DELETE` [Delete hook configuration](https://developers.vtex.com/docs/api-reference/orders-api#delete-/api/orders/hook/config)\r\n\r\n### User orders\r\n\r\n- `GET` [Retrieve user's orders](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/user/orders)\r\n- `GET` [Retrieve user order details](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/oms/user/orders/-orderId-)\r\n\r\n### Change seller\r\n\r\n- `GET` [Get window to change seller](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/checkout/pvt/configuration/window-to-change-seller)\r\n- `POST` [Update window to change seller](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/checkout/pvt/configuration/window-to-change-seller)\r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| :---: | :--- | :--- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/orders/feed/config": { + "get": { + "tags": [ + "Feed v3" + ], + "summary": "Get feed configuration", + "description": "The Orders Feed v3 is the best way to create order integrations. Below you can find details on the configuration API specification, and to know more see our [Feed v3 guide](https://developers.vtex.com/vtex-rest-api/docs/orders-feed) and our [order integration guide](https://developers.vtex.com/vtex-rest-api/docs/erp-integration-set-up-order-integration).\n\r\n> 📘 Onboarding guide \r\n>\r\n> Check the new [Orders onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/orders-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Orders and is organized by focusing on the developer's journey.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS Access | **Feed v3 and Hook view only** |\r\n| OMS | OMS Access | **Feed v3 and Hook Admin** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetFeedConfiguration", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "description": "Information on how orders are filtered to show on the feed.", + "properties": { + "type": { + "type": "string", + "description": "Determines what orders appear in the feed and how they are filtered. If a feed has the `FromWorkflow` type configuration, it will receive order updates only when order's statuses change and orders can be filtered by status, using the `status` field. A feed with the `FromOrders` type configuration gets updates whenever any change is made to an order. in this case, orders can be filtered by any property, according to JSONata expressions set in the `expression` field." + }, + "status": { + "type": "array", + "description": "List of order statuses that should be included in the feed. This should only be used in case `type` is `FromWorkflow`.", + "items": { + "type": "string", + "description": "Order status to be filtered in the feed." + } + }, + "expression": { + "type": "string", + "description": "JSONata query expression that defines what conditions must be met for an order to be included in the feed. This should only be used in case `type` is `FromOrders`." + }, + "disableSingleFire": { + "type": "boolean", + "description": "Sets a limit to how many times a specific order shows on the feed, after it first meets filtering conditions. Using the `FromOrders` type configuration with JSONata filtering expressions might cause orders to appear more than once on a feed, whenever changes are made to that order. If this field is `false` orders will appear in the feed only once." + } + } + }, + "queue": { + "type": "object", + "description": "Information that define the functioning of the queue.", + "properties": { + "visibilityTimeoutInSeconds": { + "type": "integer", + "description": "Period of time for which an item is not visible in the feed after it has been retrieved with the Get feed items request. Measured in seconds." + }, + "MessageRetentionPeriodInSeconds": { + "type": "integer", + "description": "Maximum life span of an order update after it gets to the feed. When a feed item is on the feed for this period of time, it is removed from the feed. Measured in seconds. The maximum number accepted in this field is `1209600` seconds." + } + } + }, + "quantity": { + "type": "integer", + "description": "Current number of messages in the feed, including messages that may not be visible due to time out after retrieval." + }, + "approximateAgeOfOldestMessageInSeconds": { + "type": "number", + "description": "Aproximate age of the oldest message in the feed, measured in seconds." + } + } + }, + "example": { + "filter": { + "type": "FromOrders", + "expression": "status = \"payment-pending\"", + "disableSingleFire": false + }, + "queue": { + "visibilityTimeoutInSeconds": 240, + "messageRetentionPeriodInSeconds": 345600 + }, + "quantity": 127, + "approximateAgeOfOldestMessageInSeconds": 78.91597222222222 + } + } + } + } + } + }, + "post": { + "tags": [ + "Feed v3" + ], + "summary": "Create or update feed configuration", + "description": "The Orders Feed v3 is the best way to create order integrations. Below you can find details on the configuration API specification, and to know more see our [Feed v3 guide](https://developers.vtex.com/vtex-rest-api/docs/orders-feed) and our [order integration guide](https://developers.vtex.com/vtex-rest-api/docs/erp-integration-set-up-order-integration)\n\r\n\rThere are two types of filtering that can be used. The `FromWorkflow` type filters orders by status, whereas the `FromOrders` type uses JSONata expressions to filter orders according to any property in the orders JSON document. This enables stores to filter delivered orders and orders in which products have been added or removed, for example. To learn more, access the [JSONata documentation](https://docs.jsonata.org/overview.html) and test filtering JSONata expressions with our [Test JSONata expression](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/expressions/jsonata) endpoint.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS Access | **Feed v3 and Hook view only** |\r\n| OMS | OMS Access | **Feed v3 and Hook Admin** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "FeedConfiguration", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "filter", + "queue" + ], + "properties": { + "filter": { + "type": "object", + "description": "Object with type and status that will filter feed orders.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "Determines what orders appear in the feed and how they are filtered. There are two possible values:\n\r\n\r-`FromWorkflow`: the feed will receive order updates only when order's statuses change and orders can be filtered by status, using the `status` field described below.\n\r\n\r-`FromOrders`: the feed gets updates whenever any change is made to an order. In this case, orders can be filtered by any property, according to JSONata expressions passed in the `expression` field described below.", + "example": "FromWorkflow" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "description": "Order status included in the feed.", + "example": "invoiced" + }, + "description": "List of order statuses that should be included in the feed. This should only be used in case `type` is set to `FromWorkflow`. The status event will be removed, if it can't deliver a message more than 100 times, 4 days progressively. \r\n\r\n**Status available to filter** \r\n\r\n- order-created \n\r\n- on-order-completed \n\r\n- on-order-completed-ffm \n\r\n- payment-pending \n\r\n- waiting-for-order-authorization \n\r\n- approve-payment \n\r\n- payment-approved \n\r\n- request-cancel \n\r\n- waiting-for-seller-decision \n\r\n- waiting-ffmt-authorization \n\r\n- waiting-for-authorization \n\r\n- waiting-for-manual-authorization \n\r\n- authorize-fulfillment \n\r\n- order-create-error \n\r\n- order-creation-error \n\r\n- window-to-cancel \n\r\n- window-to-change-seller \n\r\n- waiting-for-mkt-authorization \n\r\n- waiting-seller-handling \n\r\n- ready-for-handling \n\r\n- start-handling \n\r\n- handling \n\r\n- invoice-after-cancellation-deny \n\r\n- order-accepted \n\r\n- invoice \n\r\n- invoiced \n\r\n- replaced \n\r\n- cancellation-requested \n\r\n- cancel \n\r\n- canceled.", + "example": [ + "order-created", + "on-order-completed", + "payment-pending", + "waiting-for-order-authorization", + "approve-payment", + "payment-approved", + "request-cancel", + "waiting-for-seller-decision", + "authorize-fulfillment", + "order-create-error", + "order-creation-error", + "window-to-cancel", + "canceled" + ] + }, + "expression": { + "type": "string", + "description": "JSONata query expression that defines what conditions must be met for an order to be included in the feed. This should only be used in case `type` is set to `FromOrders`.", + "example": "value > 100" + }, + "disableSingleFire": { + "type": "boolean", + "description": "Sets a limit to how many times a specific order shows on the feed, after it first meets filtering conditions. Using the `FromOrders` type configuration with JSONata filtering expressions might cause orders to appear more than once on a feed, whenever changes are made to that order. If this field is `false` orders will appear in the feed only once.", + "example": false + } + } + }, + "queue": { + "type": "object", + "description": "Object with information about timeout and message retention.", + "required": [ + "visibilityTimeoutInSeconds", + "MessageRetentionPeriodInSeconds" + ], + "properties": { + "visibilityTimeoutInSeconds": { + "type": "integer", + "description": "Period of time for which an item becomes invisible after it has been [retrieved](https://developers.vtex.com/vtex-rest-api/reference/feed-v3#getfeedorderstatus1). Measured in seconds.", + "example": 250 + }, + "MessageRetentionPeriodInSeconds": { + "type": "integer", + "description": "Maximum life span of an order update in the feed. When a feed item is on the feed for this period of time, it is removed from the feed. Measured in seconds. The maximum number accepted in this field is `1209600` seconds.", + "example": 345600 + } + } + } + } + }, + "example": { + "filter": { + "type": "FromOrders", + "expression": "value > 100", + "disableSingleFire": false + }, + "queue": { + "visibilityTimeoutInSeconds": 250, + "MessageRetentionPeriodInSeconds": 345600 + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "The credentials are not enabled to access the service" + }, + "404": { + "description": "Value not found" + }, + "429": { + "description": "Too many requests" + } + } + }, + "delete": { + "tags": [ + "Feed v3" + ], + "summary": "Delete feed configuration", + "description": "Deletes the configuration set up in [Feed v3](https://developers.vtex.com/docs/guides/orders-feed). \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS Access | **Feed v3 and Hook view only** |\r\n| OMS | OMS Access | **Feed v3 and Hook Admin** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "FeedConfigurationDelete", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad request - Unable to check address / Only https scheme is accepted" + }, + "403": { + "description": "The credentials are not enabled to access the service" + }, + "404": { + "description": "Value not found" + }, + "429": { + "description": "Too many requests" + } + } + } + }, + "/api/orders/feed": { + "get": { + "tags": [ + "Feed v3" + ], + "summary": "Retrieve feed items", + "description": "Retrieve items from [feed](https://developers.vtex.com/docs/guides/orders-feed) queue. \n\r\nThe event will be removed if the message `send retry` is equal to, or greater than the maximum retention period.\r\n\r\n> This API will return `404 Not Found` if there is no [Feed Configuration](https://developers.vtex.com/docs/guides/orders-feed) available for the given X-VTEX-API-AppKey.", + "operationId": "Getfeedorderstatus1", + "parameters": [ + { + "name": "maxlot", + "in": "query", + "description": "Lot quantity to retrieve. Maximum accepted value is 10.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "{{maxLot}}" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Getfeedorderstatus" + } + }, + "example": [ + { + "eventId": "ED423DDED4C1AE580CADAC1A4D02DA3F", + "handle": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoidnRleGFwcGtleS1wYXJ0bmVyc2xhdGFtLVJNQkpNUyIsIkFwcEtleSI6InZ0ZXhhcHBrZXktcGFydG5lcnNsYXRhbS1STUJKTVMiLCJBY2NvdW50IjoicGFydG5lcnNsYXRhbSIsIkhhbmRsZSI6IkFRRUIzbmtWR0piOXhhNGRjYlpkOTFVVWMyL2JObHc0Qnp3ZlNLV201Rjg2QXgrSGlRM053bEJkb2NwM2wvVytLdjFNQTZ4d3ZLcFYwYjlSeUttNVRpb3hrSVFMSG1Uck9xenB2aFlwU29uMzRrVmlNaWZHY2lnZFFqalBJdk00eWU4amVuaS9QKytaTmVxOFZWeFNGay81Yzg3YS84MTRjTFg2WGZPR2x2WitlTnVjTzA3S3UxK0xXaU5vQmJEY0cycGxKekxkRks3Qld3b1NTV3BmSWhrOGhmSFNkSzlzZVpJeG01QXFLbHFrUHNDNGk5emVaYVpBUVVrSi9aZWo3UjRrRDVRaXFjNmpjcnFheEdHc1lsNHMzUWM0ZmtWdmhYblJVQ2l2ZGdpMEtUYS8zcXlWWU9QTktIV2huTlZxMEZHNDNjME4vaWh6dDc0d1laNVl6aDFJRitHU2t1YTkrN1pCdnQ2VGs1cFRhZmVVclk0ckNPL2Fobnl1eXFLOG53ZkorVWxUTmt2ZVNFS29FdTNiUWQzSmc5R1lYWHlXOVVxRGo5dHJIZ1N5M3ZZa0dBWjd0MDZNZWUwQnBsdFBxWExaIiwiT3JkZXJJZCI6Ijk1MzcxMjAwNDEyNi0wMSIsIk1lc3NhZ2VJZCI6ImI5YjI4NDkwLTNjNzAtNDdjNi1hMTE3LWNhN2FjMTk2MDY1OSIsIkRvbWFpbiI6IkZ1bGZpbGxtZW50IiwiU3RhdGUiOiJyZWFkeS1mb3ItaGFuZGxpbmciLCJMYXN0U3RhdGUiOiJ3aW5kb3ctdG8tY2FuY2VsIiwiTGFzdENoYW5nZSI6IjA4LzEyLzIwMTkgMjA6NTQ6MDEiLCJDdXJyZW50Q2hhbmdlIjoiMDgvMTIvMjAxOSAyMDo1NDoyMyIsIkNyZWF0ZWRBdCI6IjA4LzEyLzIwMTkgMjE6MDE6MzAiLCJpc3MiOiJicm9hZGNhc3QtYXBpLnZ0ZXhjb21tZXJjZS5jb20uYnIiLCJhdWQiOiJwYXJ0bmVyc2xhdGFtX3Z0ZXhhcHBrZXktcGFydG5lcnNsYXRhbS1STUJKTVMifQ.7RQBZQb6pHhFhA_jMKTiSoJbDck7awgD3Xx7sdJcW6w", + "domain": "Fulfillment", + "state": "ready-for-handling", + "lastState": "window-to-cancel", + "orderId": "953712004126-01", + "lastChange": "2019-08-12T20:54:01.134057Z", + "currentChange": "2019-08-12T20:54:23.7153839Z" + } + ] + } + } + } + } + }, + "post": { + "tags": [ + "Feed v3" + ], + "summary": "Commit feed items", + "description": "Commit items in the [feed](https://developers.vtex.com/docs/guides/orders-feed) queue.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Commititemfeedorderstatus", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "handles" + ], + "properties": { + "handles": { + "type": "array", + "description": "List of item handles to commit.", + "items": { + "type": "string", + "description": "Item handles." + } + } + } + }, + "example": { + "handles": [ + "AQEBSM/bSqonHYtx+UrHdbuJ0i7M9yMbI2jtYwMIPdEc4BenuneaCTC9VEJ3dgAy1XtfQvHBvgwZTO8LvGObIKNqiKXDZiMKY25vK+pblZEqf1pWdLMugu5XoHA5ZAd4IcBcXrBcrlr1GU8uvPEBoVLOsVBP9IAxIZkkeEedIDg3K6GPyEXVuPlTEYb/0OCunEGxWF+AZ1frFdXh7ulORTcuqO5oDlBGbpD+QYzCmF4mUZtQ0VVWh9icM1QBVh6PlJ0D/lfwnJKWpBn3jf8c+DTm7sD7wb1Lcz9uWMLhDtPwvH9vue4MvKU9sCahEQe7K5jWuwwb54szGbFKdfcACsTSQ9WlyBfMdbV83c27k68G3cnaBFExkC1MLHHE9UzpQ6l4s43BT4k95ocgMXffnj/HMUYXn+OCvlvjytY59x1OCRE=" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/orders/hook/config": { + "get": { + "tags": [ + "Order hook" + ], + "summary": "Get hook configuration", + "description": "Retrieves a given hook's configuration details. Learn more with the [orders hook guide](https://developers.vtex.com/vtex-rest-api/docs/orders-feed#hook). \r\n\r\n> 📘 Onboarding guide \r\n>\r\n> Check the new [Orders onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/orders-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Orders and is organized by focusing on the developer's journey.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS Access | **Feed v3 and Hook view only** |\r\n| OMS | OMS Access | **Feed v3 and Hook Admin** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetHookConfiguration", + "parameters": [ + { + "name": "clientEmail", + "in": "query", + "description": "Customer email.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "customer@mail.com" + } + }, + { + "name": "page", + "in": "query", + "description": "Page number for result pagination.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "10" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Page quantity for result pagination.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "15" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "post": { + "tags": [ + "Order hook" + ], + "summary": "Create or update hook configuration", + "description": "Configures filtering rules applied to orders hook. Learn more with the [orders hook guide](https://developers.vtex.com/vtex-rest-api/docs/orders-feed#hook).\n\r\n\rThere are two types of filtering that can be used: \n\r\n\r - `FromWorkflow`: filters orders by status.\n\r\n\r - `FromOrders`: uses JSONata expressions to filter orders according to any property in the orders JSON document.\n\r\n\r This enables stores to filter delivered orders and orders in which products have been added or removed, for example.\n\r\n\rTo learn more, access the [JSONata documentation](https://docs.jsonata.org/overview.html) and test filtering JSONata expressions with our [expressions API](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/expressions/jsonata).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "HookConfiguration", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HookConfigurationRequest" + }, + "example": { + "filter": { + "type": "FromOrders", + "expression": "value > 100", + "disableSingleFire": false + }, + "hook": { + "url": "https://endpoint.example/path", + "headers": { + "key": "value" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HookConfiguration" + }, + "example": { + "Domain": "Fulfillment", + "OrderId": "v52277740atmc-01", + "State": "ready-for-handling", + "LastState": "window-to-cancel", + "LastChange": "2019-08-14T17:11:39.2550122Z", + "CurrentChange": "2019-08-14T17:12:48.0965893Z", + "Origin": { + "Account": "automacaoqa", + "Key": "vtexappkey-appvtex" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Order hook" + ], + "summary": "Delete hook configuration", + "description": "Deletes a given hook configuration.\n\r\n\rLearn more with the [orders hook guide](https://developers.vtex.com/vtex-rest-api/docs/orders-feed#hook).", + "operationId": "DeleteHookConfiguration", + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "[The credentials are not enabled to access the service](https://httpstatuses.com/403)" + }, + "404": { + "description": "[Value not found](https://httpstatuses.com/404)" + }, + "429": { + "description": "[Too many requests](https://httpstatuses.com/429)" + } + } + } + }, + "/api/orders/pvt/document/{orderId}/change-summary": { + "get": { + "tags": [ + "Order modifications" + ], + "summary": "Get order modifications summary", + "description": "This endpoint retrieves a summary of modifications of every successful [Create order modifications request](https://developers.vtex.com/docs/api-reference/orders-api#patch-/api/order-system/orders/-changeOrderId-/changes) made to an order and provides an overview of each request.\r\n > ⚠️ If you want information about all the modifications made to an order, use the [Get order modifications history endpoint](https://developers.vtex.com/docs/api-reference/orders-api#get-/api/order-system/orders/-changeOrderId-/changes).\r\n## Permissions\r\nAny user or API key must have the appropriate License Manager resource to successfully run this request:\r\n| Product | Category | Resource |\n|---------|----------|----------|\n| OMS | OMS access | **OMS Viewer** |\r\nYou can create a custom role with this resource or use one of the following predefined roles:\r\n- **OMS - Full access** (OMS Viewer)\n- **Checkout Admin** (OMS Viewer)\n- **IntegrationProfile - Fulfillment Oms** (OMS Viewer)\r\nFor more information about security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).", + "operationId": "GetChangeSummary", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "Order ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "v12772213qst-02" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeSummary" + } + } + } + }, + "401": { + "description": "[Unauthorized - Invalid or missing authentication](https://httpstatuses.com/401)", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "RFC 9110 error type reference." + }, + "title": { + "type": "string", + "description": "Error title." + }, + "status": { + "type": "integer", + "description": "HTTP status code." + }, + "traceId": { + "type": "string", + "description": "Trace ID of the request for debugging." + } + } + }, + "example": { + "type": "https://tools.ietf.org/html/rfc9110#section-15.5.2", + "title": "Unauthorized", + "status": 401, + "traceId": "00-05464ee431d13f81b4fc065592acf694-d46dfbd48c924961-00" + } + } + } + }, + "403": { + "description": "[Forbidden - Insufficient permissions](https://httpstatuses.com/403)" + }, + "404": { + "description": "[Order not found](https://httpstatuses.com/404)" + } + } + } + }, + "/api/orders/expressions/jsonata": { + "post": { + "tags": [ + "Feed v3" + ], + "summary": "Test JSONata expression", + "description": "This endpoint allows you to test a JSON document with a JSONata expression, returning `true` if the document meets the criteria posed in the expression, or `false` if it does not.\n\r\n\rSince JSONata expressions can be used to filter order updates in the [Orders API feed and hook](https://developers.vtex.com/docs/guides/orders-feed), this endpoint can be used to test an expression's results before configuring the [feed or hook](https://developers.vtex.com/docs/guides/orders-feed).\n\r\n\rLearn more about how to use JSONata expressions, in the [JSONata documentation](https://docs.jsonata.org/overview.html).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "TestJSONataExpression", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Expression", + "Document" + ], + "properties": { + "Expression": { + "type": "string", + "description": "JSONata expression to be tested." + }, + "Document": { + "type": "string", + "description": "JSON document to be evaluated by the expression." + } + } + }, + "example": { + "Expression": "status = \\\"canceled\\\"", + "Document": "{\\\"status\\\":\\\"canceled\\\"}" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean", + "description": "Successful requests return the message `true`." + }, + "example": true + } + } + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "schemas": { + "TotalsUpdated": { + "type": "array", + "description": "Information about the order totals.", + "items": { + "type": "object", + "description": "Details about the order totals.", + "properties": { + "id": { + "type": "string", + "description": "Total ID, which defines what the total is about.", + "enum": [ + "Items", + "Discounts", + "Shipping", + "Tax" + ] + }, + "name": { + "type": "string", + "description": "Total name." + }, + "value": { + "type": "integer", + "description": "Total value in cents." + }, + "alternativeTotals": { + "type": "array", + "description": "Information about the order alternative totals, when applicable. For example, when there is a discount for items in the marketplace that results in a difference in the `Items` total value, the `alternativeTotals` can retrieve details about it.", + "nullable": true, + "items": { + "type": "object", + "description": "Details about the order alternative totals.", + "properties": { + "id": { + "type": "string", + "description": "Alternative total ID, which can be related to items, discounts, shipping or taxes." + }, + "name": { + "type": "string", + "description": "Alternative total name." + }, + "value": { + "type": "integer", + "description": "Alternative total value in cents." + } + } + } + } + } + } + }, + "Getfeedorderstatus": { + "title": "Getfeedorderstatus", + "required": [ + "eventId", + "handle", + "domain", + "state", + "lastState", + "orderId", + "lastChange", + "currentChange" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "handle": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "state": { + "type": "string" + }, + "lastState": { + "type": "string" + }, + "orderId": { + "type": "string" + }, + "lastChange": { + "type": "string" + }, + "currentChange": { + "type": "string" + } + } + }, + "HookFilter": { + "title": "Filter", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Determines what orders appear in the hook and how they are filtered. As shown in the examples above, there are two ways:\r\n\r\n - `FromWorkflow`: the hook will receive order updates only when there is a change or update in the [order status](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196). You must send at least one value for the `status` field to determine by which status the orders will be filtered.\r\n\r\n - `FromOrders`: the hook will receive order updates when there is a change in the order. In this case, orders can be filtered by any property, according to JSONata expressions passed in the `expression` field. You must send the request with values for the `expression` and `disableSingleFire` fields.", + "example": "FromWorkflow" + }, + "status": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of order statuses that should be included in the hook. This should only be used in case `type` is `FromWorkflow`." + }, + "expression": { + "type": "string", + "description": "JSONata query expression that defines what conditions must be met for an order to be included in the hook. This should only be used in case `type` is `FromOrders`." + }, + "disableSingleFire": { + "type": "boolean", + "description": "Sets a limit to how many times a specific order shows on the hook, after it first meets filtering conditions. Using the `FromOrders` type configuration with JSONata filtering expressions might cause orders to appear more than once on a feed, whenever changes are made to that order. If this field is `false` orders will appear in the hook only once. Send this field if you want to filter `FromOrders`.", + "example": false + } + } + }, + "HookConfigurationRequest": { + "title": "HookConfigurationRequest", + "required": [ + "filter", + "hook" + ], + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/HookFilter" + }, + "hook": { + "$ref": "#/components/schemas/Hook" + } + }, + "example": { + "filter": { + "type": "FromWorkflow", + "status": [ + "order-completed", + "handling", + "ready-for-handling", + "waiting-ffmt-authorization", + "cancel" + ] + }, + "hook": { + "url": "https://endpoint.example/path", + "headers": { + "key": "value" + } + } + } + }, + "Hook": { + "title": "Hook", + "required": [ + "url", + "headers" + ], + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "headers": { + "$ref": "#/components/schemas/Headers" + } + }, + "example": { + "url": "https://endpoint.example/path", + "headers": { + "key": "value" + } + } + }, + "Headers": { + "title": "Headers", + "required": [ + "key" + ], + "type": "object", + "properties": { + "key": { + "type": "string" + } + }, + "example": { + "key": "value" + } + }, + "HookConfiguration": { + "title": "HookConfiguration", + "required": [ + "Domain", + "OrderId", + "State", + "LastState", + "LastChange", + "CurrentChange", + "Origin" + ], + "type": "object", + "properties": { + "Domain": { + "type": "string" + }, + "OrderId": { + "type": "string" + }, + "State": { + "type": "string" + }, + "LastState": { + "type": "string" + }, + "LastChange": { + "type": "string" + }, + "CurrentChange": { + "type": "string" + }, + "Origin": { + "$ref": "#/components/schemas/Origin2" + } + } + }, + "Origin2": { + "title": "Origin2", + "required": [ + "Account", + "Key" + ], + "type": "object", + "properties": { + "Account": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "example": { + "Account": "automacaoqa", + "Key": "vtexappkey-appvtex" + } + }, + "LogisticsInfo1": { + "type": "object", + "description": "Logistics information object.", + "required": [ + "itemIndex", + "selectedSla", + "addressId", + "slas", + "shipsTo", + "itemId", + "deliveryChannels", + "price", + "listPrice", + "shippingEstimate", + "dockEstimate", + "shippingEstimateDate", + "lockTTL", + "deliveryCompany", + "polygonName", + "transitTime", + "sellingPrice", + "deliveryIds", + "deliveryWindow", + "pickupPointId", + "pickupStoreInfo", + "pickupDistance" + ], + "properties": { + "itemIndex": { + "type": "integer", + "description": "Index that identifies the position of the replacing item in the array, starting from `0`.", + "example": 0 + }, + "selectedSla": { + "type": "string", + "description": "Shipping method of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) used in the replacing order.", + "example": "Normal" + }, + "addressId": { + "type": "string", + "description": "Shipping address ID of the replacing item.", + "example": "9ec276fd3a604eb1aa151b5333ca5db7" + }, + "slas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SlaV2" + }, + "description": "Information on Service Level Agreement (SLA) of the order modifications shipping policy." + }, + "shipsTo": { + "type": "array", + "items": { + "type": "string", + "description": "Country name represented in a three letters code ISO 3166 ALPHA-3.", + "example": "BRA" + }, + "description": "List of countries of the order modification shipping address." + }, + "itemId": { + "type": "string", + "description": "Replacing item's SKU ID, which is a unique numerical identifier.", + "example": "3" + }, + "deliveryChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryChannel" + }, + "description": "Array with the delivery channels associated with the trade policy." + }, + "price": { + "type": "integer", + "description": "Replacing item's final price, calculated in cents.", + "example": 600 + }, + "listPrice": { + "type": "integer", + "description": "Replacing item's price list, calculated in cents.", + "example": 600 + }, + "shippingEstimate": { + "type": "string", + "nullable": true, + "description": "Replacing item's shipping estimate date. The value is in UTC ISO 8601 format `yyyy-mm-ddThh:mm:ss.sssZ`.", + "example": "2023-07-29T17:52:18.6483116Z" + }, + "dockEstimate": { + "type": "string", + "nullable": true, + "description": "Replacing item's estimate duration of the [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj) time. For instance, one business day is represented as `1bd`.", + "example": "1bd" + }, + "shippingEstimateDate": { + "type": "string", + "nullable": true, + "description": "Replacing item's total shipping duration estimated in days. For instance, three business days are represented as `3bd`.", + "example": "3bd" + }, + "lockTTL": { + "type": "string", + "nullable": true, + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time of the SLA. For instance, one business day is represented as `1bd`.", + "example": "1bd" + }, + "deliveryCompany": { + "type": "string", + "nullable": true, + "description": "[Carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) company's name.", + "example": "Correios" + }, + "polygonName": { + "type": "string", + "nullable": true, + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the shipping policy.", + "example": "114 - Polanco _ H-05" + }, + "transitTime": { + "type": "string", + "nullable": true, + "description": "Duration in business days of the time the [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) takes in transit to fulfill the order. For example, three business days are represented as `3bd`.", + "example": "3bd" + }, + "sellingPrice": { + "type": "integer", + "description": "Change item's selling price.", + "example": 600 + }, + "deliveryIds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryIdV2" + }, + "description": "Array with delivery information." + }, + "deliveryWindow": { + "type": "string", + "nullable": true, + "description": "Order modification [scheduled delivery](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) information, when applicable.", + "example": null + }, + "pickupPointId": { + "type": "string", + "nullable": true, + "description": "ID of the [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "example": "pup215rkw" + }, + "pickupStoreInfo": { + "$ref": "#/components/schemas/PickupStoreInfoV2" + }, + "pickupDistance": { + "type": "number", + "nullable": true, + "description": "Distance in kilometers between the pickup point and the customer's address. The distance is measured as a straight line.", + "example": "1.0" + } + } + }, + "SlaV2": { + "description": "Service Level Agreement (SLA) object.", + "required": [ + "id", + "deliveryChannel", + "name", + "deliveryIds", + "shippingEstimate", + "shippingEstimateDate", + "lockTTL", + "availableDeliveryWindows", + "deliveryWindow", + "price", + "listPrice", + "tax", + "pickupStoreInfo", + "pickupPointId", + "pickupDistance", + "polygonName", + "transitTime" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Shipping method of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) used in the order delivery or pickup.", + "example": "Normal" + }, + "deliveryChannel": { + "type": "string", + "description": "Order shipping type, which can be `pickup-in-point` for [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R), and `delivery` for delivery.", + "example": "delivery" + }, + "name": { + "type": "string", + "description": "Shipping method of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140) used in the order delivery or pickup. It corresponds to the `id` value.", + "example": "Normal" + }, + "deliveryIds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryIdV2" + }, + "description": "Information about delivery IDs." + }, + "shippingEstimate": { + "type": "string", + "nullable": true, + "description": "Total shipping duration estimated in days. For instance, three business days is represented as `3bd`.", + "example": "3bd" + }, + "shippingEstimateDate": { + "type": "string", + "nullable": true, + "description": "Shipping estimate date. The value is in UTC ISO 8601 format `yyyy-mm-ddThh:mm:ss.sssZ`.", + "example": "2023-07-27T17:52:18.6483116Z" + }, + "lockTTL": { + "type": "string", + "nullable": true, + "description": "Logistics [reservation](https://help.vtex.com/en/tutorial/how-does-reservation-work--tutorials_92) waiting time of the SLA. For instance, one business day is represented as `1bd`.", + "example": "1bd" + }, + "availableDeliveryWindows": { + "type": "array", + "items": { + "type": "string", + "description": "Delivery window." + }, + "description": "Available [scheduled delivery](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) information, for when the shipping policy has shipping windows configurations." + }, + "deliveryWindow": { + "type": "object", + "nullable": true, + "description": "[Scheduled delivery](https://help.vtex.com/en/tutorial/scheduled-delivery--22g3HAVCGLFiU7xugShOBi) information, when applicable.", + "properties": { + "startDateUtc": { + "type": "string", + "description": "Delivery window starting date and time in [UTC ISO 8601 format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "example": "2024-03-14T00:00:00+00:00" + }, + "endDateUtc": { + "type": "string", + "description": "Delivery window ending date and time in [UTC ISO 8601 format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "example": "2024-03-14T23:59:59+00:00" + } + } + }, + "price": { + "type": "integer", + "description": "Shipping price for the item in cents. Does not account for the whole order's shipping price.", + "example": 600 + }, + "listPrice": { + "type": "integer", + "description": "Item's price list for a specific trade policy.", + "example": 600 + }, + "tax": { + "type": "integer", + "description": "Tax in cents, when applicable.", + "example": 0 + }, + "pickupStoreInfo": { + "$ref": "#/components/schemas/PickupStoreInfoV2" + }, + "pickupPointId": { + "type": "string", + "nullable": true, + "description": "Pickup point ID is the unique identifier of the [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R) related to the SLA.", + "example": "pup215rkw" + }, + "pickupDistance": { + "type": "number", + "nullable": true, + "description": "Distance in kilometers between the pickup point and the customer's address. The distance is measured as a straight line.", + "example": 1 + }, + "polygonName": { + "type": "string", + "nullable": true, + "description": "Name of the [polygon](https://help.vtex.com/en/tutorial/registering-geolocation/) associated with the shipping policy.", + "example": "114 - Polanco _ H-05" + }, + "transitTime": { + "type": "string", + "nullable": true, + "description": "Duration in business days of the time the [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) takes in transit to fulfill the order. For example, three business days is represented as `3bd`.", + "example": "3bd" + } + } + }, + "PickupStoreInfoV2": { + "type": "object", + "description": "Information about a loading dock that was transformed into a [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R).", + "required": [ + "isPickupStore", + "friendlyName", + "address", + "additionalInfo", + "dockId" + ], + "deprecated": true, + "properties": { + "isPickupStore": { + "type": "boolean", + "description": "This field is related to converting a loading dock into a pickup point. It should always correspond to `false` because it has been deprecated.", + "example": false, + "nullable": true, + "deprecated": true + }, + "friendlyName": { + "type": "string", + "description": "Name of the loading dock converted to pickup point to be displayed at checkout. This field has been deprecated.", + "example": null, + "nullable": true, + "deprecated": true + }, + "address": { + "type": "string", + "nullable": true, + "description": "Address of the loading dock converted to pickup point. This field has been deprecated.", + "example": null, + "deprecated": true + }, + "additionalInfo": { + "type": "string", + "nullable": true, + "description": "Additional information about the loading dock converted to pickup point. This field has been deprecated.", + "example": null, + "deprecated": true + }, + "dockId": { + "type": "string", + "nullable": true, + "description": "ID of the loading dock converted to pickup point. This field has been deprecated.", + "example": "dockAjs28", + "deprecated": true + } + } + }, + "DeliveryIdV2": { + "title": "DeliveryIdV2", + "required": [ + "courierId", + "warehouseId", + "dockId", + "courierName", + "quantity", + "kitItemDetails", + "accountCarrierName" + ], + "type": "object", + "properties": { + "courierId": { + "type": "string", + "description": "ID of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140).", + "example": "136769c" + }, + "warehouseId": { + "type": "string", + "description": "ID of the [warehouse](https://help.vtex.com/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).", + "example": "w_156" + }, + "dockId": { + "type": "string", + "description": "ID of the [loading dock](https://help.vtex.com/pt/tutorial/doca--5DY8xHEjOLYDVL41Urd5qj).", + "example": "ld931" + }, + "courierName": { + "type": "string", + "description": "Name of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140).", + "example": "Crossborder" + }, + "quantity": { + "type": "integer", + "description": "Quantity of items.", + "example": 1 + }, + "kitItemDetails": { + "type": "array", + "items": { + "type": "string", + "description": "Information about [kits](https://help.vtex.com/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28), when applicable to the order.", + "example": null, + "nullable": true + } + }, + "accountCarrierName": { + "type": "string", + "nullable": true, + "description": "Name of the account's [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE).", + "example": "vtexlog" + } + }, + "example": { + "courierId": "1c083bf", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Donkey", + "quantity": 1, + "kitItemDetails": [], + "accountCarrierName": null + } + }, + "DeliveryChannel": { + "title": "DeliveryChannel", + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Order modifications shipping type, which can be `pickup-in-point` for [pickup point](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R), and `delivery` for delivery.", + "example": "delivery" + } + }, + "example": { + "id": "delivery" + } + }, + "ChangeSummary": { + "type": "object", + "description": "Summary of modifications made to an order.", + "properties": { + "original": { + "type": "array", + "description": "Summary of the original items in the order before modifications.", + "items": { + "type": "object", + "properties": { + "totalQuantity": { + "type": "integer", + "description": "Total quantity of the item." + }, + "quantity": { + "type": "integer", + "description": "Quantity of the item." + }, + "deliveryIds": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/DeliveryIdResponse" + } + }, + "itemIndex": { + "type": "integer", + "description": "Each item in the order is identified by an index. The position starts in `0`, followed by `1`, `2`, and so on." + }, + "uniqueId": { + "type": "string", + "description": "Alphanumeric sequence that identifies an SKU in a given order." + }, + "id": { + "type": "string", + "description": "Unique identifier of the SKU." + }, + "productId": { + "type": "string", + "description": "ID of the product associated with the item." + }, + "lockId": { + "type": "string", + "description": "Reservation ID." + }, + "ean": { + "type": "string", + "description": "EAN of the SKU.", + "nullable": true + }, + "seller": { + "type": "string", + "description": "Seller related to the order." + }, + "sellerSku": { + "type": "string", + "description": "SKU ID from the seller perspective." + }, + "priceValidUntil": { + "type": "string", + "description": "Date until when the price is going to be valid if there is a promotion. The date uses [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the item as displayed to customers in the storefront." + }, + "additionalInfo": { + "type": "object", + "description": "Additional information about the item.", + "properties": { + "brandName": { + "type": "string", + "description": "Item's brand name." + }, + "brandId": { + "type": "string", + "description": "Item's brand ID." + }, + "categoriesIds": { + "type": "string", + "description": "Item's category ID." + }, + "dimension": { + "type": "object", + "description": "Item's dimension.", + "properties": { + "cubicweight": { + "type": "number", + "description": "Item's cubic weight." + }, + "height": { + "type": "number", + "description": "Item's height." + }, + "length": { + "type": "number", + "description": "Item's length." + }, + "weight": { + "type": "number", + "description": "Item's weight." + }, + "width": { + "type": "number", + "description": "Item's width." + } + } + }, + "productClusterId": { + "type": "string", + "description": "All product clusters related to the item." + }, + "commercialConditionId": { + "type": "string", + "description": "Commercial conditions ID." + }, + "offeringInfo": { + "type": "object", + "description": "Information about services related to the item. For example: guarantee or installation.", + "nullable": true + }, + "offeringType": { + "type": "string", + "description": "Offering type.", + "nullable": true + }, + "offeringTypeId": { + "type": "string", + "description": "Offering type ID." + }, + "categories": { + "type": "array", + "description": "Items categories information.", + "items": { + "type": "object", + "description": "Category information.", + "properties": { + "id": { + "type": "number", + "description": "Category ID." + }, + "name": { + "type": "string", + "description": "Category name." + } + } + } + } + } + }, + "attachments": { + "type": "array", + "description": "Array containing information on attachments.", + "items": { + "type": "string", + "description": "Attachments information." + } + }, + "attachmentOfferings": { + "type": "array", + "description": "Array containing attachments details.", + "nullable": true, + "items": { + "type": "object", + "description": "Attachments details.", + "properties": { + "name": { + "type": "string", + "description": "Name of the attachment.", + "nullable": true + }, + "required": { + "type": "boolean", + "description": "Defines if the attachment is required (`true`) or not (`false`).", + "nullable": true + } + } + } + }, + "assemblies": { + "type": "array", + "description": "Information about items customization.", + "nullable": true, + "items": { + "type": "string", + "description": "Customization information." + } + }, + "refId": { + "type": "string", + "description": "SKU reference ID." + }, + "shippingPrice": { + "type": "integer", + "description": "Item's shipping price.", + "nullable": true + }, + "price": { + "type": "integer", + "description": "Item's price." + }, + "sellingPrice": { + "type": "integer", + "description": "Item's selling price." + }, + "manualPrice": { + "type": "integer", + "description": "Item's [manual price](https://help.vtex.com/en/tutorial/change-the-price-of-an-item-in-the-shopping-cart--7Cd37aCAmtL1qmoZJJvjNf).", + "nullable": true + }, + "manualPriceAppliedBy": { + "type": "string", + "description": "User ID or appKey that made the manual price modification.", + "nullable": true + }, + "tax": { + "type": "integer", + "description": "Tax in cents, when applicable." + }, + "customTax": { + "type": "number", + "description": "Custom tax in cents, when applicable.", + "nullable": true + }, + "rewardValue": { + "type": "integer", + "description": "Item's reward value." + }, + "freightCommission": { + "type": "integer", + "description": "Value of the freight commission." + }, + "commission": { + "type": "integer", + "description": "Commission value registered for the seller." + }, + "priceTags": { + "type": "array", + "description": "List of objects with item's price modifiers.", + "items": { + "type": "object", + "description": "Price modifiers." + } + }, + "imageUrl": { + "type": "string", + "description": "SKU image URL." + }, + "detailUrl": { + "type": "string", + "description": "SKU slug." + }, + "components": { + "type": "array", + "description": "Item's components.", + "items": { + "type": "string", + "description": "Components." + } + }, + "bundleItems": { + "type": "array", + "description": "This field groups offerings (services) related to the item and displays their ID and quantity. A gift package is an example of an offering.", + "items": { + "type": "object", + "description": "Item's offering details.", + "properties": { + "id": { + "type": "integer", + "description": "Offering ID." + }, + "quantity": { + "type": "integer", + "description": "Offering quantity." + } + } + } + }, + "offerings": { + "type": "array", + "description": "Item's offerings, which are services related to the item. For example, guarantee or installation.", + "items": { + "type": "string", + "description": "Service name related to the item." + } + }, + "preSaleDate": { + "type": "string", + "description": "Item's pre sale date.", + "nullable": true + }, + "isGift": { + "type": "boolean", + "description": "This field is `true` when the item is a gift in order context and `false` when it is not." + }, + "taxCode": { + "type": "string", + "description": "Item's tax code.", + "nullable": true + }, + "measurementUnit": { + "type": "string", + "description": "Item's measurement unit." + }, + "unitMultiplier": { + "type": "number", + "description": "Item's unit multiplier." + }, + "marketingData": { + "type": "object", + "description": "Information about promotions and marketing. For example, coupon tracking information and internal or external UTMs.", + "nullable": true, + "properties": { + "id": { + "type": "string", + "description": "Object ID. The expected value is `marketingData`." + }, + "utmSource": { + "type": "string", + "description": "Value of the `utm_source` parameter of the URL that led to the request." + }, + "utmPartner": { + "type": "string", + "description": "UTM Source Parameters." + }, + "utmMedium": { + "type": "string", + "description": "Value of the `utm_medium` parameter of the URL that led to the request." + }, + "utmCampaign": { + "type": "string", + "description": "Value of the `utm_campaign` parameter of the URL that led to the request." + }, + "coupon": { + "type": "string", + "description": "Coupon code." + }, + "utmiCampaign": { + "type": "string", + "description": "Internal UTM value `utmi_cp`." + }, + "utmipage": { + "type": "string", + "description": "Internal UTM value `utmi_p`." + }, + "utmiPart": { + "type": "string", + "description": "Internal UTM value `utmi_pc`." + }, + "marketingTags": { + "type": "string", + "description": "Marketing tags information. This field can be used to register campaign data or informative tags regarding promotions.", + "items": { + "type": "string", + "description": "Marketing tag." + } + } + } + }, + "parentAssemblyBinding": { + "type": "string", + "description": "When items are indexed in between each other, this field returns the assembly option ID. This response is `null` for items that are not [assembly options](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH).", + "nullable": true + }, + "parentItemIndex": { + "type": "integer", + "description": "Ranking number that shows how related items are indexed in between each other. It starts at `0` as the primary item reference and counts up to `1`, `2`, and so on. For example, a customer bought sunglasses and hired a warranty service. Since the sunglasses are index `0`, the warranty service (the [assembly option](https://help.vtex.com/en/tutorial/assembly-options--5x5FhNr4f5RUGDEGWzV1nH)) is index `1` and has the `parentItemIndex` value `0`. This response is `null` for items that are not assembly options.", + "nullable": true + }, + "callCenterOperator": { + "type": "string", + "description": "Identification code of the call center operator responsible for the order.", + "nullable": true + }, + "priceDefinition": { + "type": "object", + "description": "Item's price information.", + "properties": { + "calculatedSellingPrice": { + "type": "integer", + "description": "Item's calculated unitary selling price in cents." + }, + "total": { + "type": "integer", + "description": "Total value of all item's units in cents." + }, + "sellingPrices": { + "type": "array", + "description": "Details on item's selling price.", + "items": { + "type": "object", + "description": "Selling price.", + "properties": { + "value": { + "type": "integer", + "description": "Total value of items in cents." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items." + } + } + } + }, + "reason": { + "type": "string", + "description": "Reason for the price change." + } + } + }, + "costPrice": { + "type": "integer", + "description": "Item's cost price in cents." + } + } + } + }, + "added": { + "type": "array", + "description": "Array containing information on added items of order modification.", + "items": { + "type": "object", + "description": "Information about added items.", + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item being added." + }, + "uniqueId": { + "type": "string", + "description": "Unique ID of the item being added." + }, + "totalQuantity": { + "type": "integer", + "description": "Total quantity of the item being added." + }, + "quantity": { + "type": "integer", + "description": "Quantity of the item being added." + }, + "price": { + "type": "integer", + "description": "Price of the item being added." + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit of the item being added." + }, + "unitMultiplier": { + "type": "number", + "description": "Unit multiplier of the item being added." + }, + "imageUrl": { + "type": "string", + "description": "Image URL of the item being added." + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price of the item being added." + }, + "priceTags": { + "type": "array", + "description": "List of objects with item's price modifiers.", + "items": { + "type": "string", + "description": "Price modifiers." + } + }, + "detailUrl": { + "type": "string", + "description": "Slug of the SKU being added." + }, + "name": { + "type": "string", + "description": "Name of the item being added." + }, + "refId": { + "type": "string", + "description": "SKU reference ID of the item being added." + }, + "deliveryIds": { + "type": "array", + "description": "Array containing information about the delivery IDs of the item being added.", + "nullable": true, + "items": { + "$ref": "#/components/schemas/DeliveryIdResponse" + } + } + } + } + }, + "removed": { + "type": "array", + "description": "Array containing information on removed items of order modification.", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item being removed." + }, + "uniqueId": { + "type": "string", + "description": "Unique ID of the item being removed." + }, + "quantity": { + "type": "integer", + "description": "Quantity of the item being removed." + }, + "price": { + "type": "integer", + "description": "Price of the item being removed." + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit of the item being removed." + }, + "unitMultiplier": { + "type": "number", + "description": "Unit multiplier of the item being removed." + }, + "imageUrl": { + "type": "string", + "description": "Image URL of the item being removed." + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price of the item being removed." + }, + "priceTags": { + "type": "array", + "description": "List of objects with item's price modifiers.", + "items": { + "type": "string", + "description": "Price modifiers." + } + }, + "detailUrl": { + "type": "string", + "description": "Slug of the SKU being removed." + }, + "name": { + "type": "string", + "description": "Name of the item being removed." + }, + "refId": { + "type": "string", + "description": "SKU reference ID of the item being removed." + }, + "deliveryIds": { + "type": "array", + "description": "Array containing information about the delivery IDs of the item being removed.", + "nullable": true, + "items": { + "$ref": "#/components/schemas/DeliveryIdResponse" + } + } + } + } + }, + "replaced": { + "type": "array", + "description": "Array containing information on replaced items of order modification.", + "items": { + "type": "object", + "properties": { + "replaceType": { + "type": "string", + "description": "Type of replacement operation.", + "enum": [ + "ItemReplacement", + "WeightChange", + "PriceChange", + "QuantityChange" + ] + }, + "userInputType": { + "type": "string", + "description": "Type of replacement operation.", + "enum": [ + "ItemReplacement", + "WeightChange", + "PriceChange", + "QuantityChange" + ] + }, + "from": { + "type": "object", + "description": "Information about item being replaced.", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "description": "Details about the item being replaced.", + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item being replaced." + }, + "uniqueId": { + "type": "string", + "description": "Unique ID of the item being replaced." + }, + "quantity": { + "type": "integer", + "description": "Quantity of the item being replaced." + }, + "price": { + "type": "integer", + "description": "Price of the item being replaced." + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit of the item being replaced." + }, + "unitMultiplier": { + "type": "number", + "description": "Unit multiplier of the item being replaced." + }, + "imageUrl": { + "type": "string", + "description": "Image URL of the item being replaced." + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price of the item being replaced." + }, + "priceTags": { + "type": "array", + "description": "List of objects with item's price modifiers.", + "items": { + "type": "string", + "description": "Price modifiers." + } + }, + "detailUrl": { + "type": "string", + "description": "URL slug of the item being replaced." + }, + "name": { + "type": "string", + "description": "Name of the item being replaced." + }, + "refId": { + "type": "string", + "description": "SKU reference ID of the item being replaced." + }, + "deliveryIds": { + "type": "array", + "description": "Array containing information about the delivery IDs of the item being replaced.", + "nullable": true, + "items": { + "$ref": "#/components/schemas/DeliveryIdResponse" + } + } + } + } + }, + "shippingData": { + "type": "object", + "description": "Shipping data object.", + "nullable": true, + "properties": { + "logisticsInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogisticsInfo1" + } + } + } + } + } + }, + "to": { + "type": "object", + "description": "Information about item replacing the previous one.", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "description": "Details about the item replacing the previous one.", + "properties": { + "id": { + "type": "string", + "description": "SKU ID of the item being replaced." + }, + "uniqueId": { + "type": "string", + "description": "Unique ID of the item replacing the previous one." + }, + "quantity": { + "type": "integer", + "description": "Quantity of the item replacing the previous one." + }, + "price": { + "type": "integer", + "description": "Price of the item replacing the previous one." + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit of the item replacing the previous one." + }, + "unitMultiplier": { + "type": "number", + "description": "Unit multiplier of the item replacing the previous one." + }, + "imageUrl": { + "type": "string", + "description": "Image URL of the item replacing the previous one." + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price of the item replacing the previous one." + }, + "priceTags": { + "type": "array", + "description": "List of objects with item's price modifiers.", + "items": { + "type": "string", + "description": "Price modifiers." + } + }, + "detailUrl": { + "type": "string", + "description": "URL slug of the item being replaced." + }, + "name": { + "type": "string", + "description": "Name of the item replacing the previous one." + }, + "refId": { + "type": "string", + "description": "SKU reference ID of the item replacing the previous one." + }, + "deliveryIds": { + "type": "array", + "description": "Array containing information about the delivery IDs of the item being replaced.", + "nullable": true, + "items": { + "$ref": "#/components/schemas/DeliveryIdResponse" + } + } + } + } + }, + "shippingData": { + "type": "object", + "description": "Shipping data object.", + "nullable": true, + "properties": { + "logisticsInfo": { + "type": "array", + "description": "Array with shipping information.", + "items": { + "$ref": "#/components/schemas/LogisticsInfo1" + } + } + } + } + } + }, + "type": { + "type": "string", + "description": "Type of replacement operation.", + "enum": [ + "UserInput", + "System" + ] + } + } + } + }, + "manualDiscountValueAggregated": { + "type": "integer", + "description": "This field shows if a manual price was applied to the total order amount. The value is in cents." + }, + "manualIncrementValueAggregated": { + "type": "integer", + "description": "This field shows if an increment value was applied to the total order amount. The value is in cents." + }, + "totalChangeValueAggregated": { + "type": "integer", + "description": "This field shows how much the order total price is, considering that price modifications might have been made. The value is in cents." + }, + "totals": { + "items": { + "$ref": "#/components/schemas/TotalsUpdated" + } + }, + "lastChange": { + "type": "string", + "description": "Date and time of the last change in [ISO 8601 time zone offset format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + } + }, + "example": { + "original": [ + { + "totalQuantity": 3, + "quantity": 3, + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 4, + "totalListPrice": null, + "accountCarrierName": "Store Name", + "kitItemDetails": [] + } + ], + "itemIndex": 0, + "uniqueId": "368A04D405BE40F9888D23920ACA17EC", + "id": "4", + "productId": "4", + "lockId": "00-1537351038731-01", + "ean": "7896025801879", + "seller": "1", + "sellerSku": "4", + "priceValidUntil": "2026-06-05T15:01:17Z", + "name": "Banana", + "additionalInfo": { + "brandName": "Brand name", + "brandId": "20000", + "categoriesIds": "/1/", + "dimension": { + "cubicweight": 1, + "height": 10, + "length": 10, + "weight": 5, + "width": 10 + }, + "productClusterId": "", + "commercialConditionId": "1", + "offeringInfo": null, + "offeringType": null, + "offeringTypeId": null, + "categories": [ + { + "id": 1, + "name": "Grocery" + } + ] + }, + "attachments": [], + "attachmentOfferings": null, + "assemblies": null, + "refId": "151762", + "shippingPrice": null, + "price": 1199, + "sellingPrice": 599, + "listPrice": 1199, + "manualPrice": null, + "manualPriceAppliedBy": null, + "tax": 215, + "customTax": null, + "rewardValue": 0, + "freightCommission": 0, + "commission": 0, + "priceTags": [ + { + "name": "tax@price-ecc63e22-47ba-4f6c-843b-cfce4f06995e#bf555b6a-3049-4242-9f34-24a5bbb2a6ca", + "rawValue": 0.275, + "isPercentual": true, + "identifier": "ecc63e22-47ba-4f6c-843b-cfce4f06995e", + "rate": null, + "jurisCode": null, + "jurisType": null, + "jurisName": null + }, + { + "name": "tax@price-45ef7f98-c05d-4d23-a867-593e1b8eecb7#3e134d5e-2e9b-4117-9f53-6a2ad41f8885", + "rawValue": 1.5, + "isPercentual": false, + "identifier": "45ef7f98-c05d-4d23-a867-593e1b8eecb7", + "rate": null, + "jurisCode": null, + "jurisType": null, + "jurisName": null + } + ], + "imageUrl": "https://example.com/image.jpg", + "detailUrl": "/banana/p", + "components": [], + "bundleItems": [], + "offerings": [], + "preSaleDate": null, + "isGift": false, + "taxCode": "", + "measurementUnit": "kg", + "unitMultiplier": 1, + "marketingData": null, + "parentAssemblyBinding": null, + "parentItemIndex": null, + "callCenterOperator": null, + "priceDefinition": { + "calculatedSellingPrice": 599, + "total": 1797, + "sellingPrices": [ + { + "value": 599, + "quantity": 3 + } + ], + "reason": null + }, + "costPrice": 599 + } + ], + "added": [ + { + "id": "11", + "uniqueId": "DF6E5BB06ED84724A29A68ED392F99CE", + "totalQuantity": 1, + "quantity": 1, + "price": 749, + "measurementUnit": "un", + "unitMultiplier": 1, + "imageUrl": "https://example.com/image.jpg", + "sellingPrice": 749, + "priceTags": [], + "detailUrl": "/nuggets/p", + "name": "Nuggets", + "refId": "XX00021", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 5, + "totalListPrice": null, + "accountCarrierName": "Store Name", + "kitItemDetails": [] + } + ] + } + ], + "removed": [ + { + "id": "17", + "uniqueId": "8A6A0E3F26DE4F479F9017A60784DF2F", + "quantity": 7, + "price": 5500, + "measurementUnit": "un", + "unitMultiplier": 1, + "imageUrl": "https://example.com/image.jpg", + "sellingPrice": 5500, + "priceTags": [], + "detailUrl": "/plush-shark-18/p", + "name": "Plush shark", + "refId": null, + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 7, + "totalListPrice": null, + "accountCarrierName": "Store Name", + "kitItemDetails": [] + } + ] + } + ], + "replaced": [ + { + "replaceType": "WeightChange", + "userInputType": "WeightChange", + "from": { + "items": [ + { + "id": "1", + "uniqueId": "6024FC8687884BC3B9AA9A8630C52804", + "quantity": 1, + "price": 765, + "measurementUnit": "kg", + "unitMultiplier": 1, + "imageUrl": "https://example.com/image.jpg", + "sellingPrice": 765, + "priceTags": [], + "detailUrl": "/apple/p", + "name": "Apple", + "refId": "197326", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 5, + "totalListPrice": null, + "accountCarrierName": "recorrenciacharlie", + "kitItemDetails": [] + } + ] + } + ], + "shippingData": null + }, + "to": { + "items": [ + { + "id": "1", + "uniqueId": "6024FC8687884BC3B9AA9A8630C52804", + "totalQuantity": 1, + "quantity": 1, + "price": 765, + "measurementUnit": "kg", + "unitMultiplier": 2, + "imageUrl": "https://example.com/image.jpg", + "sellingPrice": 1530, + "priceTags": [], + "detailUrl": "/apple/p", + "name": "Apple", + "refId": "197326", + "deliveryIds": [ + { + "courierId": "1", + "warehouseId": "1_1", + "dockId": "1", + "courierName": "Transportadora", + "quantity": 5, + "totalListPrice": null, + "accountCarrierName": "Store Name", + "kitItemDetails": [] + } + ] + } + ], + "shippingData": null + }, + "type": "UserInput" + } + ], + "manualDiscountValueAggregated": 0, + "manualIncrementValueAggregated": 0, + "totalChangesValueAggregated": -37393, + "totals": [ + { + "id": "Items", + "name": "Items Total", + "value": -37684, + "alternativeTotals": null + }, + { + "id": "Discounts", + "name": "Discounts Total", + "value": 600, + "alternativeTotals": null + }, + { + "id": "Shipping", + "name": "Shipping Total", + "value": -94, + "alternativeTotals": null + }, + { + "id": "Tax", + "name": "Tax Total", + "value": -215, + "alternativeTotals": null + } + ], + "lastChange": "2025-06-05T17:03:41.3219923Z" + } + }, + "DeliveryIdResponse": { + "title": "DeliveryIdResponse", + "type": "object", + "properties": { + "courierId": { + "type": "string", + "description": "ID of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140)." + }, + "warehouseId": { + "type": "string", + "description": "ID of the [warehouse](https://help.vtex.com/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb)." + }, + "dockId": { + "type": "string", + "description": "ID of the [loading dock](https://help.vtex.com/pt/tutorial/doca--5DY8xHEjOLYDVL41Urd5qj)." + }, + "courierName": { + "type": "string", + "description": "Name of the [shipping policy](https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140)." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items in the warehouse or dock." + }, + "totalListPrice": { + "type": "integer", + "description": "Total list price in cents.", + "nullable": true + }, + "accountCarrierName": { + "type": "string", + "description": "Name of the account's [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE)." + }, + "kitItemDetails": { + "type": "array", + "description": "Information about [kits](https://help.vtex.com/tutorial/what-is-a-kit--5ov5s3eHM4AqAAgqWwoc28) items, when applicable.", + "nullable": true, + "items": { + "type": "string", + "description": "Kit item information." + } + } + } + } + } + }, + "tags": [ + { + "name": "Orders" + }, + { + "name": "Order modifications" + }, + { + "name": "Invoice" + }, + { + "name": "Tracking" + }, + { + "name": "Conversation" + }, + { + "name": "Payment" + }, + { + "name": "Feed v2 (deprecated)" + }, + { + "name": "Feed v3" + }, + { + "name": "Order hook" + }, + { + "name": "User orders" + }, + { + "name": "Change seller" + } + ] +} diff --git a/clients/manitou/output/pick-and-pack-last-mile.json b/clients/manitou/output/pick-and-pack-last-mile.json new file mode 100644 index 0000000000..5ab5d2f05d --- /dev/null +++ b/clients/manitou/output/pick-and-pack-last-mile.json @@ -0,0 +1,4308 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Pick and Pack Last Mile Protocol API", + "description": "The Pick and Pack Last Mile Protocol API enables seamless integration between the [Pick and Pack](https://help.vtex.com/en/tutorial/vtex-pick-and-pack--1OOops3WrUyz7e0bnhkfXU) app and delivery services. This API allows carriers and brokers to securely and efficiently exchange shipment information with the Pick and Pack app. It streamlines the process of managing orders, updating shipping statuses, and handling various service-related tasks, ensuring timely and accurate delivery updates. \n\n>ℹ️ Blank fields are included as `null` instead of being omitted.\r\n## Authentication\r\n- [`POST` Create an access token](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/token)\r\n\r\n## Service integration\r\n- [`POST` Create a service](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/create-service)\r\n\r\n## Carriers\r\n- [`POST` Calculate rates](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/rates)\r\n- [`POST` List carriers](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/list-carriers)\r\n\r\n## Shipping updates\r\n- [`GET` Get a service](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#get-/-carrierId-/-serviceId-)\r\n- [`PATCH` Update service](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#patch-/-carrierId-/-serviceId-)\r\n- [`POST` Create notes](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/notes/-carrierId-/-serviceId-)\r\n- [`POST` Create evidence](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/evidences/-carrierId-/-serviceId-)\r\n- [`POST` Create labels](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/labels/-carrierId-/-serviceId-)\r\n- [`POST` Cancel service](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/cancel-service)\r\n- [`POST` Cancel ongoing service](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/cancel/service/-carrierId-/-serviceId-)\r\n- [`POST` Pause and resume service](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/pause-service)\r\n- [`POST` Create on hold service](https://developers.vtex.com/docs/api-reference/pick-and-pack-protocol-api#post-/on-hold/-carrierId-/-serviceId-)", + "version": "1.0" + }, + "servers": [ + { + "url": "https://auth.pickingnpacking.com/{environment}", + "variables": { + "environment": { + "default": "DefaultParameterValue", + "description": "Server to access the authentication necessary to make a request in the Pick and Pack Provider API." + } + } + }, + { + "url": "https://{store_endpoint}", + "variables": { + "your_endpoint": { + "default": "storeapi.com", + "description": "Server from the store." + } + } + }, + { + "url": "https://api.pickingnpacking.com/{environment}/v1/tracking/hook", + "variables": { + "environment": { + "default": "DefaultParameterValue", + "description": "Environment of the Pick and Pack Protocol App." + } + } + } + ], + "paths": { + "/token": { + "post": { + "tags": [ + "Authentication" + ], + "summary": "Create JWT token", + "description": "Creates a `JWT` (JSON Web Token) necessary to access the Pick and Pack Last Mile Protocol API information.\r\n\r\n>ℹ️ To generate the `JWT` it is necessary to have the `API KEY` previously generated by the Pick and Pack team.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createtoken", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatetokenRequest" + }, + "example": { + "apiKey": "{pnpApiKey}" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "string", + "description": "Generated `JWT` token." + }, + "example": "{token}" + } + } + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://auth.pickingnpacking.com/{environment}", + "variables": { + "environment": { + "default": "DefaultParameterValue", + "description": "Server to access the authentication necessary to make a request in the Pick and Pack Last Mile Protocol API." + } + } + } + ] + } + }, + "/create-service": { + "post": { + "tags": [ + "Service integration" + ], + "summary": "Create service", + "description": "Creates a service with the information that VTEX will send to the carrier. To understand how to integrate with a carrier, check the [VTEX Pick and Pack Carriers Integration Protocol](https://developers.vtex.com/docs/guides/vtex-pick-and-pack) guide.\r\n\r\nThis endpoint must be developed by the carriers or brokers to integrate into the protocol.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createservice", + "parameters": [ + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "example": { + "orderId": "SLR-29384924-01", + "carrierId": "servientrega-50461c9f3335", + "seller": "qaolimpica", + "sender": { + "name": "Tabitha Sears", + "phone": "+57 2305781612", + "email": "tabitha_sears@fortean.brother", + "city": "Jenkinsville", + "state": "Northern Mariana Islands", + "country": "US", + "address": "77 Sullivan Place, Jenkinsville, Northern Mariana Islands", + "addressComplement": "Flat 45", + "number": "1029", + "reference": "3", + "location": { + "latitude": -75.269008, + "longitude": 137.499833 + }, + "pickupDate": "2024-04-25T18:06:41.202Z" + }, + "receiver": { + "name": "Pansy Graves", + "phone": "+57 4240807147", + "email": "pansy_graves@zentime.moda", + "city": "Valle", + "state": "Marshall Islands", + "country": "Iceland", + "neighborhood": "Billings", + "number": "9840", + "reference": "63 Billings Place, Valle, Marshall Islands", + "addressComplement": "Flat 45", + "location": { + "latitude": -33.249891, + "longitude": -135.052901 + }, + "identification": "9541933267", + "deliveryDate": "2024-04-16T20:49:36.117Z", + "contactName": "Savannah Porter", + "deliveryWindow": { + "name": "consectetur", + "initialDate": "2024-04-25T22:50:41.209Z", + "finalDate": "2024-05-05T21:50:41.210Z" + } + }, + "packages": [ + { + "id": "6266df719ac55224b793ad36", + "orderId": "SLR-1221800709659-01", + "envelope": "Large", + "description": "Delicate package", + "categories": [ + "Cellphone", + "Technology" + ], + "dimensions": { + "width": "68", + "height": "43", + "length": "13" + }, + "weight": "19", + "totalValue": 5616.01, + "items": [ + { + "id": "6266df71a19ebe35637e1f42", + "name": "Tomatos", + "ean": "473390795673", + "refId": "6266", + "image": "https://static9.depositphotos.com/1628352/1107/i/600/depositphotos_11071361-stock-photo-tomato.jpg", + "type": "Food", + "price": 774230.01, + "weight": "4 kg", + "quantity": 4 + }, + { + "id": "6266df71803601c3bc4e2d99", + "name": "Tomatos", + "ean": "329949764612", + "refId": "6266", + "image": "https://static9.depositphotos.com/1628352/1107/i/600/depositphotos_11071361-stock-photo-cellphone.jpg", + "type": "Foods", + "price": 23162, + "weight": "14 kg", + "quantity": 9 + } + ] + } + ], + "type": "PICKUP_DELIVERY", + "carrierServiceType": "OTHERS", + "comments": "Delivery comments.", + "paymentMethod": "CASH_ON_DELIVERY", + "orderValue": 8000, + "settings": [ + { + "label": "Key secret", + "value": "keysecret-0122", + "key": "secrekey" + } + ], + "timezone": { + "offset": 300, + "value": "America/Bogota" + } + }, + "schema": { + "$ref": "#/components/schemas/CreateServiceBody" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseService" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Required authentication" + }, + "404": { + "description": "Resource not found" + }, + "500": { + "description": "Internal error" + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://{store_endpoint}", + "variables": { + "your_endpoint": { + "default": "storeapi.com", + "description": "Server from the store." + } + } + } + ] + } + }, + "/rates": { + "post": { + "tags": [ + "Carriers" + ], + "summary": "Calculate rates", + "description": "Retrieves all rates from the carriers. To understand how to integrate with a carrier, check the [VTEX Pick and Pack Carriers Integration Protocol](https://developers.vtex.com/docs/guides/vtex-pick-and-pack) guide.\r\n\r\nThis endpoint must be developed by the carriers or brokers to integrate into the protocol.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createservice", + "parameters": [ + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "example": { + "orderId": "SLR-29384924-01", + "carrierId": "servientrega-50461c9f3335", + "seller": "qaolimpica", + "sender": { + "name": "Tabitha Sears", + "phone": "+57 2305781612", + "email": "tabitha_sears@fortean.brother", + "city": "Jenkinsville", + "state": "Northern Mariana Islands", + "country": "US", + "address": "77 Sullivan Place, Jenkinsville, Northern Mariana Islands", + "addressComplement": "Flat 45", + "number": "1029", + "reference": "3", + "location": { + "latitude": -75.269008, + "longitude": 137.499833 + }, + "pickupDate": "2024-04-25T18:06:41.202Z" + }, + "receiver": { + "name": "Pansy Graves", + "phone": "+57 4240807147", + "email": "pansy_graves@zentime.moda", + "city": "Valle", + "state": "Marshall Islands", + "country": "Iceland", + "neighborhood": "Billings", + "number": "9840", + "reference": "63 Billings Place, Valle, Marshall Islands", + "addressComplement": "Flat 32", + "location": { + "latitude": -33.249891, + "longitude": -135.052901 + }, + "identification": "9541933267", + "deliveryDate": "2024-04-16T20:49:36.117Z", + "contactName": "Savannah Porter", + "deliveryWindow": { + "name": "consectetur", + "initialDate": "2024-04-25T22:50:41.209Z", + "finalDate": "2024-05-05T21:50:41.210Z" + } + }, + "packages": [ + { + "id": "6266df719ac55224b793ad36", + "orderId": "SLR-1221800709659-01", + "envelope": "Large", + "description": "Delicate package", + "categories": [ + "Foods" + ], + "dimensions": { + "width": "68", + "height": "43", + "length": "13" + }, + "weight": "19", + "totalValue": 5616.01, + "items": [ + { + "id": "6266df71a19ebe35637e1f42", + "name": "Tomatos", + "ean": "473390795673", + "refId": "6266", + "image": "https://static9.depositphotos.com/1628352/1107/i/600/depositphotos_11071361-stock-photo-tomato.jpg", + "type": "Food", + "price": 774230.01, + "weight": "4 kg", + "quantity": 4 + } + ] + } + ], + "type": "PICKUP_DELIVERY", + "carrierServiceType": "OTHERS", + "comments": "Delivery comments.", + "paymentMethod": "CASH_ON_DELIVERY", + "orderValue": 8000, + "settings": [ + { + "label": "Key secret", + "value": "keysecret-0122", + "key": "secrekey" + } + ], + "timezone": { + "offset": 300, + "value": "America/Bogota" + } + }, + "schema": { + "$ref": "#/components/schemas/CreateServiceBody" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceBody" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Required authentication" + }, + "404": { + "description": "Resource not found" + }, + "500": { + "description": "Internal error" + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://{store_endpoint}", + "variables": { + "your_endpoint": { + "default": "storeapi.com", + "description": "Server from the store." + } + } + } + ] + } + }, + "/list-carriers": { + "post": { + "tags": [ + "Carriers" + ], + "summary": "List carriers", + "description": "Retrieves all carriers from the broker.\r\n\r\nThis endpoint must be developed by the carriers or brokers to integrate into the protocol.\r\n\r\nThis endpoint only applies to multi-carrier integrations such as Shipstation or Shippo.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createservice", + "parameters": [ + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseService" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Required authentication" + }, + "404": { + "description": "Resource not found" + }, + "500": { + "description": "Internal error" + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://{store_endpoint}", + "variables": { + "your_endpoint": { + "default": "storeapi.com", + "description": "Server from the store." + } + } + } + ] + } + }, + "/{carrierId}/{serviceId}": { + "get": { + "tags": [ + "Shipping updates" + ], + "summary": "Get service", + "description": "Returns information about a service, which can be queried by providing the carrier ID and the corresponding service ID as query parameters.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "Getservice", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "Carrier ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50" + } + }, + { + "name": "serviceId", + "in": "path", + "description": "Service ID generated by the carrier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "78c83922-d658-48bf-89d5-0658a6a94e27" + } + }, + { + "$ref": "#/components/parameters/Authorization" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceBody" + }, + "example": { + "message": "success", + "data": { + "id": "519400fb-f980-4a6a-809c-9f986fdb98a4", + "orderId": "46369545534253-01", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50&78c83922-d658-48bf-89d5-0658a6a94e27", + "carrierName": "AfterShip", + "seller": "lastmile", + "status": "DELIVERED", + "type": "PICKUP_DELIVERY", + "tags": [], + "labels": [ + { + "id": "78c83922-d658-48bf-89d5-0658a6a94e27", + "name": "Shipping label", + "url": "https://sandbox-download.postmen.com/label/2024-03-09/258a26a4-45ae-49eb-b64d-929d3b81f46d-1709947994279763.pdf", + "type": "PDF" + } + ], + "evidences": [], + "packages": [ + { + "id": "a46e5bc1-8959-459f-a094-b6e699f7214c", + "orderId": "46369545534253-01", + "envelope": "Foam or Plastic Containers", + "dimensions": { + "height": "5", + "length": "11", + "width": "7" + }, + "weight": "48", + "totalValue": 5352, + "items": [ + { + "id": "184", + "name": "Chicken", + "ean": "EAN354", + "quantity": 8, + "price": 669, + "refId": "314", + "image": "https://picsum.photos/seed/YtoZ9/128/480", + "type": "other", + "weight": "6" + } + ], + "categories": [ + "Movies", + "Garden", + "Books" + ], + "description": "Unde deserunt libero cupiditate illum." + } + ], + "timeline": [ + { + "id": "77263f59-0ac5-4b0c-bfe5-f17a1648474d", + "date": "2024-03-09T01:33:14.917Z", + "createdAt": "2024-03-09T01:33:14.917Z", + "updatedAt": "2024-03-09T01:33:14.917Z", + "type": "STATUS", + "description": "Service pending in DEV", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "metaData": null, + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27", + "shippingPrice": 284.02, + "status": "PENDING", + "labels": [ + { + "name": "Shipping label", + "id": "78c83922-d658-48bf-89d5-0658a6a94e27", + "type": "PDF", + "url": "https://sandbox-download.postmen.com/label/2024-03-09/258a26a4-45ae-49eb-b64d-929d3b81f46d-1709947994279763.pdf" + } + ] + }, + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27", + "shippingPrice": 284.02, + "status": "PENDING", + "labels": [ + { + "name": "Shipping label", + "id": "78c83922-d658-48bf-89d5-0658a6a94e27", + "type": "PDF", + "url": "https://sandbox-download.postmen.com/label/2024-03-09/258a26a4-45ae-49eb-b64d-929d3b81f46d-1709947994279763.pdf" + } + ] + } + }, + { + "id": "9906da15-15e4-4dbd-8e90-c34ec43ed446", + "date": "2024-03-09T01:46:20.006Z", + "createdAt": "2024-03-09T01:46:20.006Z", + "updatedAt": "2024-03-09T01:46:20.006Z", + "type": "NOTE", + "description": "A new note has been added", + "author": "afterShip", + "metaData": { + "0": { + "type": "COMMENT", + "note": "The package is delivered at the door", + "author": "afterShip" + } + } + }, + { + "id": "35619274-3bca-4749-8a38-53a62776144a", + "date": "2024-03-09T01:44:17.437Z", + "createdAt": "2024-03-09T01:44:17.437Z", + "updatedAt": "2024-03-09T01:44:17.437Z", + "type": "NOTE", + "description": "A new note has been added", + "author": "afterShip", + "metaData": { + "0": { + "type": "COMMENT", + "note": "Tracking Number: 10001709948594168", + "author": "afterShip" + } + } + }, + { + "id": "9b60e3fd-5bf9-43c6-99f2-4292a57fa408", + "date": "2024-03-09T01:46:19.689Z", + "createdAt": "2024-03-09T01:46:19.689Z", + "updatedAt": "2024-03-09T01:46:19.689Z", + "type": "STATUS", + "description": "The package was delivered", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9361289676091361892011", + "status": "DELIVERED" + } + }, + { + "id": "21c9acaa-e14b-41bd-aaa7-a2cebd7384c0", + "date": "2024-03-09T01:43:15.887Z", + "createdAt": "2024-03-09T01:43:15.887Z", + "updatedAt": "2024-03-09T01:43:15.887Z", + "type": "STATUS", + "description": "Service pending", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9361289676091361892011", + "status": "PENDING" + } + }, + { + "id": "7a1a3a63-f94c-49f1-a912-bc3f095d7845", + "date": "2024-03-09T01:45:18.812Z", + "createdAt": "2024-03-09T01:45:18.812Z", + "updatedAt": "2024-03-09T01:45:18.812Z", + "type": "STATUS", + "description": "Courier picked the package", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9361289676091361892011", + "status": "PICKED" + } + }, + { + "id": "9ca25940-bdae-4f19-a5b4-92477abfa059", + "date": "2024-03-09T01:33:14.978Z", + "createdAt": "2024-03-09T01:33:14.978Z", + "updatedAt": "2024-03-09T01:33:14.978Z", + "type": "LABEL", + "description": "Added a label", + "author": "System", + "metaData": { + "name": "Shipping label", + "id": "78c83922-d658-48bf-89d5-0658a6a94e27", + "type": "PDF", + "url": "https://sandbox-download.postmen.com/label/2024-03-09/258a26a4-45ae-49eb-b64d-929d3b81f46d-1709947994279763.pdf" + } + }, + { + "id": "24b84b8b-7418-4ed8-bc89-b6a1cbee2331", + "date": "2024-03-09T01:43:16.289Z", + "createdAt": "2024-03-09T01:43:16.289Z", + "updatedAt": "2024-03-09T01:43:16.289Z", + "type": "NOTE", + "description": "A new note has been added", + "author": "afterShip", + "metaData": { + "0": { + "type": "COMMENT", + "note": "Tracking Number: 10001709948594168", + "author": "afterShip" + } + } + }, + { + "id": "9dfad688-e99a-4b27-9ccb-959da40c3bf8", + "date": "2024-03-09T01:33:08.385Z", + "createdAt": "2024-03-09T01:33:08.385Z", + "updatedAt": "2024-03-09T01:33:08.385Z", + "type": "STATUS", + "description": "Service creation by AfterShip", + "author": "System", + "metaData": { + "status": "CREATED" + } + }, + { + "id": "781ab0af-e62a-4a21-a837-8d0eea3f57c2", + "date": "2024-03-09T01:44:17.077Z", + "createdAt": "2024-03-09T01:44:17.077Z", + "updatedAt": "2024-03-09T01:44:17.077Z", + "type": "STATUS", + "description": "Courier on route", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9361289676091361892011", + "status": "ON_ROUTE" + } + } + ], + "notes": [ + { + "type": "COMMENT", + "date": "2024-03-09T01:43:16.280Z", + "content": "Tracking Number: 10001709948594168", + "author": "afterShip" + }, + { + "type": "COMMENT", + "date": "2024-03-09T01:44:17.423Z", + "content": "Tracking Number: 10001709948594168", + "author": "afterShip" + }, + { + "type": "COMMENT", + "date": "2024-03-09T01:46:19.998Z", + "content": "The package is delivered at the door", + "author": "afterShip" + } + ], + "timezone": { + "offset": 300, + "value": "America/Bogota", + "label": null + }, + "carrierLogo": "iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAtTSURBVHgB7Z1PbBvHFca/WZICXCCFkt6aAGEORZ3YjaVD0d5MpUCL5BIZydGprUOKRBYg+ZQUDSqxSIG0F8uB7PZmufYxruVLghRwRN9S9GDZTpwUPZgB6t6aEE3hAKLEybxdrk3bEnd2dnb+LPcHyJLMFUXqffvem5k3bxgKCF+YGMfmZl18OYEAdXD2pPi6DoZ6dAEbF/+M3/9TrAPGO+DoiG/ooy2+/0JctyE+Omzl8xYKCEMB4At769gMGmDsoHhHDWHEOvJhI/zg/ArGxlpseaMNz/FWAHxubwMIpsVbeDFHgyexIbzEFaC35quH8EoAd43OgyMPu3DLMBEyOFqo1Zo+eQbnBdCP59PCvQujC/fuBy0RJs6y0zdX4TjOCqBv+HmwYMG5u10W8go93nRZCM4JoBCGfxCHheCUAPjsM0cRsEWLSV2+OCgEJwTAX5uoo9I9A39ifDY4XxPDyOMuJIsBLCPu+kVh/FsYFeMTjE2j270VvnfbLwWWGLm7fjcoLFRrU7a8gRUPwI/tO4LK1lWMuvEJyne2uuth/mMB4x5AGP+E+LSAkofhfEkkiE0YxJgAwuFdt3sR5V0/nChBnBEhoQMDGBFAGO+r3fXCDu90YzAvyF0ApfEVMSSCXAVQGj8jBkSQmwBK42siZxHkIoDS+JrJUQTaBRBm+1vdq6XxtbOBWigCraMD/RNBm1tnSuPnwoQYRp+AZrQKgM/uXwTj0yjJi6P89ae1TqJpCwF87mkq1boIH/jOI8BPhE4f+370/e1/AtcvA3e+hhcwNsVWPmlBA1oE4FXSN3UYeGEW2PPd+///y9vA+38CPl6D80RJ4aSOfECPAI7tWxWfjsBlfvBj4OU3gMf3Dr+OhHDhj8C1y3AaMWUs1g0OISOZBRCuYjF2Bq7yPeHmD/8+EkAaPr4EfHAK+O9/4CwsOMRWbmRyWZkE4LTrpzjfeCVy91lYPw+0/uKqEDpiaPhUllCQbRRQ6S45aXyK880Psxs/fq554eB+6uTghlZYM1UVKXuAfkXPLbiEbJxXhfKDc28B//oHnCLDqKAKVaJyLjdQjfNpeezxyBu4lh9wTl6gBQWUPIAziZ+uOK/K+6eBv6+5IQRFL6AmgLl9t6zH/t3G86ZxZ/6gxU59OoWUpBYAn9vfEC5nHbbIO86r4kJ+oOAF0gvg2D4yfgOmMRXns2I3P0jtBVIJwErmH8d5cvm23X0abOUHtdqjaeYF0s0D0LjfJE/88N543ifjE/SaacTwhOFQtbWZarUwnQAYDsIkjV/6Z/hBaNhInssknM2nuVxaAHzuR9PGM3+agqXkylfota+fg2HGw0RdEnkPwHvm50L/Ldbpf/uLKJ76xDf/i17zOy9H78E0vCe9MiudBIrs/yvQ3LMtaBTw/DExJ/8inMaNWcKOGA08KnOhlACsj/0HISFQckXx1SVo/E93vSvrBJJzApJrAeT+HWkmQncWhQVanXvhdftCcLaSKAzZraSrJAXAzGb/MtAfnKp2piytBVCcD2sFzrlZS8jZAZnLEm/r/q7er+AypvMDH6qFCIlJoeRRwNbWBEzx7HORMdNChjj/G5F1v5TvsJHi+8mZ6HepGJ/e27M/gzEkbCcRAnoNI/GfXPlLb0Rfq5ZhxcNG3fkBuXsqFFWN8zSd/fxs9B6JC38wMz/At0kArWGXJAuAw4wHGFzdo9mzA1PqyZWu/EBHnN9p2ZqmuI2QnAckC4CxJ4UIzEN37+G3oztZpUz7m6/vLcio5AfXPgL++o56nKdVy1fetjxKYRpCgCkPsBv0B3z1pHriFecHFFJ+9W6yQbKO591atq4nXTA0CeSv7a3DFegObv4tcqcqiWKcH5x/a+dEkdw9PUZJnorxKc5TDkOv0Z2ahfFwFDeE4R6gWq2LGUA4BQmAxJAlP6APGnHES7XkJW5c1hvnXSE6OWVjt4fVq4JtMpgfqJZhXf8o+siCE3E+gaBSh7IAer26SALhLLbKtH0pTyN62xlCAGN+tGunkBCGhZzLsGyXoedAggD4uJhThjdkzQ+G4XKcHwYbfuaC9W7h2onzg999qMdF03P8+j2R4b/pZ3laghf3MwmUIWt+4FOcz0DxPMCDUEh480K6RZjwZ94rhvE5z7Aa2EMbRWDPI9FwTWYCKb7zfa5GHoSzjMvBRWFPP4NPgtYNRojhAggqRlqWG+PAcxLXpN5f6TZB0B768LAHxSRCG0VCZsauKK4/ptfLkgP0iuUBRpGxsfawh4cKgP358zaio9RL/KSTvSaQlQLwmHbSBckC4L0rKPETzr9IukRiGBhsoMRPGG8lXSIRAlgpAF9hlUTbJQugWi0F4CsStksUQJhFMpQi0ImZrWQbMq1iJKeCef6J4O3PMDJ8aaByicnZTFIAQf5bX2nZdlS4bqIVvZzN5AQQxZJ85wPijRxFh95j/rWLHdl+gVICiGJJL/9blP44RRaBufcn7bHll4NZZRUmoD/Q4s/d68idBXovtHPZlLhZIH2zypeEURjodikM5F8pTC6Sdui40gVEFRvtYxlvpzlFRNoDRMNBfhYmocreuEuYT+3iBruEmfZknLXSXJ6uIqiHVdiA/pjkEXwYKdC+/8W+aG20jqltN9NcnkoA7PRNGg20YIN4l6+r+UHcPYSaP9jqGcT5JbYcLuFLk74snLGm+EUN2MK1/MClY2SCYBkpUTswwlbL+J2g3TppOonP7R/++MonkMK9LmFKB0aobQyx7QUGydIFRBWK8x+cdqs9HNlE5cegiFNeIIZq+l99d3iL9iwewLVuoPdQuvsJ9a1hLnmBGMoPaOilOz9w/TjZ2vYMFFHeGBLONTN2Ei4yOH9AsVqVwfG8u2cJr6bN/AfJtjOoWl2Cy1XDsfHi+QOZ3nzX+l1D6GdsjudlELN+acf9Dz0FMiJygQXx6QRKzMP5jJibWUUGdB0f715CWHxWReKnHPtj9GwOrdUOhe6oxAwaXH+MFgFE9QJBZjWWyBLMZEn87nsmaKI/KtCiypIhMN5UPSl8x6eDZkQ+sCo+SR9aVJICxk+ylZsL0Ij+BhG1Gr3AsoxcO/waqneWoJlcesCFPYarwTo4q6MkO5T0VXtTuuL+fU+NnChFoIkcjR8+PXKkFEFGcjZ++CuQM6UIFDFg/PDXwAClCFJiyPiEkTZxYauZ6tgkbNUT+kVLZPuTJoxPGO8Ezef2L4lFjEWUPEwO4/zEXwkL8NlnjopZQ1pB9KMdff50xE1xPOvKngrWesGXecFdWlTRY8rlP4j1wwBGOCR0qKJKzOsvwSJOnAYReYPKRetH1JnD6l0/iFPHgYS5QYDFwoYFGt710LQR63fDyfNgwjIzxucLJITQ3aP6/2W23HaqhtLZA4HCsBAEDc89grOGj/HiRKj+sHFefOlLjtASie1ZjN1Zc9XwMR4dCRYKYUIIgcLDQQe9Qr9/QrCms2Inb7wSwCBi+NgQd9lRq2Jg1IyZX/LN6IN4K4BB7uYLJsJEmMlXmhjrtlwYxmWlEAKICYVQqVxFflPMHTF+nyyC4WMKdWhU/4CL/CqTab6+QMYnCndqGDv16XIum1Zppc6hCRxdFPPYONq0qnOnUligob8i1wUKlQMM0h8yXoUOattPFc31xxT24Mh+R7PjyE7h4v4ghfUAMRl3LmvZgesyxT86VnXnssYduC5TeA9A9GcN19P9EJ/sh5FCMxKHR6feuUw7cEfA+MRIeIAYyXxAueWaj4zO8fHEdthObffl2Sjuj1Sji5ESQDhVzIZ1MineVG8So+UBQPnAjbUdp4rDzhuf5X84lmOMnABCov6G95K88JSNm0sYQUZSAGFTq+3tQ4jygQ5txETJ6EHVx2G94QjzLdIWvdPvEPp9AAAAAElFTkSuQmCC", + "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9361289676091361892011", + "comments": "Comments.", + "paymentMethod": "ONLINE", + "carrierServiceType": "BROKER", + "rate": { + "shippingPrice": { + "value": 0, + "currency": "USD" + }, + "insurancePrice": { + "value": 0, + "currency": "USD" + } + }, + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "shippingFinishedDate": "2024-01-05T11:11:11.000Z", + "metaData": { + "integrationResponse": {}, + "carrier": { + "name": "[FedEx] Postmen Testing Account", + "image": null, + "metaData": {}, + "id": "fedex", + "type": { + "metaData": {}, + "terms": "", + "rate": { + "shippingPrice": { + "value": 284.02, + "currency": "USD" + }, + "insurancePrice": { + "value": 0, + "currency": "USD" + } + }, + "name": "FedEx First Overnight®", + "transitTime": 0, + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "description": "FedEx", + "id": "fedex_first_overnight", + "international": false + } + } + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Unauthorized", + "requestId": "c7c1ce02-b63f-4001-a1ac-798554c85bd6" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Invalid token", + "requestId": "09563f82-fe06-4004-b623-85e3aa4c92c9" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4041" + }, + "example": { + "type": "exception", + "code": "TRP0005E", + "data": { + "0": "1", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27" + }, + "requestId": "9e3ce442-458c-4861-99aa-23b2cd2da9cf", + "date": "2024-03-15T06:00:21.009Z", + "message": "Service not found: 'MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50&78c83922-d658-48bf-89d5-0658a6a94e27'" + } + } + } + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://api.pickingnpacking.com/{environment}/v1/tracking/hook", + "variables": { + "environment": { + "default": "DefaultParameterValue" + } + } + } + ] + }, + "patch": { + "tags": [ + "Shipping updates" + ], + "summary": "Update service", + "description": "Updates a service with the details of the tracking service via webhook.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Updateservice", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "Carrier ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50" + } + }, + { + "name": "serviceId", + "in": "path", + "description": "Service ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "78c83922-d658-48bf-89d5-0658a6a94e27" + } + }, + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateserviceRequest" + }, + "example": { + "message": "Service updated successfully", + "data": { + "status": "PENDING", + "agent": { + "id": "27327489234", + "name": "Pedro", + "identification": "020323809", + "phone": "+57314855674", + "email": "pedro434234@gmailc.om", + "vehicle": "SCOOTER" + }, + "trackingUrl": "https://localhost.com", + "totalDistanceTraveled": 2, + "rating": 5, + "shippingPrice": 150000, + "shippingEstimatedDate": "2024-04-27T20:25:45.067Z" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ServiceBody1" + }, + "example": { + "message": "Service updated successfully", + "data": { + "status": "PENDING", + "agent": { + "id": "27327489234", + "name": "Pedro", + "identification": "020323809", + "phone": "+57314855674", + "email": "pedro434234@gmailc.om", + "vehicle": "SCOOTER" + }, + "trackingUrl": "https://localhost.com", + "totalDistanceTraveled": 2, + "rating": 5, + "shippingPrice": 150000, + "shippingEstimatedDate": "2024-04-27T20:25:45.067Z" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Unauthorized", + "requestId": "b5077045-e5ee-4eeb-8783-467c5454d03c" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Authentication token expired", + "requestId": "6d5f5fa2-cf31-4878-9be5-7e094022a206" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4041" + }, + "example": { + "type": "exception", + "code": "TRP0005E", + "data": { + "0": "1", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27" + }, + "requestId": "8ce83c17-d9c4-434f-94cd-f2016bb7be8a", + "date": "2024-03-15T05:59:30.114Z", + "message": "Service not found: 'MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50&_78c83922-d658-48bf-89d5-0658a6a94e27'" + } + } + } + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://api.pickingnpacking.com/{environment}/v1/tracking/hook", + "variables": { + "environment": { + "default": "DefaultParameterValue" + } + } + } + ] + } + }, + "/notes/{carrierId}/{serviceId}": { + "post": { + "tags": [ + "Shipping updates" + ], + "summary": "Create notes", + "description": "Allows carriers to add notes and information on existing services.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createnotes", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "Carrier ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50" + } + }, + { + "name": "serviceId", + "in": "path", + "description": "Service ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "78c83922-d658-48bf-89d5-0658a6a94e27" + } + }, + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CreatenotesRequest" + } + }, + "example": [ + { + "type": "ERROR", + "note": "The package takes time to be shipped", + "author": "Oscar Rojas" + }, + { + "type": "COMMENT", + "note": "The package was picked up", + "author": "Oscar Rojas" + } + ] + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ServiceBody3" + }, + "example": { + "message": "Notes saved successfully", + "data": [ + { + "type": "ERROR", + "note": "The package takes time to be shipped", + "author": "Oscar Rojas" + }, + { + "type": "COMMENT", + "note": "The package was picked up", + "author": "Oscar Rojas" + } + ] + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Unauthorized", + "requestId": "3c685f11-45ec-4b8a-88ce-b9fff421eafe" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Authentication token expired", + "requestId": "6fd59420-57c6-4111-bb32-e2aa35eff256" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4041" + }, + "example": { + "type": "exception", + "code": "TRP0005E", + "data": { + "0": "1", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "servicemock" + }, + "requestId": "6129725b-fbb1-42dd-9ec2-4fefecce41c1", + "date": "2024-03-15T06:14:15.950Z", + "message": "Service not found: 'MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50&servicemock'" + } + } + } + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://api.pickingnpacking.com/{environment}/v1/tracking/hook", + "variables": { + "environment": { + "default": "DefaultParameterValue" + } + } + } + ] + } + }, + "/evidences/{carrierId}/{serviceId}": { + "post": { + "tags": [ + "Shipping updates" + ], + "summary": "Create evidence", + "description": "Allows the carrier to add evidence of delivery or pickup to the shipping service, as photos, text.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createevidence", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "Carrier ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50" + } + }, + { + "name": "serviceId", + "in": "path", + "description": "Service ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "78c83922-d658-48bf-89d5-0658a6a94e27" + } + }, + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CreateevidenceRequest" + }, + "example": [ + { + "type": "IMAGE", + "content": "https://parkers-images.bauersecure.com/wp-images/18727/courier-van-insurance-01.jpg", + "author": "Felipe Cardenas" + }, + { + "type": "TEXT", + "content": "The package was delivered", + "author": "Felipe Cardenas" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ServiceBody4" + }, + "example": { + "message": "Evidences saved successfully", + "data": [ + { + "type": "IMAGE", + "content": "https://parkers-images.bauersecure.com/wp-images/18727/courier-van-insurance-01.jpg", + "author": "Felipe Cardenas" + }, + { + "type": "TEXT", + "content": "The package was delivered", + "author": "Felipe Cardenas" + } + ] + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Unauthorized", + "requestId": "c482e112-aa73-4dfb-a31c-1586978dfead" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Authentication token expired", + "requestId": "bcd67893-292d-4547-a01f-62feb56f8a74" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4041" + }, + "example": { + "type": "exception", + "code": "TRP0005E", + "data": { + "0": "1", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27" + }, + "requestId": "b39a0833-629f-429e-8955-f448165502ac", + "date": "2024-03-15T06:22:50.518Z", + "message": "Service not found: 'MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50&_78c83922-d658-48bf-89d5-0658a6a94e27'" + } + } + } + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://api.pickingnpacking.com/{environment}/v1/tracking/hook", + "variables": { + "environment": { + "default": "DefaultParameterValue" + } + } + } + ] + } + }, + "/labels/{carrierId}/{serviceId}": { + "post": { + "tags": [ + "Shipping updates" + ], + "summary": "Create label", + "description": "Allows the carrier to create and add a shipping label to an order. \n\nIt is important that the tag ID is a unique value, if this value is repeated it will throw an exception. \n\n> ⚠️ If the label is type `BASE64` or `TXT`, the max size that allowed is 180kb. \r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createlabels", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "Carrier ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50" + } + }, + { + "name": "serviceId", + "in": "path", + "description": "Service ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "78c83922-d658-48bf-89d5-0658a6a94e27" + } + }, + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatelabelsRequest" + }, + "example": { + "id": "JADF8ADF89-7AD7AF-78ADFASDF", + "url": "http://s3://mybucket-alpha/orc/2013-10-04-custdata/label-pickup.pdf", + "name": "Delivery label", + "type": "PDF" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ServiceBody5" + }, + "example": { + "message": "Label saved successfully", + "data": { + "id": "JADF8ADF89-7AD7AF-78ADFASDF", + "url": "http://s3://mybucket-alpha/orc/2013-10-04-custdata/label-pickup.pdf", + "name": "Delivery label", + "type": "PDF" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Unauthorized", + "requestId": "c482e112-aa73-4dfb-a31c-1586978dfead" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Authentication token expired", + "requestId": "8c0bbb1b-8486-4d94-8136-8586c0ea2efe" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4041" + }, + "example": { + "type": "exception", + "code": "TRP0005E", + "data": { + "0": "1", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27" + }, + "requestId": "b39a0833-629f-429e-8955-f448165502ac", + "date": "2024-03-15T06:22:50.518Z", + "message": "Service not found: 'MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50&_78c83922-d658-48bf-89d5-0658a6a94e27'" + } + } + } + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://api.pickingnpacking.com/{environment}/v1/tracking/hook", + "variables": { + "environment": { + "default": "DefaultParameterValue" + } + } + } + ] + } + }, + "/cancel/{carrierId}/{serviceId}": { + "post": { + "tags": [ + "Shipping updates" + ], + "summary": "Cancel ongoing service", + "description": "Resquest that will cancel an ongoing shipping service.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "PostCancelservice", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "Carrier ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50" + } + }, + { + "name": "serviceId", + "in": "path", + "description": "Service ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "78c83922-d658-48bf-89d5-0658a6a94e27" + } + }, + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CancelOngoingServiceRequest" + }, + "example": { + "comment": "The delivery address was changed", + "type": "END_CLIENT_CANCELED" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ServiceBody6" + }, + "example": { + "message": "Service canceled successfully", + "data": { + "comment": "The delivery address was changed", + "type": "END_CLIENT_CANCELED" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Unauthorized", + "requestId": "c482e112-aa73-4dfb-a31c-1586978dfead" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Authentication token expired", + "requestId": "8c0bbb1b-8486-4d94-8136-8586c0ea2efe" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4041" + }, + "example": { + "type": "exception", + "code": "TRP0005E", + "data": { + "0": "1", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27" + }, + "requestId": "b39a0833-629f-429e-8955-f448165502ac", + "date": "2024-03-15T06:22:50.518Z", + "message": "Service not found: 'MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50&_78c83922-d658-48bf-89d5-0658a6a94e27'" + } + } + } + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://api.pickingnpacking.com/{environment}/v1/tracking/hook", + "variables": { + "environment": { + "default": "DefaultParameterValue" + } + } + } + ] + } + }, + "/cancel-service": { + "post": { + "tags": [ + "Shipping updates" + ], + "summary": "Cancel service", + "description": "Cancels a specific service.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createservice", + "parameters": [ + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CancelServiceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CancelServiceResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Required authentication" + }, + "404": { + "description": "Resource not found" + }, + "500": { + "description": "Internal error" + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://{store_endpoint}", + "variables": { + "your_endpoint": { + "default": "storeapi.com", + "description": "Server from the store." + } + } + } + ] + } + }, + "/pause-service": { + "post": { + "tags": [ + "Shipping updates" + ], + "summary": "Pause and resume service", + "description": "Pauses or resumes a paused service.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Createservice", + "parameters": [ + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PauseResumeServiceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PauseResumeServiceResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Required authentication" + }, + "404": { + "description": "Resource not found" + }, + "500": { + "description": "Internal error" + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://{store_endpoint}", + "variables": { + "your_endpoint": { + "default": "storeapi.com", + "description": "Server from the store." + } + } + } + ] + } + }, + "/on-hold/{carrierId}/{serviceId}": { + "post": { + "tags": [ + "Shipping updates" + ], + "summary": "Create on hold service", + "description": "Request that allows a carrier to temporarily pause a shipping service.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Onholdservice", + "parameters": [ + { + "name": "carrierId", + "in": "path", + "description": "Carrier ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50" + } + }, + { + "name": "serviceId", + "in": "path", + "description": "Service ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "78c83922-d658-48bf-89d5-0658a6a94e27" + } + }, + { + "$ref": "#/components/parameters/Authorization" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OnholdserviceRequest" + }, + "example": { + "comment": "The delivery address was changed", + "type": "END_CLIENT_PAUSE" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ServiceBody6" + }, + "example": { + "message": "Service on hold successfully", + "data": { + "comment": "The delivery address was changed", + "type": "END_CLIENT_PAUSE" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Unauthorized", + "requestId": "c482e112-aa73-4dfb-a31c-1586978dfead" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/m4031" + }, + "example": { + "message": "Authentication token expired", + "requestId": "8c0bbb1b-8486-4d94-8136-8586c0ea2efe" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/m4041" + }, + "example": { + "type": "exception", + "code": "TRP0005E", + "data": { + "0": "1", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27" + }, + "requestId": "b39a0833-629f-429e-8955-f448165502ac", + "date": "2024-03-15T06:22:50.518Z", + "message": "Service not found: 'MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50&_78c83922-d658-48bf-89d5-0658a6a94e27'" + } + } + } + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://api.pickingnpacking.com/{environment}/v1/tracking/hook", + "variables": { + "environment": { + "default": "DefaultParameterValue" + } + } + } + ] + } + } + }, + "components": { + "parameters": { + "Authorization": { + "name": "Authorization", + "in": "header", + "description": "Authentication JWT. JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information as a JSON object between parties.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "{token}" + } + } + }, + "schemas": { + "CreatetokenRequest": { + "required": [ + "apiKey" + ], + "type": "object", + "properties": { + "apiKey": { + "type": "string", + "description": "The `API KEY` previously generated by the Pick and Pack team. To contact the team, fill out our [form](https://vtex.com/us-en/contact) and indicate the name of the Pick and Pack product in the `Comments` section." + } + }, + "example": { + "apiKey": "{pnpApiKey}" + } + }, + "CreateServiceBody": { + "type": "object", + "properties": { + "orderId": { + "type": "string", + "description": "Order ID." + }, + "carrierId": { + "type": "string", + "description": "Carrier ID." + }, + "seller": { + "type": "string", + "description": "Identifier representing the seller associated with the order." + }, + "sender": { + "description": "Sender personal information.", + "type": "object", + "properties": { + "name": { + "description": "Sender name.", + "type": "string" + }, + "phone": { + "description": "Sender phone number.", + "type": "string" + }, + "email": { + "description": "Sender email.", + "type": "string" + }, + "city": { + "description": "Sender city of residence.", + "type": "string" + }, + "state": { + "description": "Sender state of residence.", + "type": "string" + }, + "country": { + "description": "Sender country of residence.", + "type": "string" + }, + "address": { + "description": "Sender address.", + "type": "string" + }, + "addressComplement": { + "description": "Sender address complement, as apartment number.", + "type": "string" + }, + "number": { + "description": "Sender residence number.", + "type": "string" + }, + "reference": { + "description": "Reference to the sender's address to facilitate localization.", + "type": "string" + }, + "location": { + "description": "Object containing specific latitude and longitude of the sender's address.", + "type": "object", + "properties": { + "latitude": { + "description": "Sender address' latitude.", + "type": "number" + }, + "longitude": { + "description": "Sender address' longitude.", + "type": "number" + } + } + }, + "pickupDate": { + "description": "Package pickup date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "type": "string" + } + } + }, + "receiver": { + "description": "Receiver personal information.", + "type": "object", + "properties": { + "name": { + "description": "Receiver name.", + "type": "string" + }, + "phone": { + "description": "Receiver phone number.", + "type": "string" + }, + "email": { + "description": "Receiver email.", + "type": "string" + }, + "city": { + "description": "Receiver city of residence.", + "type": "string" + }, + "state": { + "description": "Receiver state of residence.", + "type": "string" + }, + "country": { + "description": "Receiver country of residence.", + "type": "string" + }, + "address": { + "description": "Receiver address.", + "type": "string" + }, + "addressComplement": { + "description": "Receiver address complement, as apartment number.", + "type": "string" + }, + "number": { + "description": "Receiver residence number.", + "type": "string" + }, + "reference": { + "description": "Reference to the receiver's address to facilitate localization.", + "type": "string" + }, + "location": { + "description": "Object containing specific latitude and longitude of the receiver's address.", + "type": "object", + "properties": { + "latitude": { + "description": "Receiver address' latitude.", + "type": "number" + }, + "longitude": { + "description": "Receiver address' longitude.", + "type": "number" + } + } + }, + "identification": { + "description": "Receiver identification code.", + "type": "string" + }, + "deliveryDate": { + "description": "Delivery estimated date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "type": "string" + }, + "contactName": { + "description": "Receiver contact name.", + "type": "string" + }, + "deliveryWindow": { + "description": "Object containing information about package delivery window.", + "type": "object", + "properties": { + "name": { + "description": "Carrier name.", + "type": "string" + }, + "initialDate": { + "description": "Delivery initial date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "type": "string" + }, + "finalDate": { + "description": "Delivery final date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`.", + "type": "string" + } + } + } + } + }, + "packages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Package" + }, + "description": "Array containing information about all order's packages." + }, + "carrierServiceType": { + "type": "string", + "description": "Carrier service type. The `carrierServiceType` value is not limited to these specific values. It will be defined by the carrier integrating with the Pick and Pack Last Mile Protocol API.", + "enum": [ + "BROKER", + "PICKUP_IN_STORE", + "NATIONAL", + "INTERNATIONAL", + "EXPRESS", + "SPECIALIZED", + "OTHERS" + ] + }, + "type": { + "type": "string", + "description": "Order's type of delivery, `Delivery` or [`Pickup`](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R)." + }, + "paymentMethod": { + "type": "string", + "description": "Payment method." + }, + "comments": { + "type": "string", + "description": "Comments." + }, + "orderValue": { + "type": "integer", + "description": "Total value of the order." + }, + "settings": { + "description": "Array of objects with additional custom fields defined by the carrier.", + "type": "array", + "items": { + "description": "Object containing information about a custom field.", + "type": "object", + "properties": { + "label": { + "description": "Custom field description.", + "type": "string" + }, + "value": { + "description": "Custom field value.", + "type": "string" + }, + "key": { + "description": "Custom field key.", + "type": "string" + } + } + } + }, + "timezone": { + "$ref": "#/components/schemas/Timezone" + } + } + }, + "ServiceBody": { + "required": [ + "message", + "data" + ], + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Status message about the request." + }, + "data": { + "$ref": "#/components/schemas/Data", + "type": "object", + "description": "Service general information." + } + } + }, + "Data": { + "required": [ + "id", + "orderId", + "carrierId", + "serviceId", + "carrierName", + "seller", + "status", + "type", + "tags", + "labels", + "evidences", + "packages", + "timeline", + "notes", + "timezone", + "carrierLogo", + "trackingUrl", + "comments", + "paymentMethod", + "carrierServiceType", + "rate", + "shippingEstimatedDate", + "shippingFinishedDate", + "metaData" + ], + "properties": { + "id": { + "type": "string", + "description": "Service ID." + }, + "orderId": { + "type": "string", + "description": "Order ID." + }, + "carrierId": { + "type": "string", + "description": "Carrier ID." + }, + "serviceId": { + "type": "string", + "description": "Service ID." + }, + "carrierName": { + "type": "string", + "description": "Carrier name." + }, + "seller": { + "type": "string", + "description": "Identifier representing the seller associated with the order." + }, + "status": { + "type": "string", + "description": "Order [status](https://help.vtex.com/en/tutorial/order-flow-and-status--tutorials_196)." + }, + "type": { + "type": "string", + "description": "Order's type of delivery, `Delivery` or [`Pickup`](https://help.vtex.com/en/tutorial/pickup-points--2fljn6wLjn8M4lJHA6HP3R)." + }, + "tags": { + "type": "array", + "items": { + "type": "string", + "description": "Extra information added in the order." + }, + "description": "Array of tags." + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Label" + }, + "description": "Array containing information about all shipping labels printed in the order." + }, + "evidences": { + "type": "array", + "items": { + "type": "string", + "description": "Message explaining the delivery incident." + }, + "description": "Array with additional notes when an incident occurs in the delivery of the package." + }, + "packages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Package" + }, + "description": "Array containing information about all order's packages." + }, + "timeline": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Timeline" + }, + "description": "Array containing information about the timeline of order changes." + }, + "notes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Note" + }, + "description": "Array with services information." + }, + "timezone": { + "$ref": "#/components/schemas/Timezone" + }, + "carrierLogo": { + "type": "string", + "description": "Carrier logo." + }, + "trackingUrl": { + "type": "string", + "description": "Tracking URL." + }, + "comments": { + "type": "string", + "description": "Comments." + }, + "paymentMethod": { + "type": "string", + "description": "Payment method." + }, + "carrierServiceType": { + "type": "string", + "description": "Carrier service type. The `carrierServiceType` value is not limited to these specific values. It will be defined by the carrier integrating with the Pick and Pack Last Mile Protocol API.", + "enum": [ + "BROKER", + "PICKUP_IN_STORE", + "NATIONAL", + "INTERNATIONAL", + "EXPRESS", + "SPECIALIZED", + "OTHERS" + ] + }, + "rate": { + "$ref": "#/components/schemas/Rate" + }, + "shippingEstimatedDate": { + "type": "string", + "description": "Shipping estimated date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "shippingFinishedDate": { + "type": "string", + "nullable": true, + "description": "Shipping finished date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "metaData": { + "$ref": "#/components/schemas/MetaData1" + } + }, + "example": { + "id": "519400fb-f980-4a6a-809c-9f986fdb98a4", + "orderId": "46369545534253-01", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50&78c83922-d658-48bf-89d5-0658a6a94e27", + "carrierName": "AfterShip", + "seller": "lastmile", + "status": "DELIVERED", + "type": "PICKUP_DELIVERY", + "tags": [], + "labels": [ + { + "id": "78c83922-d658-48bf-89d5-0658a6a94e27", + "name": "Shipping label", + "url": "https://sandbox-download.postmen.com/label/2024-03-09/258a26a4-45ae-49eb-b64d-929d3b81f46d-1709947994279763.pdf", + "type": "PDF" + } + ], + "evidences": [], + "packages": [ + { + "id": "a46e5bc1-8959-459f-a094-b6e699f7214c", + "orderId": "46369545534253-01", + "envelope": "Foam or Plastic Containers", + "dimensions": { + "height": "5", + "length": "11", + "width": "7" + }, + "weight": "48", + "totalValue": 5352, + "items": [ + { + "id": "184", + "name": "Chicken", + "ean": "EAN354", + "quantity": 8, + "price": 669, + "refId": "314", + "image": "https://picsum.photos/seed/YtoZ9/128/480", + "type": "other", + "weight": "6" + } + ], + "categories": [ + "Movies", + "Garden", + "Books" + ], + "description": "Unde deserunt libero cupiditate illum." + } + ], + "timeline": [ + { + "id": "77263f59-0ac5-4b0c-bfe5-f17a1648474d", + "date": "2024-03-09T01:33:14.917Z", + "createdAt": "2024-03-09T01:33:14.917Z", + "updatedAt": "2024-03-09T01:33:14.917Z", + "type": "STATUS", + "description": "Service pending in DEV", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "metaData": null, + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27", + "shippingPrice": 284.02, + "status": "PENDING", + "labels": [ + { + "name": "Shipping label", + "id": "78c83922-d658-48bf-89d5-0658a6a94e27", + "type": "PDF", + "url": "https://sandbox-download.postmen.com/label/2024-03-09/258a26a4-45ae-49eb-b64d-929d3b81f46d-1709947994279763.pdf" + } + ] + } + }, + { + "id": "9906da15-15e4-4dbd-8e90-c34ec43ed446", + "date": "2024-03-09T01:46:20.006Z", + "createdAt": "2024-03-09T01:46:20.006Z", + "updatedAt": "2024-03-09T01:46:20.006Z", + "type": "NOTE", + "description": "A new note has been added", + "author": "afterShip", + "metaData": { + "0": { + "type": "COMMENT", + "note": "The package is delivered at the door", + "author": "afterShip" + } + } + }, + { + "id": "35619274-3bca-4749-8a38-53a62776144a", + "date": "2024-03-09T01:44:17.437Z", + "createdAt": "2024-03-09T01:44:17.437Z", + "updatedAt": "2024-03-09T01:44:17.437Z", + "type": "NOTE", + "description": "A new note has been added", + "author": "afterShip", + "metaData": { + "0": { + "type": "COMMENT", + "note": "Tracking Number: 10001709948594168", + "author": "afterShip" + } + } + }, + { + "id": "9b60e3fd-5bf9-43c6-99f2-4292a57fa408", + "date": "2024-03-09T01:46:19.689Z", + "createdAt": "2024-03-09T01:46:19.689Z", + "updatedAt": "2024-03-09T01:46:19.689Z", + "type": "STATUS", + "description": "The package was delivered", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9361289676091361892011", + "status": "DELIVERED" + } + }, + { + "id": "21c9acaa-e14b-41bd-aaa7-a2cebd7384c0", + "date": "2024-03-09T01:43:15.887Z", + "createdAt": "2024-03-09T01:43:15.887Z", + "updatedAt": "2024-03-09T01:43:15.887Z", + "type": "STATUS", + "description": "Service pending", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9361289676091361892011", + "status": "PENDING" + } + }, + { + "id": "7a1a3a63-f94c-49f1-a912-bc3f095d7845", + "date": "2024-03-09T01:45:18.812Z", + "createdAt": "2024-03-09T01:45:18.812Z", + "updatedAt": "2024-03-09T01:45:18.812Z", + "type": "STATUS", + "description": "Courier picked the package", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9361289676091361892011", + "status": "PICKED" + } + }, + { + "id": "9ca25940-bdae-4f19-a5b4-92477abfa059", + "date": "2024-03-09T01:33:14.978Z", + "createdAt": "2024-03-09T01:33:14.978Z", + "updatedAt": "2024-03-09T01:33:14.978Z", + "type": "LABEL", + "description": "Added a label", + "author": "System", + "metaData": { + "name": "Shipping label", + "id": "78c83922-d658-48bf-89d5-0658a6a94e27", + "type": "PDF", + "url": "https://sandbox-download.postmen.com/label/2024-03-09/258a26a4-45ae-49eb-b64d-929d3b81f46d-1709947994279763.pdf" + } + }, + { + "id": "24b84b8b-7418-4ed8-bc89-b6a1cbee2331", + "date": "2024-03-09T01:43:16.289Z", + "createdAt": "2024-03-09T01:43:16.289Z", + "updatedAt": "2024-03-09T01:43:16.289Z", + "type": "NOTE", + "description": "A new note has been added", + "author": "afterShip", + "metaData": { + "0": { + "type": "COMMENT", + "note": "Tracking Number: 10001709948594168", + "author": "afterShip" + } + } + }, + { + "id": "9dfad688-e99a-4b27-9ccb-959da40c3bf8", + "date": "2024-03-09T01:33:08.385Z", + "createdAt": "2024-03-09T01:33:08.385Z", + "updatedAt": "2024-03-09T01:33:08.385Z", + "type": "STATUS", + "description": "Service creation by AfterShip", + "author": "System", + "metaData": { + "status": "CREATED" + } + }, + { + "id": "781ab0af-e62a-4a21-a837-8d0eea3f57c2", + "date": "2024-03-09T01:44:17.077Z", + "createdAt": "2024-03-09T01:44:17.077Z", + "updatedAt": "2024-03-09T01:44:17.077Z", + "type": "STATUS", + "description": "Courier on route", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9361289676091361892011", + "status": "ON_ROUTE" + } + } + ], + "notes": [ + { + "type": "COMMENT", + "date": "2024-03-09T01:43:16.280Z", + "content": "Tracking Number: 10001709948594168", + "author": "afterShip" + }, + { + "type": "COMMENT", + "date": "2024-03-09T01:44:17.423Z", + "content": "Tracking Number: 10001709948594168", + "author": "afterShip" + }, + { + "type": "COMMENT", + "date": "2024-03-09T01:46:19.998Z", + "content": "The package is delivered at the door", + "author": "afterShip" + } + ], + "timezone": { + "offset": 300, + "value": "America/Bogota", + "label": null + }, + "carrierLogo": "iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAtTSURBVHgB7Z1PbBvHFca/WZICXCCFkt6aAGEORZ3YjaVD0d5MpUCL5BIZydGprUOKRBYg+ZQUDSqxSIG0F8uB7PZmufYxruVLghRwRN9S9GDZTpwUPZgB6t6aEE3hAKLEybxdrk3bEnd2dnb+LPcHyJLMFUXqffvem5k3bxgKCF+YGMfmZl18OYEAdXD2pPi6DoZ6dAEbF/+M3/9TrAPGO+DoiG/ooy2+/0JctyE+Omzl8xYKCEMB4At769gMGmDsoHhHDWHEOvJhI/zg/ArGxlpseaMNz/FWAHxubwMIpsVbeDFHgyexIbzEFaC35quH8EoAd43OgyMPu3DLMBEyOFqo1Zo+eQbnBdCP59PCvQujC/fuBy0RJs6y0zdX4TjOCqBv+HmwYMG5u10W8go93nRZCM4JoBCGfxCHheCUAPjsM0cRsEWLSV2+OCgEJwTAX5uoo9I9A39ifDY4XxPDyOMuJIsBLCPu+kVh/FsYFeMTjE2j270VvnfbLwWWGLm7fjcoLFRrU7a8gRUPwI/tO4LK1lWMuvEJyne2uuth/mMB4x5AGP+E+LSAkofhfEkkiE0YxJgAwuFdt3sR5V0/nChBnBEhoQMDGBFAGO+r3fXCDu90YzAvyF0ApfEVMSSCXAVQGj8jBkSQmwBK42siZxHkIoDS+JrJUQTaBRBm+1vdq6XxtbOBWigCraMD/RNBm1tnSuPnwoQYRp+AZrQKgM/uXwTj0yjJi6P89ae1TqJpCwF87mkq1boIH/jOI8BPhE4f+370/e1/AtcvA3e+hhcwNsVWPmlBA1oE4FXSN3UYeGEW2PPd+///y9vA+38CPl6D80RJ4aSOfECPAI7tWxWfjsBlfvBj4OU3gMf3Dr+OhHDhj8C1y3AaMWUs1g0OISOZBRCuYjF2Bq7yPeHmD/8+EkAaPr4EfHAK+O9/4CwsOMRWbmRyWZkE4LTrpzjfeCVy91lYPw+0/uKqEDpiaPhUllCQbRRQ6S45aXyK880Psxs/fq554eB+6uTghlZYM1UVKXuAfkXPLbiEbJxXhfKDc28B//oHnCLDqKAKVaJyLjdQjfNpeezxyBu4lh9wTl6gBQWUPIAziZ+uOK/K+6eBv6+5IQRFL6AmgLl9t6zH/t3G86ZxZ/6gxU59OoWUpBYAn9vfEC5nHbbIO86r4kJ+oOAF0gvg2D4yfgOmMRXns2I3P0jtBVIJwErmH8d5cvm23X0abOUHtdqjaeYF0s0D0LjfJE/88N543ifjE/SaacTwhOFQtbWZarUwnQAYDsIkjV/6Z/hBaNhInssknM2nuVxaAHzuR9PGM3+agqXkylfota+fg2HGw0RdEnkPwHvm50L/Ldbpf/uLKJ76xDf/i17zOy9H78E0vCe9MiudBIrs/yvQ3LMtaBTw/DExJ/8inMaNWcKOGA08KnOhlACsj/0HISFQckXx1SVo/E93vSvrBJJzApJrAeT+HWkmQncWhQVanXvhdftCcLaSKAzZraSrJAXAzGb/MtAfnKp2piytBVCcD2sFzrlZS8jZAZnLEm/r/q7er+AypvMDH6qFCIlJoeRRwNbWBEzx7HORMdNChjj/G5F1v5TvsJHi+8mZ6HepGJ/e27M/gzEkbCcRAnoNI/GfXPlLb0Rfq5ZhxcNG3fkBuXsqFFWN8zSd/fxs9B6JC38wMz/At0kArWGXJAuAw4wHGFzdo9mzA1PqyZWu/EBHnN9p2ZqmuI2QnAckC4CxJ4UIzEN37+G3oztZpUz7m6/vLcio5AfXPgL++o56nKdVy1fetjxKYRpCgCkPsBv0B3z1pHriFecHFFJ+9W6yQbKO591atq4nXTA0CeSv7a3DFegObv4tcqcqiWKcH5x/a+dEkdw9PUZJnorxKc5TDkOv0Z2ahfFwFDeE4R6gWq2LGUA4BQmAxJAlP6APGnHES7XkJW5c1hvnXSE6OWVjt4fVq4JtMpgfqJZhXf8o+siCE3E+gaBSh7IAer26SALhLLbKtH0pTyN62xlCAGN+tGunkBCGhZzLsGyXoedAggD4uJhThjdkzQ+G4XKcHwYbfuaC9W7h2onzg999qMdF03P8+j2R4b/pZ3laghf3MwmUIWt+4FOcz0DxPMCDUEh480K6RZjwZ94rhvE5z7Aa2EMbRWDPI9FwTWYCKb7zfa5GHoSzjMvBRWFPP4NPgtYNRojhAggqRlqWG+PAcxLXpN5f6TZB0B768LAHxSRCG0VCZsauKK4/ptfLkgP0iuUBRpGxsfawh4cKgP358zaio9RL/KSTvSaQlQLwmHbSBckC4L0rKPETzr9IukRiGBhsoMRPGG8lXSIRAlgpAF9hlUTbJQugWi0F4CsStksUQJhFMpQi0ImZrWQbMq1iJKeCef6J4O3PMDJ8aaByicnZTFIAQf5bX2nZdlS4bqIVvZzN5AQQxZJ85wPijRxFh95j/rWLHdl+gVICiGJJL/9blP44RRaBufcn7bHll4NZZRUmoD/Q4s/d68idBXovtHPZlLhZIH2zypeEURjodikM5F8pTC6Sdui40gVEFRvtYxlvpzlFRNoDRMNBfhYmocreuEuYT+3iBruEmfZknLXSXJ6uIqiHVdiA/pjkEXwYKdC+/8W+aG20jqltN9NcnkoA7PRNGg20YIN4l6+r+UHcPYSaP9jqGcT5JbYcLuFLk74snLGm+EUN2MK1/MClY2SCYBkpUTswwlbL+J2g3TppOonP7R/++MonkMK9LmFKB0aobQyx7QUGydIFRBWK8x+cdqs9HNlE5cegiFNeIIZq+l99d3iL9iwewLVuoPdQuvsJ9a1hLnmBGMoPaOilOz9w/TjZ2vYMFFHeGBLONTN2Ei4yOH9AsVqVwfG8u2cJr6bN/AfJtjOoWl2Cy1XDsfHi+QOZ3nzX+l1D6GdsjudlELN+acf9Dz0FMiJygQXx6QRKzMP5jJibWUUGdB0f715CWHxWReKnHPtj9GwOrdUOhe6oxAwaXH+MFgFE9QJBZjWWyBLMZEn87nsmaKI/KtCiypIhMN5UPSl8x6eDZkQ+sCo+SR9aVJICxk+ylZsL0Ij+BhG1Gr3AsoxcO/waqneWoJlcesCFPYarwTo4q6MkO5T0VXtTuuL+fU+NnChFoIkcjR8+PXKkFEFGcjZ++CuQM6UIFDFg/PDXwAClCFJiyPiEkTZxYauZ6tgkbNUT+kVLZPuTJoxPGO8Ezef2L4lFjEWUPEwO4/zEXwkL8NlnjopZQ1pB9KMdff50xE1xPOvKngrWesGXecFdWlTRY8rlP4j1wwBGOCR0qKJKzOsvwSJOnAYReYPKRetH1JnD6l0/iFPHgYS5QYDFwoYFGt710LQR63fDyfNgwjIzxucLJITQ3aP6/2W23HaqhtLZA4HCsBAEDc89grOGj/HiRKj+sHFefOlLjtASie1ZjN1Zc9XwMR4dCRYKYUIIgcLDQQe9Qr9/QrCms2Inb7wSwCBi+NgQd9lRq2Jg1IyZX/LN6IN4K4BB7uYLJsJEmMlXmhjrtlwYxmWlEAKICYVQqVxFflPMHTF+nyyC4WMKdWhU/4CL/CqTab6+QMYnCndqGDv16XIum1Zppc6hCRxdFPPYONq0qnOnUligob8i1wUKlQMM0h8yXoUOattPFc31xxT24Mh+R7PjyE7h4v4ghfUAMRl3LmvZgesyxT86VnXnssYduC5TeA9A9GcN19P9EJ/sh5FCMxKHR6feuUw7cEfA+MRIeIAYyXxAueWaj4zO8fHEdthObffl2Sjuj1Sji5ESQDhVzIZ1MineVG8So+UBQPnAjbUdp4rDzhuf5X84lmOMnABCov6G95K88JSNm0sYQUZSAGFTq+3tQ4jygQ5txETJ6EHVx2G94QjzLdIWvdPvEPp9AAAAAElFTkSuQmCC", + "trackingUrl": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9361289676091361892011", + "comments": "Comments.", + "paymentMethod": "ONLINE", + "carrierServiceType": "BROKER", + "rate": { + "shippingPrice": { + "value": 0, + "currency": "USD" + }, + "insurancePrice": { + "value": 0, + "currency": "USD" + } + }, + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "shippingFinishedDate": "2024-01-05T11:11:11.000Z", + "metaData": { + "integrationResponse": {}, + "carrier": { + "name": "[FedEx] Postmen Testing Account", + "image": null, + "metaData": {}, + "id": "fedex", + "type": { + "metaData": {}, + "terms": "", + "rate": { + "shippingPrice": { + "value": 284.02, + "currency": "USD" + }, + "insurancePrice": { + "value": 0, + "currency": "USD" + } + }, + "name": "FedEx First Overnight®", + "transitTime": 0, + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "description": "FedEx", + "id": "fedex_first_overnight", + "international": false + } + } + } + } + }, + "Label": { + "required": [ + "id", + "name", + "url", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Label ID." + }, + "name": { + "type": "string", + "description": "Name of the label." + }, + "url": { + "type": "string", + "description": "Label URL." + }, + "type": { + "type": "string", + "description": "Label's type of file." + } + }, + "example": { + "id": "78c83922-d658-48bf-89d5-0658a6a94e27", + "name": "Shipping label", + "url": "https://sandbox-download.postmen.com/label/2024-03-09/258a26a4-45ae-49eb-b64d-929d3b81f46d-1709947994279763.pdf", + "type": "PDF" + } + }, + "Package": { + "required": [ + "id", + "orderId", + "envelope", + "dimensions", + "weight", + "totalValue", + "items", + "categories", + "description" + ], + "type": "object", + "description": "Package information.", + "properties": { + "id": { + "type": "string", + "description": "Package ID." + }, + "orderId": { + "type": "string", + "description": "Order ID." + }, + "envelope": { + "type": "string", + "description": "Name of the envelope used." + }, + "dimensions": { + "$ref": "#/components/schemas/Dimensions", + "description": "Package dimensions." + }, + "weight": { + "type": "string", + "description": "Package weight in grams." + }, + "totalValue": { + "type": "integer", + "format": "int32", + "description": "Total value of the order." + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Item", + "description": "Product general information." + }, + "description": "Array containing information about the order's products." + }, + "categories": { + "type": "array", + "items": { + "type": "string", + "description": "Category name." + }, + "description": "Array of categories." + }, + "description": { + "type": "string", + "description": "Package description." + } + }, + "example": { + "id": "a46e5bc1-8959-459f-a094-b6e699f7214c", + "orderId": "46369545534253-01", + "envelope": "Foam or Plastic Containers", + "dimensions": { + "height": "5", + "length": "11", + "width": "7" + }, + "weight": "48", + "totalValue": 5352, + "items": [ + { + "id": "184", + "name": "Chicken", + "ean": "EAN354", + "quantity": 8, + "price": 669, + "refId": "314", + "image": "https://picsum.photos/seed/YtoZ9/128/480", + "type": "other", + "weight": "6" + } + ], + "categories": [ + "Movies", + "Garden", + "Books" + ], + "description": "Unde deserunt libero cupiditate illum." + } + }, + "Dimensions": { + "required": [ + "height", + "length", + "width" + ], + "type": "object", + "properties": { + "height": { + "type": "string", + "description": "Package height in centimeters." + }, + "length": { + "type": "string", + "description": "Package length in centimeters." + }, + "width": { + "type": "string", + "description": "Package width in centimeters." + } + }, + "example": { + "height": "5", + "length": "11", + "width": "7" + } + }, + "Item": { + "title": "Item", + "required": [ + "id", + "name", + "ean", + "quantity", + "price", + "refId", + "image", + "type", + "weight" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Product ID." + }, + "name": { + "type": "string", + "description": "Product name." + }, + "ean": { + "type": "string", + "description": "Unique SKU identification code (barcode). Up to 13 numerical characters." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Quantity of units of the product." + }, + "price": { + "type": "integer", + "format": "int32", + "description": "Product price in cents." + }, + "refId": { + "type": "string", + "description": "Product reference ID." + }, + "image": { + "type": "string", + "description": "SKU image." + }, + "type": { + "type": "string", + "description": "Item type." + }, + "weight": { + "type": "string", + "description": "Product weight in grams." + } + }, + "example": { + "id": "184", + "name": "Chicken", + "ean": "EAN354", + "quantity": 8, + "price": 669, + "refId": "314", + "image": "https://picsum.photos/seed/YtoZ9/128/480", + "type": "other", + "weight": "6" + } + }, + "Timeline": { + "required": [ + "id", + "date", + "createdAt", + "updatedAt", + "type", + "description", + "author", + "metaData" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Timeline ID." + }, + "date": { + "type": "string", + "description": "Timeline actual date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "createdAt": { + "type": "string", + "description": "Order's creation date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "updatedAt": { + "type": "string", + "description": "Date of the order's last update in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "type": { + "type": "string", + "description": "Order status." + }, + "description": { + "type": "string", + "description": "Description of the status." + }, + "author": { + "type": "string", + "description": "Status author." + }, + "metaData": { + "$ref": "#/components/schemas/MetaData", + "description": "Metadata about the delivery information." + } + }, + "example": { + "id": "77263f59-0ac5-4b0c-bfe5-f17a1648474d", + "date": "2024-03-09T01:33:14.917Z", + "createdAt": "2024-03-09T01:33:14.917Z", + "updatedAt": "2024-03-09T01:33:14.917Z", + "type": "STATUS", + "description": "Service pending in DEV", + "author": "System", + "metaData": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "metaData": null, + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27", + "shippingPrice": 284.02, + "status": "PENDING", + "labels": [ + { + "name": "Shipping label", + "id": "78c83922-d658-48bf-89d5-0658a6a94e27", + "type": "PDF", + "url": "https://sandbox-download.postmen.com/label/2024-03-09/258a26a4-45ae-49eb-b64d-929d3b81f46d-1709947994279763.pdf" + } + ] + } + } + }, + "MetaData": { + "title": "MetaData", + "type": "object", + "properties": { + "0": { + "$ref": "#/components/schemas/generatedObject", + "description": "Item ID in the cart." + }, + "shippingEstimatedDate": { + "type": "string", + "nullable": true, + "description": "Order's Shipping estimated date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "metaData": { + "type": "string", + "nullable": true, + "description": "Metadata." + }, + "serviceId": { + "type": "string", + "description": "Service ID." + }, + "shippingPrice": { + "type": "number", + "description": "Order's shipping price in cents." + }, + "status": { + "type": "string", + "description": "Shipping status." + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Label" + }, + "description": "Shipping labels, there may be more than one per order due to breakage in packages." + }, + "trackingUrl": { + "type": "string", + "description": "Carrier's tracking URL of the order." + }, + "name": { + "type": "string", + "description": "Carrier name." + }, + "id": { + "type": "string", + "description": "Tracking ID." + }, + "type": { + "type": "string", + "description": "Type of transportation." + }, + "url": { + "type": "string", + "description": "Carrier URL." + } + }, + "example": { + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "metaData": null, + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27", + "shippingPrice": 284.02, + "status": "PENDING", + "labels": [ + { + "name": "Shipping label", + "id": "78c83922-d658-48bf-89d5-0658a6a94e27", + "type": "PDF", + "url": "https://sandbox-download.postmen.com/label/2024-03-09/258a26a4-45ae-49eb-b64d-929d3b81f46d-1709947994279763.pdf" + } + ] + } + }, + "generatedObject": { + "required": [ + "type", + "note", + "author" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of extra information about the item's shipping." + }, + "note": { + "type": "string", + "description": "Text with extra information about the item's shipping." + }, + "author": { + "type": "string", + "description": "Author." + } + }, + "example": { + "type": "COMMENT", + "note": "The package is delivered at the door", + "author": "afterShip" + } + }, + "Note": { + "required": [ + "type", + "date", + "content", + "author" + ], + "type": "object", + "description": "Notes with delivery information.", + "properties": { + "type": { + "type": "string", + "description": "Type of note." + }, + "date": { + "type": "string", + "description": "Date of creation of the note in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "content": { + "type": "string", + "description": "Content of the note." + }, + "author": { + "type": "string", + "description": "Author of the note." + } + }, + "example": { + "type": "COMMENT", + "date": "2024-03-09T01:43:16.280Z", + "content": "Tracking Number: 10001709948594168", + "author": "afterShip" + } + }, + "Timezone": { + "required": [ + "offset", + "value", + "label" + ], + "type": "object", + "description": "Time zone information.", + "properties": { + "offset": { + "type": "integer", + "format": "int32", + "description": "Time zone offset." + }, + "value": { + "type": "string", + "description": "Time zone." + }, + "label": { + "type": "string", + "nullable": true, + "description": "Label." + } + }, + "example": { + "offset": 300, + "value": "America/Bogota", + "label": null + } + }, + "Rate": { + "required": [ + "shippingPrice", + "insurancePrice" + ], + "type": "object", + "description": "Rate cost information.", + "properties": { + "shippingPrice": { + "$ref": "#/components/schemas/ShippingPrice" + }, + "insurancePrice": { + "$ref": "#/components/schemas/InsurancePrice" + } + }, + "example": { + "shippingPrice": { + "value": 0, + "currency": "USD" + }, + "insurancePrice": { + "value": 0, + "currency": "USD" + } + } + }, + "ShippingPrice": { + "required": [ + "value", + "currency" + ], + "type": "object", + "description": "Shipping cost information.", + "properties": { + "value": { + "type": "integer", + "format": "int32", + "description": "Shipping cost in cents." + }, + "currency": { + "type": "string", + "description": "Currency code in [ISO 4217](https://www.iban.com/currency-codes) format." + } + }, + "example": { + "value": 0, + "currency": "USD" + } + }, + "InsurancePrice": { + "required": [ + "value", + "currency" + ], + "type": "object", + "description": "Insurance cost information.", + "properties": { + "value": { + "type": "integer", + "format": "int32", + "description": "Insurance cost in cents." + }, + "currency": { + "type": "string", + "description": "Currency code in [ISO 4217](https://www.iban.com/currency-codes) format." + } + }, + "example": { + "value": 0, + "currency": "USD" + } + }, + "MetaData1": { + "required": [ + "integrationResponse", + "carrier" + ], + "type": "object", + "description": "Metadata about the Carrier.", + "properties": { + "integrationResponse": { + "type": "object", + "description": "Carrier integration information." + }, + "carrier": { + "$ref": "#/components/schemas/Carrier" + } + }, + "example": { + "integrationResponse": {}, + "carrier": { + "name": "[FedEx] Postmen Testing Account", + "image": null, + "metaData": {}, + "id": "fedex", + "type": { + "metaData": {}, + "terms": "", + "rate": { + "shippingPrice": { + "value": 284.02, + "currency": "USD" + }, + "insurancePrice": { + "value": 0, + "currency": "USD" + } + }, + "name": "FedEx First Overnight®", + "transitTime": 0, + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "description": "FedEx", + "id": "fedex_first_overnight", + "international": false + } + } + } + }, + "Carrier": { + "required": [ + "name", + "image", + "metaData", + "id", + "type" + ], + "type": "object", + "description": "Object containing information about a carrier.", + "properties": { + "name": { + "type": "string", + "description": "Carrier name." + }, + "image": { + "type": "string", + "nullable": true, + "description": "Carrier logo." + }, + "metaData": { + "type": "object", + "description": "Carrier metadata." + }, + "id": { + "type": "string", + "description": "Carrier ID." + }, + "type": { + "$ref": "#/components/schemas/Type", + "description": "Carrier type." + } + }, + "example": { + "name": "[FedEx] Postmen Testing Account", + "image": null, + "metaData": {}, + "id": "fedex", + "type": { + "metaData": {}, + "terms": "", + "rate": { + "shippingPrice": { + "value": 284.02, + "currency": "USD" + }, + "insurancePrice": { + "value": 0, + "currency": "USD" + } + }, + "name": "FedEx First Overnight®", + "transitTime": 0, + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "description": "FedEx", + "id": "fedex_first_overnight", + "international": false + } + } + }, + "Type": { + "title": "Type", + "required": [ + "metaData", + "terms", + "rate", + "name", + "transitTime", + "shippingEstimatedDate", + "description", + "id", + "international" + ], + "type": "object", + "properties": { + "metaData": { + "type": "object", + "description": "Carrier metadata." + }, + "terms": { + "type": "string", + "description": "Carrier terms." + }, + "rate": { + "$ref": "#/components/schemas/Rate1", + "description": "Carrier rate." + }, + "name": { + "type": "string", + "description": "Carrier name." + }, + "transitTime": { + "type": "integer", + "format": "int32", + "description": "Carrier transit time." + }, + "shippingEstimatedDate": { + "type": "string", + "nullable": true, + "description": "Carrier Shipping estimated date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "description": { + "type": "string", + "description": "Carrier description." + }, + "id": { + "type": "string", + "description": "Carrier ID." + }, + "international": { + "type": "boolean", + "description": "Defines if the carrier is international (`true`) or not (`false`)." + } + }, + "example": { + "metaData": {}, + "terms": "", + "rate": { + "shippingPrice": { + "value": 284.02, + "currency": "USD" + }, + "insurancePrice": { + "value": 0, + "currency": "USD" + } + }, + "name": "FedEx First Overnight®", + "transitTime": 0, + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z", + "description": "", + "id": "fedex_first_overnight", + "international": false + } + }, + "Rate1": { + "required": [ + "shippingPrice", + "insurancePrice" + ], + "type": "object", + "description": "Rate cost information.", + "properties": { + "shippingPrice": { + "$ref": "#/components/schemas/ShippingPrice1" + }, + "insurancePrice": { + "$ref": "#/components/schemas/InsurancePrice" + } + }, + "example": { + "shippingPrice": { + "value": 284.02, + "currency": "USD" + }, + "insurancePrice": { + "value": 0, + "currency": "USD" + } + } + }, + "ShippingPrice1": { + "required": [ + "value", + "currency" + ], + "type": "object", + "description": "Shipping cost information.", + "properties": { + "value": { + "type": "integer", + "format": "int32", + "description": "Shipping cost in cents." + }, + "currency": { + "type": "string", + "description": "Cost currency code in [ISO 4217](https://www.iban.com/currency-codes) format.." + } + }, + "example": { + "value": 284.02, + "currency": "USD" + } + }, + "m4031": { + "required": [ + "message", + "requestId" + ], + "type": "object", + "description": "Request information.", + "properties": { + "message": { + "type": "string", + "description": "Request message." + }, + "requestId": { + "type": "string", + "description": "Request ID." + } + }, + "example": { + "message": "Invalid token", + "requestId": "09563f82-fe06-4004-b623-85e3aa4c92c9" + } + }, + "Data1": { + "required": [ + "0", + "carrierId", + "serviceId" + ], + "type": "object", + "description": "Request data.", + "properties": { + "0": { + "type": "string", + "description": "Request item." + }, + "carrierId": { + "type": "string", + "description": "Carrier ID." + }, + "serviceId": { + "type": "string", + "description": "Service ID." + } + }, + "example": { + "0": "1", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27" + } + }, + "m4041": { + "required": [ + "type", + "code", + "data", + "requestId", + "date", + "message" + ], + "type": "object", + "description": "Request information.", + "properties": { + "type": { + "type": "string", + "description": "Type of request." + }, + "code": { + "type": "string", + "description": "Request code." + }, + "data": { + "$ref": "#/components/schemas/Data1" + }, + "requestId": { + "type": "string", + "description": "Request ID." + }, + "date": { + "type": "string", + "description": "Request date." + }, + "message": { + "type": "string", + "description": "Request message." + } + }, + "example": { + "type": "exception", + "code": "TRP0005E", + "data": { + "0": "1", + "carrierId": "MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50", + "serviceId": "78c83922-d658-48bf-89d5-0658a6a94e27" + }, + "requestId": "9e3ce442-458c-4861-99aa-23b2cd2da9cf", + "date": "2024-03-15T06:00:21.009Z", + "message": "Service not found: 'MTEyMjMtQWZ0ZXJTaGlwLWRldmVsb3BtZW50&78c83922-d658-48bf-89d5-0658a6a94e27'" + } + }, + "UpdateserviceRequest": { + "required": [ + "status", + "agent", + "trackingUrl", + "totalDistanceTraveled", + "rating", + "shippingPrice", + "shippingEstimatedDate" + ], + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Delivery status." + }, + "agent": { + "type": "string", + "nullable": true, + "description": "Delivery agent." + }, + "trackingUrl": { + "type": "string", + "description": "Delivery tracking URL." + }, + "totalDistanceTraveled": { + "type": "string", + "nullable": true, + "description": "Delivery total distance traveled in kilometers." + }, + "rating": { + "type": "string", + "nullable": true, + "description": "Rating." + }, + "shippingPrice": { + "type": "string", + "nullable": true, + "description": "Delivery shipping price in cents." + }, + "shippingEstimatedDate": { + "type": "string", + "nullable": true, + "description": "Shipping estimated date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + } + }, + "example": { + "status": "DELIVERED", + "agent": null, + "trackingUrl": "https://localhost.com", + "totalDistanceTraveled": null, + "rating": null, + "shippingPrice": null, + "shippingEstimatedDate": "2024-01-05T11:11:11.000Z" + } + }, + "ServiceBody1": { + "required": [ + "message", + "data" + ], + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Service message." + }, + "data": { + "$ref": "#/components/schemas/Data3", + "description": "Service data." + } + }, + "example": { + "message": "Service updated successfully", + "data": { + "status": "PENDING", + "agent": { + "id": "27327489234", + "name": "Pedro", + "identification": "020323809", + "phone": "+57314855674", + "email": "pedro434234@gmailc.om", + "vehicle": "SCOOTER" + }, + "trackingUrl": "https://localhost.com", + "totalDistanceTraveled": 2, + "rating": 5, + "shippingPrice": 150000, + "shippingEstimatedDate": "2024-04-27T20:25:45.067Z" + } + } + }, + "Data3": { + "required": [ + "status", + "agent", + "trackingUrl", + "totalDistanceTraveled", + "rating", + "shippingPrice", + "shippingEstimatedDate" + ], + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Service status." + }, + "agent": { + "$ref": "#/components/schemas/Agent", + "description": "Service agent." + }, + "trackingUrl": { + "type": "string", + "description": "Service tracking URL." + }, + "totalDistanceTraveled": { + "type": "integer", + "format": "int32", + "description": "Delivery total distance traveled in kilometers." + }, + "rating": { + "type": "integer", + "format": "int32", + "description": "Rating." + }, + "shippingPrice": { + "type": "integer", + "format": "int32", + "description": "Shipping price." + }, + "shippingEstimatedDate": { + "type": "string", + "description": "Shipping estimated date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + } + }, + "example": { + "status": "PENDING", + "agent": { + "id": "27327489234", + "name": "Pedro", + "identification": "020323809", + "phone": "+57314855674", + "email": "pedro434234@gmailc.om", + "vehicle": "SCOOTER" + }, + "trackingUrl": "https://localhost.com", + "totalDistanceTraveled": 2, + "rating": 5, + "shippingPrice": 150000, + "shippingEstimatedDate": "2024-04-27T20:25:45.067Z" + } + }, + "Agent": { + "required": [ + "id", + "name", + "identification", + "phone", + "email", + "vehicle" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Agent ID." + }, + "name": { + "type": "string", + "description": "Agent name." + }, + "identification": { + "type": "string", + "description": "Agent identification." + }, + "phone": { + "type": "string", + "description": "Agent phone number." + }, + "email": { + "type": "string", + "description": "Agent email." + }, + "vehicle": { + "type": "string", + "description": "Agent vehicle." + } + }, + "example": { + "id": "27327489234", + "name": "Pedro", + "identification": "020323809", + "phone": "+57314855674", + "email": "pedro434234@gmailc.om", + "vehicle": "SCOOTER" + } + }, + "CreatenotesRequest": { + "required": [ + "type", + "note", + "author" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Note's type." + }, + "note": { + "type": "string", + "description": "Note's text." + }, + "author": { + "type": "string", + "description": "Note's author." + } + }, + "example": { + "type": "ERROR", + "note": "The package takes time to be shipped", + "author": "Oscar Rojas" + } + }, + "ServiceBody3": { + "required": [ + "message", + "data" + ], + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Service message." + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Data9" + }, + "description": "Service data." + } + }, + "example": { + "message": "Notes saved successfully", + "data": [ + { + "type": "ERROR", + "note": "The package takes time to be shipped", + "author": "Oscar Rojas" + }, + { + "type": "COMMENT", + "note": "The package was picked up", + "author": "Oscar Rojas" + } + ] + } + }, + "Data9": { + "required": [ + "type", + "note", + "author" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Note's type." + }, + "note": { + "type": "string", + "description": "Note's text." + }, + "author": { + "type": "string", + "description": "Note's author." + } + }, + "example": { + "type": "ERROR", + "note": "The package takes time to be shipped", + "author": "Oscar Rojas" + } + }, + "CreateevidenceRequest": { + "required": [ + "type", + "content", + "author" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Note's type." + }, + "note": { + "type": "string", + "description": "Note's text." + }, + "author": { + "type": "string", + "description": "Note's author." + } + }, + "example": { + "type": "IMAGE", + "content": "https://parkers-images.bauersecure.com/wp-images/18727/courier-van-insurance-01.jpg", + "author": "Felipe Cardenas" + } + }, + "ServiceBody4": { + "required": [ + "message", + "data" + ], + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Service message." + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Data12" + }, + "description": "Service data." + } + }, + "example": { + "message": "Evidences saved successfully", + "data": [ + { + "type": "IMAGE", + "content": "https://parkers-images.bauersecure.com/wp-images/18727/courier-van-insurance-01.jpg", + "author": "Felipe Cardenas" + }, + { + "type": "TEXT", + "content": "The package was delivered", + "author": "Felipe Cardenas" + } + ] + } + }, + "Data12": { + "required": [ + "type", + "content", + "author" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Note's type." + }, + "note": { + "type": "string", + "description": "Note's text." + }, + "author": { + "type": "string", + "description": "Note's author." + } + }, + "example": { + "type": "IMAGE", + "content": "https://parkers-images.bauersecure.com/wp-images/18727/courier-van-insurance-01.jpg", + "author": "Felipe Cardenas" + } + }, + "CreatelabelsRequest": { + "required": [ + "id", + "url", + "name", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Label ID." + }, + "url": { + "type": "string", + "description": "Label URL." + }, + "name": { + "type": "string", + "description": "Label name." + }, + "type": { + "type": "string", + "description": "Label type." + } + }, + "example": { + "id": "JADF8ADF89-7AD7AF-78ADFASDF", + "url": "http://s3://mybucket-alpha/orc/2013-10-04-custdata/label-pickup.pdf", + "name": "Delivery label", + "type": "PDF" + } + }, + "ServiceBody5": { + "required": [ + "message", + "data" + ], + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Service message." + }, + "data": { + "$ref": "#/components/schemas/Data15", + "description": "Service data." + } + }, + "example": { + "message": "Label saved successfully", + "data": { + "id": "JADF8ADF89-7AD7AF-78ADFASDF", + "url": "http://s3://mybucket-alpha/orc/2013-10-04-custdata/label-pickup.pdf", + "name": "Delivery label", + "type": "PDF" + } + } + }, + "Data15": { + "required": [ + "id", + "url", + "name", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Label ID." + }, + "url": { + "type": "string", + "description": "Label URL." + }, + "name": { + "type": "string", + "description": "Label name." + }, + "type": { + "type": "string", + "description": "Label type." + } + }, + "example": { + "id": "JADF8ADF89-7AD7AF-78ADFASDF", + "url": "http://s3://mybucket-alpha/orc/2013-10-04-custdata/label-pickup.pdf", + "name": "Delivery label", + "type": "PDF" + } + }, + "CancelOngoingServiceRequest": { + "required": [ + "comment", + "type" + ], + "type": "object", + "properties": { + "comment": { + "type": "string", + "description": "Service comment." + }, + "type": { + "type": "string", + "description": "Service type." + } + }, + "example": { + "comment": "The delivery address was changed", + "type": "END_CLIENT_CANCELED" + } + }, + "ServiceBody6": { + "required": [ + "message", + "data" + ], + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Service message." + }, + "data": { + "$ref": "#/components/schemas/Data18", + "description": "Service data." + } + }, + "example": { + "message": "Service canceled successfully", + "data": { + "comment": "The delivery address was changed", + "type": "END_CLIENT_CANCELED" + } + } + }, + "Data18": { + "required": [ + "comment", + "type" + ], + "type": "object", + "properties": { + "comment": { + "type": "string", + "description": "Service comment." + }, + "type": { + "type": "string", + "description": "Service type." + } + }, + "example": { + "comment": "The delivery address was changed", + "type": "END_CLIENT_CANCELED" + } + }, + "OnholdserviceRequest": { + "required": [ + "comment", + "type" + ], + "type": "object", + "properties": { + "comment": { + "type": "string", + "description": "Service comment." + }, + "type": { + "type": "string", + "description": "Service type." + } + }, + "example": { + "comment": "The delivery address was changed", + "type": "END_CLIENT_PAUSE" + } + }, + "ResponseService": { + "type": "object", + "required": [ + "status", + "serviceId", + "shippingPrice", + "metaData", + "shippingEstimatedDate", + "labels" + ], + "properties": { + "status": { + "type": "string", + "example": "PENDING", + "description": "Status of the service.", + "enum": [ + "PENDING", + "ASSIGNED", + "PICKED", + "ON_ROUTE", + "INCIDENT", + "RETURNED", + "DELIVERED", + "CANCELED", + "ON_HOLD" + ] + }, + "serviceId": { + "type": "string", + "example": "ASDF23324KDSF2", + "description": "Service ID." + }, + "shippingPrice": { + "type": "number", + "example": 20000.09, + "description": "Service shipping price." + }, + "metaData": { + "type": "object", + "properties": { + "{keyValue}": { + "description": "Carrier additional information.", + "type": "string" + } + }, + "example": { + "anyKey": "anyValue" + } + }, + "shippingEstimatedDate": { + "type": "string", + "example": "2024-05-29T22:36:37.589Z", + "description": "Shipping estimated date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Label" + }, + "description": "Shipping labels, there may be more than one per order due to breakage in packages." + } + } + }, + "ListRequest": { + "type": "object", + "required": [ + "settings" + ], + "properties": { + "settings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "example": "Api key", + "description": "Custom label." + }, + "key": { + "type": "string", + "example": "aftership-api-key", + "description": "Custom key." + }, + "value": { + "type": "string", + "example": "8f_XXXXXXXXX_db79", + "description": "Custom value." + } + } + } + } + } + }, + "CancelServiceRequest": { + "type": "object", + "required": [ + "serviceId", + "carrierId", + "settings", + "reason", + "metaData" + ], + "properties": { + "serviceId": { + "type": "string", + "example": "apknieot924892jaf-1231", + "description": "Service ID." + }, + "carrierId": { + "type": "string", + "example": "servientrega9234jaf", + "description": "Carrier ID." + }, + "settings": { + "type": "array", + "description": "Array of custom fields.", + "items": { + "type": "object", + "required": [ + "label", + "key", + "value" + ], + "properties": { + "label": { + "type": "string", + "example": "Cliente ID", + "description": "Custom label." + }, + "key": { + "type": "string", + "example": "clientId", + "description": "Custom key." + }, + "value": { + "type": "string", + "example": "HUR123", + "description": "Custom value." + } + } + } + }, + "reason": { + "type": "string", + "example": "La dirección de entrega esta mal registrada", + "description": "Reason for the cancelation." + }, + "metaData": { + "type": "object", + "description": "Object containing service metadata.", + "properties": { + "myFieldCustom": { + "type": "string", + "example": "custom value", + "description": "Custom value." + } + } + } + } + }, + "CancelServiceResponse": { + "type": "object", + "required": [ + "message", + "data" + ], + "properties": { + "message": { + "type": "string", + "example": "Service executed successfully", + "description": "Message of successful cancelation." + }, + "data": { + "type": "object", + "description": "Object containing service information.", + "required": [ + "serviceId", + "carrierId", + "reason" + ], + "properties": { + "serviceId": { + "type": "string", + "description": "Service ID.", + "example": "apknieot924892jaf-1231" + }, + "carrierId": { + "type": "string", + "description": "Carrier ID.", + "example": "servientrega9234jaf" + }, + "reason": { + "type": "string", + "example": "En el lugar de residencia no hay quien reciba el paquete", + "description": "Reason for the cancelation." + } + } + } + } + }, + "PauseResumeServiceRequest": { + "type": "object", + "required": [ + "serviceId", + "carrierId", + "settings", + "reason", + "metaData" + ], + "properties": { + "serviceId": { + "type": "string", + "example": "apknieot924892jaf-1231", + "description": "Service ID." + }, + "carrierId": { + "type": "string", + "example": "servientrega9234jaf", + "description": "Carrier ID." + }, + "pause": { + "type": "boolean", + "description": "Condition that the service is paused (`false`) or not (`true`).", + "example": false + }, + "settings": { + "type": "array", + "description": "Array of custom fields.", + "items": { + "type": "object", + "required": [ + "label", + "key", + "value" + ], + "properties": { + "label": { + "type": "string", + "example": "Cliente ID", + "description": "Custom label." + }, + "key": { + "type": "string", + "example": "clientId", + "description": "Custom key." + }, + "value": { + "type": "string", + "example": "HUR123", + "description": "Custom value." + } + } + } + }, + "reason": { + "type": "string", + "example": "La dirección de entrega esta mal registrada", + "description": "Reason for the pause or resume." + }, + "metaData": { + "type": "object", + "description": "Object containing service metadata.", + "properties": { + "myFieldCustom": { + "type": "string", + "example": "custom value", + "description": "Custom value." + } + } + } + } + }, + "PauseResumeServiceResponse": { + "type": "object", + "required": [ + "message", + "data" + ], + "properties": { + "message": { + "type": "string", + "example": "Service executed successfully", + "description": "Message of successful cancelation." + }, + "data": { + "type": "object", + "description": "Object containing service information.", + "required": [ + "serviceId", + "carrierId", + "reason" + ], + "properties": { + "serviceId": { + "type": "string", + "description": "Service ID.", + "example": "apknieot924892jaf-1231" + }, + "carrierId": { + "type": "string", + "description": "Carrier ID.", + "example": "servientrega9234jaf" + }, + "cancel": { + "type": "boolean", + "description": "Condition that the service is paused (`false`) or not (`true`).", + "example": false + }, + "reason": { + "type": "string", + "example": "En el lugar de residencia no hay quien reciba el paquete", + "description": "Reason for the cancelation." + } + } + } + } + } + } + }, + "tags": [ + { + "name": "Authentication" + }, + { + "name": "Service integration", + "description": "These endpoints must be developed to integrate with the Lastmile Pick and Pack Last Mile Protocol API." + }, + { + "name": "Shipping updates", + "description": "This endpoint will allow the carriers to update an ongoing shipping service." + }, + { + "name": "Carriers" + } + ] +} diff --git a/clients/manitou/output/pick-and-pack-order-changes.json b/clients/manitou/output/pick-and-pack-order-changes.json new file mode 100644 index 0000000000..b6f2a27ebc --- /dev/null +++ b/clients/manitou/output/pick-and-pack-order-changes.json @@ -0,0 +1,1260 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Pick and Pack Order changes API", + "description": "The Pick and Pack Order changes API manages order modifications in a Pick and Pack order. This API supports actions like updating deadlines, adding items, modifying quantities, rejecting or replacing items, and updating item details.\r\n\r\n>ℹ️ This API is currently in beta and subject to changes. Use it with caution in production environments.\r\n\r\n## Order changes\r\n\r\n- `PUT` [Update order deadline](https://developers.vtex.com/docs/api-reference/pick-and-pack-order-changes-api#put-/orders/-orderId-/deadline)\r\n- `POST` [Update items of the order](https://developers.vtex.com/docs/api-reference/pick-and-pack-order-changes-api#post-/order/changes)\r\n\r\n## BIN locations\r\n\r\n- [`GET` Get BIN location](https://developers.vtex.com/docs/api-reference/pick-and-pack-order-changes-api#get-/-skuId-/warehouses/-warehouseId-)\r\n- [`POST` Create BIN location](https://developers.vtex.com/docs/api-reference/pick-and-pack-order-changes-api#post-/-skuId-/warehouses/-warehouseId-)\r\n- [`PUT` Update BIN location](https://developers.vtex.com/docs/api-reference/pick-and-pack-order-changes-api#put-/-skuId-/warehouses/-warehouseId-)\r\n- [`DELETE` Delete BIN location](https://developers.vtex.com/docs/api-reference/pick-and-pack-order-changes-api#delete-/-skuId-/warehouses/-warehouseId-)", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br/vtex_pickandpack", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + }, + { + "url": "https://{accountName}.myvtex.com/pickpack/bin-location", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + } + } + } + ], + "paths": { + "/orders/{orderId}/deadline": { + "put": { + "summary": "Update order deadline", + "description": "Updates the deadline for an order. The `min` and `max` fields specify the deadline window, while the description provides additional information.\r\n\r\n>ℹ️ This endpoint is currently in beta and subject to changes. Use with caution in production environments.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| OMS | OMS access | **Only show orders created by the user (via call center)** |\r\n| Catalog | Telesales | **Assisted Sales** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "$ref": "#/components/parameters/orderId" + } + ], + "tags": [ + "Order changes" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateDeadlineRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateDeadlineResponse" + }, + "example": { + "order": { + "currentDeadline": { + "max": "2024-12-24T23:03:02Z", + "min": "2024-12-23T23:03:02Z" + }, + "deadlineChanges": [ + { + "current": true, + "description": "Extend deadline due to delayed shipment", + "handled": true, + "max": "2024-12-24T23:03:02.000Z", + "min": "2024-12-23T23:03:02.000Z", + "oldDates": { + "max": "2024-12-04T17:20:48.088Z", + "min": "2024-12-04T17:20:48.088Z" + }, + "updatedAt": "2024-12-03T17:35:59.786Z" + } + ], + "orderId": "1481050515517-01" + }, + "success": true + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "description": "Request error object with error information.", + "type": "object", + "properties": { + "code": { + "description": "Error code.", + "type": "string" + }, + "message": { + "description": "Error message.", + "type": "string" + } + } + }, + "success": { + "description": "Condition if the request was successful.", + "type": "boolean" + } + } + }, + "example": { + "error": { + "code": "400", + "message": "New dates must be greater than the current dates" + }, + "success": false + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "description": "Authentication failed due to missing, invalid, or expired credentials. Ensure the `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken` headers include valid values.", + "type": "string" + } + } + }, + "example": { + "message": "Unauthorized" + } + } + } + } + }, + "deprecated": false, + "operationId": "put_orders_ByOrderId_deadline" + } + }, + "/order/changes": { + "post": { + "summary": "Update items of the order", + "description": "The endpoint supports actions like adding items, modifying quantities, rejecting or replacing items, and updating item details, adding notes and suggest product replacements.\r\n\r\n>ℹ️ This endpoint is currently in beta and subject to changes. Use with caution in production environments.\r\n\r\n>⚠️ Before using this endpoint, you must make a request with the [Cart simulation](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForms/simulation) endpoint to check inventory availability. For more information of how to simulate a cart, check the [Simulate a shopping cart](https://developers.vtex.com/docs/guides/simulate-a-shopping-cart) guide.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| OMS | OMS access | **Only show orders created by the user (via call center)** |\r\n| Catalog | Telesales | **Assisted Sales** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "tags": [ + "Order changes" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/AddItemRequest" + }, + { + "$ref": "#/components/schemas/AddQuantityRequest" + }, + { + "$ref": "#/components/schemas/ItemToAddRequest" + }, + { + "$ref": "#/components/schemas/RejectItemRequest" + }, + { + "$ref": "#/components/schemas/ReplaceItemRequest" + }, + { + "$ref": "#/components/schemas/ItemToReplace" + }, + { + "$ref": "#/components/schemas/UpdateItemRequest" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddItemRequest" + }, + "example": { + "message": "Error requesting picking action" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "description": "Error message.", + "type": "string" + } + } + }, + "example": { + "message": "Error requesting picking action" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "description": "Authentication failed due to missing, invalid, or expired credentials. Ensure the `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken` headers include valid values.", + "type": "string" + } + } + }, + "example": { + "message": "Unauthorized" + } + } + } + } + }, + "deprecated": false, + "operationId": "post_order_changes" + } + }, + "/{skuId}/warehouses/{warehouseId}": { + "get": { + "summary": "Get BIN location", + "description": "Retrieves the BIN location for a specific SKU in a warehouse. The BIN location is a specific, designated storage location within a warehouse. This location isn't necessarily a physical container. Each BIN is typically assigned a unique identifier or code, facilitating precise tracking and retrieval of items within the warehouse.\r\n\r\n>ℹ️ This endpoint is currently in beta and subject to changes. Use with caution in production environments.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| OMS | OMS access | **Only show orders created by the user (via call center)** |\r\n| Catalog | Telesales | **Assisted Sales** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "Unique identifier of the SKU.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "Unique identifier of the warehouse.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "10" + } + } + ], + "tags": [ + "BIN locations" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The BIN location within the warehouse." + }, + "hostname": { + "type": "string", + "description": "The account name managing the BIN location." + }, + "warehouseId": { + "type": "string", + "description": "The identifier of the warehouse." + }, + "skuId": { + "type": "string", + "description": "The identifier of the SKU." + } + } + }, + "example": { + "location": "My location 14", + "hostname": "lastmile", + "warehouseId": "10", + "skuId": "1" + } + } + } + } + }, + "servers": [ + { + "url": "https://{accountName}.myvtex.com/pickpack/bin-location", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + } + } + } + ], + "operationId": "get_BySkuId_warehouses_ByWarehouseId" + }, + "post": { + "summary": "Create BIN location", + "description": "Creates a new BIN location by warehouse ID and SKU ID. The BIN location is a specific, designated storage location within a warehouse. This location isn't necessarily a physical container. Each BIN is typically assigned a unique identifier or code, facilitating precise tracking and retrieval of items within the warehouse.\r\n\r\n>ℹ️ This endpoint is currently in beta and subject to changes. Use with caution in production environments.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| OMS | OMS access | **Only show orders created by the user (via call center)** |\r\n| Catalog | Telesales | **Assisted Sales** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "tags": [ + "BIN locations" + ], + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "Unique identifier of the SKU.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "Unique identifier of the warehouse.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "10" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The BIN location within the warehouse." + } + }, + "required": [ + "location" + ] + }, + "example": { + "location": "My location 14" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The BIN location within the warehouse." + }, + "hostname": { + "type": "string", + "description": "The account name managing the BIN location." + }, + "warehouseId": { + "type": "string", + "description": "The identifier of the warehouse." + }, + "skuId": { + "type": "string", + "description": "The identifier of the SKU." + } + } + }, + "example": { + "location": "My location 14", + "hostname": "lastmile", + "warehouseId": "10", + "skuId": "1" + } + } + } + } + }, + "servers": [ + { + "url": "https://{accountName}.myvtex.com/pickpack/bin-location", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + } + } + } + ], + "operationId": "post_BySkuId_warehouses_ByWarehouseId" + }, + "put": { + "summary": "Update BIN location", + "description": "Updates the BIN location by warehouse ID and SKU ID. The BIN location is a specific, designated storage location within a warehouse. This location isn't necessarily a physical container. Each BIN is typically assigned a unique identifier or code, facilitating precise tracking and retrieval of items within the warehouse.\r\n\r\n>ℹ️ This endpoint is currently in beta and subject to changes. Use with caution in production environments.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| OMS | OMS access | **Only show orders created by the user (via call center)** |\r\n| Catalog | Telesales | **Assisted Sales** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "tags": [ + "BIN locations" + ], + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "Unique identifier of the SKU.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "Unique identifier of the warehouse.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "10" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The BIN location within the warehouse." + } + }, + "required": [ + "location" + ] + }, + "example": { + "location": "My location 14" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The BIN location within the warehouse." + }, + "hostname": { + "type": "string", + "description": "The account name managing the BIN location." + }, + "warehouseId": { + "type": "string", + "description": "The identifier of the warehouse." + }, + "skuId": { + "type": "string", + "description": "The identifier of the SKU." + } + } + }, + "example": { + "location": "My location 14", + "hostname": "lastmile", + "warehouseId": "10", + "skuId": "1" + } + } + } + } + }, + "servers": [ + { + "url": "https://{accountName}.myvtex.com/pickpack/bin-location", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + } + } + } + ], + "operationId": "put_BySkuId_warehouses_ByWarehouseId" + }, + "delete": { + "summary": "Delete BIN location", + "description": "Deletes a specific BIN location by warehouse ID and SKU ID. The BIN location is a specific, designated storage location within a warehouse. This location isn't necessarily a physical container. Each BIN is typically assigned a unique identifier or code, facilitating precise tracking and retrieval of items within the warehouse.\r\n\r\n>ℹ️ This endpoint is currently in beta and subject to changes. Use with caution in production environments.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| OMS | OMS access | **Only show orders created by the user (via call center)** |\r\n| Catalog | Telesales | **Assisted Sales** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "tags": [ + "BIN locations" + ], + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "Unique identifier of the SKU.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "warehouseId", + "in": "path", + "description": "Unique identifier of the warehouse.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "10" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Empty array." + }, + "example": [] + } + } + } + }, + "servers": [ + { + "url": "https://{accountName}.myvtex.com/pickpack/bin-location", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + } + } + } + ], + "operationId": "delete_BySkuId_warehouses_ByWarehouseId" + } + }, + "/{skuId}/warehouses": { + "get": { + "summary": "List BIN locations", + "description": "Retrieves a list of warehouses associated with a specific SKU ID. The BIN location is a specific, designated storage location within a warehouse. This location isn't necessarily a physical container. Each BIN is typically assigned a unique identifier or code, facilitating precise tracking and retrieval of items within the warehouse.\r\n\r\n>ℹ️ This endpoint is currently in beta and subject to changes. Use with caution in production environments.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| OMS | OMS access | **Only show orders created by the user (via call center)** |\r\n| Catalog | Telesales | **Assisted Sales** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "tags": [ + "BIN locations" + ], + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "Unique identifier of the SKU.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "description": "BIN location", + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The BIN location within the warehouse." + }, + "hostname": { + "type": "string", + "description": "The account name managing the BIN location." + }, + "warehouseId": { + "type": "string", + "description": "The identifier of the warehouse." + }, + "skuId": { + "type": "string", + "description": "The identifier of the SKU." + } + } + } + }, + "example": [ + { + "location": "My location 14 edited", + "hostname": "lastmile", + "warehouseId": "14", + "skuId": "2" + }, + { + "location": "My location 15 edited", + "hostname": "lastmile", + "warehouseId": "15", + "skuId": "1" + }, + { + "location": "My location 4 edited", + "hostname": "lastmile", + "warehouseId": "10", + "skuId": "7" + } + ] + } + } + } + }, + "servers": [ + { + "url": "https://{accountName}.myvtex.com/pickpack/warehouses", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + } + } + } + ], + "operationId": "get_BySkuId_warehouses" + }, + "delete": { + "summary": "Delete all BIN locations", + "description": "Deletes all BIN locations for a specific SKU ID. The BIN location is a specific, designated storage location within a warehouse. This location isn't necessarily a physical container. Each BIN is typically assigned a unique identifier or code, facilitating precise tracking and retrieval of items within the warehouse.\r\n\r\n>ℹ️ This endpoint is currently in beta and subject to changes. Use with caution in production environments.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| OMS | OMS access | **View order** |\r\n| OMS | OMS access | **Only show orders created by the user (via call center)** |\r\n| Catalog | Telesales | **Assisted Sales** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "Unique identifier of the SKU.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Empty array." + }, + "example": [] + } + } + } + }, + "operationId": "delete_BySkuId_warehouses" + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "schemas": { + "UpdateDeadlineRequest": { + "required": [ + "description", + "max", + "min" + ], + "type": "object", + "description": "Contains deadline information.", + "properties": { + "description": { + "type": "string", + "description": "Reason or purpose of the deadline change." + }, + "max": { + "type": "string", + "description": "Latest deadline date in ISO 8601 format." + }, + "min": { + "type": "string", + "description": "Earliest deadline date in ISO 8601 format." + } + }, + "example": { + "UpdateDeadline": { + "description": "Extend deadline due to delayed shipment", + "max": "2024-12-24T23:03:02Z", + "min": "2024-12-23T23:03:02Z" + } + } + }, + "UpdateDeadlineResponse": { + "type": "object", + "properties": { + "order": { + "description": "Object with current deadline information.", + "type": "object", + "properties": { + "currentDeadline": { + "description": "Current deadline information.", + "type": "object", + "properties": { + "max": { + "description": "Latest deadline date in ISO 8601 format.", + "type": "string" + }, + "min": { + "description": "Earliest deadline date in ISO 8601 format.", + "type": "string" + } + } + }, + "deadlineChanges": { + "description": "Object containg information of the deadline changes.", + "type": "array", + "items": { + "description": "Deadline change.", + "type": "object", + "properties": { + "current": { + "description": "If the deadline changes were update.", + "type": "boolean" + }, + "description": { + "description": "Reason or purpose for the update.", + "type": "string" + }, + "handled": { + "description": "If the deadline changes were handled by the picker.", + "type": "boolean" + }, + "max": { + "description": "Latest deadline date in ISO 8601 format.", + "type": "string" + }, + "min": { + "description": "Earliest deadline date in ISO 8601 format.", + "type": "string" + }, + "oldDates": { + "description": "Object containg previous deadline information.", + "type": "object", + "properties": { + "max": { + "description": "Latest deadline date in ISO 8601 format.", + "type": "string" + }, + "min": { + "description": "Earliest deadline date in ISO 8601 format.", + "type": "string" + } + } + }, + "updatedAt": { + "description": "An explanation about the purpose of this instance.", + "type": "string" + } + } + } + }, + "orderId": { + "description": "Unique identifier of the order.", + "type": "string" + } + } + }, + "success": { + "description": "Condition if the request was successful.", + "type": "boolean" + } + } + }, + "AddItemRequest": { + "required": [ + "type", + "orderId", + "itemId", + "quantity", + "warehouseId", + "price", + "sellingPrice", + "note", + "pickingOptions" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Action type (`ADD_ITEM`)." + }, + "orderId": { + "type": "string", + "description": "Unique identifier of the order." + }, + "itemId": { + "type": "string", + "description": "Unique identifier of the item." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items to add." + }, + "warehouseId": { + "type": "string", + "description": "Unique identifier of the warehouse." + }, + "price": { + "type": "integer", + "description": "Price of the item." + }, + "sellingPrice": { + "type": "integer", + "description": "Selling price of the item." + }, + "note": { + "type": "string", + "description": "Note to add to the item." + }, + "pickingOptions": { + "required": [ + "onNotFound", + "alternateOptions" + ], + "type": "object", + "description": "Items picking options.", + "properties": { + "onNotFound": { + "type": "string", + "description": "List of alternate options." + }, + "alternateOptions": { + "type": "array", + "items": { + "type": "string", + "description": "ID of alternative items." + }, + "description": "List of IDs of alternative items." + } + } + } + }, + "example": { + "type": "ADD_ITEM", + "orderId": "1481110515526-01", + "itemId": "49", + "quantity": 2, + "warehouseId": "9029", + "price": 500000, + "sellingPrice": 200000, + "note": "TEST from VTEX PROXY 3", + "pickingOptions": { + "onNotFound": "REPLACE", + "alternateOptions": [ + "74" + ] + } + } + }, + "AddQuantityRequest": { + "required": [ + "type", + "orderId", + "itemId", + "newQuantity", + "unitMultiplier", + "reasonType", + "reasonDetail" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Action type (`ADD_QUANTITY`)." + }, + "orderId": { + "type": "string", + "description": "Unique identifier of the order." + }, + "itemId": { + "type": "string", + "description": "Unique identifier for the item." + }, + "newQuantity": { + "type": "integer", + "description": "New quantity of items." + }, + "unitMultiplier": { + "type": "integer", + "description": "Unit multiplier." + }, + "reasonType": { + "type": "string", + "description": "Reason type." + }, + "reasonDetail": { + "type": "string", + "description": "Reason detail." + } + }, + "example": { + "type": "ADD_QUANTITY", + "orderId": "1481110515526-01", + "itemId": "3", + "newQuantity": 4, + "unitMultiplier": 1, + "reasonType": "TEST", + "reasonDetail": "test reason detail" + } + }, + "RejectItemRequest": { + "required": [ + "type", + "orderId", + "itemId", + "quantity", + "reasonType", + "reasonDetail" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Action type (`REJECT`)." + }, + "orderId": { + "type": "string", + "description": "Unique identifier of the order." + }, + "itemId": { + "type": "string", + "description": "Unique identifier for the item." + }, + "quantity": { + "type": "integer", + "description": "Quantity of items to reject." + }, + "reasonType": { + "type": "string", + "description": "Reason type." + }, + "reasonDetail": { + "type": "string", + "description": "Reason detail." + } + }, + "example": { + "type": "REJECT", + "orderId": "1481110515526-01", + "itemId": "1364", + "quantity": 1, + "reasonType": "INVENTORY", + "reasonDetail": "inventory unavailable" + } + }, + "ReplaceItemRequest": { + "required": [ + "type", + "orderId", + "itemToReplace", + "ItemToAddRequest", + "reasonType", + "reasonDetail" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Action type (`REPLACE`)." + }, + "orderId": { + "type": "string", + "description": "Unique identifier of the order." + }, + "itemToReplace": { + "$ref": "#/components/schemas/ItemToReplace" + }, + "ItemToAddRequest": { + "$ref": "#/components/schemas/ItemToAddRequest" + }, + "reasonType": { + "type": "string", + "description": "Reason type." + }, + "reasonDetail": { + "type": "string", + "description": "Reason detail." + } + }, + "example": { + "type": "REPLACE", + "orderId": "1481110515526-01", + "itemToReplace": { + "id": "49", + "quantity": 1 + }, + "ItemToAddRequest": { + "id": "17", + "quantity": 2, + "price": 20000, + "sellingPrice": 10000, + "warehouseId": "9029", + "note": "TEST from VTEX PROXY 1", + "pickingOptions": { + "onNotFound": "REPLACE", + "alternateOptions": [ + "74" + ] + } + }, + "reasonType": "TEST", + "reasonDetail": "test reason detail" + } + }, + "ItemToReplace": { + "required": [ + "id", + "quantity" + ], + "type": "object", + "description": "Items to be replaced in the order.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the item." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Item quantity." + } + }, + "example": { + "id": "49", + "quantity": 1 + } + }, + "ItemToAddRequest": { + "type": "object", + "description": "Items to be added in the order.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the item." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Item quantity." + }, + "price": { + "type": "integer", + "format": "int32", + "description": "Price of the item." + }, + "sellingPrice": { + "type": "integer", + "format": "int32", + "description": "Selling price of the item." + }, + "warehouseId": { + "type": "string", + "description": "Unique identifier of the warehouse." + }, + "note": { + "type": "string", + "description": "Note to add to the item." + }, + "pickingOptions": { + "required": [ + "onNotFound", + "alternateOptions" + ], + "type": "object", + "description": "Items picking options.", + "properties": { + "onNotFound": { + "type": "string", + "description": "List of alternate options." + }, + "alternateOptions": { + "type": "array", + "items": { + "type": "string", + "description": "ID of alternative items." + }, + "description": "List of IDs of alternative items." + } + } + } + }, + "example": { + "id": "17", + "quantity": 2, + "price": 20000, + "sellingPrice": 10000, + "warehouseId": "9029", + "note": "TEST from VTEX PROXY 1", + "pickingOptions": { + "onNotFound": "REPLACE", + "alternateOptions": [ + "74" + ] + } + } + }, + "UpdateItemRequest": { + "required": [ + "type", + "orderId", + "itemId", + "note", + "pickingOptions" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Action type (`UPDATE_ITEM`).", + "enum": [ + "UPDATE_ITEM" + ] + }, + "orderId": { + "type": "string", + "description": "Unique identifier of the order." + }, + "itemId": { + "type": "string", + "description": "Unique identifier of the item." + }, + "note": { + "type": "string", + "description": "Note to add to the item." + }, + "pickingOptions": { + "required": [ + "onNotFound", + "alternateOptions" + ], + "type": "object", + "description": "Items picking options.", + "properties": { + "onNotFound": { + "type": "string", + "description": "List of alternate options." + }, + "alternateOptions": { + "type": "array", + "items": { + "type": "string", + "description": "ID of alternative items." + }, + "description": "List of IDs of alternative items." + } + } + } + }, + "example": { + "type": "UPDATE_ITEM", + "orderId": "1479430515373-01", + "itemId": "1248", + "note": "TEST from VTEX PROXY 3", + "pickingOptions": { + "onNotFound": "REPLACE", + "alternateOptions": [ + "74" + ] + } + } + } + }, + "parameters": { + "orderId": { + "name": "orderId", + "in": "path", + "description": "Unique identifier of the order.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1481050515517-01" + } + } + } + }, + "tags": [ + { + "name": "Order changes" + }, + { + "name": "BIN locations" + } + ] +} diff --git a/clients/manitou/output/pricing.json b/clients/manitou/output/pricing.json new file mode 100644 index 0000000000..6c9d48e6fa --- /dev/null +++ b/clients/manitou/output/pricing.json @@ -0,0 +1,1925 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Pricing API", + "description": "Check the new [Pricing onboarding guide](https://developers.vtex.com/docs/guides/pricing-overview). This guide improves the onboarding experience for developers at VTEX by assembling all Pricing documentation on our Developer Portal and organizing it around the developer journey.\r\n\r\nPricing is the VTEX module responsible for the SKU price list. It stores each SKU’s base price, optional fixed prices by trade policy, and rules that dynamically generate final prices according to the purchase context and trade policy.\r\n\r\nFor details on how to use this module and its business logic, see the [Pricing onboarding guide](https://developers.vtex.com/docs/guides/pricing-overview).\r\n\r\n## Rate limits per route\r\n\r\nThe following table summarizes the rate limits per HTTP method and the available burst credits for each route:\r\n\r\n| Operation | Rate | Burst credits |\r\n| - | - | - |\r\n| `GET` | Rate limit under review. Usage may be restricted in cases of excessive use. | Under review |\r\n| `POST` and `PUT` | 2000 per minute
33 per second | 500 |\r\n| `DELETE` | 1000 per minute
16 per second | 300 |\r\n\r\n### Burst credits\r\n\r\nWhen an account exceeds the per-second rate for a route, the excess is deducted from that route’s burst credits.\r\n**Example:** If an account sends **34 requests per second** to a `POST` or `PUT` price route (whose per-second rate is **33**), **1** burst credit is consumed.\r\n\r\nIf burst credits reach **0**, the service blocks new requests and returns **HTTP 429**.\r\n\r\nBurst credits **refill over time** while the route is idle, at the **same rate** as the route’s per-second limit. \r\n**Example:** For `POST` or `PUT` routes (whose per-second rate is **33**), each idle second refills **33** burst credits for that limiter.\r\n\r\n### Response headers for rate limits\r\n\r\nIn the response of any request to the Pricing API, there are headers indicating the current status of the Rate Limiting. This 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.\r\n\r\n- `Ratelimit-Limit`: total burst credits available for the route.\r\n- `Ratelimit-Remaining`: remaining burst credits for the route.\r\n- `Ratelimit-Reset`: time, in seconds, until burst credits fully refill (up to `Ratelimit-Limit`).\r\n- `Retry-After`: time, in seconds, until the route accepts a new request. If present, the current request was rate-limited and not processed.\r\n\r\n### Integrating with Pricing v2 considering rate limits\r\nWhen developing an integration, consider the **request, route, and account** limits specified in the [Rate limits per route](#rate-limit-per-route) section, and avoid surpassing this frequency.\r\n\r\nIf you happen to be rate limited, please await 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.\r\n\r\n\r\n## Index\r\n\r\n### Prices and fixed prices\r\n- `GET` [Get price](https://developers.vtex.com/docs/api-reference/pricing-api/#get-/pricing/prices/-itemId-)\r\n- `DELETE` [Delete price](https://developers.vtex.com/docs/api-reference/pricing-api/#delete-/pricing/prices/-itemId-)\r\n- `PUT` [Create or update base price or fixed prices](https://developers.vtex.com/docs/api-reference/pricing-api/#put-/pricing/prices/-itemId-)\r\n- `PATCH` [Create or update base price or fixed prices](https://developers.vtex.com/docs/api-reference/pricing-api#patch-/pricing/prices/-itemId-/fixed)\r\n- `GET` [Get fixed prices](https://developers.vtex.com/docs/api-reference/pricing-api/#get-/pricing/prices/-itemId-/fixed)\r\n- `POST` [Create or update fixed prices on a price table or trade policy](https://developers.vtex.com/docs/api-reference/pricing-api/#post-/pricing/prices/-itemId-/fixed/-priceTableId-)\r\n- `GET` [Get fixed prices on a price table policy](https://developers.vtex.com/docs/api-reference/pricing-api/#get-/pricing/prices/-itemId-/fixed/-priceTableId-)\r\n- `DELETE` [Delete fixed prices on a price table or trade policy](https://developers.vtex.com/docs/api-reference/pricing-api/#delete-/pricing/prices/-itemId-/fixed/-priceTableId-)\r\n- `GET` [Get computed price by price table or trade policy](https://developers.vtex.com/docs/api-reference/pricing-api/#get-/pricing/prices/-itemId-/computed/-priceTableId-)\r\n\r\n### Pricing configuration\r\n- `GET` [Get Pricing configuration](https://developers.vtex.com/docs/api-reference/pricing-api/#get-/pricing/config)\r\n- `GET` [Get Pricing v2 status](https://developers.vtex.com/docs/api-reference/pricing-api/#get-/pricing/migration)\r\n\r\n### Price tables\r\n- `GET` [Get rules for a price table](https://developers.vtex.com/docs/api-reference/pricing-api/#get-/pricing/pipeline/catalog/-priceTableId-)\r\n- `PUT` [Update rules for a price table](https://developers.vtex.com/docs/api-reference/pricing-api/#put-/pricing/pipeline/catalog/-priceTableId-)\r\n- `GET` [Get all price tables and their rules](https://developers.vtex.com/docs/api-reference/pricing-api/#get-/pricing/pipeline/catalog)\r\n- `GET` [List price tables](https://developers.vtex.com/docs/api-reference/pricing-api/#get-/pricing/tables)\r\n\r\n## Common parameters in the documentation\r\n\r\n| Parameter name | Description |\r\n| - | - |\r\n| `{accountName}` | Store account name. |\r\n| `{environment}` | Environment to be called. |\r\n| `X-VTEX-API-AppKey` | Header used for authentication (application key). |\r\n| `X-VTEX-API-AppToken` | Header used for authentication (application token). |", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://api.vtex.com/{accountName}", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL", + "default": "apiexamples" + } + } + } + ], + "paths": { + "/pricing/prices/{itemId}": { + "get": { + "tags": [ + "Prices and Fixed Prices" + ], + "summary": "Get price by SKU ID", + "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.\r\n\r\n\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Read prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetPrice", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "SKU ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Getprice" + }, + "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 + }, + "delete": { + "tags": [ + "Prices and Fixed Prices" + ], + "summary": "Delete price all base and fixed prices of an SKU", + "description": "Deletes the Base Price and all available Fixed Prices for an SKU in all trade policies.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Delete all prices from account** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "DeletePrice", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "SKU ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Prices and Fixed Prices" + ], + "summary": "Create or update base price or fixed price", + "description": "Creates or updates an SKU base price or fixed price. 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.\r\n\r\nYou may optionally set a list price. You must provide exactly two values among `basePrice`, `costPrice`, and `markup`. If all three are sent at the same time, the request will fail. If you provide both `costPrice` and `markup` and omit the `basePrice`, the `basePrice` will be automatically calculated using the following formula `costPrice * (1 + markup) = basePrice`.\r\n\r\n>⚠️ This PUT request overwrites all fixed prices for the specified SKU with the provided data. It does not add new fixed prices individually — any existing prices not included in the request body will be deleted.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Modify prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateUpdatePriceOrFixedPrice", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "SKU unique identifier number.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "markup": { + "type": "integer", + "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`. The `basePrice` will be automatically generated based on both values.", + "example": 30 + }, + "listPrice": { + "type": "number", + "description": "SKU's suggested selling price.", + "example": 50 + }, + "basePrice": { + "type": "number", + "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`.", + "example": 100 + }, + "costPrice": { + "type": "number", + "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.", + "example": 35 + }, + "fixedPrices": { + "type": "array", + "description": "Information about the SKU's fixed prices.", + "items": { + "description": "Array with general information about the SKU's fixed prices.", + "type": "object", + "required": [ + "minQuantity", + "value", + "tradePolicyId" + ], + "properties": { + "tradePolicyId": { + "type": "string", + "description": "The name or ID of the trade policy, or the name of the price table where the fixed price will be configured.", + "example": "1" + }, + "value": { + "type": "number", + "description": "Fixed price value.", + "example": 50.5 + }, + "listPrice": { + "type": "number", + "description": "SKU List Fixed Price.", + "example": 50.5 + }, + "minQuantity": { + "type": "integer", + "description": "Minimum quantity of the SKU for the fixed price to be applied.", + "example": 2 + }, + "dateRange": { + "type": "object", + "description": "Period of time when the fixed price will be applied to the SKU.", + "required": [ + "from", + "to" + ], + "properties": { + "from": { + "type": "string", + "description": "Start date of the price. This date follows the [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format, which includes the time zone. Ensure that `to` is after than `from`, identical values may cause an error.", + "example": "2021-12-30T22:00:00-03:00" + }, + "to": { + "type": "string", + "description": "End date of the price. This date follows the [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format, which includes the time zone. Ensure that `to` is after than `from`, identical values may cause an error.", + "example": "2021-12-30T23:00:00-03:00" + } + } + } + } + } + } + } + }, + "example": { + "markup": 30, + "listPrice": 50, + "costPrice": 35, + "fixedPrices": [ + { + "tradePolicyId": "1", + "value": 50.5, + "listPrice": 50.5, + "minQuantity": 2, + "dateRange": { + "from": "2021-12-30T22:00:00-03:00", + "to": "2021-12-30T23:00:00-03:00" + } + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/pricing/prices/{itemId}/fixed": { + "get": { + "tags": [ + "Prices and Fixed Prices" + ], + "summary": "Get fixed prices", + "description": "The **fixed price** is an optional price of the SKU for a specific trade policy with a specific minimum quantity to be activated. This method retrieves an array of fixed prices for a SKU in a trade policy with minimum quantities.\r\n\r\nThe default value for a minimum quantity is `1`. This means a fixed price will be valid for a SKU in a trade policy for orders containing the specified number of minimum quantity or above, unless a higher minimum quantity is specified.\r\n\r\nFixed prices may, optionally, be scheduled. If so, these objects will contain the `dateRange` object with `from` and `to` properties, indicating the start and end time of the scheduled fixed price in the RFC3339 timestamp format (`YYYY-MM-DDThh:mm:ssZ`).\r\n\r\n Note that the 'Z', at the end, represents the UTC time (GMT+00:00). If it was in GMT-03:00, for example, it would be (`YYYY-MM-DDT23:59:60-03:00`).\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Read prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetFixedPrices", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "SKU ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FixedPrice" + } + }, + "example": [ + { + "tradePolicyId": "6", + "value": 20.9, + "listPrice": 22.9, + "minQuantity": 1, + "dateRange": { + "from": "2021-12-30T22:00:00-03:00", + "to": "2021-12-30T22:00:00-03:00" + } + }, + { + "tradePolicyId": "1", + "value": 18.9, + "listPrice": null, + "minQuantity": 1, + "dateRange": { + "from": "2021-12-30T22:00:00-03:00", + "to": "2021-12-30T22:00:00-03:00" + } + } + ] + } + } + } + } + }, + "patch": { + "tags": [ + "Prices and Fixed Prices" + ], + "summary": "Create or update base price or fixed price", + "description": "Updates the base price or fixed prices of an SKU. 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. A fixed price is an optional price defined for a specific trade policy or a price table. It can include a minimum quantity and an effective date range that determines when the price is active.\r\n\r\nThis request does not remove existing prices. Instead, it updates or adds new prices without affecting trade policies or price tables that are not included in the request. If a fixed price or base price already exists for the specified SKU and matches the activation conditions (i.e., dateRange and minQuantity), it will be replaced. Otherwise, a new price will be created.\r\n\r\n\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Modify prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "CreateUpdatePriceOrFixedPriceNoRemove", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "SKU unique identifier number.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Information about the SKU's fixed prices.", + "items": { + "description": "Array with general information about the SKU's fixed prices.", + "type": "object", + "required": [ + "minQuantity", + "value", + "tradePolicyId" + ], + "properties": { + "tradePolicyId": { + "type": "string", + "description": "The name or ID of the trade policy, or the price table name, where the fixed price will be configured.", + "example": "1" + }, + "value": { + "type": "number", + "description": "Selling price of the SKU for this fixed price entry.", + "example": 50.5 + }, + "listPrice": { + "type": "number", + "description": "Original or reference price of the SKU for this fixed price.", + "example": 50.5 + }, + "minQuantity": { + "type": "integer", + "description": "Minimum quantity required for the fixed price to apply.", + "default": 1, + "example": 2 + }, + "dateRange": { + "type": "object", + "description": "Period of time when the fixed price will be applied to the SKU. If not provided, the price is not restricted by a date range.", + "required": [ + "from", + "to" + ], + "properties": { + "from": { + "type": "string", + "description": "Start date of the price. This date follows the [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format, which includes the time zone.", + "example": "2021-12-30T22:00:00-03:00" + }, + "to": { + "type": "string", + "description": "End date of the price. This date follows the [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format, which includes the time zone.", + "example": "2021-12-30T22:00:00-03:00" + } + } + } + } + } + }, + "example": [ + { + "tradePolicyId": "1", + "value": 50.5, + "listPrice": 50.5, + "minQuantity": 2, + "dateRange": { + "from": "2021-12-30T22:00:00-03:00", + "to": "2021-12-30T22:00:00-03:00" + } + } + ] + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/pricing/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.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Modify prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n> ❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "createorupdatefixedpricesonpricetableortradepolicy", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "SKU ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "priceTableId", + "in": "path", + "description": "SKU **price table** name or **trade policy** ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "priceTableA" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Information about prices and fixed prices.", + "required": [ + "value", + "minQuantity" + ], + "properties": { + "value": { + "type": "number", + "description": "Fixed price value.", + "example": 50.5 + }, + "listPrice": { + "type": "number", + "description": "SKU List Fixed Price.", + "example": 50.5 + }, + "minQuantity": { + "type": "integer", + "description": "The minimum SKU quantity for the fixed price to be applied.", + "example": 2 + }, + "dateRange": { + "type": "object", + "description": "Period of time when the fixed price will be applied to the SKU.", + "required": [ + "from", + "to" + ], + "properties": { + "from": { + "type": "string", + "description": "Start date of the price. This date follows the [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format, which includes the time zone.", + "example": "2021-12-30T22:00:00-03:00" + }, + "to": { + "type": "string", + "description": "End date of the price. This date follows the [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format, which includes the time zone.", + "example": "2021-12-30T22:00:00-04:00" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false + }, + "get": { + "tags": [ + "Prices and Fixed Prices" + ], + "summary": "Get fixed prices on a price table or trade policy", + "description": "Retrieves all Fixed Prices on a price table or trade policy. \r\n\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Read prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetFixedPricesonapricetable", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "SKU ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "priceTableId", + "in": "path", + "description": "Price Table Name", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "gold" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FixedPrice" + } + }, + "example": [ + { + "tradePolicyId": "6", + "value": 20.9, + "listPrice": 22.9, + "minQuantity": 1, + "dateRange": { + "from": "2021-12-30T22:00:00-03:00", + "to": "2021-12-30T22:00:00-04:00" + } + }, + { + "tradePolicyId": "1", + "value": 18.9, + "listPrice": null, + "minQuantity": 1 + } + ] + } + } + } + }, + "deprecated": false + }, + "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.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Delete all prices from account** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Deletefixedpricesonapricetableortradepolicy", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "SKU ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "priceTableId", + "in": "path", + "description": "Price Table or Trade Policy Name.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "gold" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false + } + }, + "/pricing/prices/{itemId}/computed/{priceTableId}": { + "get": { + "tags": [ + "Prices and Fixed Prices" + ], + "summary": "Get computed price by price table or trade policy", + "description": "Gets the Computed Price, which is the price after all the steps in the Pricing pipeline, for an SKU in a specific price table or trade policy. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint: \r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Read prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "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": "itemId", + "in": "path", + "description": "SKU ID.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + }, + { + "name": "priceTableId", + "in": "path", + "description": "SKU Price Table Name.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "gold" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/Getcomputedprice" + }, + "example": { + "tradePolicyId": "1", + "listPrice": 30, + "costPrice": 76.92, + "sellingPrice": 18.9, + "priceValidUntil": "2018-12-20T18:12:14Z" + } + } + } + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://api.vtex.com/{account}/pricing", + "variables": { + "account": { + "default": "DefaultParameterValue" + } + } + } + ] + } + }, + "/pricing/config": { + "get": { + "tags": [ + "Pricing Configuration" + ], + "summary": "Get pricing configuration", + "description": "Retrieves Pricing configuration.\r\n\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Read prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetPricingConfig", + "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" + } + } + } + ] + } + }, + "/pricing/migration": { + "get": { + "tags": [ + "Pricing Configuration" + ], + "summary": "Get pricing v2 status", + "description": "Retrieves Pricing v2 status.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Read prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "GetPricingv2Status", + "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." + }, + "hasMigrated": { + "type": "boolean", + "description": "Defines if the account has migrated to Pricing V2." + } + } + }, + "example": { + "isActive": true, + "hasMigrated": true + } + } + } + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://api.vtex.com/{account}/pricing", + "variables": { + "account": { + "default": "DefaultParameterValue" + } + } + } + ] + } + }, + "/pricing/pipeline/catalog/{priceTableId}": { + "get": { + "tags": [ + "Price Tables" + ], + "summary": "Get rules for a price table", + "description": "Retrieves the rules of a specific price table.\r\n\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Read prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Getrulesforapricetable", + "parameters": [ + { + "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": { + "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": "Updates the rules of a specific price table, by deleting all the rules from the requested price table and creating new rules based on the content of the request.\r\n\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Modify prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "parameters": [ + { + "name": "priceTableId", + "in": "path", + "description": "Price Table Name.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "Created" + } + }, + "requestBody": { + "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", + "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", + "description": "Rule ID.", + "example": 0 + }, + "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.", + "required": [ + "categories", + "brands", + "markupRange", + "dateRange" + ], + "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.", + "example": "209", + "additionalProperties": { + "type": "string", + "description": "Category Name.", + "example": "Books" + } + } + }, + "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.", + "example": "421", + "additionalProperties": { + "type": "string", + "description": "Brand Name.", + "example": "Goldman" + } + } + }, + "stockStatuses": { + "type": "object", + "description": "Stock statuses.", + "nullable": true, + "example": null + }, + "internalCategories": { + "type": "object", + "description": "Internal Categories.", + "nullable": true, + "example": null + }, + "markupRange": { + "type": "object", + "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", + "description": "Item markup should be greater than or equal to this value.", + "example": 0 + }, + "to": { + "type": "integer", + "description": "Item markup should be less than or equal to this value.", + "example": 200 + } + } + }, + "dateRange": { + "type": "object", + "description": "The rule will be active during this time range.", + "required": [ + "from", + "to" + ], + "properties": { + "from": { + "type": "string", + "description": "Date when rule will be activated. Date format: `RFC3339`.", + "example": "2019-10-23T19:00:00.000Z" + }, + "to": { + "type": "string", + "description": "Date when the rule will be deactivated. Date format: `RFC3339`.", + "example": "2019-10-26T00:00:00.000Z" + } + } + } + } + }, + "percentualModifier": { + "type": "number", + "description": "Percentual modifier.", + "example": 0 + } + } + } + } + } + } + } + } + }, + "operationId": "put_pricing_pipeline_catalog_ByPriceTableId" + } + }, + "/pricing/tables/{priceTableId}": { + "put": { + "tags": [ + "Price Tables" + ], + "summary": "Create price table", + "description": "Create a new price table.\r\n\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Modify prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "parameters": [ + { + "name": "priceTableId", + "in": "path", + "description": "Price Table Name.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "put_pricing_tables_ByPriceTableId" + } + }, + "/pricing/pipeline/catalog": { + "get": { + "tags": [ + "Price Tables" + ], + "summary": "Get all price tables and their rules", + "description": "Retrieves a list of all price tables and their rules.\r\n\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Read prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "getallpricetablesandrules", + "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": { + "type": "array", + "items": { + "type": "object", + "description": "Information about the price table.", + "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" + } + } + } + ] + } + }, + "/pricing/tables": { + "get": { + "tags": [ + "Price Tables" + ], + "summary": "List price tables", + "description": "Retrieves a list of all price tables.\r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Pricing | Price List | **Read prices** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", + "operationId": "Listpricetables", + "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": { + "FixedPrice": { + "required": [ + "tradePolicyId", + "value", + "listPrice", + "minQuantity" + ], + "type": "object", + "description": "Fixed price request body information.", + "properties": { + "tradePolicyId": { + "type": "string", + "description": "Trade Policy ID." + }, + "value": { + "type": "number", + "description": "Trade Policy Fixed Price Value." + }, + "listPrice": { + "type": "number", + "description": "Trade Policy List Price Value.", + "nullable": true + }, + "minQuantity": { + "type": "integer", + "format": "int32", + "description": "Trade Policy Fixed Price Minimum Item Quantity." + }, + "dateRange": { + "$ref": "#/components/schemas/DateRange" + } + } + }, + "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." + } + } + }, + "Getprice": { + "required": [ + "itemId", + "listPrice", + "costPrice", + "markup", + "basePrice", + "fixedPrices" + ], + "type": "object", + "description": "Price request body information.", + "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/FixedPrice" + }, + "description": "The fixed price is a price that overlaps all other existing price configurations of a price table." + } + } + }, + "Getcomputedprice": { + "required": [ + "tradePolicyId", + "listPrice", + "sellingPrice", + "priceValidUntil" + ], + "type": "object", + "description": "Computed price request body information.", + "properties": { + "tradePolicyId": { + "type": "string", + "description": "Trade Policy ID ou `priceTableId`." + }, + "listPrice": { + "type": "integer", + "format": "int32", + "description": "Trade Policy List Price, also known as \"from\" price." + }, + "costPrice": { + "type": "number", + "description": "Cost price." + }, + "sellingPrice": { + "type": "number", + "description": "Computed Price before applying coupons, promotions and taxes. This price may change before reaching the shelf." + }, + "priceValidUntil": { + "type": "string", + "description": "Date until when the computed price will be valid, due to price scheduling. If no price scheduling applies, this will be set a year from the current time." + } + } + }, + "PricingConfiguration": { + "required": [ + "hasMigrated", + "defaultMarkup", + "minimumMarkups" + ], + "type": "object", + "description": "Pricing configuration request body information.", + "properties": { + "hasMigrated": { + "type": "boolean", + "description": "Defines if the account has migrated to Pricing V2." + }, + "migrationStatus": { + "type": "string", + "description": "Pricing V2 migration status." + }, + "defaultMarkup": { + "type": "integer", + "format": "int32", + "description": "Account default markup." + }, + "priceVariation": { + "type": "object", + "description": "Price Variation object.", + "properties": { + "upperLimit": { + "type": "integer", + "description": "Upper variation limit.", + "nullable": true + }, + "lowerLimit": { + "type": "integer", + "description": "Lower variation limit.", + "nullable": true + } + } + }, + "minimumMarkups": { + "type": "object", + "description": "Account minimum markup.", + "additionalProperties": { + "description": "Additional property.", + "type": "integer", + "format": "int32" + } + }, + "tradePolicyConfigs": { + "type": "array", + "description": "Trade Policy Configurations array.", + "items": { + "type": "object", + "description": "Information trade polity configuration.", + "properties": { + "tradePolicyId": { + "type": "string", + "description": "Trade Policy ID." + }, + "minimumMarkup": { + "type": "integer", + "description": "Trade Policy Minimum Markup." + }, + "rulesShouldAffectListPrice": { + "type": "boolean", + "description": "Defines if the Price Rule should affect the list price too." + } + } + } + }, + "sellersToOverride": { + "type": "array", + "description": "Overrides prices from sellers.", + "nullable": true, + "items": { + "type": "string", + "description": "Seller ID." + } + }, + "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." + }, + "hasOptionalBasePrice": { + "type": "boolean", + "description": "Defines if optional base price is allowed." + }, + "blockAccount": { + "type": "boolean", + "description": "Defines if access to the Pricing APIs is blocked for external requests." + }, + "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" + }, + "priceTableLimit": { + "type": "integer", + "description": "Price Table Limit.", + "nullable": true + } + } + } + } + }, + "tags": [ + { + "name": "Price Tables" + }, + { + "name": "Prices and Fixed Prices" + }, + { + "name": "Pricing Configuration" + } + ], + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ] +} diff --git a/clients/manitou/output/search.json b/clients/manitou/output/search.json new file mode 100644 index 0000000000..8d20bb0cb4 --- /dev/null +++ b/clients/manitou/output/search.json @@ -0,0 +1,19040 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Legacy Search API", + "description": "\r\n> Check the new [Search onboarding guide](https://developers.vtex.com/docs/guides/search-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Search and is organized by focusing on the developer's journey.\r\n\r\nThis API lets you search and sort products in the Catalog using Fulltext, Category and Brand search terms. \r\n\r\nRetrieve product data to create custom searches and product shelves.", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/api/catalog_system/pub/products/crossselling/whosawalsosaw/{productId}": { + "get": { + "tags": [ + "CrossSelling" + ], + "summary": "Get product search of who saw also saw", + "description": ">❗ This endpoint is deprecated and may not work as expected. Instead, it returns a list of products from the same category.", + "operationId": "ProductSearchWhoSawAlsoSaw", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "productId": "35", + "productName": "Kit de Hoegaarden", + "brand": "Hoegaarden", + "brandId": 2000004, + "brandImageUrl": "https://merch.vteximg.com.br/arquivos/ids/155532/hoegardden-logo.jpg", + "linkText": "kit-6-cerveja-hoegaarden", + "productReference": "000806", + "productReferenceCode": null, + "categoryId": "1", + "productTitle": "", + "metaTagDescription": "", + "releaseDate": "2020-10-07T00:00:00", + "clusterHighlights": { + "138": "teste2" + }, + "productClusters": { + "138": "teste2", + "143": "NaoPesquisavel", + "146": "colecaotestesubcategoria", + "161": "merch_import_test1" + }, + "searchableClusters": { + "138": "teste2" + }, + "categories": [ + "/Beers Beers Mesmo/" + ], + "categoriesIds": [ + "/1/" + ], + "link": "https://merch.vtexcommercestable.com.br/kit-6-cerveja-hoegaarden/p", + "Percentuals": [ + "4,9" + ], + "Percentual": [ + "4,9" + ], + "Total": [ + "Percentuals", + "Percentual" + ], + "Teste de Api": [ + "a" + ], + "Ale": [ + "1" + ], + "Teste da Api2": [ + "Teste de Api", + "Ale" + ], + "Alcool": [ + "Percentual" + ], + "allSpecifications": [ + "Percentuals", + "Percentual", + "Teste de Api", + "Ale" + ], + "allSpecificationsGroups": [ + "Total", + "Teste da Api2" + ], + "description": "", + "items": [ + { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + } + ] + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Information about the product.", + "required": [ + "productId", + "productName", + "brand", + "brandId", + "brandImageUrl", + "linkText", + "productReference", + "productReferenceCode", + "categoryId", + "productTitle", + "metaTagDescription", + "releaseDate", + "clusterHighlights", + "productClusters", + "searchableClusters", + "categories", + "categoriesIds", + "link", + "Percentuals", + "Percentual", + "Total", + "Teste de Api", + "Ale", + "Teste da Api2", + "Alcool", + "allSpecifications", + "allSpecificationsGroups", + "description", + "items" + ], + "properties": { + "productId": { + "type": "string", + "description": "Product unique identifier." + }, + "productName": { + "type": "string", + "description": "Product name." + }, + "brand": { + "type": "string", + "description": "Brand name." + }, + "brandId": { + "type": "integer", + "description": "Product brand ID." + }, + "brandImageUrl": { + "type": "string", + "description": "Product's brand image URL." + }, + "linkText": { + "type": "string", + "description": "Product URL." + }, + "productReference": { + "type": "string", + "description": "Product reference." + }, + "productReferenceCode": { + "type": "integer", + "description": "Product reference ID.", + "nullable": true + }, + "categoryId": { + "type": "string", + "description": "Product category ID." + }, + "productTitle": { + "type": "string", + "description": "Text that is in the browser tab and corresponds to the title of the product page. This field is important for SEO." + }, + "metaTagDescription": { + "type": "string", + "description": "Brief description of the category. It's recommended that you don't exceed 150 characters so that the search engines can display it correctly in the results page." + }, + "releaseDate": { + "type": "string", + "description": "Product release date." + }, + "clusterHighlights": { + "type": "object", + "description": "Product clusters highlights. Structure: \"{Product cluster ID}\": \"{Product cluster name}\". Both the key and the value are strings.", + "additionalProperties": { + "type": "string", + "description": "Product cluster ID.", + "additionalProperties": { + "type": "string", + "description": "Product cluster highlight." + } + } + }, + "productClusters": { + "type": "object", + "description": "Product clusters' IDs and names. Structure: \"{Product cluster ID}\": \"{Product cluster name}\". Both the keys and the values are strings.", + "additionalProperties": { + "type": "string", + "description": "Product cluster ID.", + "additionalProperties": { + "type": "string", + "description": "Product cluster name." + } + } + }, + "searchableClusters": { + "type": "object", + "description": "Searchable clusters IDs and names. Structure: \"{Searchable cluster ID}\": \"{Searchable cluster name}\". Both the keys and the values are strings.", + "additionalProperties": { + "type": "string", + "description": "Product cluster ID.", + "additionalProperties": { + "type": "string", + "description": "Product cluster name." + } + } + }, + "categories": { + "type": "array", + "description": "Array of the product's categories URLs.", + "items": { + "type": "string", + "description": "The product's category URL." + } + }, + "categoriesIds": { + "type": "array", + "description": "Array of the product's categories IDs.", + "items": { + "type": "string", + "description": "Product category ID." + } + }, + "link": { + "type": "string", + "description": "Product URL." + }, + "allSpecifications": { + "type": "array", + "description": "Array of the product's specifications.", + "items": { + "type": "string", + "description": "Product specification." + } + }, + "allSpecificationsGroups": { + "type": "array", + "description": "Array of the product's specifications groups.", + "items": { + "type": "string", + "description": "Product specification group." + } + }, + "description": { + "type": "string", + "description": "Description of the main information related to the product. A simple and easy to understand summary for the customer.", + "nullable": true + }, + "items": { + "type": "array", + "description": "Array containing the product SKU general information.", + "items": { + "type": "object", + "description": "Information about the SKU.", + "required": [ + "itemId", + "name", + "nameComplete", + "complementName", + "ean", + "referenceId", + "measurementUnit", + "unitMultiplier", + "modalType", + "isKit", + "kitItems", + "images", + "sellers", + "Videos", + "estimatedDateArrival" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU ID." + }, + "name": { + "type": "string", + "description": "SKU name." + }, + "nameComplete": { + "type": "string", + "description": "SKU complete name." + }, + "complementName": { + "type": "string", + "description": "SKU complement name." + }, + "ean": { + "type": "string", + "description": "SKU unique identification code (barcode), accepts up to 13 numerical characters." + }, + "referenceId": { + "type": "array", + "description": "Reference code ID.", + "items": { + "type": "object", + "description": "Reference code key and value.", + "required": [ + "Key", + "Value" + ], + "properties": { + "Key": { + "type": "string", + "description": "Reference code key." + }, + "Value": { + "type": "string", + "description": "Unique reference code used internally for organizational purposes." + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. In common cases, use `un` (unit).\n\rThe acceptables values are:\n\r- `un`: Unit\n\r- `kg`: Kilogram\n\r- `g`: Gram\n\r- `mg`: Milligram\n\r- `m`: Meter\n\r- `m²`: Square meter\n\r- `m³`: Cubic meter\n\r- `cm`: Centimeter\n\r- `cm²`: Square centimeter\n\r- `cm³`: Cubic centimeter\n\r- `mm`: Millimeter\n\r- `mm²`: Square millimeter\n\r- `mm³`: Cubic millimeter\n\r- `oz`: Ounce\n\r- `lb`: Pound\n\r- `ft`: Foot\n\r- `ft²`: Square foot\n\r- `ft³`: Cubic foot\n\r- `in`: Inch\n\r- `in²`: Square inch\n\r- `in³`: Cubic inch", + "enum": [ + "un", + "kg", + "g", + "mg", + "m", + "m²", + "m³", + "cm", + "cm²", + "cm³", + "mm", + "mm²", + "mm³", + "oz", + "lb", + "ft", + "ft²", + "ft³", + "in", + "in²", + "in³" + ] + }, + "unitMultiplier": { + "type": "number", + "description": "Numerical unit that multiplies the selected quantity of the product when it's inserted in the cart." + }, + "modalType": { + "type": "string", + "description": "Modal type.", + "nullable": true + }, + "isKit": { + "type": "boolean", + "description": "Defines if the SKU is part of a kit (`true`) or not (`false`)." + }, + "kitItems": { + "type": "array", + "description": "Array with information about SKU components from a kit.", + "items": { + "type": "object", + "description": "Information about a given SKU component from a kit.", + "required": [ + "itemId", + "amount" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU kit component ID." + }, + "amount": { + "type": "integer", + "description": "Amount of the SKU components in the kit." + } + } + } + }, + "images": { + "type": "array", + "description": "Array of information about the SKU images.", + "items": { + "type": "object", + "description": "Information about a given SKU image.", + "required": [ + "imageId", + "imageLabel", + "imageTag", + "imageUrl", + "imageText", + "imageLastModified" + ], + "properties": { + "imageId": { + "type": "string", + "description": "Image ID." + }, + "imageLabel": { + "type": "string", + "description": "Image label." + }, + "imageTag": { + "type": "string", + "description": "Image tag." + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "imageText": { + "type": "string", + "description": "Image text.", + "nullable": true + }, + "imageLastModified": { + "type": "string", + "description": "Date and time of the last update of the image." + } + } + } + }, + "sellers": { + "type": "array", + "description": "Array of SKU sellers.", + "items": { + "type": "object", + "description": "Information about a given seller.", + "required": [ + "sellerId", + "sellerName", + "addToCartLink", + "sellerDefault", + "commertialOffer" + ], + "properties": { + "sellerId": { + "type": "string", + "description": "SKU seller ID." + }, + "sellerName": { + "type": "string", + "description": "SKU seller name." + }, + "addToCartLink": { + "type": "string", + "description": "URL to add the product to the cart." + }, + "sellerDefault": { + "type": "boolean", + "description": "Defines if the seller is default (`true`) or not (`false`)." + }, + "commertialOffer": { + "type": "object", + "description": "AKA Commertial Condition.", + "required": [ + "DeliverySlaSamplesPerRegion", + "Installments", + "DiscountHighLight", + "GiftSkuIds", + "Teasers", + "BuyTogether", + "ItemMetadataAttachment", + "Price", + "ListPrice", + "PriceWithoutDiscount", + "RewardValue", + "PriceValidUntil", + "AvailableQuantity", + "IsAvailable", + "Tax", + "SaleChannel", + "DeliverySlaSamples", + "GetInfoErrorMessage", + "CacheVersionUsedToCallCheckout", + "PaymentOptions" + ], + "properties": { + "DeliverySlaSamplesPerRegion": { + "type": "object", + "description": "Delivery SLA samples per region.", + "properties": { + "0": { + "type": "object", + "description": "Delivery SLA ID.", + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "items": { + "type": "string", + "description": "Delivery SLA type." + } + }, + "Region": { + "type": "string", + "description": "Delivery SLA region.", + "nullable": true + } + } + } + } + }, + "Installments": { + "type": "array", + "description": "Installments options.", + "items": { + "type": "object", + "description": "Information about a given installment option.", + "required": [ + "Value", + "InterestRate", + "TotalValuePlusInterestRate", + "NumberOfInstallments", + "PaymentSystemName", + "PaymentSystemGroupName", + "Name" + ], + "properties": { + "Value": { + "type": "number", + "description": "Value of the installment." + }, + "InterestRate": { + "type": "number", + "description": "Interest rate of the installment." + }, + "TotalValuePlusInterestRate": { + "type": "number", + "description": "Total value plus interest rate of the installment." + }, + "NumberOfInstallments": { + "type": "integer", + "description": "Number of the installment." + }, + "PaymentSystemName": { + "type": "string", + "description": "Payment system name of the installment." + }, + "PaymentSystemGroupName": { + "type": "string", + "description": "Payment system group name of the installment." + }, + "Name": { + "type": "string", + "description": "Name of the installment." + } + } + } + }, + "DiscountHighLight": { + "type": "array", + "description": "Discount hightlights.", + "items": { + "type": "string", + "description": "Discount hightlight name." + } + }, + "GiftSkuIds": { + "type": "array", + "description": "Array of SKU gifts IDs.", + "items": { + "type": "string", + "description": "SKU gift ID." + } + }, + "Teasers": { + "type": "array", + "description": "List with teasers information.", + "items": { + "type": "object", + "description": "Information about a given teaser.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}`.", + "properties": { + "{field}": { + "type": "string", + "description": "General value." + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Conditions.", + "properties": { + "k__BackingField": { + "type": "integer", + "description": "Minimum quantity." + }, + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Effects.", + "properties": { + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "PromotionTeasers": { + "type": "array", + "description": "List with promotions teasers information.", + "items": { + "type": "object", + "description": "Information about a given promotion teaser.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "GeneralValues": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}`.", + "properties": { + "{field}": { + "type": "string", + "description": "General value." + } + } + }, + "Conditions": { + "type": "object", + "description": "Conditions.", + "properties": { + "MinimumQuantity": { + "type": "integer", + "description": "Minimum quantity." + }, + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "Effects": { + "type": "object", + "description": "Effects.", + "properties": { + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "BuyTogether": { + "type": "array", + "description": "Array of other products that can be bought together with the product in question.", + "items": { + "type": "string", + "description": "Product ID." + } + }, + "ItemMetadataAttachment": { + "description": "Item metadata attachment.", + "type": "array", + "items": { + "description": "Item metadata attachment information.", + "type": "object", + "properties": { + "Name": { + "description": "SKU name.", + "type": "string" + }, + "NameComplete": { + "description": "Complete name of the product combined with the SKU name.", + "type": "string" + }, + "MainImage": { + "description": "Main image URL.", + "type": "string" + }, + "BrandName": { + "description": "Brand name.", + "type": "string" + }, + "CategoryId": { + "description": "Category unique identifier.", + "type": "number" + }, + "ProductId": { + "description": "Product unique identifier.", + "type": "number" + }, + "id": { + "description": "SKU unique identifier.", + "type": "string" + }, + "seller": { + "description": "Seller unique identifier.", + "type": "string" + }, + "assemblyOptions": { + "description": "Assembly options attachment.", + "type": "array", + "items": { + "description": "Assembly options attachment information.", + "type": "object", + "properties": { + "id": { + "description": "Attachment unique identifier.", + "type": "string" + }, + "name": { + "description": "Attachment name.", + "type": "string" + }, + "required": { + "description": "Defines whether the attachment is required (`true`) or not (`false`).", + "type": "boolean" + }, + "inputValues": { + "description": "Input values information.", + "type": "object", + "additionalProperties": true + } + } + } + } + } + } + }, + "Price": { + "type": "number", + "description": "Price of the product." + }, + "ListPrice": { + "type": "number", + "description": "List price of the product." + }, + "PriceWithoutDiscount": { + "type": "number", + "description": "Price of the product without discount." + }, + "RewardValue": { + "type": "number", + "description": "Reward value of the product." + }, + "PriceValidUntil": { + "type": "string", + "description": "Price of the product valid until a certain date." + }, + "AvailableQuantity": { + "type": "integer", + "description": "Available quantity. Use the `IsAvailable` field instead." + }, + "IsAvailable": { + "type": "boolean", + "description": "Defines if the product is available (`true`) or not (`false`)." + }, + "Tax": { + "type": "number", + "description": "Tax of the product." + }, + "SaleChannel": { + "type": "integer", + "description": "Trade policy which the product is contained." + }, + "DeliverySlaSamples": { + "type": "array", + "description": "Delivery SLA samples information.", + "items": { + "type": "object", + "description": "Information about a given delivery SLA sample.", + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "items": { + "type": "string", + "description": "Delivery SLA type." + } + }, + "Region": { + "type": "string", + "description": "Delivery SLA region.", + "nullable": true + } + } + } + }, + "GetInfoErrorMessage": { + "type": "string", + "description": "Get info error message.", + "nullable": true + }, + "CacheVersionUsedToCallCheckout": { + "type": "string", + "description": "Cache version used to call checkout." + }, + "PaymentOptions": { + "type": "object", + "description": "Payment options.", + "required": [ + "installmentOptions", + "paymentSystems", + "payments", + "giftCards", + "giftCardMessages", + "availableAccounts", + "availableTokens" + ], + "properties": { + "installmentOptions": { + "type": "array", + "description": "Information about installment options.", + "items": { + "type": "object", + "description": "Information about a given installment.", + "required": [ + "paymentSystem", + "bin", + "paymentName", + "paymentGroupName", + "value", + "installments" + ], + "properties": { + "paymentSystem": { + "type": "string", + "description": "Payment system." + }, + "bin": { + "type": "string", + "description": "First six digits of the card number.", + "nullable": true + }, + "paymentName": { + "type": "string", + "description": "Payment name." + }, + "paymentGroupName": { + "type": "string", + "description": "Payment group name." + }, + "value": { + "type": "integer", + "description": "Installment value." + }, + "installments": { + "type": "array", + "description": "Information about installments.", + "items": { + "type": "object", + "description": "Information about a given installment.", + "required": [ + "count", + "hasInterestRate", + "interestRate", + "value", + "total", + "sellerMerchantInstallments" + ], + "properties": { + "count": { + "type": "integer", + "description": "Installment count." + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate." + }, + "interestRate": { + "type": "integer", + "description": "Interest rate." + }, + "value": { + "type": "integer", + "description": "Value." + }, + "total": { + "type": "integer", + "description": "Total." + }, + "sellerMerchantInstallments": { + "type": "array", + "description": "List of seller merchant installments.", + "items": { + "type": "object", + "description": "Seller merchant installment.", + "required": [ + "id", + "count", + "hasInterestRate", + "interestRate", + "value", + "total" + ], + "properties": { + "id": { + "type": "string", + "description": "ID." + }, + "count": { + "type": "integer", + "description": "Count." + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate." + }, + "interestRate": { + "type": "integer", + "description": "Interest rate." + }, + "value": { + "type": "integer", + "description": "Value." + }, + "total": { + "type": "integer", + "description": "Total." + } + } + } + } + } + } + } + } + } + }, + "paymentSystems": { + "type": "array", + "description": "Payment systems information.", + "items": { + "type": "object", + "description": "Information about a given payment system.", + "required": [ + "id", + "name", + "groupName", + "validator", + "stringId", + "template", + "requiresDocument", + "isCustom", + "description", + "requiresAuthentication", + "dueDate", + "availablePayments" + ], + "properties": { + "id": { + "type": "integer", + "description": "ID." + }, + "name": { + "type": "string", + "description": "Name." + }, + "groupName": { + "type": "string", + "description": "Group name." + }, + "validator": { + "type": "string", + "description": "Validator.", + "nullable": true + }, + "stringId": { + "type": "string", + "description": "String ID." + }, + "template": { + "type": "string", + "description": "Template." + }, + "requiresDocument": { + "type": "boolean", + "description": "If requires document or not." + }, + "isCustom": { + "type": "boolean", + "description": "If is custom or not." + }, + "description": { + "type": "string", + "description": "Description.", + "nullable": true + }, + "requiresAuthentication": { + "type": "boolean", + "description": "If requires authentication." + }, + "dueDate": { + "type": "string", + "description": "Due date." + }, + "availablePayments": { + "type": "string", + "description": "Available payments.", + "nullable": true + } + } + } + }, + "payments": { + "type": "array", + "description": "Payments." + }, + "giftCards": { + "type": "array", + "description": "GiftCards." + }, + "giftCardMessages": { + "type": "array", + "description": "GiftCardMessages." + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts." + }, + "availableTokens": { + "type": "array", + "description": "Available tokens.", + "items": { + "type": "string", + "description": "Available token name." + } + } + } + } + } + } + } + } + }, + "Videos": { + "type": "array", + "description": "Videos information.", + "items": { + "type": "string", + "description": "Video URL." + } + }, + "estimatedDateArrival": { + "type": "string", + "description": "Estimated date arrival.", + "nullable": true + } + } + } + } + } + } + } + } + } + } + }, + "deprecated": true + } + }, + "/api/catalog_system/pub/products/crossselling/whosawalsobought/{productId}": { + "get": { + "tags": [ + "CrossSelling" + ], + "summary": "Get product search of who saw also bought", + "description": ">❗ This endpoint is deprecated and may not work as expected. Instead, it returns a list of products from the same category.", + "operationId": "ProductSearchWhoSawAlsoBought", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "productId": "35", + "productName": "Kit de Hoegaarden", + "brand": "Hoegaarden", + "brandId": 2000004, + "brandImageUrl": "https://merch.vteximg.com.br/arquivos/ids/155532/hoegardden-logo.jpg", + "linkText": "hoegaarden-6-pack-beer-kit", + "productReference": "000806", + "productReferenceCode": 1234, + "categoryId": "1", + "productTitle": "Hoegaarden 6 Pack Beer Kit", + "metaTagDescription": "Category for Beers", + "releaseDate": "2025-05-07T00:00:00", + "clusterHighlights": { + "138": "teste2" + }, + "productClusters": { + "138": "teste2", + "143": "NaoPesquisavel", + "146": "colecaotestesubcategoria", + "161": "merch_import_test1" + }, + "searchableClusters": { + "138": "teste2" + }, + "categories": [ + "/Beers Beers Mesmo/" + ], + "categoriesIds": [ + "/1/" + ], + "link": "https://merch.vtexcommercestable.com.br/kit-6-cerveja-hoegaarden/p", + "Percentuals": [ + "4,9" + ], + "Percentual": [ + "4,9" + ], + "Total": [ + "Percentuals", + "Percentual" + ], + "Teste de Api": [ + "a" + ], + "Ale": [ + "1" + ], + "Teste da Api2": [ + "Teste de Api", + "Ale" + ], + "Alcool": [ + "Percentual" + ], + "allSpecifications": [ + "Percentuals", + "Percentual", + "Teste de Api", + "Ale" + ], + "allSpecificationsGroups": [ + "Total", + "Teste da Api2" + ], + "description": null, + "items": [ + { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": null, + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2025-03-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + } + ] + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object with product search information.", + "required": [ + "productId", + "productName", + "brand", + "brandId", + "brandImageUrl", + "linkText", + "productReference", + "productReferenceCode", + "categoryId", + "productTitle", + "metaTagDescription", + "releaseDate", + "clusterHighlights", + "productClusters", + "searchableClusters", + "categories", + "categoriesIds", + "link", + "Percentuals", + "Percentual", + "Total", + "Teste de Api", + "Ale", + "Teste da Api2", + "Alcool", + "allSpecifications", + "allSpecificationsGroups", + "description", + "items" + ], + "properties": { + "productId": { + "type": "string", + "description": "Product unique identifier." + }, + "productName": { + "type": "string", + "description": "Product name." + }, + "brand": { + "type": "string", + "description": "Brand name." + }, + "brandId": { + "type": "integer", + "description": "Product brand ID." + }, + "brandImageUrl": { + "type": "string", + "description": "Product's brand image URL." + }, + "linkText": { + "type": "string", + "description": "Product URL." + }, + "productReference": { + "type": "string", + "description": "Product reference." + }, + "productReferenceCode": { + "type": "integer", + "description": "Product reference ID.", + "nullable": true + }, + "categoryId": { + "type": "string", + "description": "Product category ID." + }, + "productTitle": { + "type": "string", + "description": "Text that is in the browser tab and corresponds to the title of the product page. This field is important for SEO." + }, + "metaTagDescription": { + "type": "string", + "description": "Brief description of the category. It's recommended that you don't exceed 150 characters so that the search engines can display it correctly in the results page." + }, + "releaseDate": { + "type": "string", + "description": "Product release date." + }, + "clusterHighlights": { + "type": "object", + "description": "Cluster highlight ID and name." + }, + "productClusters": { + "type": "object", + "description": "Product clusters' IDs and names.", + "additionalProperties": true + }, + "searchableClusters": { + "type": "object", + "description": "Searchable clusters IDs and names.", + "additionalProperties": true + }, + "categories": { + "type": "array", + "description": "Array of the product's categories URLs.", + "items": { + "type": "string", + "description": "Product category URL." + } + }, + "categoriesIds": { + "type": "array", + "description": "Array of the product's categories IDs.", + "items": { + "type": "string", + "description": "Product category ID." + } + }, + "link": { + "type": "string", + "description": "Product URL." + }, + "allSpecifications": { + "type": "array", + "description": "Array of the product's specifications.", + "items": { + "type": "string", + "description": "Product specification." + } + }, + "allSpecificationsGroups": { + "type": "array", + "description": "Array of the product's specifications groups.", + "items": { + "type": "string", + "description": "Product specification group." + } + }, + "description": { + "type": "string", + "nullable": true, + "description": "Description of the main information related to the product. A simple and easy to understand summary for the customer." + }, + "items": { + "type": "array", + "description": "Array containing the product SKU general information.", + "items": { + "type": "object", + "description": "Product SKU general information object.", + "required": [ + "itemId", + "name", + "nameComplete", + "complementName", + "ean", + "referenceId", + "measurementUnit", + "unitMultiplier", + "modalType", + "isKit", + "kitItems", + "images", + "sellers", + "Videos", + "estimatedDateArrival" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU ID." + }, + "name": { + "type": "string", + "description": "SKU name." + }, + "nameComplete": { + "type": "string", + "description": "SKU complete name." + }, + "complementName": { + "type": "string", + "description": "SKU complement name." + }, + "ean": { + "type": "string", + "description": "SKU unique identification code (barcode), accepts up to 13 numerical characters." + }, + "referenceId": { + "type": "array", + "description": "Reference code ID.", + "items": { + "type": "object", + "required": [ + "Key", + "Value" + ], + "properties": { + "Key": { + "type": "string", + "description": "Reference Code." + }, + "Value": { + "type": "string", + "description": "Unique reference code used internally for organizational purposes." + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "Used only in cases when you need to convert the unit of measure for sale. In common cases, use 'un'." + }, + "unitMultiplier": { + "type": "number", + "description": "Numerical unit that multiplies the selected quantity of the product when inserted in the cart." + }, + "modalType": { + "type": "string", + "description": "Modal Type.", + "nullable": true + }, + "isKit": { + "type": "boolean", + "description": "If the SKU is part of a kit." + }, + "kitItems": { + "type": "array", + "description": "Array with information of SKUs components from a Kit.", + "items": { + "type": "object", + "description": "Information about a given SKU component.", + "required": [ + "itemId", + "amount" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU kit component ID." + }, + "amount": { + "type": "integer", + "description": "Amount of the SKU component in the kit." + } + } + } + }, + "images": { + "type": "array", + "description": "Array of information about the SKU image.", + "items": { + "type": "object", + "description": "Information about a given SKU image.", + "required": [ + "imageId", + "imageLabel", + "imageTag", + "imageUrl", + "imageText", + "imageLastModified" + ], + "properties": { + "imageId": { + "type": "string", + "description": "Image ID." + }, + "imageLabel": { + "type": "string", + "description": "Image label.", + "nullable": true + }, + "imageTag": { + "type": "string", + "description": "Image tag." + }, + "imageUrl": { + "type": "string", + "description": "Image URL." + }, + "imageText": { + "type": "string", + "description": "Image text.", + "nullable": true + }, + "imageLastModified": { + "type": "string", + "description": "Date and time of the last update of the image." + } + } + } + }, + "sellers": { + "type": "array", + "description": "Array of SKU sellers.", + "items": { + "type": "object", + "description": "Information about a given SKU seller.", + "required": [ + "sellerId", + "sellerName", + "addToCartLink", + "sellerDefault", + "commertialOffer" + ], + "properties": { + "sellerId": { + "type": "string", + "description": "SKU seller ID." + }, + "sellerName": { + "type": "string", + "description": "SKU seller name." + }, + "addToCartLink": { + "type": "string", + "description": "URL to add the product to the cart." + }, + "sellerDefault": { + "type": "boolean", + "description": "If the seller is default or not." + }, + "commertialOffer": { + "type": "object", + "description": "Also known as Commercial Condition.", + "required": [ + "DeliverySlaSamplesPerRegion", + "Installments", + "DiscountHighLight", + "GiftSkuIds", + "Teasers", + "BuyTogether", + "ItemMetadataAttachment", + "Price", + "ListPrice", + "PriceWithoutDiscount", + "RewardValue", + "PriceValidUntil", + "AvailableQuantity", + "IsAvailable", + "Tax", + "SaleChannel", + "DeliverySlaSamples", + "GetInfoErrorMessage", + "CacheVersionUsedToCallCheckout", + "PaymentOptions" + ], + "properties": { + "DeliverySlaSamplesPerRegion": { + "type": "object", + "description": "Delivery SLA samples per region.", + "properties": { + "0": { + "type": "object", + "description": "Delivery SLA ID.", + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types." + }, + "Region": { + "type": "string", + "description": "Region.", + "nullable": true + } + } + } + } + }, + "Installments": { + "type": "array", + "description": "Installments options.", + "items": { + "type": "object", + "required": [ + "Value", + "InterestRate", + "TotalValuePlusInterestRate", + "NumberOfInstallments", + "PaymentSystemName", + "PaymentSystemGroupName", + "Name" + ], + "properties": { + "Value": { + "type": "number", + "description": "Value of the installment." + }, + "InterestRate": { + "type": "number", + "description": "Interest rate of the installment." + }, + "TotalValuePlusInterestRate": { + "type": "number", + "description": "Total value plus interest rate of the installment." + }, + "NumberOfInstallments": { + "type": "integer", + "description": "Number of the installment." + }, + "PaymentSystemName": { + "type": "string", + "description": "Payment system name of the installment." + }, + "PaymentSystemGroupName": { + "type": "string", + "description": "Payment system group name of the installment." + }, + "Name": { + "type": "string", + "description": "Name of the installment." + } + } + } + }, + "DiscountHighLight": { + "type": "array", + "description": "Discount highlight." + }, + "GiftSkuIds": { + "type": "array", + "description": "Array of SKU gifts IDs." + }, + "Teasers": { + "type": "array", + "description": "List with promotions teasers.", + "items": { + "type": "object", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}`.", + "properties": { + "{field}": { + "type": "string", + "description": "General value." + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Conditions.", + "properties": { + "k__BackingField": { + "type": "integer", + "description": "Minimum quantity." + }, + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Effects.", + "properties": { + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "PromotionTeasers": { + "type": "array", + "description": "List with promotions teasers.", + "items": { + "type": "object", + "description": "Information about a given promotion teaser.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "GeneralValues": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}`.", + "properties": { + "{field}": { + "type": "string", + "description": "General value." + } + } + }, + "Conditions": { + "type": "object", + "description": "Conditions.", + "properties": { + "MinimumQuantity": { + "type": "integer", + "description": "Minimum quantity." + }, + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "Effects": { + "type": "object", + "description": "Effects.", + "properties": { + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "BuyTogether": { + "type": "array", + "description": "Array of other products that can be bought together with the product in question." + }, + "ItemMetadataAttachment": { + "type": "array", + "description": "Item metadata attachment." + }, + "Price": { + "type": "number", + "description": "Price of the product." + }, + "ListPrice": { + "type": "number", + "description": "List price of the product." + }, + "PriceWithoutDiscount": { + "type": "number", + "description": "Price of the product without discount." + }, + "RewardValue": { + "type": "number", + "description": "Reward value of the product." + }, + "PriceValidUntil": { + "type": "string", + "description": "Price of the product valid until a certain date." + }, + "AvailableQuantity": { + "type": "integer", + "description": "Use the `IsAvailable` field instead." + }, + "IsAvailable": { + "type": "boolean", + "description": "If the product is available or not." + }, + "Tax": { + "type": "number", + "description": "Tax of the product." + }, + "SaleChannel": { + "type": "integer", + "description": "Trade policy which the product is contained." + }, + "DeliverySlaSamples": { + "type": "array", + "description": "Delivery SLA samples.", + "items": { + "type": "object", + "description": "Information about a given SLA sample.", + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "nullable": true + }, + "Region": { + "type": "string", + "description": "Region.", + "nullable": true + } + } + } + }, + "GetInfoErrorMessage": { + "type": "string", + "description": "Get info error message.", + "nullable": true + }, + "CacheVersionUsedToCallCheckout": { + "type": "string", + "description": "Cache version used to call checkout." + }, + "PaymentOptions": { + "type": "object", + "description": "Payment options.", + "required": [ + "installmentOptions", + "paymentSystems", + "payments", + "giftCards", + "giftCardMessages", + "availableAccounts", + "availableTokens" + ], + "properties": { + "installmentOptions": { + "type": "array", + "description": "Installment options.", + "items": { + "type": "object", + "description": "Information about an installment option.", + "required": [ + "paymentSystem", + "bin", + "paymentName", + "paymentGroupName", + "value", + "installments" + ], + "properties": { + "paymentSystem": { + "type": "string", + "description": "Payment system." + }, + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true + }, + "paymentName": { + "type": "string", + "description": "Payment name." + }, + "paymentGroupName": { + "type": "string", + "description": "Payment group name." + }, + "value": { + "type": "integer", + "description": "Value." + }, + "installments": { + "type": "array", + "description": "List of installments.", + "items": { + "type": "object", + "description": "Installment object.", + "required": [ + "count", + "hasInterestRate", + "interestRate", + "value", + "total", + "sellerMerchantInstallments" + ], + "properties": { + "count": { + "type": "integer", + "description": "Count." + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate." + }, + "interestRate": { + "type": "integer", + "description": "Interest rate." + }, + "value": { + "type": "integer", + "description": "Value." + }, + "total": { + "type": "integer", + "description": "Total." + }, + "sellerMerchantInstallments": { + "type": "array", + "description": "Seller merchant installments.", + "items": { + "type": "object", + "description": "Information about a given seller merchant installment.", + "required": [ + "id", + "count", + "hasInterestRate", + "interestRate", + "value", + "total" + ], + "properties": { + "id": { + "type": "string", + "description": "ID." + }, + "count": { + "type": "integer", + "description": "Count." + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate." + }, + "interestRate": { + "type": "integer", + "description": "Interest rate." + }, + "value": { + "type": "integer", + "description": "Value." + }, + "total": { + "type": "integer", + "description": "Total." + } + } + } + } + } + } + } + } + } + }, + "paymentSystems": { + "type": "array", + "description": "Payment systems.", + "items": { + "type": "object", + "example": { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + "required": [ + "id", + "name", + "groupName", + "validator", + "stringId", + "template", + "requiresDocument", + "isCustom", + "description", + "requiresAuthentication", + "dueDate", + "availablePayments" + ], + "properties": { + "id": { + "type": "integer", + "description": "ID.", + "example": 17 + }, + "name": { + "type": "string", + "description": "Name.", + "example": "Promissory" + }, + "groupName": { + "type": "string", + "description": "Group name.", + "example": "promissoryPaymentGroup" + }, + "validator": { + "type": "string", + "description": "Validator.", + "nullable": true, + "example": "" + }, + "stringId": { + "type": "string", + "description": "String ID.", + "example": "17" + }, + "template": { + "type": "string", + "description": "Template.", + "example": "promissoryPaymentGroup-template" + }, + "requiresDocument": { + "type": "boolean", + "description": "If requires document or not.", + "example": false + }, + "isCustom": { + "type": "boolean", + "description": "If is custom or not.", + "example": false + }, + "description": { + "type": "string", + "description": "Description.", + "nullable": true, + "example": "" + }, + "requiresAuthentication": { + "type": "boolean", + "description": "If requires authentication.", + "example": false + }, + "dueDate": { + "type": "string", + "description": "Due date.", + "example": "2021-07-01T18:43:00.0264384Z" + }, + "availablePayments": { + "type": "string", + "description": "Available payments.", + "nullable": true, + "example": "" + } + } + } + }, + "payments": { + "type": "array", + "description": "Payments.", + "example": [] + }, + "giftCards": { + "type": "array", + "description": "GiftCards.", + "example": [] + }, + "giftCardMessages": { + "type": "array", + "description": "GiftCardMessages.", + "example": [] + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts.", + "example": [] + }, + "availableTokens": { + "type": "array", + "description": "Available tokens.", + "example": [] + } + } + } + } + } + } + } + }, + "Videos": { + "type": "array", + "description": "Videos.", + "nullable": true, + "items": { + "type": "string", + "description": "Video URL." + } + }, + "estimatedDateArrival": { + "type": "string", + "description": "Estimated date arrival.", + "nullable": true + } + } + } + } + } + } + } + } + } + } + }, + "deprecated": true + } + }, + "/api/catalog_system/pub/products/crossselling/whoboughtalsobought/{productId}": { + "get": { + "tags": [ + "CrossSelling" + ], + "summary": "Get product search of who bought also bought", + "description": ">❗ This endpoint is deprecated and may not work as expected. Instead, it returns a list of products from the same category.", + "operationId": "ProductSearchWhoBoughtAlsoBought", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "productId": "35", + "productName": "Kit de Hoegaarden", + "brand": "Hoegaarden", + "brandId": 2000004, + "brandImageUrl": "https://merch.vteximg.com.br/arquivos/ids/155532/hoegardden-logo.jpg", + "linkText": "kit-6-cerveja-hoegaarden", + "productReference": "000806", + "productReferenceCode": null, + "categoryId": "1", + "productTitle": "", + "metaTagDescription": "", + "releaseDate": "2020-10-07T00:00:00", + "clusterHighlights": { + "138": "teste2" + }, + "productClusters": { + "138": "teste2", + "143": "NaoPesquisavel", + "146": "colecaotestesubcategoria", + "161": "merch_import_test1" + }, + "searchableClusters": { + "138": "teste2" + }, + "categories": [ + "/Beers Beers Mesmo/" + ], + "categoriesIds": [ + "/1/" + ], + "link": "https://merch.vtexcommercestable.com.br/kit-6-cerveja-hoegaarden/p", + "Percentuals": [ + "4,9" + ], + "Percentual": [ + "4,9" + ], + "Total": [ + "Percentuals", + "Percentual" + ], + "Teste de Api": [ + "a" + ], + "Ale": [ + "1" + ], + "Teste da Api2": [ + "Teste de Api", + "Ale" + ], + "Alcool": [ + "Percentual" + ], + "allSpecifications": [ + "Percentuals", + "Percentual", + "Teste de Api", + "Ale" + ], + "allSpecificationsGroups": [ + "Total", + "Teste da Api2" + ], + "description": "", + "items": [ + { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + } + ] + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "productId", + "productName", + "brand", + "brandId", + "brandImageUrl", + "linkText", + "productReference", + "productReferenceCode", + "categoryId", + "productTitle", + "metaTagDescription", + "releaseDate", + "clusterHighlights", + "productClusters", + "searchableClusters", + "categories", + "categoriesIds", + "link", + "Percentuals", + "Percentual", + "Total", + "Teste de Api", + "Ale", + "Teste da Api2", + "Alcool", + "allSpecifications", + "allSpecificationsGroups", + "description", + "items" + ], + "properties": { + "productId": { + "type": "string", + "description": "Product unique identifier.", + "example": "35" + }, + "productName": { + "type": "string", + "description": "Product name.", + "example": "Kit de Hoegaarden" + }, + "brand": { + "type": "string", + "description": "Brand name.", + "example": "Hoegaarden" + }, + "brandId": { + "type": "integer", + "description": "Product brand ID.", + "example": 2000004 + }, + "brandImageUrl": { + "type": "string", + "description": "Product's brand image URL.", + "example": "https://merch.vteximg.com.br/arquivos/ids/155532/hoegardden-logo.jpg" + }, + "linkText": { + "type": "string", + "description": "Product URL.", + "example": "kit-6-cerveja-hoegaarden" + }, + "productReference": { + "type": "string", + "description": "Product reference.", + "example": "000806" + }, + "productReferenceCode": { + "type": "integer", + "description": "Product reference ID.", + "nullable": true, + "example": 1234 + }, + "categoryId": { + "type": "string", + "description": "Product category ID.", + "example": "1" + }, + "productTitle": { + "type": "string", + "description": "Text that is in the browser tab and corresponds to the title of the product page. This field is important for SEO.", + "example": "Kit 6 cerveja Hoegaarden" + }, + "metaTagDescription": { + "type": "string", + "description": "Brief description of the category. It's recommended that you don't exceed 150 characters so that the search engines can display it correctly in the results page.", + "example": "Category for Beers" + }, + "releaseDate": { + "type": "string", + "description": "Product release date.", + "example": "2020-10-07T00:00:00" + }, + "clusterHighlights": { + "type": "object", + "description": "Cluster highlight ID and name.", + "example": { + "138": "teste2" + } + }, + "productClusters": { + "type": "object", + "description": "Product clusters' IDs and names.", + "example": { + "138": "teste2", + "143": "NaoPesquisavel", + "146": "colecaotestesubcategoria", + "161": "merch_import_test1" + } + }, + "searchableClusters": { + "type": "object", + "description": "Searchable clusters IDs and names.", + "example": { + "138": "teste2" + } + }, + "categories": { + "type": "array", + "description": "Array of the product's categories URLs.", + "example": [ + "/Beers Beers Mesmo/" + ] + }, + "categoriesIds": { + "type": "array", + "description": "Array of the product's categories IDs.", + "example": [ + "/1/" + ] + }, + "link": { + "type": "string", + "description": "Product URL.", + "example": "https://merch.vtexcommercestable.com.br/kit-6-cerveja-hoegaarden/p" + }, + "allSpecifications": { + "type": "array", + "description": "Array of the product's specifications.", + "example": [ + "Percentuals", + "Percentual" + ], + "items": { + "type": "string", + "description": "Product specification.", + "example": "Percentual" + } + }, + "allSpecificationsGroups": { + "type": "array", + "description": "Array of the product's specifications groups.", + "example": [ + "Total", + "Teste da Api2" + ], + "items": { + "type": "string", + "description": "Product specification group.", + "example": "Teste da Api2" + } + }, + "description": { + "type": "string", + "description": "Description of the main information related to the product. A simple and easy to understand summary for the customer.", + "example": "Description example", + "nullable": true + }, + "items": { + "type": "array", + "description": "Array containing the product SKU general information.", + "example": [ + { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + } + ], + "items": { + "type": "object", + "example": { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + }, + "required": [ + "itemId", + "name", + "nameComplete", + "complementName", + "ean", + "referenceId", + "measurementUnit", + "unitMultiplier", + "modalType", + "isKit", + "kitItems", + "images", + "sellers", + "Videos", + "estimatedDateArrival" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU ID.", + "example": "310118469" + }, + "name": { + "type": "string", + "description": "SKU name.", + "example": "Kit com 6" + }, + "nameComplete": { + "type": "string", + "description": "SKU complete name.", + "example": "Kit de Hoegaarden Kit com 6" + }, + "complementName": { + "type": "string", + "description": "SKU complement name.", + "example": "Complement name" + }, + "ean": { + "type": "string", + "description": "SKU unique identification code (barcode), accepts up to 13 numerical characters.", + "example": "12345567" + }, + "referenceId": { + "type": "array", + "description": "Reference code ID.", + "example": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "items": { + "type": "object", + "example": { + "Key": "RefId", + "Value": "000806" + }, + "required": [ + "Key", + "Value" + ], + "properties": { + "Key": { + "type": "string", + "description": "Reference Code.", + "example": "RefId" + }, + "Value": { + "type": "string", + "description": "Unique reference code used internally for organizational purposes.", + "example": "000806" + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "Used only in cases when you need to convert the unit of measure for sale. In common cases, use 'un'.", + "example": "un" + }, + "unitMultiplier": { + "type": "number", + "description": "numerical unit that multiplies the selected quantity of the product when it is inserted in the cart.", + "example": 1 + }, + "modalType": { + "type": "string", + "description": "Modal Type.", + "nullable": true, + "example": "Modal Type test" + }, + "isKit": { + "type": "boolean", + "description": "If the SKU is part of a kit.", + "example": true + }, + "kitItems": { + "type": "array", + "description": "Array with information of SKUs components from a Kit.", + "example": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "items": { + "type": "object", + "example": { + "itemId": "310118466", + "amount": 6 + }, + "required": [ + "itemId", + "amount" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU kit component ID.", + "example": "310118466" + }, + "amount": { + "type": "integer", + "description": "Amount of the SKU component in the kit.", + "example": 6 + } + } + } + }, + "images": { + "type": "array", + "description": "Array of information about the SKU image.", + "example": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "items": { + "type": "object", + "example": { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + }, + "required": [ + "imageId", + "imageLabel", + "imageTag", + "imageUrl", + "imageText", + "imageLastModified" + ], + "properties": { + "imageId": { + "type": "string", + "description": "Image ID.", + "example": "155489" + }, + "imageLabel": { + "type": "string", + "description": "Image label.", + "example": "Label test" + }, + "imageTag": { + "type": "string", + "description": "Image tag.", + "example": "\"hoegaarden-kit\"" + }, + "imageUrl": { + "type": "string", + "description": "Image URL.", + "example": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000" + }, + "imageText": { + "type": "string", + "description": "Image text.", + "nullable": true, + "example": "hoegaarden-kit" + }, + "imageLastModified": { + "type": "string", + "description": "Date and time of the last update of the image.", + "example": "2020-10-07T12:49:27.5800000Z" + } + } + } + }, + "sellers": { + "type": "array", + "description": "Array of SKU sellers.", + "example": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "items": { + "type": "object", + "example": { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + }, + "required": [ + "sellerId", + "sellerName", + "addToCartLink", + "sellerDefault", + "commertialOffer" + ], + "properties": { + "sellerId": { + "type": "string", + "description": "SKU seller ID.", + "example": "1" + }, + "sellerName": { + "type": "string", + "description": "SKU seller name.", + "example": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE" + }, + "addToCartLink": { + "type": "string", + "description": "URL to add the product to the cart.", + "example": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1" + }, + "sellerDefault": { + "type": "boolean", + "description": "If the seller is default or not.", + "example": true + }, + "commertialOffer": { + "type": "object", + "description": "AKA Commertial Condition.", + "example": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + }, + "required": [ + "DeliverySlaSamplesPerRegion", + "Installments", + "DiscountHighLight", + "GiftSkuIds", + "Teasers", + "BuyTogether", + "ItemMetadataAttachment", + "Price", + "ListPrice", + "PriceWithoutDiscount", + "RewardValue", + "PriceValidUntil", + "AvailableQuantity", + "IsAvailable", + "Tax", + "SaleChannel", + "DeliverySlaSamples", + "GetInfoErrorMessage", + "CacheVersionUsedToCallCheckout", + "PaymentOptions" + ], + "properties": { + "DeliverySlaSamplesPerRegion": { + "type": "object", + "description": "Delivery SLA samples per region.", + "example": { + "0": { + "DeliverySlaPerTypes": [], + "Region": "null" + } + }, + "properties": { + "0": { + "type": "object", + "description": "Delivery SLA ID.", + "example": { + "DeliverySlaPerTypes": [], + "Region": null + }, + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "example": [] + }, + "Region": { + "type": "string", + "description": "Region.", + "nullable": true, + "example": "" + } + } + } + } + }, + "Installments": { + "type": "array", + "description": "Installments options.", + "example": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + } + ], + "items": { + "type": "object", + "example": { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + "required": [ + "Value", + "InterestRate", + "TotalValuePlusInterestRate", + "NumberOfInstallments", + "PaymentSystemName", + "PaymentSystemGroupName", + "Name" + ], + "properties": { + "Value": { + "type": "number", + "description": "Value of the installment.", + "example": 42 + }, + "InterestRate": { + "type": "number", + "description": "Interest rate of the installment.", + "example": 0 + }, + "TotalValuePlusInterestRate": { + "type": "number", + "description": "Total value plus interest rate of the installment.", + "example": 42 + }, + "NumberOfInstallments": { + "type": "integer", + "description": "Number of the installment.", + "example": 1 + }, + "PaymentSystemName": { + "type": "string", + "description": "Payment system name of the installment.", + "example": "Visa" + }, + "PaymentSystemGroupName": { + "type": "string", + "description": "Payment system group name of the installment.", + "example": "creditCardPaymentGroup" + }, + "Name": { + "type": "string", + "description": "Name of the installment.", + "example": "Visa à vista" + } + } + } + }, + "DiscountHighLight": { + "type": "array", + "description": "Discount hightlight.", + "example": [] + }, + "GiftSkuIds": { + "type": "array", + "description": "Array of SKU gifts IDs.", + "example": [] + }, + "Teasers": { + "type": "array", + "description": "List with promotions teasers.", + "example": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "items": { + "type": "object", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}.", + "properties": { + "{field}": { + "type": "string", + "example": "{value}" + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Conditions.", + "properties": { + "k__BackingField": { + "type": "integer", + "description": "Minimum quantity." + }, + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Effects.", + "properties": { + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "PromotionTeasers": { + "type": "array", + "description": "List with promotions teasers.", + "example": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "GeneralValues": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}.", + "properties": { + "{field}": { + "type": "string", + "example": "{value}" + } + } + }, + "Conditions": { + "type": "object", + "description": "Conditions.", + "properties": { + "MinimumQuantity": { + "type": "integer", + "description": "Minimum quantity." + }, + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "Effects": { + "type": "object", + "description": "Effects.", + "properties": { + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "BuyTogether": { + "type": "array", + "description": "Array of other products that can be bought together with the product in question.", + "example": [] + }, + "ItemMetadataAttachment": { + "type": "array", + "description": "Item metadata attachment.", + "example": [] + }, + "Price": { + "type": "number", + "description": "Price of the product.", + "example": 42 + }, + "ListPrice": { + "type": "number", + "description": "List price of the product.", + "example": 42 + }, + "PriceWithoutDiscount": { + "type": "number", + "description": "Price of the product without discount.", + "example": 42 + }, + "RewardValue": { + "type": "number", + "description": "Reward value of the product.", + "example": 0 + }, + "PriceValidUntil": { + "type": "string", + "description": "Price of the product valid until a certain date.", + "example": "4000-01-01T03:00:00Z" + }, + "AvailableQuantity": { + "type": "integer", + "description": "Use the `IsAvailable` field instead.", + "example": 16 + }, + "IsAvailable": { + "type": "boolean", + "description": "If the product is available or not.", + "example": true + }, + "Tax": { + "type": "number", + "description": "Tax of the product.", + "example": 0 + }, + "SaleChannel": { + "type": "integer", + "description": "Trade policy which the product is contained.", + "example": 0 + }, + "DeliverySlaSamples": { + "type": "array", + "description": "Delivery SLA samples.", + "example": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "items": { + "type": "object", + "example": { + "DeliverySlaPerTypes": [], + "Region": null + }, + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "example": [] + }, + "Region": { + "type": "string", + "description": "Region.", + "nullable": true, + "example": null + } + } + } + }, + "GetInfoErrorMessage": { + "type": "string", + "description": "Get info error message.", + "nullable": true, + "example": null + }, + "CacheVersionUsedToCallCheckout": { + "type": "string", + "description": "Cache version used to call checkout.", + "example": "95EF7E5476DF276E679167A399FE3103_" + }, + "PaymentOptions": { + "type": "object", + "description": "Payment options.", + "example": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "required": [ + "installmentOptions", + "paymentSystems", + "payments", + "giftCards", + "giftCardMessages", + "availableAccounts", + "availableTokens" + ], + "properties": { + "installmentOptions": { + "type": "array", + "description": "installment options.", + "example": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "items": { + "type": "object", + "example": { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + "required": [ + "paymentSystem", + "bin", + "paymentName", + "paymentGroupName", + "value", + "installments" + ], + "properties": { + "paymentSystem": { + "type": "string", + "description": "Payment system.", + "example": "2" + }, + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true, + "example": null + }, + "paymentName": { + "type": "string", + "description": "Payment name.", + "example": "Visa" + }, + "paymentGroupName": { + "type": "string", + "description": "Payment group name.", + "example": "creditCardPaymentGroup" + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "installments": { + "type": "array", + "description": "Installments.", + "example": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + } + ], + "items": { + "type": "object", + "example": { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + "required": [ + "count", + "hasInterestRate", + "interestRate", + "value", + "total", + "sellerMerchantInstallments" + ], + "properties": { + "count": { + "type": "integer", + "description": "Count.", + "example": 1 + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate.", + "example": false + }, + "interestRate": { + "type": "integer", + "description": "Interest rate.", + "example": 0 + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "total": { + "type": "integer", + "description": "Total.", + "example": 4200 + }, + "sellerMerchantInstallments": { + "type": "array", + "description": "Seller merchant installments.", + "example": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ], + "items": { + "type": "object", + "example": { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + }, + "required": [ + "id", + "count", + "hasInterestRate", + "interestRate", + "value", + "total" + ], + "properties": { + "id": { + "type": "string", + "description": "ID.", + "example": "MERCH" + }, + "count": { + "type": "integer", + "description": "Count.", + "example": 1 + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate.", + "example": false + }, + "interestRate": { + "type": "integer", + "description": "Interest rate.", + "example": 0 + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "total": { + "type": "integer", + "description": "Total.", + "example": 4200 + } + } + } + } + } + } + } + } + } + }, + "paymentSystems": { + "type": "array", + "description": "Payment systems.", + "example": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "items": { + "type": "object", + "example": { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + "required": [ + "id", + "name", + "groupName", + "validator", + "stringId", + "template", + "requiresDocument", + "isCustom", + "description", + "requiresAuthentication", + "dueDate", + "availablePayments" + ], + "properties": { + "id": { + "type": "integer", + "description": "ID.", + "example": 17 + }, + "name": { + "type": "string", + "description": "Name.", + "example": "Promissory" + }, + "groupName": { + "type": "string", + "description": "Group name.", + "example": "promissoryPaymentGroup" + }, + "validator": { + "type": "string", + "description": "Validator.", + "nullable": true, + "example": "" + }, + "stringId": { + "type": "string", + "description": "String ID.", + "example": "17" + }, + "template": { + "type": "string", + "description": "Template.", + "example": "promissoryPaymentGroup-template" + }, + "requiresDocument": { + "type": "boolean", + "description": "If requires document or not.", + "example": false + }, + "isCustom": { + "type": "boolean", + "description": "If is custom or not.", + "example": false + }, + "description": { + "type": "string", + "description": "Description.", + "nullable": true, + "example": "" + }, + "requiresAuthentication": { + "type": "boolean", + "description": "If requires authentication.", + "example": false + }, + "dueDate": { + "type": "string", + "description": "Due date.", + "example": "2021-07-01T18:43:00.0264384Z" + }, + "availablePayments": { + "type": "string", + "description": "Available payments.", + "nullable": true, + "example": "" + } + } + } + }, + "payments": { + "type": "array", + "description": "Payments.", + "example": [] + }, + "giftCards": { + "type": "array", + "description": "GiftCards.", + "example": [] + }, + "giftCardMessages": { + "type": "array", + "description": "GiftCardMessages.", + "example": [] + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts.", + "example": [] + }, + "availableTokens": { + "type": "array", + "description": "Available tokens.", + "example": [] + } + } + } + } + } + } + } + }, + "Videos": { + "type": "array", + "description": "Videos.", + "example": [] + }, + "estimatedDateArrival": { + "type": "string", + "description": "Estimated date arrival.", + "nullable": true, + "example": "" + } + } + } + } + } + } + } + } + } + } + }, + "deprecated": true + } + }, + "/api/catalog_system/pub/products/crossselling/showtogether/{productId}": { + "get": { + "tags": [ + "CrossSelling" + ], + "summary": "Get product search of show together", + "description": "Retrieves general information about the products that are show together with the product in question.", + "operationId": "ProductSearchShowTogether", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique identifier", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://entelperu.{environment}.com.br/api/catalog_system/pub/products/crossselling/accessories", + "variables": { + "environment": { + "default": "DefaultParameterValue" + } + } + } + ] + } + }, + "/api/catalog_system/pub/products/crossselling/accessories/{productId}": { + "get": { + "tags": [ + "CrossSelling" + ], + "summary": "Get product search of accessories", + "description": "Retrieves general information about the product's accessories.", + "operationId": "ProductSearchAccessories", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique identifier", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false, + "servers": [ + { + "url": "https://entelperu.{environment}.com.br/api/catalog_system/pub/products/crossselling/accessories", + "variables": { + "environment": { + "default": "DefaultParameterValue" + } + } + } + ] + } + }, + "/api/catalog_system/pub/products/crossselling/similars/{productId}": { + "get": { + "tags": [ + "CrossSelling" + ], + "summary": "Get product search of similars", + "description": "Retrieves general information about related product searches.", + "operationId": "ProductSearchSimilars", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique identifier", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/catalog_system/pub/products/crossselling/suggestions/{productId}": { + "get": { + "tags": [ + "CrossSelling" + ], + "summary": "Get product search of suggestions", + "description": "Retrieves general information about other product suggestions related to the product.", + "operationId": "ProductSearchSuggestions", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "description": "Product's unique identifier", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/catalog_system/pub/products/search/{search}": { + "get": { + "tags": [ + "Search" + ], + "summary": "Search for products", + "description": "Retrieves general information about the products related to the term searched. \r\nThis is the main search used by the store. The user can type anything to be searched. \r\n\r\nFor example, if they search for a \"decanter\", this is the URL: `https://{{accountName}}.{{environment}}.com.br/api/catalog_system/pub/products/search/decanter`. \r\n\r\nNote that maybe the response can be HTTP 200 or 206, 206 means that it's a partial content response.\r\n\r\nIf it is a 206 take a look at the Headers, will be an entry called resources. E.g.: resources → 0-9/19. This means that the response is showing items from 0 to 9, 10 items, but there were 19 items found. See more information at the paging route example.", + "operationId": "ProductSearch", + "parameters": [ + { + "name": "search", + "in": "path", + "description": "Term used to search products", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "jacket" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "productId": "35", + "productName": "Kit de Hoegaarden", + "brand": "Hoegaarden", + "brandId": 2000004, + "brandImageUrl": "https://merch.vteximg.com.br/arquivos/ids/155532/hoegardden-logo.jpg", + "linkText": "kit-6-cerveja-hoegaarden", + "productReference": "000806", + "productReferenceCode": null, + "categoryId": "1", + "productTitle": "", + "metaTagDescription": "", + "releaseDate": "2020-10-07T00:00:00", + "clusterHighlights": { + "138": "teste2" + }, + "productClusters": { + "138": "teste2", + "143": "NaoPesquisavel", + "146": "colecaotestesubcategoria", + "161": "merch_import_test1" + }, + "searchableClusters": { + "138": "teste2" + }, + "categories": [ + "/Beers Beers Mesmo/" + ], + "categoriesIds": [ + "/1/" + ], + "link": "https://merch.vtexcommercestable.com.br/kit-6-cerveja-hoegaarden/p", + "Percentuals": [ + "4,9" + ], + "Percentual": [ + "4,9" + ], + "Total": [ + "Percentuals", + "Percentual" + ], + "Teste de Api": [ + "a" + ], + "Ale": [ + "1" + ], + "Teste da Api2": [ + "Teste de Api", + "Ale" + ], + "Alcool": [ + "Percentual" + ], + "allSpecifications": [ + "Percentuals", + "Percentual", + "Teste de Api", + "Ale" + ], + "allSpecificationsGroups": [ + "Total", + "Teste da Api2" + ], + "description": "", + "items": [ + { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + } + ] + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "productId", + "productName", + "brand", + "brandId", + "brandImageUrl", + "linkText", + "productReference", + "productReferenceCode", + "categoryId", + "productTitle", + "metaTagDescription", + "releaseDate", + "clusterHighlights", + "productClusters", + "searchableClusters", + "categories", + "categoriesIds", + "link", + "Percentuals", + "Percentual", + "Total", + "Teste de Api", + "Ale", + "Teste da Api2", + "Alcool", + "allSpecifications", + "allSpecificationsGroups", + "description", + "items" + ], + "properties": { + "productId": { + "type": "string", + "description": "Product unique identifier.", + "example": "35" + }, + "productName": { + "type": "string", + "description": "Product name.", + "example": "Kit de Hoegaarden" + }, + "brand": { + "type": "string", + "description": "Brand name.", + "example": "Hoegaarden" + }, + "brandId": { + "type": "integer", + "description": "Product brand ID.", + "example": 2000004 + }, + "brandImageUrl": { + "type": "string", + "description": "Product's brand image URL.", + "example": "https://merch.vteximg.com.br/arquivos/ids/155532/hoegardden-logo.jpg" + }, + "linkText": { + "type": "string", + "description": "Product URL.", + "example": "kit-6-cerveja-hoegaarden" + }, + "productReference": { + "type": "string", + "description": "Product reference.", + "example": "000806" + }, + "productReferenceCode": { + "type": "integer", + "description": "Product reference ID.", + "nullable": true, + "example": 1234 + }, + "categoryId": { + "type": "string", + "description": "Product category ID.", + "example": "1" + }, + "productTitle": { + "type": "string", + "description": "Text that is in the browser tab and corresponds to the title of the product page. This field is important for SEO.", + "example": "Kit 6 cerveja Hoegaarden" + }, + "metaTagDescription": { + "type": "string", + "description": "Brief description of the category. It's recommended that you don't exceed 150 characters so that the search engines can display it correctly in the results page.", + "example": "Category for Beers" + }, + "releaseDate": { + "type": "string", + "description": "Product release date.", + "example": "2020-10-07T00:00:00" + }, + "clusterHighlights": { + "type": "object", + "description": "Cluster highlight ID and name.", + "example": { + "138": "teste2" + } + }, + "productClusters": { + "type": "object", + "description": "Product clusters' IDs and names.", + "example": { + "138": "teste2", + "143": "NaoPesquisavel", + "146": "colecaotestesubcategoria", + "161": "merch_import_test1" + } + }, + "searchableClusters": { + "type": "object", + "description": "Searchable clusters IDs and names.", + "example": { + "138": "teste2" + } + }, + "categories": { + "type": "array", + "description": "Array of the product's categories URLs.", + "example": [ + "/Beers Beers Mesmo/" + ] + }, + "categoriesIds": { + "type": "array", + "description": "Array of the product's categories IDs.", + "example": [ + "/1/" + ] + }, + "link": { + "type": "string", + "description": "Product URL.", + "example": "https://merch.vtexcommercestable.com.br/kit-6-cerveja-hoegaarden/p" + }, + "allSpecifications": { + "type": "array", + "description": "Array of the product's specifications.", + "example": [ + "Percentuals", + "Percentual" + ], + "items": { + "type": "string", + "description": "Product specification.", + "example": "Percentual" + } + }, + "allSpecificationsGroups": { + "type": "array", + "description": "Array of the product's specifications groups.", + "example": [ + "Total", + "Teste da Api2" + ], + "items": { + "type": "string", + "description": "Product specification group.", + "example": "Teste da Api2" + } + }, + "description": { + "type": "string", + "description": "Description of the main information related to the product. A simple and easy to understand summary for the customer.", + "example": "Description example", + "nullable": true + }, + "items": { + "type": "array", + "description": "Array containing the product SKU general information.", + "example": [ + { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + } + ], + "items": { + "type": "object", + "example": { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + }, + "required": [ + "itemId", + "name", + "nameComplete", + "complementName", + "ean", + "referenceId", + "measurementUnit", + "unitMultiplier", + "modalType", + "isKit", + "kitItems", + "images", + "sellers", + "Videos", + "estimatedDateArrival" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU ID.", + "example": "310118469" + }, + "name": { + "type": "string", + "description": "SKU name.", + "example": "Kit com 6" + }, + "nameComplete": { + "type": "string", + "description": "SKU complete name.", + "example": "Kit de Hoegaarden Kit com 6" + }, + "complementName": { + "type": "string", + "description": "SKU complement name.", + "example": "Complement name" + }, + "ean": { + "type": "string", + "description": "SKU unique identification code (barcode), accepts up to 13 numerical characters.", + "example": "12345567" + }, + "referenceId": { + "type": "array", + "description": "Reference code ID.", + "example": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "items": { + "type": "object", + "example": { + "Key": "RefId", + "Value": "000806" + }, + "required": [ + "Key", + "Value" + ], + "properties": { + "Key": { + "type": "string", + "description": "Reference Code.", + "example": "RefId" + }, + "Value": { + "type": "string", + "description": "Unique reference code used internally for organizational purposes.", + "example": "000806" + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "Used only in cases when you need to convert the unit of measure for sale. In common cases, use 'un'.", + "example": "un" + }, + "unitMultiplier": { + "type": "number", + "description": "numerical unit that multiplies the selected quantity of the product when it is inserted in the cart.", + "example": 1 + }, + "modalType": { + "type": "string", + "description": "Modal Type.", + "nullable": true, + "example": "Modal Type test" + }, + "isKit": { + "type": "boolean", + "description": "If the SKU is part of a kit.", + "example": true + }, + "kitItems": { + "type": "array", + "description": "Array with information of SKUs components from a Kit.", + "example": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "items": { + "type": "object", + "example": { + "itemId": "310118466", + "amount": 6 + }, + "required": [ + "itemId", + "amount" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU kit component ID.", + "example": "310118466" + }, + "amount": { + "type": "integer", + "description": "Amount of the SKU component in the kit.", + "example": 6 + } + } + } + }, + "images": { + "type": "array", + "description": "Array of information about the SKU image.", + "example": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "items": { + "type": "object", + "example": { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + }, + "required": [ + "imageId", + "imageLabel", + "imageTag", + "imageUrl", + "imageText", + "imageLastModified" + ], + "properties": { + "imageId": { + "type": "string", + "description": "Image ID.", + "example": "155489" + }, + "imageLabel": { + "type": "string", + "description": "Image label.", + "example": "Label test" + }, + "imageTag": { + "type": "string", + "description": "Image tag.", + "example": "\"hoegaarden-kit\"" + }, + "imageUrl": { + "type": "string", + "description": "Image URL.", + "example": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000" + }, + "imageText": { + "type": "string", + "description": "Image text.", + "nullable": true, + "example": "hoegaarden-kit" + }, + "imageLastModified": { + "type": "string", + "description": "Date and time of the last update of the image.", + "example": "2020-10-07T12:49:27.5800000Z" + } + } + } + }, + "sellers": { + "type": "array", + "description": "Array of SKU sellers.", + "example": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "items": { + "type": "object", + "example": { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + }, + "required": [ + "sellerId", + "sellerName", + "addToCartLink", + "sellerDefault", + "commertialOffer" + ], + "properties": { + "sellerId": { + "type": "string", + "description": "SKU seller ID.", + "example": "1" + }, + "sellerName": { + "type": "string", + "description": "SKU seller name.", + "example": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE" + }, + "addToCartLink": { + "type": "string", + "description": "URL to add the product to the cart.", + "example": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1" + }, + "sellerDefault": { + "type": "boolean", + "description": "If the seller is default or not.", + "example": true + }, + "commertialOffer": { + "type": "object", + "description": "AKA Commertial Condition.", + "example": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + }, + "required": [ + "DeliverySlaSamplesPerRegion", + "Installments", + "DiscountHighLight", + "GiftSkuIds", + "Teasers", + "BuyTogether", + "ItemMetadataAttachment", + "Price", + "ListPrice", + "PriceWithoutDiscount", + "RewardValue", + "PriceValidUntil", + "AvailableQuantity", + "IsAvailable", + "Tax", + "SaleChannel", + "DeliverySlaSamples", + "GetInfoErrorMessage", + "CacheVersionUsedToCallCheckout", + "PaymentOptions" + ], + "properties": { + "DeliverySlaSamplesPerRegion": { + "type": "object", + "description": "Delivery SLA samples per region.", + "example": { + "0": { + "DeliverySlaPerTypes": [], + "Region": "null" + } + }, + "properties": { + "0": { + "type": "object", + "description": "Delivery SLA ID.", + "example": { + "DeliverySlaPerTypes": [], + "Region": null + }, + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "example": [] + }, + "Region": { + "type": "string", + "description": "Region.", + "nullable": true, + "example": "" + } + } + } + } + }, + "Installments": { + "type": "array", + "description": "Installments options.", + "example": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + } + ], + "items": { + "type": "object", + "example": { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + "required": [ + "Value", + "InterestRate", + "TotalValuePlusInterestRate", + "NumberOfInstallments", + "PaymentSystemName", + "PaymentSystemGroupName", + "Name" + ], + "properties": { + "Value": { + "type": "number", + "description": "Value of the installment.", + "example": 42 + }, + "InterestRate": { + "type": "number", + "description": "Interest rate of the installment.", + "example": 0 + }, + "TotalValuePlusInterestRate": { + "type": "number", + "description": "Total value plus interest rate of the installment.", + "example": 42 + }, + "NumberOfInstallments": { + "type": "integer", + "description": "Number of the installment.", + "example": 1 + }, + "PaymentSystemName": { + "type": "string", + "description": "Payment system name of the installment.", + "example": "Visa" + }, + "PaymentSystemGroupName": { + "type": "string", + "description": "Payment system group name of the installment.", + "example": "creditCardPaymentGroup" + }, + "Name": { + "type": "string", + "description": "Name of the installment.", + "example": "Visa à vista" + } + } + } + }, + "DiscountHighLight": { + "type": "array", + "description": "Discount hightlight.", + "example": [] + }, + "GiftSkuIds": { + "type": "array", + "description": "Array of SKU gifts IDs.", + "example": [] + }, + "Teasers": { + "type": "array", + "description": "List with promotions teasers.", + "example": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "items": { + "type": "object", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}.", + "properties": { + "{field}": { + "type": "string", + "example": "{value}" + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Conditions.", + "properties": { + "k__BackingField": { + "type": "integer", + "description": "Minimum quantity." + }, + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Effects.", + "properties": { + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "PromotionTeasers": { + "type": "array", + "description": "List with promotions teasers.", + "example": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "GeneralValues": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}.", + "properties": { + "{field}": { + "type": "string", + "example": "{value}" + } + } + }, + "Conditions": { + "type": "object", + "description": "Conditions.", + "properties": { + "MinimumQuantity": { + "type": "integer", + "description": "Minimum quantity." + }, + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "Effects": { + "type": "object", + "description": "Effects.", + "properties": { + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "BuyTogether": { + "type": "array", + "description": "Array of other products that can be bought together with the product in question.", + "example": [] + }, + "ItemMetadataAttachment": { + "type": "array", + "description": "Item metadata attachment.", + "example": [] + }, + "Price": { + "type": "number", + "description": "Price of the product.", + "example": 42 + }, + "ListPrice": { + "type": "number", + "description": "List price of the product.", + "example": 42 + }, + "PriceWithoutDiscount": { + "type": "number", + "description": "Price of the product without discount.", + "example": 42 + }, + "RewardValue": { + "type": "number", + "description": "Reward value of the product.", + "example": 0 + }, + "PriceValidUntil": { + "type": "string", + "description": "Price of the product valid until a certain date.", + "example": "4000-01-01T03:00:00Z" + }, + "AvailableQuantity": { + "type": "integer", + "description": "Use the `IsAvailable` field instead.", + "example": 16 + }, + "IsAvailable": { + "type": "boolean", + "description": "If the product is available or not.", + "example": true + }, + "Tax": { + "type": "number", + "description": "Tax of the product.", + "example": 0 + }, + "SaleChannel": { + "type": "integer", + "description": "Trade policy which the product is contained.", + "example": 0 + }, + "DeliverySlaSamples": { + "type": "array", + "description": "Delivery SLA samples.", + "example": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "items": { + "type": "object", + "example": { + "DeliverySlaPerTypes": [], + "Region": null + }, + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "example": [] + }, + "Region": { + "type": "string", + "description": "Region.", + "nullable": true, + "example": null + } + } + } + }, + "GetInfoErrorMessage": { + "type": "string", + "description": "Get info error message.", + "nullable": true, + "example": null + }, + "CacheVersionUsedToCallCheckout": { + "type": "string", + "description": "Cache version used to call checkout.", + "example": "95EF7E5476DF276E679167A399FE3103_" + }, + "PaymentOptions": { + "type": "object", + "description": "Payment options.", + "example": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "required": [ + "installmentOptions", + "paymentSystems", + "payments", + "giftCards", + "giftCardMessages", + "availableAccounts", + "availableTokens" + ], + "properties": { + "installmentOptions": { + "type": "array", + "description": "installment options.", + "example": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "items": { + "type": "object", + "example": { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + "required": [ + "paymentSystem", + "bin", + "paymentName", + "paymentGroupName", + "value", + "installments" + ], + "properties": { + "paymentSystem": { + "type": "string", + "description": "Payment system.", + "example": "2" + }, + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true, + "example": null + }, + "paymentName": { + "type": "string", + "description": "Payment name.", + "example": "Visa" + }, + "paymentGroupName": { + "type": "string", + "description": "Payment group name.", + "example": "creditCardPaymentGroup" + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "installments": { + "type": "array", + "description": "Installments.", + "example": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + } + ], + "items": { + "type": "object", + "example": { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + "required": [ + "count", + "hasInterestRate", + "interestRate", + "value", + "total", + "sellerMerchantInstallments" + ], + "properties": { + "count": { + "type": "integer", + "description": "Count.", + "example": 1 + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate.", + "example": false + }, + "interestRate": { + "type": "integer", + "description": "Interest rate.", + "example": 0 + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "total": { + "type": "integer", + "description": "Total.", + "example": 4200 + }, + "sellerMerchantInstallments": { + "type": "array", + "description": "Seller merchant installments.", + "example": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ], + "items": { + "type": "object", + "example": { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + }, + "required": [ + "id", + "count", + "hasInterestRate", + "interestRate", + "value", + "total" + ], + "properties": { + "id": { + "type": "string", + "description": "ID.", + "example": "MERCH" + }, + "count": { + "type": "integer", + "description": "Count.", + "example": 1 + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate.", + "example": false + }, + "interestRate": { + "type": "integer", + "description": "Interest rate.", + "example": 0 + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "total": { + "type": "integer", + "description": "Total.", + "example": 4200 + } + } + } + } + } + } + } + } + } + }, + "paymentSystems": { + "type": "array", + "description": "Payment systems.", + "example": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "items": { + "type": "object", + "example": { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + "required": [ + "id", + "name", + "groupName", + "validator", + "stringId", + "template", + "requiresDocument", + "isCustom", + "description", + "requiresAuthentication", + "dueDate", + "availablePayments" + ], + "properties": { + "id": { + "type": "integer", + "description": "ID.", + "example": 17 + }, + "name": { + "type": "string", + "description": "Name.", + "example": "Promissory" + }, + "groupName": { + "type": "string", + "description": "Group name.", + "example": "promissoryPaymentGroup" + }, + "validator": { + "type": "string", + "description": "Validator.", + "nullable": true, + "example": "" + }, + "stringId": { + "type": "string", + "description": "String ID.", + "example": "17" + }, + "template": { + "type": "string", + "description": "Template.", + "example": "promissoryPaymentGroup-template" + }, + "requiresDocument": { + "type": "boolean", + "description": "If requires document or not.", + "example": false + }, + "isCustom": { + "type": "boolean", + "description": "If is custom or not.", + "example": false + }, + "description": { + "type": "string", + "description": "Description.", + "nullable": true, + "example": "" + }, + "requiresAuthentication": { + "type": "boolean", + "description": "If requires authentication.", + "example": false + }, + "dueDate": { + "type": "string", + "description": "Due date.", + "example": "2021-07-01T18:43:00.0264384Z" + }, + "availablePayments": { + "type": "string", + "description": "Available payments.", + "nullable": true, + "example": "" + } + } + } + }, + "payments": { + "type": "array", + "description": "Payments.", + "example": [] + }, + "giftCards": { + "type": "array", + "description": "GiftCards.", + "example": [] + }, + "giftCardMessages": { + "type": "array", + "description": "GiftCardMessages.", + "example": [] + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts.", + "example": [] + }, + "availableTokens": { + "type": "array", + "description": "Available tokens.", + "example": [] + } + } + } + } + } + } + } + }, + "Videos": { + "type": "array", + "description": "Videos.", + "example": [] + }, + "estimatedDateArrival": { + "type": "string", + "description": "Estimated date arrival.", + "nullable": true, + "example": "" + } + } + } + } + } + } + } + } + } + } + } + } + }, + "/api/catalog_system/pub/products/search": { + "get": { + "tags": [ + "Search" + ], + "summary": "Search for products with filter, order and pagination", + "description": "Retrieves general information about the store's products. This information can be filtered and ordered by a number of options. It also can be paginated, filtered and ordered. \r\n\r\n## Filters \r\n\r\n- **Filter by full text** - `ft={searchWord}` \r\nE.g.: `ft=television`\r\n\r\n- **Filter by category** - `fq=C:/{a}/{b}` \r\n`{a}` and `{b}` are Category IDs \r\nE.g.: `fq=C:/1000041/1000049/`\r\n\r\n- **Filter by brand** - `fq=B:/{a}/{b}` \r\n`{a}` and `{b}` are Brand IDs\r\nE.g.: `fq=B:/189385/189387/`\r\n\r\n- **Filter by specification** - `fq=specificationFilter_{a}:{b}` \r\n`{a}` is the specification ID\r\n`{b}` is the specification value\r\nE.g.: To filter products where the color is Blue, find the specification ID for color. Suppose it is 123, then the query will be: `fq=specificationFilter_123:Blue`\r\n\r\n- **Filter by price range** - `fq=P:[{a} TO {b}]` \r\n`{a}` is the minimum price \"from\"\r\n`{b}` is the highest price \"to\" \r\nE.g.: `fq=P:[0 TO 20]` will search products between 0.00 and 20.00. \r\n\r\n- **Filter by collection** - `fq=productClusterIds:{{productClusterId}}` \r\n`productClusterId` is the same as `collectionId` \r\nFor more information about collections, read [Creating a product collection](https://help.vtex.com/en/tutorial/creating-a-product-collection).\r\n\r\n- **Filter by product ID** - `fq=productId:{{productId}}`\r\n\r\n- **Filter by SKU ID** - `fq=skuId:{{skuId}}`\r\n\r\n- **Filter by referenceId** - `fq=alternateIds_RefId:{{referenceId}}`\r\n\r\n- **Filter by EAN13** - `fq=alternateIds_Ean:{{ean13}}`\r\n\r\n- **Filter by availability at a specific sales channel** - `fq=isAvailablePerSalesChannel_{{sc}}:{{bool}}` \r\n`{{sc}}` is the desired sales channel \r\n`{{bool}}` is true ou false, 1 or 0. \r\nE.g.: seaching available products for the sales channel 4 would be `fq=isAvailablePerSalesChannel_4:1`\r\n\r\n- **Filter by available at a specific seller** - `fq=sellerId:{{sellerId}}`\r\nThe search does not include White Label Sellers.\r\n\r\n## Pagination\r\n\r\n- **Initial item number** - `_from={{first}}`\r\n- **Final item number** - `_to={{last}}`\r\n\r\n>⚠️ This endpoint returns a maximum of 50 items per response, so the difference between `_from` and `_to` should not exceed this number. The result order is descending, from the highest product ID to the lowest.\r\n\r\n## Sorting\r\n\r\n- **Price** \r\n`O=OrderByPriceDESC` \r\n`O=OrderByPriceASC`\r\n\r\n- **Top Selling Products** \r\n`O=OrderByTopSaleDESC`\r\n\r\n- **Best Reviews** \r\n`O=OrderByReviewRateDESC`\r\n\r\n- **Name** \r\n`O=OrderByNameASC` \r\n`O=OrderByNameDESC`\r\n\r\n- **Release Date** \r\n`O=OrderByReleaseDateDESC`\r\n\r\n- **Best Discounts** \r\n`O=OrderByBestDiscountDESC`\r\n\r\n- **Score** \r\n`O=OrderByScoreDESC`", + "operationId": "ProductSearchFilteredandOrdered", + "parameters": [ + { + "name": "_from", + "in": "query", + "description": "Starting page of the pagination range. This number must be below or equal to 2500 for the query to work. Note that the difference between the initial and final pages cannot exceed 50 pages. Therefore, each page will display a maximum of 50 items.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "_to", + "in": "query", + "description": "Final page of the pagination range. Note that the difference between the initial and final pages cannot exceed 50 pages. Therefore, each page will display a maximum of 50 items.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "50" + } + }, + { + "name": "ft", + "in": "query", + "description": "Filter by full text. The form is`ft={searchWord}`.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "television" + } + }, + { + "name": "fq", + "in": "query", + "description": "General filter. It can be by category (`fq=C:{a}/{b}`), by specification (`fq=specificationFilter_{a}:{b}`), by price range (`fq=P:[{a} TO {b}]`), by collection (`fq=productClusterIds:{{productClusterId}}`), by product ID (`fq=productId:{{productId}}`), by SKU ID (`fq=skuId:{{skuId}}`), by Reference ID (`fq=alternateIds_RefId:{{referenceId}}`), by EAN13 (`fq=alternateIds_Ean:{{ean13}}`), by availability at a specific sales channel (`fq=isAvailablePerSalesChannel_{{sc}}:{{bool}}`), by available at a specific seller (`fq=sellerId:{{sellerId}}`).", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "C:/1000041/1000049/" + } + }, + { + "name": "O", + "in": "query", + "description": "Sorting method. It can be by Price (`O=OrderByPriceDESC` or `O=OrderByPriceASC`), by Top Selling Products (`O=OrderByTopSaleDESC`), by Best Reviews (`O=OrderByReviewRateDESC`), by Name (`O=OrderByNameASC` or `O=OrderByNameDESC`), by Release Date (`O=OrderByReleaseDateDESC`), by Best Discounts (`O=OrderByBestDiscountDESC`), by Score (`O=OrderByScoreDESC`).", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "OrderByNameASC" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "productId": "35", + "productName": "Kit de Hoegaarden", + "brand": "Hoegaarden", + "brandId": 2000004, + "brandImageUrl": "https://merch.vteximg.com.br/arquivos/ids/155532/hoegardden-logo.jpg", + "linkText": "kit-6-cerveja-hoegaarden", + "productReference": "000806", + "productReferenceCode": null, + "categoryId": "1", + "productTitle": "", + "metaTagDescription": "", + "releaseDate": "2020-10-07T00:00:00", + "clusterHighlights": { + "138": "teste2" + }, + "productClusters": { + "138": "teste2", + "143": "NaoPesquisavel", + "146": "colecaotestesubcategoria", + "161": "merch_import_test1" + }, + "searchableClusters": { + "138": "teste2" + }, + "categories": [ + "/Beers Beers Mesmo/" + ], + "categoriesIds": [ + "/1/" + ], + "link": "https://merch.vtexcommercestable.com.br/kit-6-cerveja-hoegaarden/p", + "Percentuals": [ + "4,9" + ], + "Percentual": [ + "4,9" + ], + "Total": [ + "Percentuals", + "Percentual" + ], + "Teste de Api": [ + "a" + ], + "Ale": [ + "1" + ], + "Teste da Api2": [ + "Teste de Api", + "Ale" + ], + "Alcool": [ + "Percentual" + ], + "allSpecifications": [ + "Percentuals", + "Percentual", + "Teste de Api", + "Ale" + ], + "allSpecificationsGroups": [ + "Total", + "Teste da Api2" + ], + "description": "", + "items": [ + { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + } + ] + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "productId", + "productName", + "brand", + "brandId", + "brandImageUrl", + "linkText", + "productReference", + "productReferenceCode", + "categoryId", + "productTitle", + "metaTagDescription", + "releaseDate", + "clusterHighlights", + "productClusters", + "searchableClusters", + "categories", + "categoriesIds", + "link", + "Percentuals", + "Percentual", + "Total", + "Teste de Api", + "Ale", + "Teste da Api2", + "Alcool", + "allSpecifications", + "allSpecificationsGroups", + "description", + "items" + ], + "properties": { + "productId": { + "type": "string", + "description": "Product unique identifier.", + "example": "35" + }, + "productName": { + "type": "string", + "description": "Product name.", + "example": "Kit de Hoegaarden" + }, + "brand": { + "type": "string", + "description": "Brand name.", + "example": "Hoegaarden" + }, + "brandId": { + "type": "integer", + "description": "Product brand ID.", + "example": 2000004 + }, + "brandImageUrl": { + "type": "string", + "description": "Product's brand image URL.", + "example": "https://merch.vteximg.com.br/arquivos/ids/155532/hoegardden-logo.jpg" + }, + "linkText": { + "type": "string", + "description": "Product URL.", + "example": "kit-6-cerveja-hoegaarden" + }, + "productReference": { + "type": "string", + "description": "Product reference.", + "example": "000806" + }, + "productReferenceCode": { + "type": "integer", + "description": "Product reference ID.", + "nullable": true, + "example": 1234 + }, + "categoryId": { + "type": "string", + "description": "Product category ID.", + "example": "1" + }, + "productTitle": { + "type": "string", + "description": "Text that is in the browser tab and corresponds to the title of the product page. This field is important for SEO.", + "example": "Kit 6 cerveja Hoegaarden" + }, + "metaTagDescription": { + "type": "string", + "description": "Brief description of the category. It's recommended that you don't exceed 150 characters so that the search engines can display it correctly in the results page.", + "example": "Category for Beers" + }, + "releaseDate": { + "type": "string", + "description": "Product release date.", + "example": "2020-10-07T00:00:00" + }, + "clusterHighlights": { + "type": "object", + "description": "Cluster highlight ID and name.", + "example": { + "138": "teste2" + } + }, + "productClusters": { + "type": "object", + "description": "Product clusters' IDs and names.", + "example": { + "138": "teste2", + "143": "NaoPesquisavel", + "146": "colecaotestesubcategoria", + "161": "merch_import_test1" + } + }, + "searchableClusters": { + "type": "object", + "description": "Searchable clusters IDs and names.", + "example": { + "138": "teste2" + } + }, + "categories": { + "type": "array", + "description": "Array of the product's categories URLs.", + "example": [ + "/Beers Beers Mesmo/" + ] + }, + "categoriesIds": { + "type": "array", + "description": "Array of the product's categories IDs.", + "example": [ + "/1/" + ] + }, + "link": { + "type": "string", + "description": "Product URL.", + "example": "https://merch.vtexcommercestable.com.br/kit-6-cerveja-hoegaarden/p" + }, + "allSpecifications": { + "type": "array", + "description": "Array of the product's specifications.", + "example": [ + "Percentuals", + "Percentual" + ], + "items": { + "type": "string", + "description": "Product specification.", + "example": "Percentual" + } + }, + "allSpecificationsGroups": { + "type": "array", + "description": "Array of the product's specifications groups.", + "example": [ + "Total", + "Teste da Api2" + ], + "items": { + "type": "string", + "description": "Product specification group.", + "example": "Teste da Api2" + } + }, + "description": { + "type": "string", + "description": "Description of the main information related to the product. A simple and easy to understand summary for the customer.", + "example": "Description example", + "nullable": true + }, + "items": { + "type": "array", + "description": "Array containing the product SKU general information.", + "example": [ + { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + } + ], + "items": { + "type": "object", + "example": { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + }, + "required": [ + "itemId", + "name", + "nameComplete", + "complementName", + "ean", + "referenceId", + "measurementUnit", + "unitMultiplier", + "modalType", + "isKit", + "kitItems", + "images", + "sellers", + "Videos", + "estimatedDateArrival" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU ID.", + "example": "310118469" + }, + "name": { + "type": "string", + "description": "SKU name.", + "example": "Kit com 6" + }, + "nameComplete": { + "type": "string", + "description": "SKU complete name.", + "example": "Kit de Hoegaarden Kit com 6" + }, + "complementName": { + "type": "string", + "description": "SKU complement name.", + "example": "Complement name" + }, + "ean": { + "type": "string", + "description": "SKU unique identification code (barcode), accepts up to 13 numerical characters.", + "example": "12345567" + }, + "referenceId": { + "type": "array", + "description": "Reference code ID.", + "example": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "items": { + "type": "object", + "example": { + "Key": "RefId", + "Value": "000806" + }, + "required": [ + "Key", + "Value" + ], + "properties": { + "Key": { + "type": "string", + "description": "Reference Code.", + "example": "RefId" + }, + "Value": { + "type": "string", + "description": "Unique reference code used internally for organizational purposes.", + "example": "000806" + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "Used only in cases when you need to convert the unit of measure for sale. In common cases, use 'un'.", + "example": "un" + }, + "unitMultiplier": { + "type": "number", + "description": "numerical unit that multiplies the selected quantity of the product when it is inserted in the cart.", + "example": 1 + }, + "modalType": { + "type": "string", + "description": "Modal Type.", + "nullable": true, + "example": "Modal Type test" + }, + "isKit": { + "type": "boolean", + "description": "If the SKU is part of a kit.", + "example": true + }, + "kitItems": { + "type": "array", + "description": "Array with information of SKUs components from a Kit.", + "example": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "items": { + "type": "object", + "example": { + "itemId": "310118466", + "amount": 6 + }, + "required": [ + "itemId", + "amount" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU kit component ID.", + "example": "310118466" + }, + "amount": { + "type": "integer", + "description": "Amount of the SKU component in the kit.", + "example": 6 + } + } + } + }, + "images": { + "type": "array", + "description": "Array of information about the SKU image.", + "example": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "items": { + "type": "object", + "example": { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + }, + "required": [ + "imageId", + "imageLabel", + "imageTag", + "imageUrl", + "imageText", + "imageLastModified" + ], + "properties": { + "imageId": { + "type": "string", + "description": "Image ID.", + "example": "155489" + }, + "imageLabel": { + "type": "string", + "description": "Image label.", + "example": "Label test" + }, + "imageTag": { + "type": "string", + "description": "Image tag.", + "example": "\"hoegaarden-kit\"" + }, + "imageUrl": { + "type": "string", + "description": "Image URL.", + "example": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000" + }, + "imageText": { + "type": "string", + "description": "Image text.", + "nullable": true, + "example": "hoegaarden-kit" + }, + "imageLastModified": { + "type": "string", + "description": "Date and time of the last update of the image.", + "example": "2020-10-07T12:49:27.5800000Z" + } + } + } + }, + "sellers": { + "type": "array", + "description": "Array of SKU sellers.", + "example": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "items": { + "type": "object", + "example": { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + }, + "required": [ + "sellerId", + "sellerName", + "addToCartLink", + "sellerDefault", + "commertialOffer" + ], + "properties": { + "sellerId": { + "type": "string", + "description": "SKU seller ID.", + "example": "1" + }, + "sellerName": { + "type": "string", + "description": "SKU seller name.", + "example": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE" + }, + "addToCartLink": { + "type": "string", + "description": "URL to add the product to the cart.", + "example": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1" + }, + "sellerDefault": { + "type": "boolean", + "description": "If the seller is default or not.", + "example": true + }, + "commertialOffer": { + "type": "object", + "description": "AKA Commertial Condition.", + "example": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + }, + "required": [ + "DeliverySlaSamplesPerRegion", + "Installments", + "DiscountHighLight", + "GiftSkuIds", + "Teasers", + "BuyTogether", + "ItemMetadataAttachment", + "Price", + "ListPrice", + "PriceWithoutDiscount", + "RewardValue", + "PriceValidUntil", + "AvailableQuantity", + "IsAvailable", + "Tax", + "SaleChannel", + "DeliverySlaSamples", + "GetInfoErrorMessage", + "CacheVersionUsedToCallCheckout", + "PaymentOptions" + ], + "properties": { + "DeliverySlaSamplesPerRegion": { + "type": "object", + "description": "Delivery SLA samples per region.", + "example": { + "0": { + "DeliverySlaPerTypes": [], + "Region": "null" + } + }, + "properties": { + "0": { + "type": "object", + "description": "Delivery SLA ID.", + "example": { + "DeliverySlaPerTypes": [], + "Region": null + }, + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "example": [] + }, + "Region": { + "type": "string", + "description": "Region.", + "nullable": true, + "example": "" + } + } + } + } + }, + "Installments": { + "type": "array", + "description": "Installments options.", + "example": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + } + ], + "items": { + "type": "object", + "example": { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + "required": [ + "Value", + "InterestRate", + "TotalValuePlusInterestRate", + "NumberOfInstallments", + "PaymentSystemName", + "PaymentSystemGroupName", + "Name" + ], + "properties": { + "Value": { + "type": "number", + "description": "Value of the installment.", + "example": 42 + }, + "InterestRate": { + "type": "number", + "description": "Interest rate of the installment.", + "example": 0 + }, + "TotalValuePlusInterestRate": { + "type": "number", + "description": "Total value plus interest rate of the installment.", + "example": 42 + }, + "NumberOfInstallments": { + "type": "integer", + "description": "Number of the installment.", + "example": 1 + }, + "PaymentSystemName": { + "type": "string", + "description": "Payment system name of the installment.", + "example": "Visa" + }, + "PaymentSystemGroupName": { + "type": "string", + "description": "Payment system group name of the installment.", + "example": "creditCardPaymentGroup" + }, + "Name": { + "type": "string", + "description": "Name of the installment.", + "example": "Visa à vista" + } + } + } + }, + "DiscountHighLight": { + "type": "array", + "description": "Discount hightlight.", + "example": [] + }, + "GiftSkuIds": { + "type": "array", + "description": "Array of SKU gifts IDs.", + "example": [] + }, + "Teasers": { + "type": "array", + "description": "List with promotions teasers.", + "example": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "items": { + "type": "object", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}.", + "properties": { + "{field}": { + "type": "string", + "example": "{value}" + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Conditions.", + "properties": { + "k__BackingField": { + "type": "integer", + "description": "Minimum quantity." + }, + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Effects.", + "properties": { + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "PromotionTeasers": { + "type": "array", + "description": "List with promotions teasers.", + "example": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "GeneralValues": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}.", + "properties": { + "{field}": { + "type": "string", + "example": "{value}" + } + } + }, + "Conditions": { + "type": "object", + "description": "Conditions.", + "properties": { + "MinimumQuantity": { + "type": "integer", + "description": "Minimum quantity." + }, + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "Effects": { + "type": "object", + "description": "Effects.", + "properties": { + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "BuyTogether": { + "type": "array", + "description": "Array of other products that can be bought together with the product in question.", + "example": [] + }, + "ItemMetadataAttachment": { + "type": "array", + "description": "Item metadata attachment.", + "example": [] + }, + "Price": { + "type": "number", + "description": "Price of the product.", + "example": 42 + }, + "ListPrice": { + "type": "number", + "description": "List price of the product.", + "example": 42 + }, + "PriceWithoutDiscount": { + "type": "number", + "description": "Price of the product without discount.", + "example": 42 + }, + "RewardValue": { + "type": "number", + "description": "Reward value of the product.", + "example": 0 + }, + "PriceValidUntil": { + "type": "string", + "description": "Price of the product valid until a certain date.", + "example": "4000-01-01T03:00:00Z" + }, + "AvailableQuantity": { + "type": "integer", + "description": "Use the `IsAvailable` field instead.", + "example": 16 + }, + "IsAvailable": { + "type": "boolean", + "description": "If the product is available or not.", + "example": true + }, + "Tax": { + "type": "number", + "description": "Tax of the product.", + "example": 0 + }, + "SaleChannel": { + "type": "integer", + "description": "Trade policy which the product is contained.", + "example": 0 + }, + "DeliverySlaSamples": { + "type": "array", + "description": "Delivery SLA samples.", + "example": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "items": { + "type": "object", + "example": { + "DeliverySlaPerTypes": [], + "Region": null + }, + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "example": [] + }, + "Region": { + "type": "string", + "description": "Region.", + "nullable": true, + "example": null + } + } + } + }, + "GetInfoErrorMessage": { + "type": "string", + "description": "Get info error message.", + "nullable": true, + "example": null + }, + "CacheVersionUsedToCallCheckout": { + "type": "string", + "description": "Cache version used to call checkout.", + "example": "95EF7E5476DF276E679167A399FE3103_" + }, + "PaymentOptions": { + "type": "object", + "description": "Payment options.", + "example": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "required": [ + "installmentOptions", + "paymentSystems", + "payments", + "giftCards", + "giftCardMessages", + "availableAccounts", + "availableTokens" + ], + "properties": { + "installmentOptions": { + "type": "array", + "description": "installment options.", + "example": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "items": { + "type": "object", + "example": { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + "required": [ + "paymentSystem", + "bin", + "paymentName", + "paymentGroupName", + "value", + "installments" + ], + "properties": { + "paymentSystem": { + "type": "string", + "description": "Payment system.", + "example": "2" + }, + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true, + "example": null + }, + "paymentName": { + "type": "string", + "description": "Payment name.", + "example": "Visa" + }, + "paymentGroupName": { + "type": "string", + "description": "Payment group name.", + "example": "creditCardPaymentGroup" + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "installments": { + "type": "array", + "description": "Installments.", + "example": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + } + ], + "items": { + "type": "object", + "example": { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + "required": [ + "count", + "hasInterestRate", + "interestRate", + "value", + "total", + "sellerMerchantInstallments" + ], + "properties": { + "count": { + "type": "integer", + "description": "Count.", + "example": 1 + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate.", + "example": false + }, + "interestRate": { + "type": "integer", + "description": "Interest rate.", + "example": 0 + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "total": { + "type": "integer", + "description": "Total.", + "example": 4200 + }, + "sellerMerchantInstallments": { + "type": "array", + "description": "Seller merchant installments.", + "example": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ], + "items": { + "type": "object", + "example": { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + }, + "required": [ + "id", + "count", + "hasInterestRate", + "interestRate", + "value", + "total" + ], + "properties": { + "id": { + "type": "string", + "description": "ID.", + "example": "MERCH" + }, + "count": { + "type": "integer", + "description": "Count.", + "example": 1 + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate.", + "example": false + }, + "interestRate": { + "type": "integer", + "description": "Interest rate.", + "example": 0 + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "total": { + "type": "integer", + "description": "Total.", + "example": 4200 + } + } + } + } + } + } + } + } + } + }, + "paymentSystems": { + "type": "array", + "description": "Payment systems.", + "example": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "items": { + "type": "object", + "example": { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + "required": [ + "id", + "name", + "groupName", + "validator", + "stringId", + "template", + "requiresDocument", + "isCustom", + "description", + "requiresAuthentication", + "dueDate", + "availablePayments" + ], + "properties": { + "id": { + "type": "integer", + "description": "ID.", + "example": 17 + }, + "name": { + "type": "string", + "description": "Name.", + "example": "Promissory" + }, + "groupName": { + "type": "string", + "description": "Group name.", + "example": "promissoryPaymentGroup" + }, + "validator": { + "type": "string", + "description": "Validator.", + "nullable": true, + "example": "" + }, + "stringId": { + "type": "string", + "description": "String ID.", + "example": "17" + }, + "template": { + "type": "string", + "description": "Template.", + "example": "promissoryPaymentGroup-template" + }, + "requiresDocument": { + "type": "boolean", + "description": "If requires document or not.", + "example": false + }, + "isCustom": { + "type": "boolean", + "description": "If is custom or not.", + "example": false + }, + "description": { + "type": "string", + "description": "Description.", + "nullable": true, + "example": "" + }, + "requiresAuthentication": { + "type": "boolean", + "description": "If requires authentication.", + "example": false + }, + "dueDate": { + "type": "string", + "description": "Due date.", + "example": "2021-07-01T18:43:00.0264384Z" + }, + "availablePayments": { + "type": "string", + "description": "Available payments.", + "nullable": true, + "example": "" + } + } + } + }, + "payments": { + "type": "array", + "description": "Payments.", + "example": [] + }, + "giftCards": { + "type": "array", + "description": "GiftCards.", + "example": [] + }, + "giftCardMessages": { + "type": "array", + "description": "GiftCardMessages.", + "example": [] + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts.", + "example": [] + }, + "availableTokens": { + "type": "array", + "description": "Available tokens.", + "example": [] + } + } + } + } + } + } + } + }, + "Videos": { + "type": "array", + "description": "Videos.", + "example": [] + }, + "estimatedDateArrival": { + "type": "string", + "description": "Estimated date arrival.", + "nullable": true, + "example": "" + } + } + } + } + } + } + } + } + } + } + } + } + }, + "/api/catalog_system/pub/products/search/{product-text-link}/p": { + "get": { + "tags": [ + "Search" + ], + "summary": "Search product by product URL", + "description": "Retrieves general information about the product of the URL you searched for.", + "operationId": "Searchbyproducturl", + "parameters": [ + { + "name": "product-text-link", + "in": "path", + "description": "Product URL", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "blue-shirt" + } + } + ], + "responses": { + "200": { + "description": "", + "headers": {}, + "content": { + "application/json": { + "example": [ + { + "productId": "35", + "productName": "Kit de Hoegaarden", + "brand": "Hoegaarden", + "brandId": 2000004, + "brandImageUrl": "https://merch.vteximg.com.br/arquivos/ids/155532/hoegardden-logo.jpg", + "linkText": "kit-6-cerveja-hoegaarden", + "productReference": "000806", + "productReferenceCode": null, + "categoryId": "1", + "productTitle": "", + "metaTagDescription": "", + "releaseDate": "2020-10-07T00:00:00", + "clusterHighlights": { + "138": "teste2" + }, + "productClusters": { + "138": "teste2", + "143": "NaoPesquisavel", + "146": "colecaotestesubcategoria", + "161": "merch_import_test1" + }, + "searchableClusters": { + "138": "teste2" + }, + "categories": [ + "/Beers Beers Mesmo/" + ], + "categoriesIds": [ + "/1/" + ], + "link": "https://merch.vtexcommercestable.com.br/kit-6-cerveja-hoegaarden/p", + "Percentuals": [ + "4,9" + ], + "Percentual": [ + "4,9" + ], + "Total": [ + "Percentuals", + "Percentual" + ], + "Teste de Api": [ + "a" + ], + "Ale": [ + "1" + ], + "Teste da Api2": [ + "Teste de Api", + "Ale" + ], + "Alcool": [ + "Percentual" + ], + "allSpecifications": [ + "Percentuals", + "Percentual", + "Teste de Api", + "Ale" + ], + "allSpecificationsGroups": [ + "Total", + "Teste da Api2" + ], + "description": "", + "items": [ + { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + } + ] + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "productId", + "productName", + "brand", + "brandId", + "brandImageUrl", + "linkText", + "productReference", + "productReferenceCode", + "categoryId", + "productTitle", + "metaTagDescription", + "releaseDate", + "clusterHighlights", + "productClusters", + "searchableClusters", + "categories", + "categoriesIds", + "link", + "Percentuals", + "Percentual", + "Total", + "Teste de Api", + "Ale", + "Teste da Api2", + "Alcool", + "allSpecifications", + "allSpecificationsGroups", + "description", + "items" + ], + "properties": { + "productId": { + "type": "string", + "description": "Product unique identifier.", + "example": "35" + }, + "productName": { + "type": "string", + "description": "Product name.", + "example": "Kit de Hoegaarden" + }, + "brand": { + "type": "string", + "description": "Brand name.", + "example": "Hoegaarden" + }, + "brandId": { + "type": "integer", + "description": "Product brand ID.", + "example": 2000004 + }, + "brandImageUrl": { + "type": "string", + "description": "Product's brand image URL.", + "example": "https://merch.vteximg.com.br/arquivos/ids/155532/hoegardden-logo.jpg" + }, + "linkText": { + "type": "string", + "description": "Product URL.", + "example": "kit-6-cerveja-hoegaarden" + }, + "productReference": { + "type": "string", + "description": "Product reference.", + "example": "000806" + }, + "productReferenceCode": { + "type": "integer", + "description": "Product reference ID.", + "nullable": true, + "example": 1234 + }, + "categoryId": { + "type": "string", + "description": "Product category ID.", + "example": "1" + }, + "productTitle": { + "type": "string", + "description": "Text that is in the browser tab and corresponds to the title of the product page. This field is important for SEO.", + "example": "Kit 6 cerveja Hoegaarden" + }, + "metaTagDescription": { + "type": "string", + "description": "Brief description of the category. It's recommended that you don't exceed 150 characters so that the search engines can display it correctly in the results page.", + "example": "Category for Beers" + }, + "releaseDate": { + "type": "string", + "description": "Product release date.", + "example": "2020-10-07T00:00:00" + }, + "clusterHighlights": { + "type": "object", + "description": "Cluster highlight ID and name.", + "example": { + "138": "teste2" + } + }, + "productClusters": { + "type": "object", + "description": "Product clusters' IDs and names.", + "example": { + "138": "teste2", + "143": "NaoPesquisavel", + "146": "colecaotestesubcategoria", + "161": "merch_import_test1" + } + }, + "searchableClusters": { + "type": "object", + "description": "Searchable clusters IDs and names.", + "example": { + "138": "teste2" + } + }, + "categories": { + "type": "array", + "description": "Array of the product's categories URLs.", + "example": [ + "/Beers Beers Mesmo/" + ] + }, + "categoriesIds": { + "type": "array", + "description": "Array of the product's categories IDs.", + "example": [ + "/1/" + ] + }, + "link": { + "type": "string", + "description": "Product URL.", + "example": "https://merch.vtexcommercestable.com.br/kit-6-cerveja-hoegaarden/p" + }, + "allSpecifications": { + "type": "array", + "description": "Array of the product's specifications.", + "example": [ + "Percentuals", + "Percentual" + ], + "items": { + "type": "string", + "description": "Product specification.", + "example": "Percentual" + } + }, + "allSpecificationsGroups": { + "type": "array", + "description": "Array of the product's specifications groups.", + "example": [ + "Total", + "Teste da Api2" + ], + "items": { + "type": "string", + "description": "Product specification group.", + "example": "Teste da Api2" + } + }, + "description": { + "type": "string", + "description": "Description of the main information related to the product. A simple and easy to understand summary for the customer.", + "example": "Description example", + "nullable": true + }, + "items": { + "type": "array", + "description": "Array containing the product SKU general information.", + "example": [ + { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + } + ], + "items": { + "type": "object", + "example": { + "itemId": "310118469", + "name": "Kit com 6", + "nameComplete": "Kit de Hoegaarden Kit com 6", + "complementName": "", + "ean": "", + "referenceId": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "measurementUnit": "un", + "unitMultiplier": 1, + "modalType": null, + "isKit": true, + "kitItems": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "images": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "sellers": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "Videos": [], + "estimatedDateArrival": null + }, + "required": [ + "itemId", + "name", + "nameComplete", + "complementName", + "ean", + "referenceId", + "measurementUnit", + "unitMultiplier", + "modalType", + "isKit", + "kitItems", + "images", + "sellers", + "Videos", + "estimatedDateArrival" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU ID.", + "example": "310118469" + }, + "name": { + "type": "string", + "description": "SKU name.", + "example": "Kit com 6" + }, + "nameComplete": { + "type": "string", + "description": "SKU complete name.", + "example": "Kit de Hoegaarden Kit com 6" + }, + "complementName": { + "type": "string", + "description": "SKU complement name.", + "example": "Complement name" + }, + "ean": { + "type": "string", + "description": "SKU unique identification code (barcode), accepts up to 13 numerical characters.", + "example": "12345567" + }, + "referenceId": { + "type": "array", + "description": "Reference code ID.", + "example": [ + { + "Key": "RefId", + "Value": "000806" + } + ], + "items": { + "type": "object", + "example": { + "Key": "RefId", + "Value": "000806" + }, + "required": [ + "Key", + "Value" + ], + "properties": { + "Key": { + "type": "string", + "description": "Reference Code.", + "example": "RefId" + }, + "Value": { + "type": "string", + "description": "Unique reference code used internally for organizational purposes.", + "example": "000806" + } + } + } + }, + "measurementUnit": { + "type": "string", + "description": "Used only in cases when you need to convert the unit of measure for sale. In common cases, use 'un'.", + "example": "un" + }, + "unitMultiplier": { + "type": "number", + "description": "numerical unit that multiplies the selected quantity of the product when it is inserted in the cart.", + "example": 1 + }, + "modalType": { + "type": "string", + "description": "Modal Type.", + "nullable": true, + "example": "Modal Type test" + }, + "isKit": { + "type": "boolean", + "description": "If the SKU is part of a kit.", + "example": true + }, + "kitItems": { + "type": "array", + "description": "Array with information of SKUs components from a Kit.", + "example": [ + { + "itemId": "310118466", + "amount": 6 + } + ], + "items": { + "type": "object", + "example": { + "itemId": "310118466", + "amount": 6 + }, + "required": [ + "itemId", + "amount" + ], + "properties": { + "itemId": { + "type": "string", + "description": "SKU kit component ID.", + "example": "310118466" + }, + "amount": { + "type": "integer", + "description": "Amount of the SKU component in the kit.", + "example": 6 + } + } + } + }, + "images": { + "type": "array", + "description": "Array of information about the SKU image.", + "example": [ + { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + } + ], + "items": { + "type": "object", + "example": { + "imageId": "155489", + "imageLabel": "", + "imageTag": "\"hoegaarden-kit\"", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000", + "imageText": "hoegaarden-kit", + "imageLastModified": "2020-10-07T12:49:27.5800000Z" + }, + "required": [ + "imageId", + "imageLabel", + "imageTag", + "imageUrl", + "imageText", + "imageLastModified" + ], + "properties": { + "imageId": { + "type": "string", + "description": "Image ID.", + "example": "155489" + }, + "imageLabel": { + "type": "string", + "description": "Image label.", + "example": "Label test" + }, + "imageTag": { + "type": "string", + "description": "Image tag.", + "example": "\"hoegaarden-kit\"" + }, + "imageUrl": { + "type": "string", + "description": "Image URL.", + "example": "https://merch.vteximg.com.br/arquivos/ids/155489/99B14097-BFEA-4C0E-899E-35C95A2E1509_4_5005_c.jpg?v=637376717675800000" + }, + "imageText": { + "type": "string", + "description": "Image text.", + "nullable": true, + "example": "hoegaarden-kit" + }, + "imageLastModified": { + "type": "string", + "description": "Date and time of the last update of the image.", + "example": "2020-10-07T12:49:27.5800000Z" + } + } + } + }, + "sellers": { + "type": "array", + "description": "Array of SKU sellers.", + "example": [ + { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + } + ], + "items": { + "type": "object", + "example": { + "sellerId": "1", + "sellerName": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE", + "addToCartLink": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1", + "sellerDefault": true, + "commertialOffer": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + } + }, + "required": [ + "sellerId", + "sellerName", + "addToCartLink", + "sellerDefault", + "commertialOffer" + ], + "properties": { + "sellerId": { + "type": "string", + "description": "SKU seller ID.", + "example": "1" + }, + "sellerName": { + "type": "string", + "description": "SKU seller name.", + "example": "COMPANHIA BRASILEIRA DE TECNOLOGIA PARA E-COMMERCE" + }, + "addToCartLink": { + "type": "string", + "description": "URL to add the product to the cart.", + "example": "https://merch.vtexcommercestable.com.br/checkout/cart/add?sku=310118469&qty=1&seller=1&sc=1&price=4200&cv=95EF7E5476DF276E679167A399FE3103_&sc=1" + }, + "sellerDefault": { + "type": "boolean", + "description": "If the seller is default or not.", + "example": true + }, + "commertialOffer": { + "type": "object", + "description": "AKA Commertial Condition.", + "example": { + "DeliverySlaSamplesPerRegion": { + "0": { + "DeliverySlaPerTypes": [], + "Region": null + } + }, + "Installments": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + }, + { + "Value": 14, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 3, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 3 vezes sem juros" + }, + { + "Value": 10.5, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 4, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 4 vezes sem juros" + }, + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Promissory", + "PaymentSystemGroupName": "promissoryPaymentGroup", + "Name": "Promissory à vista" + } + ], + "DiscountHighLight": [], + "GiftSkuIds": [], + "Teasers": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "PromotionTeasers": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "BuyTogether": [], + "ItemMetadataAttachment": [], + "Price": 42, + "ListPrice": 42, + "PriceWithoutDiscount": 42, + "RewardValue": 0, + "PriceValidUntil": "4000-01-01T03:00:00Z", + "AvailableQuantity": 16, + "IsAvailable": true, + "Tax": 0, + "SaleChannel": 0, + "DeliverySlaSamples": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "GetInfoErrorMessage": null, + "CacheVersionUsedToCallCheckout": "95EF7E5476DF276E679167A399FE3103_", + "PaymentOptions": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + } + }, + "required": [ + "DeliverySlaSamplesPerRegion", + "Installments", + "DiscountHighLight", + "GiftSkuIds", + "Teasers", + "BuyTogether", + "ItemMetadataAttachment", + "Price", + "ListPrice", + "PriceWithoutDiscount", + "RewardValue", + "PriceValidUntil", + "AvailableQuantity", + "IsAvailable", + "Tax", + "SaleChannel", + "DeliverySlaSamples", + "GetInfoErrorMessage", + "CacheVersionUsedToCallCheckout", + "PaymentOptions" + ], + "properties": { + "DeliverySlaSamplesPerRegion": { + "type": "object", + "description": "Delivery SLA samples per region.", + "example": { + "0": { + "DeliverySlaPerTypes": [], + "Region": "null" + } + }, + "properties": { + "0": { + "type": "object", + "description": "Delivery SLA ID.", + "example": { + "DeliverySlaPerTypes": [], + "Region": null + }, + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "example": [] + }, + "Region": { + "type": "string", + "description": "Region.", + "nullable": true, + "example": "" + } + } + } + } + }, + "Installments": { + "type": "array", + "description": "Installments options.", + "example": [ + { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + { + "Value": 21, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 2, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa 2 vezes sem juros" + } + ], + "items": { + "type": "object", + "example": { + "Value": 42, + "InterestRate": 0, + "TotalValuePlusInterestRate": 42, + "NumberOfInstallments": 1, + "PaymentSystemName": "Visa", + "PaymentSystemGroupName": "creditCardPaymentGroup", + "Name": "Visa à vista" + }, + "required": [ + "Value", + "InterestRate", + "TotalValuePlusInterestRate", + "NumberOfInstallments", + "PaymentSystemName", + "PaymentSystemGroupName", + "Name" + ], + "properties": { + "Value": { + "type": "number", + "description": "Value of the installment.", + "example": 42 + }, + "InterestRate": { + "type": "number", + "description": "Interest rate of the installment.", + "example": 0 + }, + "TotalValuePlusInterestRate": { + "type": "number", + "description": "Total value plus interest rate of the installment.", + "example": 42 + }, + "NumberOfInstallments": { + "type": "integer", + "description": "Number of the installment.", + "example": 1 + }, + "PaymentSystemName": { + "type": "string", + "description": "Payment system name of the installment.", + "example": "Visa" + }, + "PaymentSystemGroupName": { + "type": "string", + "description": "Payment system group name of the installment.", + "example": "creditCardPaymentGroup" + }, + "Name": { + "type": "string", + "description": "Name of the installment.", + "example": "Visa à vista" + } + } + } + }, + "DiscountHighLight": { + "type": "array", + "description": "Discount hightlight.", + "example": [] + }, + "GiftSkuIds": { + "type": "array", + "description": "Array of SKU gifts IDs.", + "example": [] + }, + "Teasers": { + "type": "array", + "description": "List with promotions teasers.", + "example": [ + { + "k__BackingField": "TesteInfoAdicional", + "k__BackingField": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "k__BackingField": { + "k__BackingField": 0, + "k__BackingField": [ + { + "k__BackingField": "PaymentMethodId", + "k__BackingField": "4" + } + ] + }, + "k__BackingField": { + "k__BackingField": [ + { + "k__BackingField": "PercentualDiscount", + "k__BackingField": "1" + } + ] + } + } + ], + "items": { + "type": "object", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}.", + "properties": { + "{field}": { + "type": "string", + "example": "{value}" + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Conditions.", + "properties": { + "k__BackingField": { + "type": "integer", + "description": "Minimum quantity." + }, + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "k__BackingField": { + "type": "object", + "description": "Effects.", + "properties": { + "k__BackingField": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "k__BackingField": { + "type": "string", + "description": "Name." + }, + "k__BackingField": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "PromotionTeasers": { + "type": "array", + "description": "List with promotions teasers.", + "example": [ + { + "Name": "TesteInfoAdicional", + "GeneralValues": { + "Time": "Flamengo", + "Nome": "Pedro", + "Camisa": "9" + }, + "Conditions": { + "MinimumQuantity": 0, + "Parameters": [ + { + "Name": "PaymentMethodId", + "Value": "4" + } + ] + }, + "Effects": { + "Parameters": [ + { + "Name": "PercentualDiscount", + "Value": "1" + } + ] + } + } + ], + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "GeneralValues": { + "type": "object", + "description": "General values. Each property follows the format: `{field}:{value}.", + "properties": { + "{field}": { + "type": "string", + "example": "{value}" + } + } + }, + "Conditions": { + "type": "object", + "description": "Conditions.", + "properties": { + "MinimumQuantity": { + "type": "integer", + "description": "Minimum quantity." + }, + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + }, + "Effects": { + "type": "object", + "description": "Effects.", + "properties": { + "Parameters": { + "type": "array", + "description": "Parameters.", + "items": { + "type": "object", + "description": "Parameter.", + "properties": { + "Name": { + "type": "string", + "description": "Name." + }, + "Value": { + "type": "string", + "description": "Value." + } + } + } + } + } + } + } + } + }, + "BuyTogether": { + "type": "array", + "description": "Array of other products that can be bought together with the product in question.", + "example": [] + }, + "ItemMetadataAttachment": { + "type": "array", + "description": "Item metadata attachment.", + "example": [] + }, + "Price": { + "type": "number", + "description": "Price of the product.", + "example": 42 + }, + "ListPrice": { + "type": "number", + "description": "List price of the product.", + "example": 42 + }, + "PriceWithoutDiscount": { + "type": "number", + "description": "Price of the product without discount.", + "example": 42 + }, + "RewardValue": { + "type": "number", + "description": "Reward value of the product.", + "example": 0 + }, + "PriceValidUntil": { + "type": "string", + "description": "Price of the product valid until a certain date.", + "example": "4000-01-01T03:00:00Z" + }, + "AvailableQuantity": { + "type": "integer", + "description": "Use the `IsAvailable` field instead.", + "example": 16 + }, + "IsAvailable": { + "type": "boolean", + "description": "If the product is available or not.", + "example": true + }, + "Tax": { + "type": "number", + "description": "Tax of the product.", + "example": 0 + }, + "SaleChannel": { + "type": "integer", + "description": "Trade policy which the product is contained.", + "example": 0 + }, + "DeliverySlaSamples": { + "type": "array", + "description": "Delivery SLA samples.", + "example": [ + { + "DeliverySlaPerTypes": [], + "Region": null + } + ], + "items": { + "type": "object", + "example": { + "DeliverySlaPerTypes": [], + "Region": null + }, + "required": [ + "DeliverySlaPerTypes", + "Region" + ], + "properties": { + "DeliverySlaPerTypes": { + "type": "array", + "description": "Delivery SLA per types.", + "example": [] + }, + "Region": { + "type": "string", + "description": "Region.", + "nullable": true, + "example": null + } + } + } + }, + "GetInfoErrorMessage": { + "type": "string", + "description": "Get info error message.", + "nullable": true, + "example": null + }, + "CacheVersionUsedToCallCheckout": { + "type": "string", + "description": "Cache version used to call checkout.", + "example": "95EF7E5476DF276E679167A399FE3103_" + }, + "PaymentOptions": { + "type": "object", + "description": "Payment options.", + "example": { + "installmentOptions": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "paymentSystems": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "payments": [], + "giftCards": [], + "giftCardMessages": [], + "availableAccounts": [], + "availableTokens": [] + }, + "required": [ + "installmentOptions", + "paymentSystems", + "payments", + "giftCards", + "giftCardMessages", + "availableAccounts", + "availableTokens" + ], + "properties": { + "installmentOptions": { + "type": "array", + "description": "installment options.", + "example": [ + { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + { + "paymentSystem": "17", + "bin": null, + "paymentName": "Promissory", + "paymentGroupName": "promissoryPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + } + ] + } + ], + "items": { + "type": "object", + "example": { + "paymentSystem": "2", + "bin": null, + "paymentName": "Visa", + "paymentGroupName": "creditCardPaymentGroup", + "value": 4200, + "installments": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + }, + { + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 3, + "hasInterestRate": false, + "interestRate": 0, + "value": 1400, + "total": 4200 + } + ] + }, + { + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 4, + "hasInterestRate": false, + "interestRate": 0, + "value": 1050, + "total": 4200 + } + ] + } + ] + }, + "required": [ + "paymentSystem", + "bin", + "paymentName", + "paymentGroupName", + "value", + "installments" + ], + "properties": { + "paymentSystem": { + "type": "string", + "description": "Payment system.", + "example": "2" + }, + "bin": { + "type": "string", + "description": "Bin.", + "nullable": true, + "example": null + }, + "paymentName": { + "type": "string", + "description": "Payment name.", + "example": "Visa" + }, + "paymentGroupName": { + "type": "string", + "description": "Payment group name.", + "example": "creditCardPaymentGroup" + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "installments": { + "type": "array", + "description": "Installments.", + "example": [ + { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + { + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 2, + "hasInterestRate": false, + "interestRate": 0, + "value": 2100, + "total": 4200 + } + ] + } + ], + "items": { + "type": "object", + "example": { + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200, + "sellerMerchantInstallments": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ] + }, + "required": [ + "count", + "hasInterestRate", + "interestRate", + "value", + "total", + "sellerMerchantInstallments" + ], + "properties": { + "count": { + "type": "integer", + "description": "Count.", + "example": 1 + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate.", + "example": false + }, + "interestRate": { + "type": "integer", + "description": "Interest rate.", + "example": 0 + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "total": { + "type": "integer", + "description": "Total.", + "example": 4200 + }, + "sellerMerchantInstallments": { + "type": "array", + "description": "Seller merchant installments.", + "example": [ + { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + } + ], + "items": { + "type": "object", + "example": { + "id": "MERCH", + "count": 1, + "hasInterestRate": false, + "interestRate": 0, + "value": 4200, + "total": 4200 + }, + "required": [ + "id", + "count", + "hasInterestRate", + "interestRate", + "value", + "total" + ], + "properties": { + "id": { + "type": "string", + "description": "ID.", + "example": "MERCH" + }, + "count": { + "type": "integer", + "description": "Count.", + "example": 1 + }, + "hasInterestRate": { + "type": "boolean", + "description": "Has interest rate.", + "example": false + }, + "interestRate": { + "type": "integer", + "description": "Interest rate.", + "example": 0 + }, + "value": { + "type": "integer", + "description": "Value.", + "example": 4200 + }, + "total": { + "type": "integer", + "description": "Total.", + "example": 4200 + } + } + } + } + } + } + } + } + } + }, + "paymentSystems": { + "type": "array", + "description": "Payment systems.", + "example": [ + { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + { + "id": 2, + "name": "Visa", + "groupName": "creditCardPaymentGroup", + "validator": null, + "stringId": "2", + "template": "creditCardPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + } + ], + "items": { + "type": "object", + "example": { + "id": 17, + "name": "Promissory", + "groupName": "promissoryPaymentGroup", + "validator": null, + "stringId": "17", + "template": "promissoryPaymentGroup-template", + "requiresDocument": false, + "isCustom": false, + "description": null, + "requiresAuthentication": false, + "dueDate": "2021-07-01T18:43:00.0264384Z", + "availablePayments": null + }, + "required": [ + "id", + "name", + "groupName", + "validator", + "stringId", + "template", + "requiresDocument", + "isCustom", + "description", + "requiresAuthentication", + "dueDate", + "availablePayments" + ], + "properties": { + "id": { + "type": "integer", + "description": "ID.", + "example": 17 + }, + "name": { + "type": "string", + "description": "Name.", + "example": "Promissory" + }, + "groupName": { + "type": "string", + "description": "Group name.", + "example": "promissoryPaymentGroup" + }, + "validator": { + "type": "string", + "description": "Validator.", + "nullable": true, + "example": "" + }, + "stringId": { + "type": "string", + "description": "String ID.", + "example": "17" + }, + "template": { + "type": "string", + "description": "Template.", + "example": "promissoryPaymentGroup-template" + }, + "requiresDocument": { + "type": "boolean", + "description": "If requires document or not.", + "example": false + }, + "isCustom": { + "type": "boolean", + "description": "If is custom or not.", + "example": false + }, + "description": { + "type": "string", + "description": "Description.", + "nullable": true, + "example": "" + }, + "requiresAuthentication": { + "type": "boolean", + "description": "If requires authentication.", + "example": false + }, + "dueDate": { + "type": "string", + "description": "Due date.", + "example": "2021-07-01T18:43:00.0264384Z" + }, + "availablePayments": { + "type": "string", + "description": "Available payments.", + "nullable": true, + "example": "" + } + } + } + }, + "payments": { + "type": "array", + "description": "Payments.", + "example": [] + }, + "giftCards": { + "type": "array", + "description": "GiftCards.", + "example": [] + }, + "giftCardMessages": { + "type": "array", + "description": "GiftCardMessages.", + "example": [] + }, + "availableAccounts": { + "type": "array", + "description": "Available accounts.", + "example": [] + }, + "availableTokens": { + "type": "array", + "description": "Available tokens.", + "example": [] + } + } + } + } + } + } + } + }, + "Videos": { + "type": "array", + "description": "Videos.", + "example": [] + }, + "estimatedDateArrival": { + "type": "string", + "description": "Estimated date arrival.", + "nullable": true, + "example": "" + } + } + } + } + } + } + } + } + } + } + } + } + }, + "/api/catalog_system/pub/products/offers/{productId}": { + "get": { + "tags": [ + "Offers" + ], + "summary": "Search product offers", + "description": "Retrieves existing offers of a specific product.", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product unique number identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "3" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "SkuId": "5", + "EanId": "272727", + "RefId": "BIGHEROBML", + "Name": "Llf", + "NameComplete": "Cacilds Llf", + "IsActive": true, + "MainImage": { + "ImageId": "172754", + "ImageLabel": null, + "ImageTag": "\"\"", + "ImagePath": "~/arquivos/ids/172754-#width#-#height#/Diablo.jpg", + "IsMain": true, + "IsZoomSize": false, + "ImageText": null, + "LastModified": "2021-03-24T15:37:24.877" + }, + "Offers": [ + { + "SellerId": "1", + "SellerSkuId": "5", + "OffersPerSalesChannel": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "AvailableSalesChannels": null + } + ], + "LastModified": "2021-07-06T19:13:45.831483", + "ProductId": "3" + } + ], + "schema": { + "type": "array", + "example": [ + { + "SkuId": "5", + "EanId": "272727", + "RefId": "BIGHEROBML", + "Name": "Llf", + "NameComplete": "Cacilds Llf", + "IsActive": true, + "MainImage": { + "ImageId": "172754", + "ImageLabel": null, + "ImageTag": "\"\"", + "ImagePath": "~/arquivos/ids/172754-#width#-#height#/Diablo.jpg", + "IsMain": true, + "IsZoomSize": false, + "ImageText": null, + "LastModified": "2021-03-24T15:37:24.877" + }, + "Offers": [ + { + "SellerId": "1", + "SellerSkuId": "5", + "OffersPerSalesChannel": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "AvailableSalesChannels": null + } + ], + "LastModified": "2021-07-06T19:13:45.831483", + "ProductId": "3" + } + ], + "items": { + "type": "object", + "example": { + "SkuId": "5", + "EanId": "272727", + "RefId": "BIGHEROBML", + "Name": "Llf", + "NameComplete": "Cacilds Llf", + "IsActive": true, + "MainImage": { + "ImageId": "172754", + "ImageLabel": null, + "ImageTag": "\"\"", + "ImagePath": "~/arquivos/ids/172754-#width#-#height#/Diablo.jpg", + "IsMain": true, + "IsZoomSize": false, + "ImageText": null, + "LastModified": "2021-03-24T15:37:24.877" + }, + "Offers": [ + { + "SellerId": "1", + "SellerSkuId": "5", + "OffersPerSalesChannel": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "AvailableSalesChannels": null + } + ], + "LastModified": "2021-07-06T19:13:45.831483", + "ProductId": "3" + }, + "required": [ + "SkuId", + "EanId", + "RefId", + "Name", + "NameComplete", + "IsActive", + "MainImage", + "Offers", + "LastModified", + "ProductId" + ], + "properties": { + "SkuId": { + "type": "string", + "description": "SKU ID.", + "example": "5" + }, + "EanId": { + "type": "string", + "description": "SKU unique identification code (barcode), accepts up to 13 numerical characters.", + "example": "272727" + }, + "RefId": { + "type": "string", + "description": "Unique reference code used internally for organizational purposes.", + "example": "BIGHEROBML" + }, + "Name": { + "type": "string", + "description": "SKU name.", + "example": "Llf" + }, + "NameComplete": { + "type": "string", + "description": "SKU complete name.", + "example": "Cacilds Llf" + }, + "IsActive": { + "type": "boolean", + "description": "If the SKU is active or not.", + "example": true + }, + "MainImage": { + "type": "object", + "description": "General information of the main image of the SKU.", + "example": { + "ImageId": "172754", + "ImageLabel": null, + "ImageTag": "\"\"", + "ImagePath": "~/arquivos/ids/172754-#width#-#height#/Diablo.jpg", + "IsMain": true, + "IsZoomSize": false, + "ImageText": null, + "LastModified": "2021-03-24T15:37:24.877" + }, + "required": [ + "ImageId", + "ImageLabel", + "ImageTag", + "ImagePath", + "IsMain", + "IsZoomSize", + "ImageText", + "LastModified" + ], + "properties": { + "ImageId": { + "type": "string", + "description": "Unique identifier of the association of the Image to the SKU.", + "example": "172754" + }, + "ImageLabel": { + "type": "string", + "description": "Image Label.", + "nullable": true, + "example": "" + }, + "ImageTag": { + "type": "string", + "description": "Image HTML tag.", + "example": "\"\"" + }, + "ImagePath": { + "type": "string", + "description": "Image file path.", + "example": "~/arquivos/ids/172754-#width#-#height#/Diablo.jpg" + }, + "IsMain": { + "type": "boolean", + "description": "If the image is the main image of the SKU or not.", + "example": true + }, + "IsZoomSize": { + "type": "boolean", + "description": "If the image has zoom applied.", + "example": false + }, + "ImageText": { + "type": "string", + "description": "General text of the image.", + "nullable": true, + "example": "" + }, + "LastModified": { + "type": "string", + "description": "Time that the image was last modified.", + "example": "2021-03-24T15:37:24.877" + } + } + }, + "Offers": { + "type": "array", + "description": "AKA Commertial Condition.", + "example": [ + { + "SellerId": "1", + "SellerSkuId": "5", + "OffersPerSalesChannel": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "AvailableSalesChannels": null + } + ], + "items": { + "type": "object", + "example": { + "SellerId": "1", + "SellerSkuId": "5", + "OffersPerSalesChannel": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "AvailableSalesChannels": null + }, + "required": [ + "SellerId", + "SellerSkuId", + "OffersPerSalesChannel", + "AvailableSalesChannels" + ], + "properties": { + "SellerId": { + "type": "string", + "description": "Seller ID.", + "example": "1" + }, + "SellerSkuId": { + "type": "string", + "description": "ID of the association of the SKU with the seller.", + "example": "5" + }, + "OffersPerSalesChannel": { + "type": "array", + "description": "Offers per trade policy.", + "example": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "items": { + "type": "object", + "example": { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + "required": [ + "AvailableQuantity", + "SaleChannel", + "Price", + "ListPrice", + "PriceWithoutDiscount", + "IsAvailable" + ], + "properties": { + "AvailableQuantity": { + "type": "integer", + "description": "SKU available quantity.", + "example": 50 + }, + "SaleChannel": { + "type": "integer", + "description": "SKU trade policy.", + "example": 1 + }, + "Price": { + "type": "number", + "description": "SKU price.", + "example": 200 + }, + "ListPrice": { + "type": "number", + "description": "SKU list price.", + "example": 200 + }, + "PriceWithoutDiscount": { + "type": "number", + "description": "SKU precie without discount.", + "example": 200 + }, + "IsAvailable": { + "type": "boolean", + "description": "If the SKU is available or not.", + "example": true + } + } + } + }, + "AvailableSalesChannels": { + "type": "string", + "nullable": true, + "description": "Trade policy that the SKU in contained.", + "example": "" + } + } + } + }, + "LastModified": { + "type": "string", + "description": "Time that the offer was last modified.", + "example": "2021-07-06T19:13:45.831483" + }, + "ProductId": { + "type": "string", + "description": "Product ID.", + "example": "3" + } + } + } + } + } + } + } + }, + "operationId": "get_api_catalogSystem_pub_products_offers_ByProductId" + } + }, + "/api/catalog_system/pub/products/offers/{productId}/sku/{skuId}": { + "get": { + "tags": [ + "Offers" + ], + "summary": "Search SKU offers", + "description": "Retrieves existing offers of a specific SKU.", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product unique number identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "3" + } + }, + { + "name": "skuId", + "in": "path", + "description": "Product unique number identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "5" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "SkuId": "5", + "EanId": "272727", + "RefId": "BIGHEROBML", + "Name": "Llf", + "NameComplete": "Cacilds Llf", + "IsActive": true, + "MainImage": { + "ImageId": "172754", + "ImageLabel": null, + "ImageTag": "\"\"", + "ImagePath": "~/arquivos/ids/172754-#width#-#height#/Diablo.jpg", + "IsMain": true, + "IsZoomSize": false, + "ImageText": null, + "LastModified": "2021-03-24T15:37:24.877" + }, + "Offers": [ + { + "SellerId": "1", + "SellerSkuId": "5", + "OffersPerSalesChannel": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "AvailableSalesChannels": null + } + ], + "LastModified": "2021-07-06T19:13:45.831483", + "ProductId": "3" + } + ], + "schema": { + "type": "array", + "example": [ + { + "SkuId": "5", + "EanId": "272727", + "RefId": "BIGHEROBML", + "Name": "Llf", + "NameComplete": "Cacilds Llf", + "IsActive": true, + "MainImage": { + "ImageId": "172754", + "ImageLabel": null, + "ImageTag": "\"\"", + "ImagePath": "~/arquivos/ids/172754-#width#-#height#/Diablo.jpg", + "IsMain": true, + "IsZoomSize": false, + "ImageText": null, + "LastModified": "2021-03-24T15:37:24.877" + }, + "Offers": [ + { + "SellerId": "1", + "SellerSkuId": "5", + "OffersPerSalesChannel": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "AvailableSalesChannels": null + } + ], + "LastModified": "2021-07-06T19:13:45.831483", + "ProductId": "3" + } + ], + "items": { + "type": "object", + "example": { + "SkuId": "5", + "EanId": "272727", + "RefId": "BIGHEROBML", + "Name": "Llf", + "NameComplete": "Cacilds Llf", + "IsActive": true, + "MainImage": { + "ImageId": "172754", + "ImageLabel": null, + "ImageTag": "\"\"", + "ImagePath": "~/arquivos/ids/172754-#width#-#height#/Diablo.jpg", + "IsMain": true, + "IsZoomSize": false, + "ImageText": null, + "LastModified": "2021-03-24T15:37:24.877" + }, + "Offers": [ + { + "SellerId": "1", + "SellerSkuId": "5", + "OffersPerSalesChannel": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "AvailableSalesChannels": null + } + ], + "LastModified": "2021-07-06T19:13:45.831483", + "ProductId": "3" + }, + "required": [ + "SkuId", + "EanId", + "RefId", + "Name", + "NameComplete", + "IsActive", + "MainImage", + "Offers", + "LastModified", + "ProductId" + ], + "properties": { + "SkuId": { + "type": "string", + "description": "SKU ID.", + "example": "5" + }, + "EanId": { + "type": "string", + "description": "SKU unique identification code (barcode), accepts up to 13 numerical characters.", + "example": "272727" + }, + "RefId": { + "type": "string", + "description": "Unique reference code used internally for organizational purposes.", + "example": "BIGHEROBML" + }, + "Name": { + "type": "string", + "description": "SKU name.", + "example": "Llf" + }, + "NameComplete": { + "type": "string", + "description": "SKU complete name.", + "example": "Cacilds Llf" + }, + "IsActive": { + "type": "boolean", + "description": "If the SKU is active or not.", + "example": true + }, + "MainImage": { + "type": "object", + "description": "General information of the main image of the SKU.", + "example": { + "ImageId": "172754", + "ImageLabel": null, + "ImageTag": "\"\"", + "ImagePath": "~/arquivos/ids/172754-#width#-#height#/Diablo.jpg", + "IsMain": true, + "IsZoomSize": false, + "ImageText": null, + "LastModified": "2021-03-24T15:37:24.877" + }, + "required": [ + "ImageId", + "ImageLabel", + "ImageTag", + "ImagePath", + "IsMain", + "IsZoomSize", + "ImageText", + "LastModified" + ], + "properties": { + "ImageId": { + "type": "string", + "description": "Unique identifier of the association of the Image to the SKU.", + "example": "172754" + }, + "ImageLabel": { + "type": "string", + "description": "Image Label.", + "nullable": true, + "example": "" + }, + "ImageTag": { + "type": "string", + "description": "Image HTML tag.", + "example": "\"\"" + }, + "ImagePath": { + "type": "string", + "description": "Image file path.", + "example": "~/arquivos/ids/172754-#width#-#height#/Diablo.jpg" + }, + "IsMain": { + "type": "boolean", + "description": "If the image is the main image of the SKU or not.", + "example": true + }, + "IsZoomSize": { + "type": "boolean", + "description": "If the image has zoom applied.", + "example": false + }, + "ImageText": { + "type": "string", + "description": "General text of the image.", + "nullable": true, + "example": "" + }, + "LastModified": { + "type": "string", + "description": "Time that the image was last modified.", + "example": "2021-03-24T15:37:24.877" + } + } + }, + "Offers": { + "type": "array", + "description": "AKA Commertial Condition.", + "example": [ + { + "SellerId": "1", + "SellerSkuId": "5", + "OffersPerSalesChannel": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "AvailableSalesChannels": null + } + ], + "items": { + "type": "object", + "example": { + "SellerId": "1", + "SellerSkuId": "5", + "OffersPerSalesChannel": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "AvailableSalesChannels": null + }, + "required": [ + "SellerId", + "SellerSkuId", + "OffersPerSalesChannel", + "AvailableSalesChannels" + ], + "properties": { + "SellerId": { + "type": "string", + "description": "Seller ID.", + "example": "1" + }, + "SellerSkuId": { + "type": "string", + "description": "ID of the association of the SKU with the seller.", + "example": "5" + }, + "OffersPerSalesChannel": { + "type": "array", + "description": "Offers per trade policy.", + "example": [ + { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + { + "AvailableQuantity": 0, + "SaleChannel": 2, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + } + ], + "items": { + "type": "object", + "example": { + "AvailableQuantity": 0, + "SaleChannel": 1, + "Price": 200, + "ListPrice": 200, + "PriceWithoutDiscount": 200, + "IsAvailable": false + }, + "required": [ + "AvailableQuantity", + "SaleChannel", + "Price", + "ListPrice", + "PriceWithoutDiscount", + "IsAvailable" + ], + "properties": { + "AvailableQuantity": { + "type": "integer", + "description": "SKU available quantity.", + "example": 50 + }, + "SaleChannel": { + "type": "integer", + "description": "SKU trade policy.", + "example": 1 + }, + "Price": { + "type": "number", + "description": "SKU price.", + "example": 200 + }, + "ListPrice": { + "type": "number", + "description": "SKU list price.", + "example": 200 + }, + "PriceWithoutDiscount": { + "type": "number", + "description": "SKU precie without discount.", + "example": 200 + }, + "IsAvailable": { + "type": "boolean", + "description": "If the SKU is available or not.", + "example": true + } + } + } + }, + "AvailableSalesChannels": { + "type": "string", + "description": "Trade policy that the SKU in contained.", + "nullable": true, + "example": "" + } + } + } + }, + "LastModified": { + "type": "string", + "description": "Time that the offer was last modified.", + "example": "2021-07-06T19:13:45.831483" + }, + "ProductId": { + "type": "string", + "description": "Product ID.", + "example": "3" + } + } + } + } + } + } + } + }, + "operationId": "get_api_catalogSystem_pub_products_offers_ByProductId_sku_BySkuId" + } + }, + "/api/catalog_system/pub/facets/category/{categoryId}": { + "get": { + "tags": [ + "Facets" + ], + "summary": "Get category facets", + "description": "Retrieves the names and IDs of the categories facets. \r\n>⚠️ This endpoint returns a maximum of 50 items per response, so the difference between `_from` and `_to` should not exceed this number. The result order is descending, from the highest product ID to the lowest.\r\n\r\n## Response body example:\r\n\r\n```json\r\n[\r\n\t[\r\n {\r\n \"Name\":\"Tamanho Global\",\r\n \"Id\":45\r\n\t\t},\r\n\t\t{\r\n \"Name\":\"Percentuals\",\r\n \"Id\":25\r\n\t\t}\r\n\t]\r\n]\r\n```", + "parameters": [ + { + "name": "categoryId", + "in": "path", + "description": "Category unique number identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "_from", + "in": "query", + "description": "Starter page range. These parameters allow the API to be paginated. Take into account that the initial and final pages cannot have a separation superior to 50 pages. Thus, it will be displayed 50 items per page.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "_to", + "in": "query", + "description": "Finisher page range. These parameters allow the API to be paginated. Take into account that the initial and final pages cannot have a separation superior to 50 pages. Thus, it will be displayed 50 items per page.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "50" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "example": [ + { + "Name": "Tamanho Global", + "Id": 45 + }, + { + "Name": "Percentuals", + "Id": 25 + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Object with name and ID of the category's facet.", + "example": { + "Name": "Tamanho Global", + "Id": 45 + }, + "required": [ + "Name", + "Id" + ], + "properties": { + "Name": { + "type": "string", + "description": "Category's facet name.", + "example": "Tamanho Global" + }, + "Id": { + "type": "integer", + "description": "Category's facet ID.", + "example": 45 + } + } + } + } + } + } + } + }, + "operationId": "get_api_catalogSystem_pub_facets_category_ByCategoryId" + } + }, + "/api/catalog_system/pub/facets/search/{term}": { + "get": { + "tags": [ + "Facets" + ], + "summary": "Search by store facets", + "description": "Retrieves products by store facets. The result order is descending, from the highest product ID to the lowest.", + "operationId": "Facetscategory", + "parameters": [ + { + "name": "map", + "in": "query", + "description": "Mapping of the term. It can be `c` for a category, `b` for a brand, or `specificationFilter_{specificationId}` for a specification. You need to include a map for each term you are searching for in the same term's order.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "c" + } + }, + { + "name": "term", + "in": "path", + "description": "Term used for the facet's search. You can search for as much term as you want. The term can be: `categoryId`, `brandId`, `specificationId`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "2" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Departments", + "Brands", + "SpecificationFilters", + "CategoriesTrees", + "PriceRanges", + "Summary" + ], + "properties": { + "Departments": { + "type": "array", + "description": "Array of general information about the categories.", + "example": [ + { + "Quantity": 2, + "Position": null, + "Name": "Beers Beers Mesmo", + "Link": "/Beers-Beers-Mesmo/1?map=c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/1?map=c,b", + "Map": "c", + "Value": "Beers-Beers-Mesmo" + }, + { + "Quantity": 2, + "Position": null, + "Name": "Merch Integration Category ||", + "Link": "/Merch-Integration-Category-||/1?map=c,b", + "LinkEncoded": "/Merch-Integration-Category-%7C%7C/1?map=c,b", + "Map": "c", + "Value": "Merch-Integration-Category-||" + } + ], + "items": { + "type": "object", + "example": { + "Quantity": 2, + "Position": null, + "Name": "Beers Beers Mesmo", + "Link": "/Beers-Beers-Mesmo/1?map=c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/1?map=c,b", + "Map": "c", + "Value": "Beers-Beers-Mesmo" + }, + "required": [ + "Quantity", + "Position", + "Name", + "Link", + "LinkEncoded", + "Map", + "Value" + ], + "properties": { + "Quantity": { + "type": "integer", + "description": "Quantity of facets.", + "example": 2 + }, + "Position": { + "type": "integer", + "description": "Position of the facets.", + "nullable": true, + "example": 1 + }, + "Name": { + "type": "string", + "description": "Category name.", + "example": "Beers Beers Mesmo" + }, + "Link": { + "type": "string", + "description": "Link of the facet.", + "example": "/Beers-Beers-Mesmo/1?map=c,b" + }, + "LinkEncoded": { + "type": "string", + "description": "Encoded link of the facet.", + "example": "/Beers-Beers-Mesmo/1?map=c,b" + }, + "Map": { + "type": "string", + "description": "Mapping of the facet.", + "example": "c" + }, + "Value": { + "type": "string", + "description": "Value of the facet.", + "example": "Beers-Beers-Mesmo" + } + } + } + }, + "Brands": { + "type": "array", + "description": "Array of general information about the brands.", + "example": [ + { + "Quantity": 2, + "Position": null, + "Name": "Merch XP", + "Link": "/1/1234600/1/Merch-XP?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Merch-XP?map=c,c,b,b", + "Map": "b", + "Value": "Merch-XP" + }, + { + "Quantity": 2, + "Position": null, + "Name": "Zé", + "Link": "/1/1234600/1/Ze?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Ze?map=c,c,b,b", + "Map": "b", + "Value": "Ze" + } + ], + "items": { + "type": "object", + "example": { + "Quantity": 2, + "Position": null, + "Name": "Merch XP", + "Link": "/1/1234600/1/Merch-XP?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Merch-XP?map=c,c,b,b", + "Map": "b", + "Value": "Merch-XP" + }, + "required": [ + "Quantity", + "Position", + "Name", + "Link", + "LinkEncoded", + "Map", + "Value" + ], + "properties": { + "Quantity": { + "type": "integer", + "description": "Quantity of facets.", + "example": 2 + }, + "Position": { + "type": "integer", + "description": "Position of the facet.", + "nullable": true, + "example": 1 + }, + "Name": { + "type": "string", + "description": "Brand name.", + "example": "Merch XP" + }, + "Link": { + "type": "string", + "description": "Link of the facet.", + "example": "/1/1234600/1/Merch-XP?map=c,c,b,b" + }, + "LinkEncoded": { + "type": "string", + "description": "Enconded link of the facet.", + "example": "/1/1234600/1/Merch-XP?map=c,c,b,b" + }, + "Map": { + "type": "string", + "description": "Mapping of the facet.", + "example": "b" + }, + "Value": { + "type": "string", + "description": "Value of the facet.", + "example": "Merch-XP" + } + } + } + }, + "SpecificationFilters": { + "type": "object", + "description": "Object with general information of specifications.", + "example": {} + }, + "CategoriesTrees": { + "type": "array", + "description": "Array of the category tree.", + "example": [ + { + "Id": 1, + "Quantity": 4, + "Position": null, + "Name": "Beers Beers Mesmo", + "Link": "/Beers-Beers-Mesmo/1?map=c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/1?map=c,b", + "Map": "c", + "Value": "Beers-Beers-Mesmo", + "Children": [ + { + "Id": 2, + "Quantity": 1, + "Position": null, + "Name": "Lager Beers", + "Link": "/Beers-Beers-Mesmo/Lager-Beers/1?map=c,c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/Lager-Beers/1?map=c,c,b", + "Map": "c", + "Value": "Lager-Beers", + "Children": [] + } + ] + }, + { + "Id": 1234571, + "Quantity": 2, + "Position": null, + "Name": "Jogos", + "Link": "/Jogos/1?map=c,b", + "LinkEncoded": "/Jogos/1?map=c,b", + "Map": "c", + "Value": "Jogos", + "Children": [] + } + ], + "items": { + "type": "object", + "example": { + "Id": 1, + "Quantity": 4, + "Position": null, + "Name": "Beers Beers Mesmo", + "Link": "/Beers-Beers-Mesmo/1?map=c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/1?map=c,b", + "Map": "c", + "Value": "Beers-Beers-Mesmo", + "Children": [ + { + "Id": 2, + "Quantity": 1, + "Position": null, + "Name": "Lager Beers", + "Link": "/Beers-Beers-Mesmo/Lager-Beers/1?map=c,c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/Lager-Beers/1?map=c,c,b", + "Map": "c", + "Value": "Lager-Beers", + "Children": [] + } + ] + }, + "required": [ + "Id", + "Quantity", + "Position", + "Name", + "Link", + "LinkEncoded", + "Map", + "Value", + "Children" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Category ID.", + "example": 1 + }, + "Quantity": { + "type": "integer", + "description": "Quantity of the facets.", + "example": 4 + }, + "Position": { + "type": "integer", + "description": "Position of the facet.", + "nullable": true, + "example": 1 + }, + "Name": { + "type": "string", + "description": "Category name.", + "example": "Beers Beers Mesmo" + }, + "Link": { + "type": "string", + "description": "Link of the facet.", + "example": "/Beers-Beers-Mesmo/1?map=c,b" + }, + "LinkEncoded": { + "type": "string", + "description": "Encoded link of the facet.", + "example": "/Beers-Beers-Mesmo/1?map=c,b" + }, + "Map": { + "type": "string", + "description": "Mapping of the facet.", + "example": "c" + }, + "Value": { + "type": "string", + "description": "Value of the facet.", + "example": "Beers-Beers-Mesmo" + }, + "Children": { + "type": "array", + "description": "Category children.", + "example": [ + { + "Id": 2, + "Quantity": 1, + "Position": null, + "Name": "Lager Beers", + "Link": "/Beers-Beers-Mesmo/Lager-Beers/1?map=c,c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/Lager-Beers/1?map=c,c,b", + "Map": "c", + "Value": "Lager-Beers", + "Children": [] + } + ], + "items": { + "type": "object", + "example": { + "Id": 2, + "Quantity": 1, + "Position": null, + "Name": "Lager Beers", + "Link": "/Beers-Beers-Mesmo/Lager-Beers/1?map=c,c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/Lager-Beers/1?map=c,c,b", + "Map": "c", + "Value": "Lager-Beers", + "Children": [] + }, + "required": [ + "Id", + "Quantity", + "Position", + "Name", + "Link", + "LinkEncoded", + "Map", + "Value", + "Children" + ], + "properties": { + "Id": { + "type": "integer", + "description": "Category ID.", + "example": 1 + }, + "Quantity": { + "type": "integer", + "description": "Quantity of the facets.", + "example": 4 + }, + "Position": { + "type": "integer", + "description": "Position of the facet.", + "nullable": true, + "example": 1 + }, + "Name": { + "type": "string", + "description": "Category name.", + "example": "Beers Beers Mesmo" + }, + "Link": { + "type": "string", + "description": "Link of the facet.", + "example": "/Beers-Beers-Mesmo/1?map=c,b" + }, + "LinkEncoded": { + "type": "string", + "description": "Encoded link of the facet.", + "example": "/Beers-Beers-Mesmo/1?map=c,b" + }, + "Map": { + "type": "string", + "description": "Mapping of the facet.", + "example": "c" + }, + "Value": { + "type": "string", + "description": "Value of the facet.", + "example": "Beers-Beers-Mesmo" + }, + "Children": { + "type": "array", + "description": "Category children.", + "example": [] + } + } + } + } + } + } + }, + "PriceRanges": { + "type": "array", + "description": "Array with general information of the price ranges.", + "example": [] + }, + "Summary": { + "type": "object", + "description": "Summary of the facets.", + "example": { + "Departments": { + "DisplayedItems": 8, + "TotalItems": 8 + }, + "CategoriesTrees": { + "DisplayedItems": 13, + "TotalItems": 13 + }, + "Brands": { + "DisplayedItems": 10, + "TotalItems": 10 + }, + "PriceRanges": { + "DisplayedItems": 0, + "TotalItems": 0 + }, + "SpecificationFilters": {} + }, + "required": [ + "Departments", + "CategoriesTrees", + "Brands", + "PriceRanges", + "SpecificationFilters" + ], + "properties": { + "Departments": { + "type": "object", + "description": "Departments' quantity of displayed and total items.", + "example": { + "DisplayedItems": 8, + "TotalItems": 8 + }, + "required": [ + "DisplayedItems", + "TotalItems" + ], + "properties": { + "DisplayedItems": { + "type": "integer", + "description": "Quantity of displayed items.", + "example": 8 + }, + "TotalItems": { + "type": "integer", + "description": "Quantity of total items.", + "example": 8 + } + } + }, + "CategoriesTrees": { + "type": "object", + "description": "Category tree's quantity of displayed and total items.", + "example": { + "DisplayedItems": 13, + "TotalItems": 13 + }, + "required": [ + "DisplayedItems", + "TotalItems" + ], + "properties": { + "DisplayedItems": { + "type": "integer", + "description": "Quantity of displayed items.", + "example": 13 + }, + "TotalItems": { + "type": "integer", + "description": "Quantity of total items.", + "example": 13 + } + } + }, + "Brands": { + "type": "object", + "description": "Brands' quantity of displayed and total items.", + "example": { + "DisplayedItems": 10, + "TotalItems": 10 + }, + "required": [ + "DisplayedItems", + "TotalItems" + ], + "properties": { + "DisplayedItems": { + "type": "integer", + "description": "Quantity of displayed items.", + "example": 10 + }, + "TotalItems": { + "type": "integer", + "description": "Quantity of total items.", + "example": 10 + } + } + }, + "PriceRanges": { + "type": "object", + "description": "Price ranges' quantity of displayed and total items.", + "example": { + "DisplayedItems": 0, + "TotalItems": 0 + }, + "required": [ + "DisplayedItems", + "TotalItems" + ], + "properties": { + "DisplayedItems": { + "type": "integer", + "description": "Quantity of displayed items.", + "example": 0 + }, + "TotalItems": { + "type": "integer", + "description": "Quantity of total items.", + "example": 0 + } + } + }, + "SpecificationFilters": { + "type": "object", + "description": "Specification filters' quantity of displayed and total items.", + "example": {} + } + } + } + } + }, + "example": { + "Departments": [ + { + "Quantity": 2, + "Position": null, + "Name": "Beers Beers Mesmo", + "Link": "/Beers-Beers-Mesmo/1?map=c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/1?map=c,b", + "Map": "c", + "Value": "Beers-Beers-Mesmo" + }, + { + "Quantity": 2, + "Position": null, + "Name": "Merch Integration Category ||", + "Link": "/Merch-Integration-Category-||/1?map=c,b", + "LinkEncoded": "/Merch-Integration-Category-%7C%7C/1?map=c,b", + "Map": "c", + "Value": "Merch-Integration-Category-||" + }, + { + "Quantity": 1, + "Position": null, + "Name": "Jogos", + "Link": "/Jogos/1?map=c,b", + "LinkEncoded": "/Jogos/1?map=c,b", + "Map": "c", + "Value": "Jogos" + }, + { + "Quantity": 3, + "Position": null, + "Name": "189", + "Link": "/189/1?map=c,b", + "LinkEncoded": "/189/1?map=c,b", + "Map": "c", + "Value": "189" + }, + { + "Quantity": 1, + "Position": null, + "Name": "Tests", + "Link": "/Tests/1?map=c,b", + "LinkEncoded": "/Tests/1?map=c,b", + "Map": "c", + "Value": "Tests" + }, + { + "Quantity": 1, + "Position": null, + "Name": "Accessories", + "Link": "/Accessories/1?map=c,b", + "LinkEncoded": "/Accessories/1?map=c,b", + "Map": "c", + "Value": "Accessories" + }, + { + "Quantity": 2, + "Position": null, + "Name": "Bars", + "Link": "/Bars/1?map=c,b", + "LinkEncoded": "/Bars/1?map=c,b", + "Map": "c", + "Value": "Bars" + }, + { + "Quantity": 5, + "Position": null, + "Name": "Categoria Teste Timeout", + "Link": "/Categoria-Teste-Timeout/1?map=c,b", + "LinkEncoded": "/Categoria-Teste-Timeout/1?map=c,b", + "Map": "c", + "Value": "Categoria-Teste-Timeout" + } + ], + "Brands": [ + { + "Quantity": 2, + "Position": null, + "Name": "Merch XP", + "Link": "/1/1234600/1/Merch-XP?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Merch-XP?map=c,c,b,b", + "Map": "b", + "Value": "Merch-XP" + }, + { + "Quantity": 2, + "Position": null, + "Name": "Zé", + "Link": "/1/1234600/1/Ze?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Ze?map=c,c,b,b", + "Map": "b", + "Value": "Ze" + }, + { + "Quantity": 1, + "Position": null, + "Name": "Odin", + "Link": "/1/1234600/1/Odin?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Odin?map=c,c,b,b", + "Map": "b", + "Value": "Odin" + }, + { + "Quantity": 2, + "Position": null, + "Name": "Hoegaarden", + "Link": "/1/1234600/1/Hoegaarden?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Hoegaarden?map=c,c,b,b", + "Map": "b", + "Value": "Hoegaarden" + }, + { + "Quantity": 1, + "Position": null, + "Name": "Teste marcas", + "Link": "/1/1234600/1/Teste-marcas?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Teste-marcas?map=c,c,b,b", + "Map": "b", + "Value": "Teste-marcas" + }, + { + "Quantity": 1, + "Position": null, + "Name": "Bitmap Bureau", + "Link": "/1/1234600/1/Bitmap-Bureau?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Bitmap-Bureau?map=c,c,b,b", + "Map": "b", + "Value": "Bitmap-Bureau" + }, + { + "Quantity": 1, + "Position": null, + "Name": "Sega", + "Link": "/1/1234600/1/Sega?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Sega?map=c,c,b,b", + "Map": "b", + "Value": "Sega" + }, + { + "Quantity": 3, + "Position": null, + "Name": "Technogym", + "Link": "/1/1234600/1/Technogym?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Technogym?map=c,c,b,b", + "Map": "b", + "Value": "Technogym" + }, + { + "Quantity": 3, + "Position": null, + "Name": "Aptany", + "Link": "/1/1234600/1/Aptany?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Aptany?map=c,c,b,b", + "Map": "b", + "Value": "Aptany" + }, + { + "Quantity": 1, + "Position": null, + "Name": "Tectoy", + "Link": "/1/1234600/1/Tectoy?map=c,c,b,b", + "LinkEncoded": "/1/1234600/1/Tectoy?map=c,c,b,b", + "Map": "b", + "Value": "Tectoy" + } + ], + "SpecificationFilters": {}, + "CategoriesTrees": [ + { + "Id": 1, + "Quantity": 4, + "Position": null, + "Name": "Beers Beers Mesmo", + "Link": "/Beers-Beers-Mesmo/1?map=c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/1?map=c,b", + "Map": "c", + "Value": "Beers-Beers-Mesmo", + "Children": [ + { + "Id": 2, + "Quantity": 1, + "Position": null, + "Name": "Lager Beers", + "Link": "/Beers-Beers-Mesmo/Lager-Beers/1?map=c,c,b", + "LinkEncoded": "/Beers-Beers-Mesmo/Lager-Beers/1?map=c,c,b", + "Map": "c", + "Value": "Lager-Beers", + "Children": [] + } + ] + }, + { + "Id": 1234571, + "Quantity": 2, + "Position": null, + "Name": "Jogos", + "Link": "/Jogos/1?map=c,b", + "LinkEncoded": "/Jogos/1?map=c,b", + "Map": "c", + "Value": "Jogos", + "Children": [] + }, + { + "Id": 1234579, + "Quantity": 3, + "Position": null, + "Name": "189", + "Link": "/189/1?map=c,b", + "LinkEncoded": "/189/1?map=c,b", + "Map": "c", + "Value": "189", + "Children": [] + }, + { + "Id": 1234587, + "Quantity": 1, + "Position": null, + "Name": "Tests", + "Link": "/Tests/1?map=c,b", + "LinkEncoded": "/Tests/1?map=c,b", + "Map": "c", + "Value": "Tests", + "Children": [] + }, + { + "Id": 1234595, + "Quantity": 1, + "Position": null, + "Name": "Accessories", + "Link": "/Accessories/1?map=c,b", + "LinkEncoded": "/Accessories/1?map=c,b", + "Map": "c", + "Value": "Accessories", + "Children": [ + { + "Id": 1234596, + "Quantity": 1, + "Position": null, + "Name": "Foam rollers", + "Link": "/Accessories/Foam-rollers/1?map=c,c,b", + "LinkEncoded": "/Accessories/Foam-rollers/1?map=c,c,b", + "Map": "c", + "Value": "Foam-rollers", + "Children": [] + } + ] + }, + { + "Id": 1234597, + "Quantity": 2, + "Position": null, + "Name": "Bars", + "Link": "/Bars/1?map=c,b", + "LinkEncoded": "/Bars/1?map=c,b", + "Map": "c", + "Value": "Bars", + "Children": [ + { + "Id": 1234598, + "Quantity": 1, + "Position": null, + "Name": "Training Bars", + "Link": "/Bars/Training-Bars/1?map=c,c,b", + "LinkEncoded": "/Bars/Training-Bars/1?map=c,c,b", + "Map": "c", + "Value": "Training-Bars", + "Children": [] + }, + { + "Id": 1234599, + "Quantity": 1, + "Position": null, + "Name": "Curl Bars", + "Link": "/Bars/Curl-Bars/1?map=c,c,b", + "LinkEncoded": "/Bars/Curl-Bars/1?map=c,c,b", + "Map": "c", + "Value": "Curl-Bars", + "Children": [] + } + ] + }, + { + "Id": 15, + "Quantity": 1, + "Position": null, + "Name": "Coronas", + "Link": "/Coronas/1?map=c,b", + "LinkEncoded": "/Coronas/1?map=c,b", + "Map": "c", + "Value": "Coronas", + "Children": [ + { + "Id": 13, + "Quantity": 1, + "Position": null, + "Name": "não tem limite!", + "Link": "/Coronas/nao-tem-limite-/1?map=c,c,b", + "LinkEncoded": "/Coronas/nao-tem-limite-/1?map=c,c,b", + "Map": "c", + "Value": "nao-tem-limite-", + "Children": [] + } + ] + }, + { + "Id": 4, + "Quantity": 4, + "Position": null, + "Name": "Merch Integration Category ||", + "Link": "/Merch-Integration-Category-||/1?map=c,b", + "LinkEncoded": "/Merch-Integration-Category-%7C%7C/1?map=c,b", + "Map": "c", + "Value": "Merch-Integration-Category-||", + "Children": [] + } + ], + "PriceRanges": [], + "Summary": { + "Departments": { + "DisplayedItems": 8, + "TotalItems": 8 + }, + "CategoriesTrees": { + "DisplayedItems": 13, + "TotalItems": 13 + }, + "Brands": { + "DisplayedItems": 10, + "TotalItems": 10 + }, + "PriceRanges": { + "DisplayedItems": 0, + "TotalItems": 0 + }, + "SpecificationFilters": {} + } + } + } + } + } + } + } + }, + "/buscaautocomplete": { + "get": { + "tags": [ + "Autocomplete" + ], + "summary": "Product search autocomplete", + "description": "Retrieves product's information related to the searched string.\r\n`{{searchString}} is the part of string the user is looking for.\r\nE.g.: `ref` | `refrig` | `refrigerator`", + "operationId": "AutoComplete", + "parameters": [ + { + "name": "productNameContains", + "in": "query", + "description": "Part of the string that will be searched.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "example": "jeans" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "The root schema comprises the entire JSON document.", + "example": { + "itemsReturned": [ + { + "items": [], + "thumb": "", + "thumbUrl": null, + "name": "Cacilds in Coronas", + "href": "https://merch.vtexcommercestable.com.br/coronas/Cacilds", + "criteria": "£Cacilds in Coronas¢/coronas/Cacilds" + }, + { + "items": [ + { + "productId": "3", + "itemId": "5", + "name": "Llf", + "nameComplete": "Cacilds Llf", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/172754-25-25/Diablo.jpg?v=637521970448770000" + } + ], + "thumb": "\"image-433ec3e72d7e4b94964481e843c9dd88\"", + "thumbUrl": "https://merch.vteximg.com.br/arquivos/ids/172754-25-25/Diablo.jpg?v=637521970448770000", + "name": "cacilds - llf", + "href": "https://merch.vtexcommercestable.com.br/bay-max-3/p", + "criteria": null + } + ] + }, + "required": [ + "itemsReturned" + ], + "properties": { + "itemsReturned": { + "type": "array", + "description": "Autocomplete returned items.", + "example": [ + { + "items": [], + "thumb": "", + "thumbUrl": null, + "name": "Cacilds in Coronas", + "href": "https://merch.vtexcommercestable.com.br/coronas/Cacilds", + "criteria": "£Cacilds in Coronas¢/coronas/Cacilds" + }, + { + "items": [ + { + "productId": "3", + "itemId": "5", + "name": "Llf", + "nameComplete": "Cacilds Llf", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/172754-25-25/Diablo.jpg?v=637521970448770000" + } + ], + "thumb": "\"image-433ec3e72d7e4b94964481e843c9dd88\"", + "thumbUrl": "https://merch.vteximg.com.br/arquivos/ids/172754-25-25/Diablo.jpg?v=637521970448770000", + "name": "cacilds - llf", + "href": "https://merch.vtexcommercestable.com.br/bay-max-3/p", + "criteria": null + } + ], + "items": { + "type": "object", + "example": { + "items": [], + "thumb": "", + "thumbUrl": null, + "name": "Cacilds in Coronas", + "href": "https://merch.vtexcommercestable.com.br/coronas/Cacilds", + "criteria": "£Cacilds in Coronas¢/coronas/Cacilds" + }, + "required": [ + "items", + "thumb", + "thumbUrl", + "name", + "href", + "criteria" + ], + "properties": { + "items": { + "type": "array", + "description": "Array of products.", + "example": [ + { + "productId": "3", + "itemId": "5", + "name": "Llf", + "nameComplete": "Cacilds Llf", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/172754-25-25/Diablo.jpg?v=637521970448770000" + } + ], + "items": { + "type": "object", + "description": "Product information.", + "properties": { + "productId": { + "type": "string", + "description": "Product ID.", + "example": "1" + }, + "itemId": { + "type": "string", + "description": "Item ID.", + "example": "3" + }, + "name": { + "type": "string", + "description": "Product name.", + "example": "Meia" + }, + "nameComplete": { + "type": "string", + "description": "Complete product name.", + "example": "Meia de Gatinho" + }, + "imageUrl": { + "type": "string", + "description": "Product image URL.", + "example": "https://docstore.vteximg.com.br/arquivos/ids/155397-100-100/4636833666_e85dd0b065_b.jpg" + } + } + } + }, + "thumb": { + "type": "string", + "description": "Item thumbnail.", + "example": "\"image-433ec3e72d7e4b94964481e843c9dd88\"" + }, + "thumbUrl": { + "type": "string", + "description": "Item thumbnail URL.", + "nullable": true, + "example": "https://merch.vteximg.com.br/arquivos/ids/172754-25-25/Diablo.jpg?v=637521970448770000" + }, + "name": { + "type": "string", + "description": "Item name.", + "example": "cacilds - llf" + }, + "href": { + "type": "string", + "description": "Item URL.", + "example": "https://merch.vtexcommercestable.com.br/bay-max-3/p" + }, + "criteria": { + "type": "string", + "description": "Item criteria.", + "nullable": true, + "example": "£Cacilds in Coronas¢/coronas/Cacilds" + } + } + } + } + } + }, + "example": { + "itemsReturned": [ + { + "items": [], + "thumb": "", + "thumbUrl": null, + "name": "Cacilds in Coronas", + "href": "https://merch.vtexcommercestable.com.br/coronas/Cacilds", + "criteria": "£Cacilds in Coronas¢/coronas/Cacilds" + }, + { + "items": [ + { + "productId": "3", + "itemId": "5", + "name": "Llf", + "nameComplete": "Cacilds Llf", + "imageUrl": "https://merch.vteximg.com.br/arquivos/ids/172754-25-25/Diablo.jpg?v=637521970448770000" + } + ], + "thumb": "\"image-433ec3e72d7e4b94964481e843c9dd88\"", + "thumbUrl": "https://merch.vteximg.com.br/arquivos/ids/172754-25-25/Diablo.jpg?v=637521970448770000", + "name": "cacilds - llf", + "href": "https://merch.vtexcommercestable.com.br/bay-max-3/p", + "criteria": null + } + ] + } + } + } + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "tags": [ + { + "name": "CrossSelling" + }, + { + "name": "Search" + }, + { + "name": "Offers" + }, + { + "name": "Facets" + }, + { + "name": "Autocomplete" + } + ] +} diff --git a/clients/manitou/output/shipping-network.json b/clients/manitou/output/shipping-network.json new file mode 100644 index 0000000000..01782960da --- /dev/null +++ b/clients/manitou/output/shipping-network.json @@ -0,0 +1,883 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "VTEX Shipping Network API", + "contact": {}, + "description": "[VTEX Shipping Network](https://vtex.com/br-pt/shipping-network/) is a solution that connects carriers and merchants for deliveries at better freight costs and smarter logistics operations.\r\n\r\n>ℹ️ **VTEX Shipping Network** is available exclusively in Brazil.\r\n\r\nThe tracking process has two main parts:\r\n- **Notification:** The [carrier](https://help.vtex.com/en/tutorial/carriers-on-vtex--7u9duMD5UQa2QQwukAWMcE) is notified that a package is being dispatched.\r\n- **Tracking:** The package being delivered by the carrier is tracked from the start of its journey to its final destination.\r\n\r\nTo integrate with the VTEX Shipping Network hub, carriers must develop [VTEX IO](https://developers.vtex.com/docs/guides/vtex-io-documentation-what-is-vtex-io) apps and associate them with specific endpoints. Once integrated with the hub, these carrier apps will be connected to other VTEX systems, ensuring seamless execution of the necessary steps for the tracking process.\r\n\r\n>ℹ️ For detailed instructions, see the [VTEX Shipping Network integration guide](https://developers.vtex.com/docs/guides/vtex-shipping-network).\r\n\r\n## VTEX Shipping Network API Index\r\n\r\n### Notification\r\n\r\n- `POST` [Notify carrier with app](https://developers.vtex.com/docs/api-reference/vtex-shipping-network-api#post-/-app_name-/v-app_version-/-account-/-workspace-/notify)\r\n\r\n### Tracking\r\n\r\n- `POST` [Tracking events with app](https://developers.vtex.com/docs/api-reference/vtex-shipping-network-api#post-/-app_name-/v-app_version-/-account-/-workspace-/tracking)\r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| --- | --- | --- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "version": "1.0" + }, + "servers": [ + { + "url": "https://app.io.vtex.com", + "description": "VTEX server URL.", + "variables": {} + } + ], + "paths": { + "/{app_name}/v{app_version}/{account}/{workspace}/notify": { + "post": { + "tags": [ + "Notification" + ], + "summary": "Notify carrier with app", + "description": "Notifies the carrier about a dispatch order by calling the `vtex.carrier-notifier app`. When the call is made, the following data is sent: \n\n- Dispatched packages information. \n\n- Fiscal information about the carrier notified. \n\n- Carrier's contact email. \n\nThe call's response includes all tracking data and each package's ID generated by the notification made to the carrier. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Transportation read only** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "NotifyCarrierwithApp", + "parameters": [ + { + "name": "app_name", + "in": "path", + "description": "Name of the app developed by the carrier's integration.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "{{app name}}" + } + }, + { + "name": "app_version", + "in": "path", + "description": "Version of the app developed by the carrier's integration.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "{{version}}" + } + }, + { + "name": "account", + "in": "path", + "description": "VTEX account dispatching the package.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "VTEX Store example" + } + }, + { + "name": "workspace", + "in": "path", + "description": "Workspace used in VTEX IO. ", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "master" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotifyCarrierwithAppRequest" + }, + "example": { + "account": { + "name": "Ltda", + "accountName": "{{account}}", + "isOperating": true, + "defaultUrl": null, + "district": null, + "country": "Brasil", + "complement": null, + "companyName": "LTDA", + "cnpj": "00000000000000", + "city": null, + "address": null, + "number": null, + "postalCode": null, + "state": null, + "telephone": null, + "tradingName": "tradingName" + }, + "email": "email", + "dispatchOrder": { + "id": "653560c2-7965-4614-a730-8e45c89bf284", + "packageIds": [ + "6529cd28-6fd1-4b95-8397-5fad0a79d41c" + ], + "sender": { + "cnpj": "00000000000000", + "fantasyName": null, + "stateRegistration": null, + "id": null, + "name": "LTDA", + "address": { + "postalCode": "03475015", + "country": { + "code": "BRA", + "name": "Brasil" + }, + "subregion1": { + "code": "SP", + "name": "São Paulo" + }, + "subregion2": { + "code": "São Paulo", + "name": "São Paulo" + }, + "subregion3": { + "code": "Vila Antonieta", + "name": "Vila Antonieta" + }, + "street": "Rua Exemplo", + "number": "01", + "complement": "", + "location": null + }, + "email": null, + "phone": "999999999" + }, + "carrier": { + "cnpj": "00000000000000", + "fantasyName": "carrier", + "stateRegistration": "096/3624636", + "id": "vtexlog_exemplo", + "name": "Carrier LTDA.", + "address": { + "postalCode": "90200001", + "country": { + "code": "BRA", + "name": "Brasil" + }, + "subregion1": { + "code": "RS", + "name": "Rio Grande do Sul" + }, + "subregion2": { + "code": "Porto_Alegre", + "name": "Porto Alegre" + }, + "subregion3": { + "code": "Anchieta", + "name": "Anchieta" + }, + "street": "Rua Exemplo", + "number": "01", + "complement": "Pavilhão 6", + "location": null + }, + "email": "email", + "phone": "+5511111111111" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + }, + "/{app_name}/v{app_version}/{account}/{workspace}/tracking": { + "post": { + "tags": [ + "Tracking" + ], + "summary": "Tracking events with app", + "description": "This endpoint is called by the hub to obtain the tracking events of a series of tracking numbers. This call's request updates the events of a list of tracking codes, for packages that are still pending delivery. The expected response is an object contaning the tracking information and the package's notification ID for every `packageID`. \r\n\r\n## Permissions\r\n\r\nAny user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Logistics | Logistics access | **Transportation read only** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "TrackingEvents", + "parameters": [ + { + "name": "app_name", + "in": "path", + "description": "Name of the app developed by the carrier's integration.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "{{app name}}" + } + }, + { + "name": "app_version", + "in": "path", + "description": "Version of the app developed by the carrier's integration.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "{{version}}" + } + }, + { + "name": "account", + "in": "path", + "description": "VTEX account dispatching the package.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "VTEX Store example" + } + }, + { + "name": "workspace", + "in": "path", + "description": "Workspace used in VTEX IO. ", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "default": "master" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TrackingEventsRequest" + }, + "description": "Array containing tracking information.", + "example": [ + { + "trackingNumber": "BR000000000" + } + ] + }, + "example": [ + { + "trackingNumber": "BR000000000" + } + ] + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "headers": {} + } + }, + "deprecated": false + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "schemas": { + "Account": { + "title": "Account", + "required": [ + "name", + "accountName", + "isOperating", + "defaultUrl", + "district", + "country", + "complement", + "companyName", + "cnpj", + "city", + "address", + "number", + "postalCode", + "state", + "telephone", + "tradingName" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Inserted name.", + "example": "Ltda" + }, + "accountName": { + "type": "string", + "description": "Name of the VTEX Account dispatching the package.", + "example": "mystore" + }, + "isOperating": { + "type": "boolean", + "description": "Whether the store is operating or not.", + "example": true + }, + "defaultUrl": { + "type": "string", + "nullable": true, + "description": "Retrieved from VTEX's License Manager.", + "example": "https://url.example.com" + }, + "district": { + "type": "string", + "nullable": true, + "description": "District where the VTEX store dispatching the package is located.", + "example": "District name" + }, + "country": { + "type": "string", + "description": "Country where the VTEX store, dispatching the package, is located.", + "example": "Brasil" + }, + "complement": { + "type": "string", + "nullable": true, + "description": "Complement for the VTEX store's address.", + "example": "Second floor" + }, + "companyName": { + "type": "string", + "description": "Name of the VTEX store responsible for the package.", + "example": "VTEX Store 1" + }, + "cnpj": { + "type": "string", + "description": "CNPJ code of the VTEX store responsible for the package.", + "example": "00000000000000" + }, + "city": { + "type": "string", + "nullable": true, + "description": "City where the VTEX store responsible for the package is located.", + "example": "Rio de Janeiro" + }, + "address": { + "type": "string", + "nullable": true, + "description": "Address where the VTEX store responsible for the package is located.", + "example": "VTEX Street" + }, + "number": { + "type": "string", + "nullable": true, + "description": "Number of the address related to the `address` field.", + "example": "26" + }, + "postalCode": { + "type": "string", + "nullable": true, + "description": "ZIP code of the VTEX store responsible for the package.", + "example": "12345-678" + }, + "state": { + "type": "string", + "nullable": true, + "description": "State of the address belonging to the VTEX store responsible for the package.", + "example": "RJ" + }, + "telephone": { + "type": "string", + "nullable": true, + "description": "Telephone number of the VTEX store responsible for the package.", + "example": "99999999" + }, + "tradingName": { + "type": "string", + "description": "Trading name of the VTEX store responsible for the package.", + "example": "Trading name" + } + }, + "description": "Account information.", + "example": { + "name": "Ltda", + "accountName": "{{account}}", + "isOperating": true, + "defaultUrl": null, + "district": null, + "country": "Brasil", + "complement": null, + "companyName": "LTDA", + "cnpj": "00000000000000", + "city": null, + "address": null, + "number": null, + "postalCode": null, + "state": null, + "telephone": null, + "tradingName": "tradingName" + } + }, + "Address": { + "title": "Address", + "description": "Address of the VTEX account responsible for sending the package.", + "required": [ + "postalCode", + "country", + "subregion1", + "subregion2", + "subregion3", + "street", + "number", + "complement", + "location" + ], + "type": "object", + "properties": { + "postalCode": { + "type": "string", + "nullable": true, + "description": "ZIP code of the package's recipient.", + "example": "12345-678" + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "subregion1": { + "$ref": "#/components/schemas/Subregion1" + }, + "subregion2": { + "$ref": "#/components/schemas/Subregion2" + }, + "subregion3": { + "$ref": "#/components/schemas/Subregion3" + }, + "street": { + "type": "string", + "description": "Recipient's address.", + "example": "Street example" + }, + "number": { + "type": "string", + "description": "Number of the recipient's address.", + "example": "1" + }, + "complement": { + "type": "string", + "nullable": true, + "description": "Complement for the recipient's address.", + "example": "A" + }, + "location": { + "$ref": "#/components/schemas/Location" + } + }, + "example": { + "postalCode": "00000-000", + "country": { + "code": "BRA", + "name": "BRA" + }, + "subregion1": { + "code": "SP", + "name": "SP" + }, + "subregion2": { + "code": "São Paulo", + "name": "São Paulo" + }, + "subregion3": { + "code": "Burgo Paulista", + "name": "Burgo Paulista" + }, + "street": "Rua Exempo", + "number": "01", + "complement": null, + "location": { + "lat": -46.48582077026367, + "lng": -23.521709442138672 + } + } + }, + "Country": { + "title": "Country", + "description": "Recipient's country.", + "required": [ + "code", + "name" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Country's three-digit identifying code, from the recipient's address.", + "example": "BRA" + }, + "name": { + "type": "string", + "description": "Country's name, from the recipient's address.", + "example": "Brasil" + } + }, + "example": { + "code": "BRA", + "name": "BRA" + } + }, + "Subregion1": { + "title": "State", + "description": "Recipient's address state's information.", + "required": [ + "code", + "name" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "State's code, from the recipient's address.", + "example": "SP" + }, + "name": { + "type": "string", + "description": "State's name, from the recipient's address.", + "example": "Sao Paulo" + } + }, + "example": { + "code": "SP", + "name": "SP" + } + }, + "Subregion2": { + "title": "City", + "description": "Recipient's address city's information.", + "required": [ + "code", + "name" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "City's code, from the recipient's address.", + "example": "SP" + }, + "name": { + "type": "string", + "description": "City's name, from the recipient's address.", + "example": "Sao Paulo" + } + }, + "example": { + "code": "SP", + "name": "São Paulo" + } + }, + "Subregion3": { + "title": "Neighborhood", + "description": "Recipient's address neighborhood's information.", + "required": [ + "code", + "name" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Neighborhood's code, from the recipient's address.", + "example": "Neighborhood example" + }, + "name": { + "type": "string", + "description": "Neighborhood's name, from the recipient's address.", + "example": "Neighborhood example" + } + }, + "example": { + "code": "Vila Antonieta", + "name": "Vila Antonieta" + } + }, + "Location": { + "title": "Location", + "description": "Recipient's address geocoordinates.", + "required": [ + "lat", + "lng" + ], + "type": "object", + "nullable": true, + "properties": { + "lat": { + "type": "number", + "description": "Latitude number of the address' geolocation coordinates.", + "example": -46.48582077026367 + }, + "lng": { + "type": "number", + "description": "Longitude number of the address' geolocation coordinates.", + "example": -23.521709442138672 + } + }, + "example": { + "lat": -46.48582077026367, + "lng": -23.521709442138672 + } + }, + "NotifyCarrierwithAppRequest": { + "title": "NotifyCarrierwithAppRequest", + "description": "Object containing email, account, and dispatched order information.", + "required": [ + "email", + "dispatchOrder", + "account" + ], + "type": "object", + "properties": { + "account": { + "$ref": "#/components/schemas/Account" + }, + "email": { + "type": "string", + "description": "Fill in this field if you wish to send the generated file for an email besides the ones already involved in the operation, like the carrier and VTEX account's email.", + "example": "email" + }, + "dispatchOrder": { + "$ref": "#/components/schemas/DispatchOrder" + } + } + }, + "DispatchOrder": { + "title": "DispatchOrder", + "description": "Information about the dispatched order.", + "required": [ + "id", + "packageIds", + "sender", + "carrier" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the dispatched order.", + "example": "653560c2-7965-4614-a730-8e45c89bf284" + }, + "packageIds": { + "type": "array", + "description": "Array with package IDs.", + "items": { + "type": "string", + "description": "Identification codes of the packages.", + "example": "6529cd28-6fd1-4b95-8397-5fad0a79d41c" + } + }, + "sender": { + "$ref": "#/components/schemas/Sender" + }, + "carrier": { + "$ref": "#/components/schemas/Carrier" + } + } + }, + "Sender": { + "title": "Sender", + "description": "User's logged account in the VTEX store.", + "required": [ + "cnpj", + "fantasyName", + "stateRegistration", + "id", + "name", + "address", + "email", + "phone" + ], + "type": "object", + "properties": { + "cnpj": { + "type": "string", + "description": "CNPJ code of the VTEX account responsible for sending the package.", + "example": "81.316.120/0001-02" + }, + "fantasyName": { + "type": "string", + "description": "Fantasy name of the VTEX account responsible for sending the package.", + "example": "Carrier 123", + "nullable": true + }, + "stateRegistration": { + "type": "string", + "description": "State Registration code of the VTEX account responsible for sending the package.", + "example": "9843759348", + "nullable": true + }, + "id": { + "type": "string", + "description": "VTEX account's ID.", + "example": "accountId", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the VTEX account responsible for sending the package.", + "example": "Store LTDA" + }, + "address": { + "$ref": "#/components/schemas/Address" + }, + "email": { + "type": "string", + "description": "Email of the VTEX account responsible for sending the package.", + "example": "email@email.com", + "nullable": true + }, + "phone": { + "type": "string", + "description": "Sender's contact number.", + "example": "+5511111111111", + "nullable": true + } + }, + "example": { + "cnpj": "00000000000000", + "fantasyName": null, + "stateRegistration": null, + "id": null, + "name": "LTDA", + "address": { + "postalCode": "03475015", + "country": { + "code": "Brasil", + "name": "Brasil" + }, + "subregion1": { + "code": "SP", + "name": "SP" + }, + "subregion2": { + "code": "São Paulo", + "name": "São Paulo" + }, + "subregion3": { + "code": "Vila Antonieta", + "name": "Vila Antonieta" + }, + "street": "Rua Exemplo", + "number": "01", + "complement": "", + "location": null + }, + "email": null, + "phone": "+5511111111111" + } + }, + "Carrier": { + "title": "Carrier", + "description": "Carrier responsible for delivering the dispatched order.", + "required": [ + "cnpj", + "fantasyName", + "stateRegistration", + "id", + "name", + "address", + "email", + "phone" + ], + "type": "object", + "properties": { + "cnpj": { + "type": "string", + "description": "Carrier's CNPJ.", + "example": "00000000000000" + }, + "fantasyName": { + "type": "string", + "description": "Carrier's fantasy name.", + "example": "Carrier A" + }, + "stateRegistration": { + "type": "string", + "description": "Carrier's state registration number.", + "example": "843904894875" + }, + "id": { + "type": "string", + "description": "Carrier's ID.", + "example": "vtexShippinNetwork_example" + }, + "name": { + "type": "string", + "description": "Carrier's company name.", + "example": "Carrier LTDA" + }, + "address": { + "$ref": "#/components/schemas/Address" + }, + "email": { + "type": "string", + "description": "Carrier's email address.", + "example": "email@example.com" + }, + "phone": { + "type": "string", + "description": "Carrier's contact number.", + "example": "+5511111111111", + "nullable": true + } + }, + "example": { + "cnpj": "00000000000000", + "fantasyName": "carrier", + "stateRegistration": "096/3624636", + "id": "vtexlog_exemplo", + "name": "Carrier LTDA.", + "address": { + "postalCode": "90200001", + "country": { + "code": "BRA", + "name": "Brasil" + }, + "subregion1": { + "code": "RS", + "name": "Rio Grande do Sul" + }, + "subregion2": { + "code": "Porto_Alegre", + "name": "Porto Alegre" + }, + "subregion3": { + "code": "Anchieta", + "name": "Anchieta" + }, + "street": "Rua Exemplo", + "number": "01", + "complement": "Pavilhão 6", + "location": null + }, + "email": "email", + "phone": "+5511111111111" + } + }, + "TrackingEventsRequest": { + "title": "TrackingEventsRequest", + "description": "Shipping's tracking information.", + "required": [ + "trackingNumber" + ], + "type": "object", + "properties": { + "trackingNumber": { + "type": "string", + "description": "Shipping's tracking identification code.", + "example": "BR000000000" + } + }, + "example": { + "trackingNumber": "BR000000000" + } + } + } + }, + "tags": [ + { + "name": "Notification" + }, + { + "name": "Tracking" + } + ] +} diff --git a/clients/manitou/output/sku-bindings.json b/clients/manitou/output/sku-bindings.json new file mode 100644 index 0000000000..d8a95af649 --- /dev/null +++ b/clients/manitou/output/sku-bindings.json @@ -0,0 +1,824 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "SKU Bindings API", + "description": "The SKU Bindings API enables sellers to manage their SKUs offered across different VTEX marketplaces.\r\n\r\nIt allows sellers to send new suggestions to marketplaces, update SKU prices or inventory, and perform other operations, promoting accurate and flexible catalog management.\r\n\r\n## Index\r\n\r\n### SKU Bindings\r\n\r\n* `GET` [Get SKU bindings by SKU ID](https://developers.vtex.com/docs/api-reference/sku-bindings-api#get-/sku-binding/pvt/skusellers/-skuId-)\r\n* `GET` [Get SKU bindings information](https://developers.vtex.com/docs/api-reference/sku-bindings-api#get-/sku-binding/pvt/skuseller/admin)\r\n* `GET` [Get details of a seller's SKU](https://developers.vtex.com/docs/api-reference/sku-bindings-api#get-/sku-binding/pvt/skuseller/-sellerId-/-sellerSkuId-)\r\n* `PUT` [Bind a seller's SKU to another SKU](https://developers.vtex.com/docs/api-reference/sku-bindings-api#put-/sku-binding/pvt/skuseller/-sellerId-/-sellerSkuId-)\r\n* `GET` [Get all SKU bindings by seller ID](https://developers.vtex.com/docs/api-reference/sku-bindings-api#get-/sku-binding/pvt/skuseller/list/bysellerId/-sellerId-)\r\n* `GET` [Get paged SKU bindings by seller ID](https://developers.vtex.com/docs/api-reference/sku-bindings-api#get-/sku-binding/pvt/skuseller/paged/sellerid/-sellerId-)\r\n* `POST` [Change notification with SKU ID](https://developers.vtex.com/docs/api-reference/sku-bindings-api#post-/sku-binding/pvt/skuseller/changenotification/-skuId-)\r\n* `POST` [Change notification with seller ID and seller SKU ID](https://developers.vtex.com/docs/api-reference/sku-bindings-api#post-/sku-binding/pvt/skuseller/changenotification/-sellerId-/-sellerSkuId-)\r\n* `POST` [Insert SKU binding](https://developers.vtex.com/docs/api-reference/sku-bindings-api#post-/sku-binding/pvt/skuseller/insertion)\r\n* `POST` [Activate SKU binding](https://developers.vtex.com/docs/api-reference/sku-bindings-api#post-/sku-binding/pvt/skuseller/activate/-sellerId-/-skuSellerId-)\r\n* `POST` [Deactivate SKU binding](https://developers.vtex.com/docs/api-reference/sku-bindings-api#post-/sku-binding/pvt/skuseller/inactivate/-sellerId-/-skuSellerId-)\r\n* `POST` [Remove a seller's SKU binding](https://developers.vtex.com/docs/api-reference/sku-bindings-api#post-/sku-binding/pvt/skuseller/remove/-sellerId-/-sellerSkuId-)\r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| :---: | :--- | :--- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "contact": {}, + "version": "1.0" + }, + "servers": [ + { + "url": "https://{accountName}.{environment}.com.br/api", + "description": "VTEX server URL.", + "variables": { + "accountName": { + "description": "Name of the VTEX account. Used as part of the URL.", + "default": "apiexamples" + }, + "environment": { + "description": "Environment to use. Used as part of the URL.", + "enum": [ + "vtexcommercestable" + ], + "default": "vtexcommercestable" + } + } + } + ], + "paths": { + "/sku-binding/pvt/skusellers/{skuId}": { + "get": { + "tags": [ + "SKU Bindings" + ], + "summary": "Get SKU bindings by SKU ID", + "description": "Retrieves SKU bindings details searching by SKU ID.\r\n\r\n>❗ The path `/api/catalog/pvt/skusellers/{skuId}` is deprecated.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "GetbySkuId", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "SKU's unique identifier in the marketplace.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Array containing objects with information about each SKU Binding.", + "items": { + "type": "object", + "description": "Object with information about an SKU Binding.", + "properties": { + "Id": { + "type": "integer", + "description": "SKU Binding ID." + }, + "SellerId": { + "type": "string", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID." + }, + "StockKeepingUnitId": { + "type": "integer", + "description": "SKU ID in the VTEX marketplace." + }, + "SellerSkuId": { + "type": "string", + "description": "SKU seller ID." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU binding is active." + }, + "LastUpdateDate": { + "type": "string", + "description": "Date when the SKU binding was updated for the last time, in UTC format." + }, + "SalesPolicy": { + "type": "integer", + "description": "Sales policy ID." + } + } + } + }, + "example": [ + { + "Id": 48, + "SellerId": "cosmetics1", + "StockKeepingUnitId": 1, + "SellerSkuId": "42", + "IsActive": true, + "LastUpdateDate": "2025-10-21T19:13:00.657", + "SalesPolicy": 0 + } + ] + } + } + } + } + } + }, + "/sku-binding/pvt/skuseller/admin": { + "get": { + "tags": [ + "SKU Bindings" + ], + "summary": "Get SKU bindings information", + "description": "Retrieves SKU bindings administrative information using optional query params `sellerId`, `skuId`, `sellerSkuId` and `IsActive` to filter results and `size` to restrict the amount of results.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/admin`.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "Getpagedadmin", + "parameters": [ + { + "name": "sellerId", + "in": "query", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "vtxkfj7352" + } + }, + { + "name": "skuId", + "in": "query", + "description": "SKU's unique identifier in the marketplace.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "sellerSkuId", + "in": "query", + "description": "SKU ID in the seller's store.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "71" + } + }, + { + "name": "isActive", + "in": "query", + "description": "Defines if the SKU binding is active.", + "required": false, + "style": "form", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "name": "size", + "in": "query", + "description": "Amount of results.", + "required": false, + "style": "form", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "SKU bindings information regarding a given seller ID.", + "properties": { + "IsPersisted": { + "type": "boolean", + "description": "Defines if the seller is persisted." + }, + "IsRemoved": { + "type": "boolean", + "description": "Defines if the seller is removed." + }, + "SkuSellerId": { + "type": "integer", + "description": "SKU Binding ID." + }, + "UpdateDate": { + "type": "string", + "description": "Date when the SKU binding was updated for the last time, in UTC format." + }, + "RequestedUpdateDate": { + "type": "string", + "description": "Date when an SKU binding update was requested for the last time, in UTC format.", + "nullable": true + }, + "SellerStockKeepingUnitId": { + "type": "string", + "description": "SKU ID in the seller's store." + }, + "SellerId": { + "type": "string", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID." + }, + "StockKeepingUnitId": { + "type": "integer", + "description": "SKU ID in the VTEX marketplace." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU binding is active." + } + } + } + }, + "example": [ + { + "IsPersisted": true, + "IsRemoved": false, + "SkuSellerId": 102, + "UpdateDate": "2025-04-12T20:06:59.413Z", + "RequestedUpdateDate": null, + "SellerStockKeepingUnitId": "71", + "SellerId": "fashionstore", + "StockKeepingUnitId": 25, + "IsActive": true + } + ] + } + } + } + } + } + }, + "/sku-binding/pvt/skuseller/{sellerId}/{sellerSkuId}": { + "get": { + "tags": [ + "SKU Bindings" + ], + "summary": "Get details of a seller's SKU", + "description": "Retrieves a seller SKU details, given a seller ID and the SKU ID in the seller's store.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/{sellerId}/{sellerSkuId}`.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "GetSKUseller", + "parameters": [ + { + "$ref": "#/components/parameters/SellerId" + }, + { + "name": "sellerSkuId", + "in": "path", + "description": "SKU ID in the seller's store.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "IsPersisted", + "IsRemoved", + "SkuSellerId", + "SellerId", + "StockKeepingUnitId", + "SellerStockKeepingUnitId", + "IsActive", + "UpdateDate", + "RequestedUpdateDate" + ], + "properties": { + "IsPersisted": { + "type": "boolean", + "description": "Defines if the seller is persisted." + }, + "IsRemoved": { + "type": "boolean", + "description": "Defines if the seller is removed." + }, + "SkuSellerId": { + "type": "integer", + "description": "SKU ID in the seller's store." + }, + "UpdateDate": { + "type": "string", + "description": "Date when the SKU binding was updated for the last time, in UTC format." + }, + "RequestedUpdateDate": { + "type": "string", + "description": "Date when an SKU binding update was requested for the last time, in UTC format.", + "nullable": true + }, + "SellerStockKeepingUnitId": { + "type": "string", + "description": "SKU seller ID." + }, + "SellerId": { + "type": "string", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID." + }, + "StockKeepingUnitId": { + "type": "integer", + "description": "SKU ID in the VTEX marketplace." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU binding is active." + } + } + }, + "example": { + "IsPersisted": true, + "IsRemoved": false, + "SkuSellerId": 799, + "UpdateDate": "2025-10-11T04:52:42.1", + "RequestedUpdateDate": null, + "SellerStockKeepingUnitId": "502", + "SellerId": "fashionstore", + "StockKeepingUnitId": 50, + "IsActive": true + } + } + } + } + } + }, + "put": { + "tags": [ + "SKU Bindings" + ], + "summary": "Bind a seller's SKU to another SKU", + "description": "Associates a seller's SKU to another marketplace SKU.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/{sellerId}/{sellerSkuId}`.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "Bindtoanothersku", + "parameters": [ + { + "$ref": "#/components/parameters/SellerId" + }, + { + "name": "sellerSkuId", + "in": "path", + "description": "SKU ID in the seller's store.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "StockKeepingUnitId" + ], + "type": "object", + "properties": { + "StockKeepingUnitId": { + "type": "integer", + "description": "SKU ID in the marketplace.", + "example": 1 + } + } + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + } + } + }, + "/sku-binding/pvt/skuseller/list/bysellerId/{sellerId}": { + "get": { + "tags": [ + "SKU Bindings" + ], + "summary": "Get all SKU bindings by seller ID", + "description": "Retrieves a list of SKU bindings given a specific seller ID.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/list/bysellerId/{sellerId}`.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "GetallbySellerId", + "parameters": [ + { + "$ref": "#/components/parameters/SellerId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Seller's SKU bindings information.", + "properties": { + "SellerStockKeepingUnitId": { + "type": "string", + "description": "SKU ID in the seller's store." + }, + "FreightCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller.", + "nullable": true + }, + "ProductCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`.", + "nullable": true + }, + "SellerId": { + "type": "string", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID." + }, + "StockKeepingUnitId": { + "type": "integer", + "description": "SKU ID in the marketplace." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU binding is active." + } + } + } + }, + "example": [ + { + "SellerStockKeepingUnitId": "24", + "FreightCommissionPercentage": null, + "ProductCommissionPercentage": null, + "SellerId": "fashionstore", + "StockKeepingUnitId": 121, + "IsActive": true + } + ] + } + } + } + } + } + }, + "/sku-binding/pvt/skuseller/paged/sellerid/{sellerId}": { + "get": { + "tags": [ + "SKU Bindings" + ], + "summary": "Get paged SKU bindings by seller ID", + "description": "Retrieves a paged list of SKU bindings given a specific seller ID.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/paged/sellerid/{sellerId}`.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "GetpagedbySellerId", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Page number.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "size", + "in": "query", + "description": "Amount of results per page.", + "required": true, + "style": "form", + "schema": { + "type": "string", + "example": "2" + } + }, + { + "$ref": "#/components/parameters/SellerId" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "SKU binding information regarding a given seller ID.", + "properties": { + "SellerId": { + "type": "string", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID." + }, + "StockKeepingUnitId": { + "type": "integer", + "description": "SKU ID in the marketplace." + }, + "SellerStockKeepingUnitId": { + "type": "string", + "description": "SKU ID in the seller's store." + }, + "IsActive": { + "type": "boolean", + "description": "Defines if the SKU binding is active." + }, + "FreightCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller.", + "nullable": true + }, + "ProductCommissionPercentage": { + "type": "number", + "description": "The percentage that must be filled in as agreed between the marketplace and the seller. If there is no such commission, please fill in the field with the value: `0.00`.", + "nullable": true + } + } + } + }, + "example": [ + { + "SellerId": "101", + "StockKeepingUnitId": 121, + "SellerStockKeepingUnitId": "24", + "IsActive": true, + "FreightCommissionPercentage": null, + "ProductCommissionPercentage": null + }, + { + "SellerId": "fashionstore", + "StockKeepingUnitId": 14, + "SellerStockKeepingUnitId": "60", + "IsActive": true, + "FreightCommissionPercentage": null, + "ProductCommissionPercentage": null + } + ] + } + } + } + } + } + }, + "/sku-binding/pvt/skuseller/changenotification/{skuId}": { + "post": { + "tags": [ + "SKU Bindings" + ], + "summary": "Change notification with SKU ID", + "description": "Sends a seller notification to the VTEX marketplace about a SKU suggestion using the SKU ID. It can be either a new suggestion or an update to an existing one. For example, a seller SKU previously approved by the marketplace may have had price or inventory changes.\r\n\r\nThis request does not require a request body.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/changenotification/{skuId}`.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "ChangeNotification", + "parameters": [ + { + "name": "skuId", + "in": "path", + "description": "A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use to look for the SKU whose change the seller wants to inform. If the marketplace finds this ID, it responds with status code `200`. Otherwise, it responds with status code `404`.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "10" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "429": { + "description": "Too many requests" + } + } + } + }, + "/sku-binding/pvt/skuseller/changenotification/{sellerId}/{sellerSkuId}": { + "post": { + "tags": [ + "SKU Bindings" + ], + "summary": "Change notification with seller ID and seller SKU ID", + "description": "Sends a seller notification to the VTEX marketplace about a SKU suggestion, which can be either a new suggestion or an update. For example, a seller SKU previously approved by the marketplace may have had price or inventory changes.\r\n\r\nThe main information sent by the seller is its identification (`sellerId`) and the SKU binding code (`sellerSkuId`), both passed as path parameters. This request doesn't require a request body.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/changenotification/{sellerId}/{sellerSkuId}`.\r\n\r\n## Example\r\n\r\nLet's say your seller has the ID `123` in the marketplace, and you want to inform the marketplace that there has been a change to the SKU with ID `700`.\r\n\r\nIn this case, you would replace the `sellerId` parameter with the value `123`, and the `sellerSkuId` parameter with the value `700`. The URL would be the following:\r\n\r\n```\r\nhttps://accountName.vtexcommercestable.com.br/api/sku-binding/pvt/skuseller/changenotification/123/700\r\n```\r\n\r\n## Response codes\r\n\r\nThe following response codes are possible:\r\n* 200: The SKU whose ID was informed in the URL already exists in the marketplace and was found. The marketplace can now proceed with a fulfillment simulation in order to get updated information about this SKU's inventory and price.\r\n* 403: Failure in the authentication.\r\n* 404: The SKU was not found in the marketplace. The body of the response, in this case, should follow this format: \"Seller StockKeepingUnit `{{skuId}}` not found for this seller id `{{sellerId}}`. This means that the seller can now proceed with sending an offer to the marketplace in order to suggest that this SKU is sold there.\r\n* 429: Failure due to too many requests.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "parameters": [ + { + "$ref": "#/components/parameters/SellerId" + }, + { + "name": "sellerSkuId", + "in": "path", + "description": "ID of the binding of the seller with the SKU.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "429": { + "description": "Too many requests" + } + }, + "operationId": "post_skuBinding_pvt_skuseller_changenotification_BySellerId_BySellerSkuId" + } + }, + "/sku-binding/pvt/skuseller/insertion": { + "post": { + "tags": [ + "SKU Bindings" + ], + "summary": "Insert SKU binding", + "description": "Creates an SKU binding, associating a seller's SKU with a marketplace's SKU.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/insertion`.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "operationId": "InsertSKUBinding", + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "StockKeepingUnitId", + "IsActive", + "SellerId", + "SellerStockKeepingUnitId" + ], + "type": "object", + "properties": { + "StockKeepingUnitId": { + "type": "integer", + "description": "SKU ID in the marketplace.", + "example": 1 + }, + "IsActive": { + "type": "boolean", + "description": "Defines whether the SKU binding is active (`true`) or inactive (`false`).", + "example": true + }, + "SellerId": { + "type": "string", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the VTEX Admin to get the correct ID.", + "example": "fashionstore" + }, + "SellerStockKeepingUnitId": { + "type": "string", + "description": "SKU seller ID.", + "example": "71" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request" + }, + "409": { + "description": "Conflict" + } + } + } + }, + "/sku-binding/pvt/skuseller/activate/{sellerId}/{skuSellerId}": { + "post": { + "tags": [ + "SKU Bindings" + ], + "summary": "Activate SKU binding", + "description": "Changes the status of an SKU binding to active, setting `isActive` to `true`.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/activate/{sellerId}/{skuSellerId}`.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "ActivateSKUBinding", + "parameters": [ + { + "$ref": "#/components/parameters/SellerId" + }, + { + "name": "skuSellerId", + "in": "path", + "description": "SKU ID in the seller's store.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "71" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/sku-binding/pvt/skuseller/inactivate/{sellerId}/{skuSellerId}": { + "post": { + "tags": [ + "SKU Bindings" + ], + "summary": "Deactivate SKU binding", + "description": "Changes the status of an SKU binding to inactive, setting `isActive` to `false`.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/inactivate/{sellerId}/{skuSellerId}`.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "DeactivateSKUBinding", + "parameters": [ + { + "$ref": "#/components/parameters/SellerId" + }, + { + "name": "skuSellerId", + "in": "path", + "description": "SKU ID in the seller's store.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "71" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/sku-binding/pvt/skuseller/remove/{sellerId}/{sellerSkuId}": { + "post": { + "tags": [ + "SKU Bindings" + ], + "summary": "Remove a seller's SKU binding", + "description": "Removes a seller's SKU binding, given the seller ID and the SKU ID in the seller's store.\r\n\r\n > ℹ This path is an updated version of `/api/catalog_system/pvt/skuseller/remove/{sellerId}/{sellerSkuId}`.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "operationId": "DeleteSKUsellerassociation", + "parameters": [ + { + "$ref": "#/components/parameters/SellerId" + }, + { + "name": "sellerSkuId", + "in": "path", + "description": "SKU ID in the seller's store.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "71" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + } + }, + "security": [ + { + "appKey": [], + "appToken": [] + }, + { + "VtexIdclientAutCookie": [] + } + ], + "components": { + "parameters": { + "SellerId": { + "name": "sellerId", + "in": "path", + "description": "ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the VTEX Admin to get the correct ID.", + "required": true, + "style": "simple", + "schema": { + "type": "string", + "example": "fashionstore" + } + } + } + }, + "tags": [ + { + "name": "SKU Bindings" + } + ] +} diff --git a/clients/manitou/output/tracking.json b/clients/manitou/output/tracking.json new file mode 100644 index 0000000000..9721876efa --- /dev/null +++ b/clients/manitou/output/tracking.json @@ -0,0 +1,2598 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "VTEX Tracking API", + "description": "This API allows consulting and registering services in the [VTEX Tracking](https://help.vtex.com/en/tutorial/vtex-tracking-overview--1uDRquVudbPuoK05MtbZGh) system. Its use is exclusive to VTEX Tracking customers and is only available for Brazilian operations.\r\n\r\n> We have unified our VTEX Tracking API endpoints into a single version, so it's no longer necessary to specify the version on the URL. We have also translated all paths to english. Check out our [release notes](https://developers.vtex.com/updates/release-notes/vtex-tracking-api-changes-in-all-paths) to know more about the changes. The previous paths were not deprecated, and are still being maintained by the VTEX Tracking team. If your business' integration was built with the previous `v1` and `v1.1` endpoints, it will still run smoothly. No changes in your integrations should be done during critical periods. We will communicate any updates, and deprecation of endpoints in the future.\r\n\r\n>⚠️ We recommend that customers call our GET endpoints only once in every 6 hours. We do not recommend, and consider as a bad practice, to retrieve data from the same endpoint more than once during a 6-hour window. This represents a major load to our API that will slow down the overall usage of our systems.\r\n\r\n## VTEX Tracking APIs Index\r\n\r\n### Authentication\r\n\r\n- `POST` [Asynchronous Login](https://developers.vtex.com/docs/api-reference/tracking#post-/auth)\r\n\r\n### Delivery Services\r\n\r\n- `PUT` [Remove Packing List](https://developers.vtex.com/docs/api-reference/tracking#put-/services)\r\n- `POST` [Post Delivery Service](https://developers.vtex.com/docs/api-reference/tracking#post-/services)\r\n- `GET` [Get Delivery Services List](https://developers.vtex.com/docs/api-reference/tracking#get-/services)\r\n- `GET` [Get Delivery Service by ID](https://developers.vtex.com/docs/api-reference/tracking#get-/services/-idDeliveryService-)\r\n- `POST` [Post Delivery Service With Route Scheduling](https://developers.vtex.com/docs/api-reference/tracking#post-/services/routes)\r\n- `GET` [Get Delivery Services List by Route](https://developers.vtex.com/docs/api-reference/tracking#get-/services/routes)\r\n- `GET` [Get Delivery Service by Invoice](https://developers.vtex.com/docs/api-reference/tracking#get-/services/invoice)\r\n\r\n## Common parameters\r\n\r\n| **Parameter name** | **Description** | **Type** |\r\n| :---: | :--- | :--- |\r\n| `{{accountName}}` | Name of the VTEX account. Used as part of the URL. | Server variable. |\r\n| `{{environment}}` | Environment to use. Used as part of the URL. The default value is `vtexcommercestable`. | Server variable. |\r\n| `X-VTEX-API-AppKey` | Unique identifier of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with `X-VTEX-API-AppToken`. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `X-VTEX-API-AppToken` | Secret token of the [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys). | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using `VtexIdclientAutCookie`. |\r\n| `VtexIdclientAutCookie` | [User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours. | Authentication header. Not necessary when using `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken`. |", + "contact": { + "name": "VTEX Tracking", + "url": "https://vtex.com/br-pt/tracking/", + "email": "suportetracking@vtex.com.br" + }, + "version": "1.1" + }, + "servers": [ + { + "url": "https://api.vtextracking.com/receiver" + } + ], + "paths": { + "/auth": { + "post": { + "tags": [ + "Authentication" + ], + "summary": "Asynchronous login", + "description": "This endpoint permits the user to acquire the mandatory authentication to access the [VTEX Tracking](https://help.vtex.com/en/tutorial/vtex-tracking-overview--1uDRquVudbPuoK05MtbZGh) endpoints. \r\n> There is a single version of VTEX Tracking API, so it is no longer necessary to specify the version on the URL, as explained in this [release note](https://developers.vtex.com/updates/release-notes/vtex-tracking-api-changes-in-all-paths). The previous routes were not deprecated and can still be used, and if there is a breaking change, it will be informed.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "username", + "password" + ], + "properties": { + "username": { + "type": "string", + "description": "Add client's username.", + "example": "clientUserName" + }, + "password": { + "type": "string", + "description": "Add client's password.", + "example": "32gv34fs" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "authenticated": { + "type": "boolean", + "description": "If the authentication was successful (`true`) or not (`false`)." + }, + "created": { + "type": "string", + "description": "Creation date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "expiration": { + "type": "string", + "description": "Expiration date in [UTC time format](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values), as in `YYYY-MM-DDThh:mm:ssZ`." + }, + "accessToken": { + "type": "string", + "description": "Acess token." + }, + "message": { + "type": "string", + "description": "Authentication message." + } + } + }, + "example": { + "authenticated": true, + "created": "2024-04-11T09:14:41.3695207Z", + "expiration": "2024-05-11T09:14:41.3695207Z", + "accessToken": "32985745", + "message": "Authenticated" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "operationId": "post_auth" + } + }, + "/services": { + "put": { + "tags": [ + "Delivery services" + ], + "summary": "Remove packing list", + "description": "Removes Packing List on your VTEX Tracking configuration. Your request body must contain the invoice and serie fields.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "Service information.", + "properties": { + "invoice": { + "type": "string", + "description": "Chosen invoice filter.", + "example": "string" + }, + "serie": { + "type": "string", + "description": "Serie's number on the invoice.", + "example": "string" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "headers": {} + } + }, + "operationId": "put_services" + }, + "post": { + "tags": [ + "Delivery services" + ], + "summary": "Post delivery service", + "description": "Creates a delivery service in your Tracking system. It allows the user to configure the Route Scheduling services, without defining the Delivery Person or Route Date. \r\n\r\n### Request body example\r\n\r\n```json\r\n[\r\n {\r\n \"deliveryServiceType\": \"Entrega\",\r\n \"shipperCustomer\": {\r\n \"legalType\": \"PJ\",\r\n \"companyName\": \"COMP. BRAS. DE TECN. PARA E-COMMERCE\",\r\n \"cnpj\": \"05314972000174\",\r\n \"addressStreet\": \"Rua Praia de Botafogo\",\r\n \"addressNumber\": \"300\",\r\n \"addressComplement\": \"SL\",\r\n \"addressNeighborhood\": \"Botafogo\",\r\n \"addressCity\": \"Rio de Janeiro\",\r\n \"postalCode\": \"22250040\",\r\n \"state\": \"RJ\",\r\n \"phoneAreaCode\": \"21\",\r\n \"phoneNumber\": \"999999999\"\r\n },\r\n \"invoiceOrderOfService\": \"123456\",\r\n \"invoiceOrderOfServiceSerie\": \"2\",\r\n \"orderNumber\": \"987654321\"\r\n },\r\n {\r\n \"deliveryServiceType\": \"Entrega\",\r\n \"shipperCustomer\": {\r\n \"legalType\": \"PF\",\r\n \"firstName\": \"Pedro\",\r\n \"lastName\": \"Silva\",\r\n \"cpf\": \"90498365778\",\r\n \"addressStreet\": \"Rua Praia de Botafogo\",\r\n \"addressNumber\": \"300\",\r\n \"addressComplement\": \"SL\",\r\n \"addressNeighborhood\": \"Botafogo\",\r\n \"addressCity\": \"Rio de Janeiro\",\r\n \"postalCode\": \"22250040\",\r\n \"state\": \"RJ\",\r\n \"phoneAreaCode\": \"21\",\r\n \"phoneNumber\": \"999999999\"\r\n },\r\n \"invoiceOrderOfService\": \"123457\",\r\n \"invoiceOrderOfServiceSerie\": \"2\",\r\n \"orderNumber\": \"987654322\"\r\n }\r\n]\r\n```\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeliveryService" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Bad Request" + } + }, + "operationId": "post_services" + }, + "get": { + "tags": [ + "Delivery services" + ], + "summary": "Get delivery services list", + "description": "Retrieves a list of services with pagination and URLs. You can consult the list using the following filters: the service's registration date, status, page size, and desired number of pages. Check the parameters documented below to see each filter's description.\r\n> We strongly recommend that a call to a VTEX Tracking GET endpoint is made only once every 6 hours. Retrieving data from the same endpoint more than once during a 6-hour window represents a load to our API that will slow down the overall usage of systems.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "status", + "in": "query", + "description": "Current status of the delivery service. The status parameters are not case sensitive, you can write them with upper or lower case. This field includes the following statuses as possible values: `Ativo`, `Roteirizado`, `Realizado`, `EmAndamento`, `NaoRealizado`.", + "style": "form", + "schema": { + "type": "string", + "example": "Ativo" + } + }, + { + "name": "dateInit", + "in": "query", + "description": "Initial date of registration of the requested service. The date format is `yyyy-mm-dd`.", + "style": "form", + "schema": { + "type": "string", + "example": "2024-05-28" + } + }, + { + "name": "dateEnd", + "in": "query", + "description": "End date of registration of the requested service. The date format is `yyyy-mm-dd`.\n\r\n\rMake sure that the period of time between `dateInit` and `dateEnd` is not greater than 30 days.", + "style": "form", + "schema": { + "type": "string", + "example": "2024-05-29" + } + }, + { + "name": "pageSize", + "in": "query", + "description": "Number of items shown per consultation page. The default is `25`.", + "style": "form", + "schema": { + "type": "integer", + "example": 40 + } + }, + { + "name": "page", + "in": "query", + "description": "The consultation's desired page.", + "style": "form", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginationResultDeliveryServiceResponsev11" + }, + "example": { + "page": 1, + "pageSize": 1, + "totalCount": 1, + "data": [ + { + "pictures": [ + "https://lojadobreno.vteximg.com.br/arquivos/ids/155467-292-292/image-5d7ad76ad1954c53adecab4138319034.jpg?v=637321899584500000", + "https://lojadobreno.vteximg.com.br/arquivos/ids/155467-292-292/image-5d7ad76ad1954c53adecab4138319034.jpg?v=5435795425346573450" + ], + "idDeliveryService": 2878267, + "deliveryServiceType": { + "description": "Entrega" + }, + "deliveryServiceStatus": { + "description": "Ativo" + }, + "shipper": { + "companyName": "My Example Store" + }, + "shipperCustomer": { + "idShipperCustomer": 2766024, + "email": "expedicao@bramamateriais.com.br", + "firstName": "Clark", + "lastName": "Kent", + "cpf": "12345678900", + "addressStreet": "R. Dr. Manoel Normando Lima", + "addressNumber": "25", + "addressComplement": "Apartment 3058", + "addressNeighborhood": "Downtown", + "addressCity": "Curitiba", + "postalCode": "57072710", + "state": { + "name": "Alagoas", + "code": "AL" + }, + "country": { + "name": "Brasil", + "code": "BR" + }, + "created": "2024-06-17T17:04:07.457", + "companyName": "Gil", + "cnpj": "20212790000186", + "legalType": { + "description": "PJ" + }, + "idExternalShipperCustomer": "123456abc", + "phoneAreaCode": "11", + "phoneNumber": "97238885" + }, + "carrier": { + "username": "clark_kent", + "firstName": "Clark", + "lastName": "Kent", + "cpf": "61266367080", + "email": "clark_kent@examplemail.com", + "cnpjtransportCompany": "20212790000186", + "mobileAreaCode": "11", + "mobile": "78244657", + "phoneAreaCode": "11", + "phone": "55558898", + "created": "2020-07-15T10:30:00Z", + "idExternalCarrier": "123456789-abc", + "isCarrierAppOnline": true, + "shippingCompany": { + "companyName": "Fast Shipz", + "trade": "Shipping goods", + "cnpj": "55912377000109", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "55447799", + "mobileArea": "11", + "mobile": "77889922", + "email": "lois_lane@fastshipz.com" + }, + "rg": "199178744" + }, + "displacementType": { + "description": "moto", + "vehicleType": { + "description": "Motorcycle" + } + }, + "state": { + "name": "Alagoas", + "code": "AL" + }, + "country": { + "name": "Brasil", + "code": "BR" + }, + "nonDeliveryReason": { + "description": "Nobody answered the door." + }, + "shipperPartner": { + "cnpj": "98269947000105", + "name": "partner shipz" + }, + "shipperBranch": { + "shipperType": { + "description": "Urban transport." + }, + "companyName": "Great shipz", + "trade": "Transport of goods.", + "cnpj": "57972034000165", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "22113355", + "mobileArea": "11", + "mobile": "77885511", + "email": "lois_lane@greatshipz.com" + }, + "freightPrice": { + "description": "Freight price for neighborhood Cidade Universitária.", + "firstPostalCodeInterval": "60530000", + "secondPostalCodeInterval": "60539999", + "price": 9.99, + "created": "2022-07-15T10:30:00Z" + }, + "shippingCompany": { + "companyName": "Fast Shipz", + "trade": "Shipping goods", + "cnpj": "55912377000109", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "55447799", + "mobileArea": "11", + "mobile": "77889922", + "email": "lois_lane@fastshipz.com" + }, + "invoiceOrderOfService": "73893", + "description": "Leave it at the reception", + "addressStreet": "R. Dr. Manoel Normando Lima", + "addressNumber": "25", + "addressComplement": "apartment 3058", + "addressNeighborhood": "Downtown", + "addressCity": "Curitiba", + "postalCode": "57582000", + "estimateDeliveryHour": "2024-07-18T10:30:00Z", + "created": "2024-07-02T18:41:01.933", + "initialEstimateDeliveryHour": "2024-07-18T10:30:00Z", + "deliveryDateTime": "2024-07-18T10:30:00Z", + "estimateDeliveryDistance": 40, + "travelledDeliveryDistance": 40, + "orderNumber": "839748", + "cteNumber": "123456789", + "cteDate": "2024-07-02T10:30:00Z", + "sender": "Sports store", + "senderCity": "Curitiba", + "senderState": 11, + "weight": 430, + "cubicMeter": 0.5, + "cubicMeterWeight": 430, + "value": 150.75, + "freightPriceReceived": 9.99, + "deliveryAttempts": 2, + "serviceTime": 60, + "invoiceOrderOfServiceSerie": "457", + "leadTime": "2024-07-20T15:00:00Z", + "cnpjcarrier": "12345678000195", + "cnpjbranch": "98765432000100", + "idExternal": "EXT123456", + "billingInfo": [ + { + "receivableAmount": 150.75, + "money": 50, + "cheque": 0, + "creditCard": 100.75, + "webComment": "Payment received in full.", + "carrierComment": "Customer paid with credit card.", + "billingConfirmDate": "2024-07-15T14:00:00Z", + "created": "2024-07-15T12:00:00Z" + } + ], + "deliveryServiceRouteItem": [ + { + "idDeliveryServiceRouteItem": 1, + "deliveryServiceRoute": { + "idDeliveryServiceRoute": 101, + "deliveryServiceRouteStatus": { + "description": "In transit" + }, + "deliveryServiceDate": "2024-07-20T10:00:00", + "created": "2024-07-10T08:00:00", + "startWorkDayDateTime": "2024-07-20T08:00:00", + "finishWorkDayDateTime": "2024-07-20T18:00:00", + "itinerantDate": "2024-07-20T10:00:00" + }, + "deliveryServiceRouteItemStatus": { + "description": "Completed" + }, + "nonDeliveryDescription": "N/A", + "index": 1, + "created": "2024-07-15T12:00:00", + "startDisplacementDateTime": "2024-07-20T09:00:00", + "startDisplacementLatitude": -23.55052, + "startDisplacementLongitude": -46.633308, + "finishedDisplacementLatitude": -23.55152, + "finishedDisplacementLongitude": -46.632308, + "receiverName": "Jane Smith", + "receiverDocument": "ID123456789", + "description": "Package delivered successfully.", + "deliveryArrived": "2024-07-20T10:30:00", + "comment": "Customer was satisfied with the delivery.", + "rating": 5, + "pauseDisplacementDateTime": "2024-07-20T10:00:00", + "deliveryLeft": "2024-07-20T10:45:00", + "deliveryReason": { + "description": "Regular scheduled delivery." + } + } + ] + } + ] + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_services" + } + }, + "/services/{idDeliveryService}": { + "get": { + "tags": [ + "Delivery services" + ], + "summary": "Get delivery service by ID", + "description": "Retrieves a specific Service's general information by searching through its ID. \r\n> We strongly recommend that a call to a VTEX Tracking GET endpoint is made only once every 6 hours. Retrieving data from the same endpoint more than once during a 6-hour window represents a load to our API that will slow down the overall usage of systems.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "idDeliveryService", + "in": "path", + "description": "The delivery service's unique identifier.", + "required": true, + "style": "simple", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeliveryServiceResponse_v1_1" + }, + "example": { + "pictures": [ + "https://lojadobreno.vteximg.com.br/arquivos/ids/155467-292-292/image-5d7ad76ad1954c53adecab4138319034.jpg?v=637321899584500000", + "https://lojadobreno.vteximg.com.br/arquivos/ids/155467-292-292/image-5d7ad76ad1954c53adecab4138319034.jpg?v=5435795425346573450" + ], + "idDeliveryService": 2878267, + "deliveryServiceType": { + "description": "Entrega" + }, + "deliveryServiceStatus": { + "description": "Ativo" + }, + "shipper": { + "companyName": "My Example Store" + }, + "shipperCustomer": { + "idShipperCustomer": 2766024, + "email": "expedicao@bramamateriais.com.br", + "firstName": "Clark", + "lastName": "Kent", + "cpf": "12345678900", + "addressStreet": "R. Dr. Manoel Normando Lima", + "addressNumber": "25", + "addressComplement": "Apartment 3058", + "addressNeighborhood": "Downtown", + "addressCity": "Curitiba", + "postalCode": "57072710", + "state": { + "name": "Alagoas", + "code": "AL" + }, + "country": { + "name": "Brasil", + "code": "BR" + }, + "created": "2024-06-17T17:04:07.457", + "companyName": "Gil", + "cnpj": "20212790000186", + "legalType": { + "description": "PJ" + }, + "idExternalShipperCustomer": "123456abc", + "phoneAreaCode": "11", + "phoneNumber": "97238885" + }, + "carrier": { + "username": "clark_kent", + "firstName": "Clark", + "lastName": "Kent", + "cpf": "61266367080", + "email": "clark_kent@examplemail.com", + "cnpjtransportCompany": "20212790000186", + "mobileAreaCode": "11", + "mobile": "78244657", + "phoneAreaCode": "11", + "phone": "55558898", + "created": "2020-07-15T10:30:00Z", + "idExternalCarrier": "123456789-abc", + "isCarrierAppOnline": true, + "shippingCompany": { + "companyName": "Fast Shipz", + "trade": "Shipping goods", + "cnpj": "55912377000109", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "55447799", + "mobileArea": "11", + "mobile": "77889922", + "email": "lois_lane@fastshipz.com" + }, + "rg": "199178744" + }, + "displacementType": { + "description": "moto", + "vehicleType": { + "description": "Motorcycle" + } + }, + "state": { + "name": "Alagoas", + "code": "AL" + }, + "country": { + "name": "Brasil", + "code": "BR" + }, + "nonDeliveryReason": { + "description": "Nobody answered the door." + }, + "shipperPartner": { + "cnpj": "98269947000105", + "name": "partner shipz" + }, + "shipperBranch": { + "shipperType": { + "description": "Urban transport." + }, + "companyName": "Great shipz", + "trade": "Transport of goods.", + "cnpj": "57972034000165", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "22113355", + "mobileArea": "11", + "mobile": "77885511", + "email": "lois_lane@greatshipz.com" + }, + "freightPrice": { + "description": "Freight price for neighborhood Cidade Universitária.", + "firstPostalCodeInterval": "60530000", + "secondPostalCodeInterval": "60539999", + "price": 9.99, + "created": "2022-07-15T10:30:00Z" + }, + "shippingCompany": { + "companyName": "Fast Shipz", + "trade": "Shipping goods", + "cnpj": "55912377000109", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "55447799", + "mobileArea": "11", + "mobile": "77889922", + "email": "lois_lane@fastshipz.com" + }, + "invoiceOrderOfService": "73893", + "description": "Leave it at the reception", + "addressStreet": "R. Dr. Manoel Normando Lima", + "addressNumber": "25", + "addressComplement": "apartment 3058", + "addressNeighborhood": "Downtown", + "addressCity": "Curitiba", + "postalCode": "57582000", + "estimateDeliveryHour": "2024-07-18T10:30:00Z", + "created": "2024-07-02T18:41:01.933", + "initialEstimateDeliveryHour": "2024-07-18T10:30:00Z", + "deliveryDateTime": "2024-07-18T10:30:00Z", + "estimateDeliveryDistance": 40, + "travelledDeliveryDistance": 40, + "orderNumber": "839748", + "cteNumber": "123456789", + "cteDate": "2024-07-02T10:30:00Z", + "sender": "Sports store", + "senderCity": "Curitiba", + "senderState": 11, + "weight": 430, + "cubicMeter": 0.5, + "cubicMeterWeight": 430, + "value": 150.75, + "freightPriceReceived": 9.99, + "deliveryAttempts": 2, + "serviceTime": 60, + "invoiceOrderOfServiceSerie": "457", + "leadTime": "2024-07-20T15:00:00Z", + "cnpjcarrier": "12345678000195", + "cnpjbranch": "98765432000100", + "idExternal": "EXT123456", + "billingInfo": [ + { + "receivableAmount": 150.75, + "money": 50, + "cheque": 0, + "creditCard": 100.75, + "webComment": "Payment received in full.", + "carrierComment": "Customer paid with credit card.", + "billingConfirmDate": "2024-07-15T14:00:00Z", + "created": "2024-07-15T12:00:00Z" + } + ], + "deliveryServiceRouteItem": [ + { + "idDeliveryServiceRouteItem": 1, + "deliveryServiceRoute": { + "idDeliveryServiceRoute": 101, + "deliveryServiceRouteStatus": { + "description": "In transit" + }, + "deliveryServiceDate": "2024-07-20T10:00:00", + "created": "2024-07-10T08:00:00", + "startWorkDayDateTime": "2024-07-20T08:00:00", + "finishWorkDayDateTime": "2024-07-20T18:00:00", + "itinerantDate": "2024-07-20T10:00:00" + }, + "deliveryServiceRouteItemStatus": { + "description": "Completed" + }, + "nonDeliveryDescription": "N/A", + "index": 1, + "created": "2024-07-15T12:00:00", + "startDisplacementDateTime": "2024-07-20T09:00:00", + "startDisplacementLatitude": -23.55052, + "startDisplacementLongitude": -46.633308, + "finishedDisplacementLatitude": -23.55152, + "finishedDisplacementLongitude": -46.632308, + "receiverName": "Jane Smith", + "receiverDocument": "ID123456789", + "description": "Package delivered successfully.", + "deliveryArrived": "2024-07-20T10:30:00", + "comment": "Customer was satisfied with the delivery.", + "rating": 5, + "pauseDisplacementDateTime": "2024-07-20T10:00:00", + "deliveryLeft": "2024-07-20T10:45:00", + "deliveryReason": { + "description": "Regular scheduled delivery." + } + } + ] + } + } + } + } + }, + "operationId": "get_services_ByIdDeliveryService" + } + }, + "/services/routes": { + "post": { + "tags": [ + "Delivery services" + ], + "summary": "Post delivery service with route scheduling", + "operationId": "PostDeliveryServiceWithRouteAsync", + "description": "This endpoint creates a delivery service in your Tracking system. It allows the user to configure the Route Scheduling services with the Delivery Person and Route date already defined.\r\n\r\n ### Request body example\r\n\r\n```json\r\n[\r\n\t{\r\n\t\t\"deliveryServiceRoute\": {\r\n\t\t\t\"deliveryServiceDate\": \"2020-09-28\",\r\n\t\t\t\"displacementType\": \"Caminhão\",\r\n\t\t\t\"carrier\": {\r\n\t\t\t\t\"username\": \"empresa-joao.silva\"\r\n\t\t\t},\r\n\t\t\t\"vehicle\": {\r\n\t\t\t\t\"registrationPlate\": \"XPT-0123\"\r\n\t\t\t},\r\n\t\t\t\"addressStart\": {\r\n\t\t\t\t\"addressStreet\": \"Avenida das Américas\",\r\n\t\t\t\t\"addressNumber\": \"5000\",\r\n\t\t\t\t\"addressCity\": \"Rio de Janeiro\",\r\n\t\t\t\t\"postalCode\": \"22640102\",\r\n\t\t\t\t\"state\": \"RJ\"\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"deliveryService\": [\r\n\t\t\t{\r\n\t\t\t\t\"deliveryServiceType\": \"Entrega\",\r\n\t\t\t\t\"shipperCustomer\": {\r\n\t\t\t\t\t\"legalType\": \"PJ\",\r\n\t\t\t\t\t\"companyName\": \"COMP. BRAS. DE TECN. PARA E-COMMERCE\",\r\n\t\t\t\t\t\"cnpj\": \"05314972000174\",\r\n\t\t\t\t\t\"addressStreet\": \"Rua Praia de Botafogo\",\r\n\t\t\t\t\t\"addressNumber\": \"300\",\r\n\t\t\t\t\t\"addressComplement\": \"SL\",\r\n\t\t\t\t\t\"addressNeighborhood\": \"Botafogo\",\r\n\t\t\t\t\t\"addressCity\": \"Rio de Janeiro\",\r\n\t\t\t\t\t\"postalCode\": \"22250040\",\r\n\t\t\t\t\t\"state\": \"RJ\",\r\n\t\t\t\t\t\"phoneAreaCode\": \"21\",\r\n\t\t\t\t\t\"phoneNumber\": \"999999999\"\r\n\t\t\t\t},\r\n\t\t\t\t\"invoiceOrderOfService\": \"123456\",\r\n\t\t\t\t\"invoiceOrderOfServiceSerie\": \"2\",\r\n\t\t\t\t\"orderNumber\": \"987654321\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"deliveryServiceType\": \"Entrega\",\r\n\t\t\t\t\"shipperCustomer\": {\r\n\t\t\t\t\t\"legalType\": \"PF\",\r\n\t\t\t\t\t\"firstName\": \"Pedro\",\r\n\t\t\t\t\t\"lastName\": \"Silva\",\r\n\t\t\t\t\t\"cpf\": \"90498365778\",\r\n\t\t\t\t\t\"addressStreet\": \"Rua Praia de Botafogo\",\r\n\t\t\t\t\t\"addressNumber\": \"300\",\r\n\t\t\t\t\t\"addressComplement\": \"SL\",\r\n\t\t\t\t\t\"addressNeighborhood\": \"Botafogo\",\r\n\t\t\t\t\t\"addressCity\": \"Rio de Janeiro\",\r\n\t\t\t\t\t\"postalCode\": \"22250040\",\r\n\t\t\t\t\t\"state\": \"RJ\",\r\n\t\t\t\t\t\"phoneAreaCode\": \"21\",\r\n\t\t\t\t\t\"phoneNumber\": \"999999999\"\r\n\t\t\t\t},\r\n\t\t\t\t\"invoiceOrderOfService\": \"123457\",\r\n\t\t\t\t\"invoiceOrderOfServiceSerie\": \"2\",\r\n\t\t\t\t\"orderNumber\": \"987654322\"\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n]\r\n```\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).\n\n> Requests with a body must be sent with `Content-Type: application/json`.", + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "deliveryServiceDate" + ], + "type": "object", + "properties": { + "deliveryService": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryService" + }, + "description": "Delivery service array." + }, + "deliveryServiceRoute": { + "required": [ + "carrier", + "displacementType", + "deliveryServiceDate" + ], + "type": "object", + "description": "Delivery service route information.", + "properties": { + "carrier": { + "required": [ + "username" + ], + "type": "object", + "description": "Route carrier information.", + "properties": { + "username": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The username of the user. This field can be used for login purposes and identification.", + "example": "john_doe" + }, + "firstName": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The first name of the user.", + "example": "John" + }, + "lastName": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The last name of the user.", + "example": "Doe" + }, + "cpf": { + "maxLength": 14, + "minLength": 0, + "type": "string", + "description": "The CPF document number of the user.", + "example": "12345678909" + }, + "email": { + "maxLength": 254, + "minLength": 0, + "type": "string", + "description": "The email address of the user.", + "example": "john.doe@example.com" + }, + "mobileAreaCode": { + "maxLength": 3, + "minLength": 0, + "type": "string", + "description": "The area code for the user's mobile phone.", + "example": "011" + }, + "mobile": { + "maxLength": 10, + "minLength": 0, + "type": "string", + "description": "The mobile phone number of the user.", + "example": "987654321" + }, + "phoneAreaCode": { + "maxLength": 3, + "minLength": 0, + "type": "string", + "description": "The area code for the user's telephone.", + "example": "011" + }, + "phone": { + "maxLength": 10, + "minLength": 0, + "type": "string", + "description": "The telephone number of the user.", + "example": "123456789" + }, + "idExternalCarrier": { + "maxLength": 30, + "minLength": 0, + "type": "string", + "description": "An external identifier for the carrier associated with the user.", + "example": "CARRIER12345" + }, + "rg": { + "maxLength": 12, + "minLength": 0, + "type": "string", + "description": "The RG document number of the user.", + "example": "MG12345678" + }, + "idShipperBranch": { + "type": "integer", + "format": "int32", + "description": "The unique identifier for the shipper branch associated with the user.", + "example": 102 + }, + "idShippingCompany": { + "type": "integer", + "format": "int32", + "description": "The unique identifier for the shipping company associated with the user.", + "example": 203 + } + } + }, + "displacementType": { + "maxLength": 15, + "minLength": 0, + "type": "string", + "description": "Displacement type.", + "example": "moto" + }, + "vehicle": { + "type": "object", + "description": "Vehicle information.", + "properties": { + "registrationPlate": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Vehicle registration plate.", + "example": "CCC-9999" + } + } + }, + "deliveryServiceRouteTimeOfDay": { + "maxLength": 10, + "minLength": 0, + "type": "string", + "description": "The time of day for the delivery service route.", + "example": "morning" + }, + "deliveryServiceDate": { + "type": "string", + "format": "date-time", + "description": "The date and time when the delivery service is scheduled to occur.", + "example": "2024-07-20T10:00:00Z" + }, + "idExternalRoute": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "An external identifier for the delivery service route.", + "example": "ROUTE12345" + }, + "itinerantDate": { + "type": "string", + "format": "date-time", + "description": "The date and time of the itinerant delivery service.", + "example": "2024-07-20T12:00:00Z" + }, + "addressStart": { + "type": "object", + "description": "Address of the start of the delivery route.", + "properties": { + "addressStreet": { + "type": "string", + "description": "The street of the address.", + "example": "Main St" + }, + "addressNumber": { + "type": "string", + "description": "The number of the building or house on the street.", + "example": "456" + }, + "postalCode": { + "type": "string", + "description": "The postal code of the location, which is used for mail delivery purposes.", + "example": "12345678" + }, + "addressCity": { + "type": "string", + "description": "The city in which the address is located.", + "example": "São Paulo" + }, + "state": { + "maxLength": 2, + "minLength": 0, + "type": "string", + "description": "The state or province code where the address is located.", + "example": "SP" + } + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "headers": {} + } + } + }, + "get": { + "tags": [ + "Delivery services" + ], + "summary": "Get delivery services list by route", + "description": "This endpoint retrieves a list of Delivery Services by Route Item Date Async.\r\n> We strongly recommend that a call to a VTEX Tracking GET endpoint is made only once every 6 hours. Retrieving data from the same endpoint more than once during a 6-hour window represents a load to our API that will slow down the overall usage of systems.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "status", + "in": "query", + "description": "Current status of the delivery service. Includes the following statuses as possible values: `Ativo`, `Roteirizado`, `Realizado`, `EmAndamento`, `NaoRealizado`.", + "style": "form", + "schema": { + "type": "string", + "example": "Ativo" + } + }, + { + "name": "dateInit", + "in": "query", + "description": "Initial date of registration of the requested service. The date format is `yyyy-mm-dd`.", + "style": "form", + "schema": { + "type": "string", + "example": "2024-05-28" + } + }, + { + "name": "dateEnd", + "in": "query", + "description": "End date of registration of the requested service. The date format is `yyyy-mm-dd`.\n\r\n\rMake sure that the period of time between `dateInit` and `dateEnd` is not greater than 30 days.", + "style": "form", + "schema": { + "type": "string", + "example": "2024-06-15" + } + }, + { + "name": "pageSize", + "in": "query", + "description": "Number of items shown per consultation page. The default is `25`.", + "style": "form", + "schema": { + "type": "integer", + "example": 40 + } + }, + { + "name": "page", + "in": "query", + "description": "The desired page for the consultation.", + "style": "form", + "schema": { + "type": "integer", + "example": 1 + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginationResultDeliveryServiceResponsev11" + }, + "example": { + "page": 1, + "pageSize": 1, + "totalCount": 1, + "data": [ + { + "pictures": [ + "https://lojadobreno.vteximg.com.br/arquivos/ids/155467-292-292/image-5d7ad76ad1954c53adecab4138319034.jpg?v=637321899584500000", + "https://lojadobreno.vteximg.com.br/arquivos/ids/155467-292-292/image-5d7ad76ad1954c53adecab4138319034.jpg?v=5435795425346573450" + ], + "idDeliveryService": 2878267, + "deliveryServiceType": { + "description": "Entrega" + }, + "deliveryServiceStatus": { + "description": "Ativo" + }, + "shipper": { + "companyName": "My Example Store" + }, + "shipperCustomer": { + "idShipperCustomer": 2766024, + "email": "expedicao@bramamateriais.com.br", + "firstName": "Clark", + "lastName": "Kent", + "cpf": "12345678900", + "addressStreet": "R. Dr. Manoel Normando Lima", + "addressNumber": "25", + "addressComplement": "Apartment 3058", + "addressNeighborhood": "Downtown", + "addressCity": "Curitiba", + "postalCode": "57072710", + "state": { + "name": "Alagoas", + "code": "AL" + }, + "country": { + "name": "Brasil", + "code": "BR" + }, + "created": "2024-06-17T17:04:07.457", + "companyName": "Gil", + "cnpj": "20212790000186", + "legalType": { + "description": "PJ" + }, + "idExternalShipperCustomer": "123456abc", + "phoneAreaCode": "11", + "phoneNumber": "97238885" + }, + "carrier": { + "username": "clark_kent", + "firstName": "Clark", + "lastName": "Kent", + "cpf": "61266367080", + "email": "clark_kent@examplemail.com", + "cnpjtransportCompany": "20212790000186", + "mobileAreaCode": "11", + "mobile": "78244657", + "phoneAreaCode": "11", + "phone": "55558898", + "created": "2020-07-15T10:30:00Z", + "idExternalCarrier": "123456789-abc", + "isCarrierAppOnline": true, + "shippingCompany": { + "companyName": "Fast Shipz", + "trade": "Shipping goods", + "cnpj": "55912377000109", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "55447799", + "mobileArea": "11", + "mobile": "77889922", + "email": "lois_lane@fastshipz.com" + }, + "rg": "199178744" + }, + "displacementType": { + "description": "moto", + "vehicleType": { + "description": "Motorcycle" + } + }, + "state": { + "name": "Alagoas", + "code": "AL" + }, + "country": { + "name": "Brasil", + "code": "BR" + }, + "nonDeliveryReason": { + "description": "Nobody answered the door." + }, + "shipperPartner": { + "cnpj": "98269947000105", + "name": "partner shipz" + }, + "shipperBranch": { + "shipperType": { + "description": "Urban transport." + }, + "companyName": "Great shipz", + "trade": "Transport of goods.", + "cnpj": "57972034000165", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "22113355", + "mobileArea": "11", + "mobile": "77885511", + "email": "lois_lane@greatshipz.com" + }, + "freightPrice": { + "description": "Freight price for neighborhood Cidade Universitária.", + "firstPostalCodeInterval": "60530000", + "secondPostalCodeInterval": "60539999", + "price": 9.99, + "created": "2022-07-15T10:30:00Z" + }, + "shippingCompany": { + "companyName": "Fast Shipz", + "trade": "Shipping goods", + "cnpj": "55912377000109", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "55447799", + "mobileArea": "11", + "mobile": "77889922", + "email": "lois_lane@fastshipz.com" + }, + "invoiceOrderOfService": "73893", + "description": "Leave it at the reception", + "addressStreet": "R. Dr. Manoel Normando Lima", + "addressNumber": "25", + "addressComplement": "apartment 3058", + "addressNeighborhood": "Downtown", + "addressCity": "Curitiba", + "postalCode": "57582000", + "estimateDeliveryHour": "2024-07-18T10:30:00Z", + "created": "2024-07-02T18:41:01.933", + "initialEstimateDeliveryHour": "2024-07-18T10:30:00Z", + "deliveryDateTime": "2024-07-18T10:30:00Z", + "estimateDeliveryDistance": 40, + "travelledDeliveryDistance": 40, + "orderNumber": "839748", + "cteNumber": "123456789", + "cteDate": "2024-07-02T10:30:00Z", + "sender": "Sports store", + "senderCity": "Curitiba", + "senderState": 11, + "weight": 430, + "cubicMeter": 0.5, + "cubicMeterWeight": 430, + "value": 150.75, + "freightPriceReceived": 9.99, + "deliveryAttempts": 2, + "serviceTime": 60, + "invoiceOrderOfServiceSerie": "457", + "leadTime": "2024-07-20T15:00:00Z", + "cnpjcarrier": "12345678000195", + "cnpjbranch": "98765432000100", + "idExternal": "EXT123456", + "billingInfo": [ + { + "receivableAmount": 150.75, + "money": 50, + "cheque": 0, + "creditCard": 100.75, + "webComment": "Payment received in full.", + "carrierComment": "Customer paid with credit card.", + "billingConfirmDate": "2024-07-15T14:00:00Z", + "created": "2024-07-15T12:00:00Z" + } + ], + "deliveryServiceRouteItem": [ + { + "idDeliveryServiceRouteItem": 1, + "deliveryServiceRoute": { + "idDeliveryServiceRoute": 101, + "deliveryServiceRouteStatus": { + "description": "In transit" + }, + "deliveryServiceDate": "2024-07-20T10:00:00", + "created": "2024-07-10T08:00:00", + "startWorkDayDateTime": "2024-07-20T08:00:00", + "finishWorkDayDateTime": "2024-07-20T18:00:00", + "itinerantDate": "2024-07-20T10:00:00" + }, + "deliveryServiceRouteItemStatus": { + "description": "Completed" + }, + "nonDeliveryDescription": "N/A", + "index": 1, + "created": "2024-07-15T12:00:00", + "startDisplacementDateTime": "2024-07-20T09:00:00", + "startDisplacementLatitude": -23.55052, + "startDisplacementLongitude": -46.633308, + "finishedDisplacementLatitude": -23.55152, + "finishedDisplacementLongitude": -46.632308, + "receiverName": "Jane Smith", + "receiverDocument": "ID123456789", + "description": "Package delivered successfully.", + "deliveryArrived": "2024-07-20T10:30:00", + "comment": "Customer was satisfied with the delivery.", + "rating": 5, + "pauseDisplacementDateTime": "2024-07-20T10:00:00", + "deliveryLeft": "2024-07-20T10:45:00", + "deliveryReason": { + "description": "Regular scheduled delivery." + } + } + ] + } + ] + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_services_routes" + } + }, + "/services/invoice": { + "get": { + "tags": [ + "Delivery services" + ], + "summary": "Get delivery service by invoice", + "description": "This endpoint retrieves a given Service's information by filtering through the chosen invoice number.\r\n> We strongly recommend that a call to a VTEX Tracking GET endpoint is made only once every 6 hours. Retrieving data from the same endpoint more than once during a 6-hour window represents a load to our API that will slow down the overall usage of systems.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "invoice", + "in": "query", + "description": "Invoice code.", + "style": "form", + "schema": { + "type": "string", + "example": "24382" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginationResultDeliveryServiceResponsev11" + }, + "example": { + "page": 1, + "pageSize": 1, + "totalCount": 1, + "data": [ + { + "pictures": [ + "https://lojadobreno.vteximg.com.br/arquivos/ids/155467-292-292/image-5d7ad76ad1954c53adecab4138319034.jpg?v=637321899584500000", + "https://lojadobreno.vteximg.com.br/arquivos/ids/155467-292-292/image-5d7ad76ad1954c53adecab4138319034.jpg?v=5435795425346573450" + ], + "idDeliveryService": 2878267, + "deliveryServiceType": { + "description": "Entrega" + }, + "deliveryServiceStatus": { + "description": "Ativo" + }, + "shipper": { + "companyName": "My Example Store" + }, + "shipperCustomer": { + "idShipperCustomer": 2766024, + "email": "expedicao@bramamateriais.com.br", + "firstName": "Clark", + "lastName": "Kent", + "cpf": "12345678900", + "addressStreet": "R. Dr. Manoel Normando Lima", + "addressNumber": "25", + "addressComplement": "Apartment 3058", + "addressNeighborhood": "Downtown", + "addressCity": "Curitiba", + "postalCode": "57072710", + "state": { + "name": "Alagoas", + "code": "AL" + }, + "country": { + "name": "Brasil", + "code": "BR" + }, + "created": "2024-06-17T17:04:07.457", + "companyName": "Gil", + "cnpj": "20212790000186", + "legalType": { + "description": "PJ" + }, + "idExternalShipperCustomer": "123456abc", + "phoneAreaCode": "11", + "phoneNumber": "97238885" + }, + "carrier": { + "username": "clark_kent", + "firstName": "Clark", + "lastName": "Kent", + "cpf": "61266367080", + "email": "clark_kent@examplemail.com", + "cnpjtransportCompany": "20212790000186", + "mobileAreaCode": "11", + "mobile": "78244657", + "phoneAreaCode": "11", + "phone": "55558898", + "created": "2020-07-15T10:30:00Z", + "idExternalCarrier": "123456789-abc", + "isCarrierAppOnline": true, + "shippingCompany": { + "companyName": "Fast Shipz", + "trade": "Shipping goods", + "cnpj": "55912377000109", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "55447799", + "mobileArea": "11", + "mobile": "77889922", + "email": "lois_lane@fastshipz.com" + }, + "rg": "199178744" + }, + "displacementType": { + "description": "moto", + "vehicleType": { + "description": "Motorcycle" + } + }, + "state": { + "name": "Alagoas", + "code": "AL" + }, + "country": { + "name": "Brasil", + "code": "BR" + }, + "nonDeliveryReason": { + "description": "Nobody answered the door." + }, + "shipperPartner": { + "cnpj": "98269947000105", + "name": "partner shipz" + }, + "shipperBranch": { + "shipperType": { + "description": "Urban transport." + }, + "companyName": "Great shipz", + "trade": "Transport of goods.", + "cnpj": "57972034000165", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "22113355", + "mobileArea": "11", + "mobile": "77885511", + "email": "lois_lane@greatshipz.com" + }, + "freightPrice": { + "description": "Freight price for neighborhood Cidade Universitária.", + "firstPostalCodeInterval": "60530000", + "secondPostalCodeInterval": "60539999", + "price": 9.99, + "created": "2022-07-15T10:30:00Z" + }, + "shippingCompany": { + "companyName": "Fast Shipz", + "trade": "Shipping goods", + "cnpj": "55912377000109", + "companyContact": "Lois Lane", + "telephoneArea": "11", + "telephone": "55447799", + "mobileArea": "11", + "mobile": "77889922", + "email": "lois_lane@fastshipz.com" + }, + "invoiceOrderOfService": "73893", + "description": "Leave it at the reception", + "addressStreet": "R. Dr. Manoel Normando Lima", + "addressNumber": "25", + "addressComplement": "apartment 3058", + "addressNeighborhood": "Downtown", + "addressCity": "Curitiba", + "postalCode": "57582000", + "estimateDeliveryHour": "2024-07-18T10:30:00Z", + "created": "2024-07-02T18:41:01.933", + "initialEstimateDeliveryHour": "2024-07-18T10:30:00Z", + "deliveryDateTime": "2024-07-18T10:30:00Z", + "estimateDeliveryDistance": 40, + "travelledDeliveryDistance": 40, + "orderNumber": "839748", + "cteNumber": "123456789", + "cteDate": "2024-07-02T10:30:00Z", + "sender": "Sports store", + "senderCity": "Curitiba", + "senderState": 11, + "weight": 430, + "cubicMeter": 0.5, + "cubicMeterWeight": 430, + "value": 150.75, + "freightPriceReceived": 9.99, + "deliveryAttempts": 2, + "serviceTime": 60, + "invoiceOrderOfServiceSerie": "457", + "leadTime": "2024-07-20T15:00:00Z", + "cnpjcarrier": "12345678000195", + "cnpjbranch": "98765432000100", + "idExternal": "EXT123456", + "billingInfo": [ + { + "receivableAmount": 150.75, + "money": 50, + "cheque": 0, + "creditCard": 100.75, + "webComment": "Payment received in full.", + "carrierComment": "Customer paid with credit card.", + "billingConfirmDate": "2024-07-15T14:00:00Z", + "created": "2024-07-15T12:00:00Z" + } + ], + "deliveryServiceRouteItem": [ + { + "idDeliveryServiceRouteItem": 1, + "deliveryServiceRoute": { + "idDeliveryServiceRoute": 101, + "deliveryServiceRouteStatus": { + "description": "In transit" + }, + "deliveryServiceDate": "2024-07-20T10:00:00", + "created": "2024-07-10T08:00:00", + "startWorkDayDateTime": "2024-07-20T08:00:00", + "finishWorkDayDateTime": "2024-07-20T18:00:00", + "itinerantDate": "2024-07-20T10:00:00" + }, + "deliveryServiceRouteItemStatus": { + "description": "Completed" + }, + "nonDeliveryDescription": "N/A", + "index": 1, + "created": "2024-07-15T12:00:00", + "startDisplacementDateTime": "2024-07-20T09:00:00", + "startDisplacementLatitude": -23.55052, + "startDisplacementLongitude": -46.633308, + "finishedDisplacementLatitude": -23.55152, + "finishedDisplacementLongitude": -46.632308, + "receiverName": "Jane Smith", + "receiverDocument": "ID123456789", + "description": "Package delivered successfully.", + "deliveryArrived": "2024-07-20T10:30:00", + "comment": "Customer was satisfied with the delivery.", + "rating": 5, + "pauseDisplacementDateTime": "2024-07-20T10:00:00", + "deliveryLeft": "2024-07-20T10:45:00", + "deliveryReason": { + "description": "Regular scheduled delivery." + } + } + ] + } + ] + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not Found" + } + }, + "operationId": "get_services_invoice" + } + } + }, + "components": { + "schemas": { + "PaginationResultDeliveryServiceResponsev11": { + "description": "Paginated delivery service response.", + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32", + "description": "Number of the page that was returned." + }, + "pageSize": { + "type": "integer", + "format": "int32", + "description": "Number of items per returned page." + }, + "totalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of pages given the page size and total results." + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeliveryServiceResponse_v1_1" + }, + "description": "Array where each item contains information of a delivery service." + } + } + }, + "DeliveryService": { + "type": "array", + "description": "Array of delivery services.", + "items": { + "type": "object", + "description": "Delivery service information.", + "properties": { + "deliveryServiceType": { + "maxLength": 11, + "minLength": 0, + "type": "string", + "description": "The type of delivery service being provided. The maximum length is 11 characters.", + "example": "Express" + }, + "idExternalShipperCustomer": { + "maxLength": 30, + "minLength": 0, + "type": "string", + "description": "External identifier for the shipper customer. The maximum length is 30 characters.", + "example": "EXT123456" + }, + "shipperCustomer": { + "required": [ + "legalType", + "addressStreet", + "postalCode" + ], + "type": "object", + "description": "Shipper customer information.", + "properties": { + "legalType": { + "maxLength": 2, + "minLength": 2, + "type": "string", + "description": "The legal type of the shipper customer. It is a 2-character code representing the legal classification.", + "example": "PF" + }, + "email": { + "maxLength": 254, + "minLength": 0, + "type": "string", + "description": "The email address of the shipper customer. The maximum length is 254 characters.", + "example": "customer@example.com" + }, + "firstName": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The first name of the shipper customer. The maximum length is 100 characters.", + "example": "John" + }, + "lastName": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The last name of the shipper customer. The maximum length is 100 characters.", + "example": "Doe" + }, + "cpf": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "The CPF (Cadastro de Pessoas Físicas) number of the shipper customer. This is a unique identifier for individuals in Brazil.", + "example": "12345678900" + }, + "addressStreet": { + "maxLength": 150, + "minLength": 0, + "type": "string", + "description": "The street address of the shipper customer. The maximum length is 150 characters.", + "example": "Avenida Teodoro Sampaio" + }, + "addressNumber": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "The address number of the shipper customer. The maximum length is 50 characters.", + "example": "456" + }, + "addressComplement": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Additional address information, such as apartment or suite number. The maximum length is 50 characters.", + "example": "Apt 789" + }, + "addressNeighborhood": { + "maxLength": 150, + "minLength": 0, + "type": "string", + "description": "The neighborhood of the shipper customer's address. The maximum length is 150 characters.", + "example": "Brás" + }, + "addressCity": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The city of the shipper customer's address. The maximum length is 100 characters.", + "example": "São Paulo" + }, + "postalCode": { + "maxLength": 9, + "minLength": 0, + "type": "string", + "description": "The postal code of the shipper customer's address. The maximum length is 9 characters.", + "example": "12345-678" + }, + "state": { + "maxLength": 2, + "minLength": 2, + "type": "string", + "description": "The state code of the shipper customer's address. It is a 2-character code.", + "example": "SP" + }, + "companyName": { + "maxLength": 150, + "minLength": 0, + "type": "string", + "description": "The name of the shipper customer's company. The maximum length is 150 characters.", + "example": "ABC Corp" + }, + "cnpj": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "The CNPJ (Cadastro Nacional da Pessoa Jurídica) number of the shipper customer's company. This is a unique identifier for Brazilian companies.", + "example": "12345678000195" + }, + "idExternalShipperCustomer": { + "maxLength": 30, + "minLength": 0, + "type": "string", + "description": "An external identifier for the shipper customer, used for integration with other systems. The maximum length is 30 characters.", + "example": "EXT123456" + }, + "phoneAreaCode": { + "maxLength": 3, + "minLength": 0, + "type": "string", + "description": "The area code of the shipper customer's phone number. The maximum length is 3 characters.", + "example": "11" + }, + "phoneNumber": { + "maxLength": 12, + "minLength": 0, + "type": "string", + "description": "The phone number of the shipper customer. The maximum length is 12 characters.", + "example": "987654321" + } + } + }, + "invoiceOrderOfService": { + "type": "string", + "description": "The order of service associated with the invoice.", + "example": "INV123456" + }, + "invoiceOrderOfServiceSerie": { + "maxLength": 3, + "minLength": 0, + "type": "string", + "description": "A series or batch identifier for the invoice order of service, with a maximum length of 3 characters.", + "example": "A12" + }, + "description": { + "type": "string", + "description": "Description of the service or delivery. This field provides additional information about the order.", + "example": "Delivery of electronics from warehouse to customer." + }, + "sender": { + "type": "string", + "description": "The name or identifier of the sender of the delivery.", + "example": "John Doe" + }, + "cnpjShipperPartner": { + "type": "string", + "description": "The CNPJ of the shipper partner. This is a unique identifier for Brazilian companies.", + "example": "12345678000195" + }, + "orderNumber": { + "maxLength": 200, + "minLength": 0, + "type": "string", + "description": "Order number.", + "example": "987654321" + }, + "deliveryServiceHighLighter": { + "maxLength": 11, + "minLength": 0, + "type": "string", + "description": "A highlighter or special identifier for the delivery service, with a maximum length of 11 characters.", + "example": "HIGHLIGHT1" + }, + "latitude": { + "type": "number", + "description": "The geographic latitude of the delivery location.", + "example": -23.55052 + }, + "longitude": { + "type": "number", + "description": "The geographic longitude of the delivery location.", + "example": -46.633308 + }, + "deliveryServiceScheduling": { + "type": "object", + "description": "Delivery service scheduling information.", + "properties": { + "shipperCustomerSchedulingDateTime": { + "type": "string", + "format": "date-time", + "description": "The date and time when the shipper's customer has scheduled the delivery.", + "example": "2024-07-15T10:30:00Z" + }, + "shipperSchedulingDateTime": { + "type": "string", + "format": "date-time", + "description": "The date and time when the shipper has scheduled the delivery.", + "example": "2024-07-14T08:00:00Z" + }, + "morningPeriod": { + "type": "boolean", + "description": "Indicates if the delivery is scheduled for the morning period (`true`) or not (`false`).", + "example": true + }, + "afternoonPeriod": { + "type": "boolean", + "description": "Indicates if the delivery is scheduled for the afternoon period (`true`) or not (`false`).", + "example": false + }, + "nightPeriod": { + "type": "boolean", + "description": "Indicates if the delivery is scheduled for the night period (`true`) or not (`false`).", + "example": false + }, + "origin": { + "type": "integer", + "format": "int32", + "description": "The origin code of the delivery service, usually an integer representing the location or depot.", + "example": 123 + } + } + }, + "cnpjcarrier": { + "type": "string", + "description": "The CNPJ (Cadastro Nacional da Pessoa Jurídica) number of the carrier company.", + "example": "04816548000197" + }, + "cnpjbranch": { + "type": "string", + "description": "The CNPJ number of the branch of the carrier company.", + "example": "05314972000174" + }, + "idExternal": { + "maxLength": 30, + "minLength": 0, + "type": "string", + "description": "External ID of the delivery service.", + "example": "987654abc" + }, + "idShippingCompany": { + "type": "integer", + "format": "int32", + "description": "ID of the shipping company.", + "example": 123456 + }, + "packingList": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Packing list.", + "example": "1 x SKU 12; 3 x SKU 57" + }, + "packingListDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time of the packing list.", + "example": "2024-07-15T15:31:45Z" + }, + "integrationDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time of the integration.", + "example": "2024-07-15T15:31:45Z" + } + } + } + }, + "DeliveryServiceResponse_v1_1": { + "type": "object", + "description": "Delivery service response.", + "properties": { + "pictures": { + "type": "array", + "description": "Pictures array.", + "items": { + "type": "string", + "description": "Picture URL." + } + }, + "idDeliveryService": { + "type": "integer", + "format": "int32", + "description": "ID of the delivery service." + }, + "deliveryServiceType": { + "type": "object", + "description": "Delivery service type information.", + "properties": { + "description": { + "type": "string", + "description": "Description of the delivery service type." + } + } + }, + "deliveryServiceStatus": { + "type": "object", + "description": "Delivery service status information.", + "properties": { + "description": { + "type": "string", + "description": "Description of the delivery service status." + } + } + }, + "shipper": { + "type": "object", + "description": "Shipper information.", + "properties": { + "companyName": { + "type": "string", + "description": "Shipper company name." + } + } + }, + "shipperCustomer": { + "type": "object", + "description": "Shipper customer information.", + "properties": { + "idShipperCustomer": { + "type": "integer", + "format": "int32", + "description": "Unique identifier for the shipper customer." + }, + "email": { + "type": "string", + "description": "Email address of the shipper customer." + }, + "firstName": { + "type": "string", + "description": "First name of the shipper customer." + }, + "lastName": { + "type": "string", + "description": "Last name of the shipper customer." + }, + "cpf": { + "type": "string", + "description": "CPF number of the shipper customer." + }, + "addressStreet": { + "type": "string", + "description": "Street of the shipper customer address." + }, + "addressNumber": { + "type": "string", + "description": "Address number of the shipper customer." + }, + "addressComplement": { + "type": "string", + "description": "Address complement of the shipper customer." + }, + "addressNeighborhood": { + "type": "string", + "description": "Neighborhood of the shipper customer's address." + }, + "addressCity": { + "type": "string", + "description": "City of the shipper customer's address." + }, + "postalCode": { + "type": "string", + "description": "Postal code of the shipper customer's address." + }, + "state": { + "$ref": "#/components/schemas/StateResponse" + }, + "country": { + "$ref": "#/components/schemas/CountryResponse" + }, + "created": { + "type": "string", + "format": "date-time", + "description": "Date and time when the shipper customer record was created." + }, + "companyName": { + "type": "string", + "description": "Company name of the shipper customer." + }, + "cnpj": { + "type": "string", + "description": "CNPJ number of the shipper customer." + }, + "legalType": { + "type": "object", + "nullable": true, + "description": "Legal type information.", + "properties": { + "description": { + "type": "string", + "description": "Description of the legal type of the shipper customer." + } + } + }, + "idExternalShipperCustomer": { + "type": "string", + "nullable": true, + "description": "External identifier for the shipper customer." + }, + "phoneAreaCode": { + "type": "string", + "description": "Area code for the shipper customer's phone number." + }, + "phoneNumber": { + "type": "string", + "description": "Phone number of the shipper customer." + } + } + }, + "carrier": { + "type": "object", + "description": "Carrier information.", + "properties": { + "username": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "A string representing the username of the carrier." + }, + "firstName": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "A string representing the first name of the carrier." + }, + "lastName": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "A string representing the last name of the carrier." + }, + "cpf": { + "maxLength": 14, + "minLength": 0, + "type": "string", + "description": "A string representing the Brazilian CPF number of the carrier." + }, + "email": { + "maxLength": 254, + "minLength": 0, + "type": "string", + "description": "A string representing the email address of the carrier." + }, + "cnpjtransportCompany": { + "type": "string", + "description": "A string representing the CNPJ number of the transport company associated with the carrier." + }, + "mobileAreaCode": { + "maxLength": 10, + "minLength": 0, + "type": "string", + "description": "A string representing the area code for the carrier's mobile phone." + }, + "mobile": { + "maxLength": 10, + "minLength": 0, + "type": "string", + "description": "The carrier's mobile phone number." + }, + "phoneAreaCode": { + "maxLength": 3, + "minLength": 0, + "type": "string", + "description": "Area code for the carrier's landline phone." + }, + "phone": { + "maxLength": 10, + "minLength": 0, + "type": "string", + "description": "A string representing the carrier's landline phone number." + }, + "created": { + "type": "string", + "format": "date-time", + "description": "Date and time when the carrier record was created." + }, + "idExternalCarrier": { + "maxLength": 30, + "minLength": 0, + "type": "string", + "description": "External identifier for the carrier." + }, + "isCarrierAppOnline": { + "type": "boolean", + "description": "A boolean indicating whether the carrier is currently online in the carrier application." + }, + "shippingCompany": { + "$ref": "#/components/schemas/ShippingCompanyResponse" + }, + "rg": { + "maxLength": 12, + "minLength": 0, + "type": "string", + "description": "A string representing the Brazilian RG number of the carrier." + } + } + }, + "displacementType": { + "type": "object", + "description": "Displacement type information.", + "properties": { + "description": { + "type": "string", + "description": "Displacement type description." + }, + "vehicleType": { + "type": "object", + "description": "Vehicle type information.", + "properties": { + "description": { + "type": "string", + "description": "Description of the vehicle type." + } + } + } + } + }, + "state": { + "$ref": "#/components/schemas/StateResponse" + }, + "country": { + "$ref": "#/components/schemas/CountryResponse" + }, + "nonDeliveryReason": { + "type": "object", + "description": "Information about the reason for non-delivery.", + "properties": { + "description": { + "type": "string", + "description": "A description explaining the reason for non-delivery." + } + } + }, + "shipperPartner": { + "type": "object", + "description": "Shipper partner information.", + "properties": { + "cnpj": { + "type": "string", + "description": "The CNPJ number of the Shipper partner." + }, + "name": { + "type": "string", + "description": "Shipper partner name." + } + } + }, + "shipperBranch": { + "type": "object", + "description": "Shipper branch information.", + "properties": { + "shipperType": { + "type": "object", + "description": "Shipper type information.", + "properties": { + "description": { + "type": "string", + "description": "Description of the type of shipper." + } + } + }, + "companyName": { + "type": "string", + "description": "The name of the shipping company branch." + }, + "trade": { + "type": "string", + "description": "The trade or industry in which the shipping company operates." + }, + "cnpj": { + "type": "string", + "description": "The CNPJ (Cadastro Nacional da Pessoa Jurídica) number of the shipping company branch." + }, + "companyContact": { + "type": "string", + "description": "The primary contact person's name at the shipping company branch." + }, + "telephoneArea": { + "type": "string", + "description": "The area code for the shipping company branch's telephone number." + }, + "telephone": { + "type": "string", + "description": "The telephone number of the shipping company branch." + }, + "mobileArea": { + "type": "string", + "description": "The area code for the shipping company branch's mobile number." + }, + "mobile": { + "type": "string", + "description": "The mobile number of the shipping company branch." + }, + "email": { + "type": "string", + "description": "The email address of the shipping company branch." + } + } + }, + "freightPrice": { + "type": "object", + "description": "Freight price information.", + "properties": { + "description": { + "type": "string", + "description": "Description of the freight price details." + }, + "firstPostalCodeInterval": { + "type": "string", + "description": "The starting range of postal codes for which the freight price applies." + }, + "secondPostalCodeInterval": { + "type": "string", + "description": "The ending range of postal codes for which the freight price applies." + }, + "price": { + "type": "number", + "description": "The price charged for the freight service." + }, + "created": { + "type": "string", + "format": "date-time", + "description": "The date and time when the freight price was created." + } + } + }, + "shippingCompany": { + "$ref": "#/components/schemas/ShippingCompanyResponse" + }, + "invoiceOrderOfService": { + "type": "string", + "description": "The invoice order number for the service." + }, + "description": { + "type": "string", + "description": "Delivery service description." + }, + "addressStreet": { + "type": "string", + "description": "The street address for the delivery." + }, + "addressNumber": { + "type": "string", + "description": "The number of the building or house for the delivery address." + }, + "addressComplement": { + "type": "string", + "description": "Additional address details, such as apartment or suite number." + }, + "addressNeighborhood": { + "type": "string", + "description": "The neighborhood of the delivery address." + }, + "addressCity": { + "type": "string", + "description": "The city of the delivery address." + }, + "postalCode": { + "type": "string", + "description": "The postal code of the delivery address." + }, + "estimateDeliveryHour": { + "type": "string", + "format": "date-time", + "description": "The estimated delivery time and date." + }, + "created": { + "type": "string", + "format": "date-time", + "description": "The date and time when the delivery service was created." + }, + "initialEstimateDeliveryHour": { + "type": "string", + "format": "date-time", + "description": "The initially estimated delivery time and date." + }, + "deliveryDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time of delivery." + }, + "estimateDeliveryDistance": { + "type": "integer", + "format": "int32", + "description": "Delivery service esimate distance." + }, + "travelledDeliveryDistance": { + "type": "integer", + "format": "int32", + "description": "The total distance traveled for the delivery, measured in kilometers." + }, + "orderNumber": { + "type": "string", + "description": "The unique number associated with the order." + }, + "cteNumber": { + "type": "string", + "description": "The number of the CTE (Conhecimento de Transporte Eletrônico), an electronic transport document used in Brazil." + }, + "cteDate": { + "type": "string", + "format": "date-time", + "description": "The date and time when the CTE was issued." + }, + "sender": { + "type": "string", + "description": "The name of the sender of the delivery." + }, + "senderCity": { + "type": "string", + "description": "The city from which the delivery was sent." + }, + "senderState": { + "type": "integer", + "format": "int32", + "description": "The state code from which the delivery was sent." + }, + "weight": { + "type": "number", + "description": "The weight of the delivery item in kilograms." + }, + "cubicMeter": { + "type": "number", + "description": "The volume of the delivery item in cubic meters." + }, + "cubicMeterWeight": { + "type": "number", + "description": "The weight of the delivery item calculated based on its volume." + }, + "value": { + "type": "number", + "description": "The monetary value of the delivery item." + }, + "freightPriceReceived": { + "type": "number", + "description": "The amount received for the freight service." + }, + "deliveryAttempts": { + "type": "integer", + "format": "int32", + "description": "The number of attempts made to deliver the item." + }, + "serviceTime": { + "type": "integer", + "format": "int32", + "description": "The time spent on the delivery service, measured in minutes." + }, + "invoiceOrderOfServiceSerie": { + "type": "string", + "description": "The series of the invoice order of service." + }, + "leadTime": { + "type": "string", + "format": "date-time", + "description": "The lead time for the delivery, calculated from the order date to the delivery date." + }, + "cnpjcarrier": { + "type": "string", + "description": "The CNPJ (Cadastro Nacional da Pessoa Jurídica) number of the carrier company." + }, + "cnpjbranch": { + "type": "string", + "description": "The CNPJ number of the branch of the carrier company." + }, + "idExternal": { + "type": "string", + "description": "External ID of the delivery service." + }, + "billingInfo": { + "type": "array", + "description": "Billing information array.", + "items": { + "type": "object", + "description": "Billing information.", + "properties": { + "receivableAmount": { + "type": "number", + "description": "The total amount receivable for the billing item." + }, + "money": { + "type": "number", + "description": "The amount received in cash." + }, + "cheque": { + "type": "number", + "description": "The amount received via cheque." + }, + "creditCard": { + "type": "number", + "description": "The amount received via credit card." + }, + "webComment": { + "type": "string", + "description": "Comments or notes made via the web interface regarding the billing item." + }, + "carrierComment": { + "type": "string", + "description": "Comments or notes made by the carrier regarding the billing item." + }, + "billingConfirmDate": { + "type": "string", + "format": "date-time", + "description": "The date and time when the billing was confirmed." + }, + "created": { + "type": "string", + "format": "date-time", + "description": "The date and time when the billing item was created." + } + } + } + }, + "deliveryServiceRouteItem": { + "type": "array", + "description": "Array in which each item corresponds to a delivery service route.", + "items": { + "type": "object", + "description": "Delivery service route information.", + "properties": { + "idDeliveryServiceRouteItem": { + "type": "integer", + "format": "int32", + "description": "Unique identifier for the delivery service route item." + }, + "deliveryServiceRoute": { + "description": "Delivery service route.", + "type": "object", + "properties": { + "idDeliveryServiceRoute": { + "type": "integer", + "format": "int32", + "description": "Unique identifier for the delivery service route." + }, + "deliveryServiceRouteStatus": { + "type": "object", + "description": "Delivery service route status.", + "properties": { + "description": { + "type": "string", + "description": "Delivery service route status response description." + } + } + }, + "deliveryServiceDate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the delivery service." + }, + "created": { + "type": "string", + "format": "date-time", + "description": "Date and time when the delivery service route was created." + }, + "startWorkDayDateTime": { + "type": "string", + "format": "date-time", + "description": "Start date and time of the workday." + }, + "finishWorkDayDateTime": { + "type": "string", + "format": "date-time", + "description": "Finish date and time of the workday." + }, + "itinerantDate": { + "type": "string", + "format": "date-time", + "description": "Date and time of the itinerant delivery service." + } + } + }, + "deliveryServiceRouteItemStatus": { + "type": "object", + "description": "Delivery service route item status.", + "properties": { + "description": { + "type": "string", + "description": "Description of the delivery service route item status." + } + } + }, + "nonDeliveryDescription": { + "type": "string", + "description": "Description of why the delivery was not completed." + }, + "index": { + "type": "integer", + "format": "int32", + "description": "Index of the delivery service route item." + }, + "created": { + "type": "string", + "format": "date-time", + "description": "Date and time when the delivery service route item was created." + }, + "startDisplacementDateTime": { + "type": "string", + "format": "date-time", + "description": "Start date and time of the displacement." + }, + "startDisplacementLatitude": { + "type": "number", + "description": "Latitude at the start of the displacement." + }, + "startDisplacementLongitude": { + "type": "number", + "description": "Longitude at the start of the displacement." + }, + "finishedDisplacementLatitude": { + "type": "number", + "description": "Latitude at the end of the displacement." + }, + "finishedDisplacementLongitude": { + "type": "number", + "description": "Longitude at the end of the displacement." + }, + "receiverName": { + "type": "string", + "description": "Name of the person receiving the delivery." + }, + "receiverDocument": { + "type": "string", + "description": "Document or identification of the receiver." + }, + "description": { + "type": "string", + "description": "Description of the delivery service route item." + }, + "deliveryArrived": { + "type": "string", + "format": "date-time", + "description": "Date and time when the delivery arrived." + }, + "comment": { + "type": "string", + "description": "Additional comments about the delivery service route item." + }, + "rating": { + "type": "integer", + "format": "int32", + "description": "Rating given to the delivery service." + }, + "pauseDisplacementDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time when the displacement was paused." + }, + "deliveryLeft": { + "type": "string", + "format": "date-time", + "description": "Date and time when the delivery was left or completed." + }, + "deliveryReason": { + "type": "object", + "description": "Delivery reason.", + "properties": { + "description": { + "type": "string", + "description": "Description of the reason for the delivery." + } + } + } + } + } + } + } + }, + "StateResponse": { + "type": "object", + "description": "State response.", + "properties": { + "name": { + "type": "string", + "description": "State name." + }, + "code": { + "type": "string", + "description": "State code." + } + } + }, + "CountryResponse": { + "type": "object", + "description": "Country response.", + "properties": { + "name": { + "type": "string", + "description": "Country name." + }, + "code": { + "type": "string", + "description": "Country code." + } + } + }, + "ShippingCompanyResponse": { + "type": "object", + "description": "Shipping company response.", + "properties": { + "companyName": { + "type": "string", + "description": "The name of the company." + }, + "trade": { + "type": "string", + "description": "The trade or industry in which the company operates." + }, + "cnpj": { + "type": "string", + "description": "The CNPJ number, which is the Brazilian national registry of legal entities." + }, + "companyContact": { + "type": "string", + "description": "The primary contact person's name at the company." + }, + "telephoneArea": { + "type": "string", + "description": "The area code for the company's telephone number." + }, + "telephone": { + "type": "string", + "description": "The company's telephone number." + }, + "mobileArea": { + "type": "string", + "description": "The area code for the company's mobile number." + }, + "mobile": { + "type": "string", + "description": "The company's mobile number." + }, + "email": { + "type": "string", + "description": "The company's email address." + } + } + } + } + }, + "tags": [ + { + "name": "Authentication" + }, + { + "name": "Delivery services" + } + ] +} diff --git a/clients/manitou/overlays/.gitkeep b/clients/manitou/overlays/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/apim-gen/.gitignore b/tools/apim-gen/.gitignore new file mode 100644 index 0000000000..b947077876 --- /dev/null +++ b/tools/apim-gen/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +dist/ diff --git a/tools/apim-gen/package-lock.json b/tools/apim-gen/package-lock.json new file mode 100644 index 0000000000..d05c424fcd --- /dev/null +++ b/tools/apim-gen/package-lock.json @@ -0,0 +1,2023 @@ +{ + "name": "@vtex/apim-gen", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@vtex/apim-gen", + "version": "1.0.0", + "dependencies": { + "commander": "^12.1.0", + "yaml": "^2.6.1", + "zod": "^3.24.1" + }, + "bin": { + "apim-gen": "dist/cli.js" + }, + "devDependencies": { + "@types/node": "^22.10.5", + "tsx": "^4.19.2", + "typescript": "^5.7.3", + "vitest": "^2.1.8" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", + "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", + "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", + "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", + "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", + "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", + "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", + "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", + "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", + "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", + "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", + "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", + "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", + "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", + "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", + "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", + "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", + "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", + "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", + "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", + "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", + "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", + "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", + "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", + "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", + "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.19.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.9.tgz", + "integrity": "sha512-PD03/U8g1F9T9MI+1OBisaIARhSzeidsUjQaf51fOxrfjeiKN9bLVO06lHuHYjxdnqLWJijJHfqXPSJri2EM2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@vitest/expect": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz", + "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz", + "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.9", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", + "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz", + "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.9", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz", + "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz", + "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz", + "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "4.13.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", + "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/rollup": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", + "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.57.1", + "@rollup/rollup-android-arm64": "4.57.1", + "@rollup/rollup-darwin-arm64": "4.57.1", + "@rollup/rollup-darwin-x64": "4.57.1", + "@rollup/rollup-freebsd-arm64": "4.57.1", + "@rollup/rollup-freebsd-x64": "4.57.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", + "@rollup/rollup-linux-arm-musleabihf": "4.57.1", + "@rollup/rollup-linux-arm64-gnu": "4.57.1", + "@rollup/rollup-linux-arm64-musl": "4.57.1", + "@rollup/rollup-linux-loong64-gnu": "4.57.1", + "@rollup/rollup-linux-loong64-musl": "4.57.1", + "@rollup/rollup-linux-ppc64-gnu": "4.57.1", + "@rollup/rollup-linux-ppc64-musl": "4.57.1", + "@rollup/rollup-linux-riscv64-gnu": "4.57.1", + "@rollup/rollup-linux-riscv64-musl": "4.57.1", + "@rollup/rollup-linux-s390x-gnu": "4.57.1", + "@rollup/rollup-linux-x64-gnu": "4.57.1", + "@rollup/rollup-linux-x64-musl": "4.57.1", + "@rollup/rollup-openbsd-x64": "4.57.1", + "@rollup/rollup-openharmony-arm64": "4.57.1", + "@rollup/rollup-win32-arm64-msvc": "4.57.1", + "@rollup/rollup-win32-ia32-msvc": "4.57.1", + "@rollup/rollup-win32-x64-gnu": "4.57.1", + "@rollup/rollup-win32-x64-msvc": "4.57.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz", + "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitest": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz", + "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.9", + "@vitest/mocker": "2.1.9", + "@vitest/pretty-format": "^2.1.9", + "@vitest/runner": "2.1.9", + "@vitest/snapshot": "2.1.9", + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.9", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.9", + "@vitest/ui": "2.1.9", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/tools/apim-gen/package.json b/tools/apim-gen/package.json new file mode 100644 index 0000000000..c47904e537 --- /dev/null +++ b/tools/apim-gen/package.json @@ -0,0 +1,29 @@ +{ + "name": "@vtex/apim-gen", + "version": "1.0.0", + "description": "CLI tool to generate Azure APIM-compatible OpenAPI specs from VTEX originals", + "type": "module", + "main": "dist/cli.js", + "bin": { + "apim-gen": "dist/cli.js" + }, + "scripts": { + "build": "tsc", + "dev": "tsx src/cli.ts", + "test": "vitest run", + "test:watch": "vitest", + "typecheck": "tsc --noEmit", + "generate": "tsx src/cli.ts" + }, + "dependencies": { + "commander": "^12.1.0", + "yaml": "^2.6.1", + "zod": "^3.24.1" + }, + "devDependencies": { + "@types/node": "^22.10.5", + "tsx": "^4.19.2", + "typescript": "^5.7.3", + "vitest": "^2.1.8" + } +} diff --git a/tools/apim-gen/src/cli.ts b/tools/apim-gen/src/cli.ts new file mode 100644 index 0000000000..e9e1742d84 --- /dev/null +++ b/tools/apim-gen/src/cli.ts @@ -0,0 +1,55 @@ +#!/usr/bin/env node + +import { Command } from "commander"; +import { resolve, dirname } from "node:path"; +import { loadConfig } from "./config.js"; +import { runPipeline } from "./pipeline.js"; + +const program = new Command(); + +program + .name("apim-gen") + .description( + "Generate Azure APIM-compatible OpenAPI specs from VTEX originals", + ) + .version("1.0.0"); + +program + .command("generate") + .description("Generate transformed OpenAPI specs from a client config") + .argument("", "Path to the client config YAML file") + .option("--dry-run", "Show what would be generated without writing files") + .action((configPath: string, options: { dryRun?: boolean }) => { + const resolvedPath = resolve(configPath); + const configDir = dirname(resolvedPath); + + const config = loadConfig(resolvedPath); + console.log(`Generating specs for client: ${config.client}`); + + if (options.dryRun) { + console.log(` Specs dir: ${resolve(configDir, config.specsDir)}`); + console.log(` Output dir: ${resolve(configDir, config.outputDir)}`); + console.log(` Specs to process: ${config.specs.length}`); + for (const entry of config.specs) { + if (entry.split) { + for (const s of entry.split) { + console.log(` ${entry.source} → ${s.outputName}.json (split: ${s.prefix})`); + } + } else { + const out = entry.outputName ?? entry.source.replace(/\.json$/i, ""); + console.log(` ${entry.source} → ${out}.json`); + } + } + return; + } + + const results = runPipeline(config, configDir); + + console.log(`\nGenerated ${results.length} spec(s):\n`); + for (const r of results) { + console.log(` ✓ ${r.title}`); + console.log(` ${r.outputPath} (${r.pathCount} paths)`); + } + }); + +program.parse(); diff --git a/tools/apim-gen/src/config.ts b/tools/apim-gen/src/config.ts new file mode 100644 index 0000000000..774739c69d --- /dev/null +++ b/tools/apim-gen/src/config.ts @@ -0,0 +1,59 @@ +import { readFileSync } from "node:fs"; +import { parse as parseYaml } from "yaml"; +import { z } from "zod"; + +const ParamIdentifierSchema = z.object({ + name: z.string(), + in: z.enum(["query", "header", "path", "cookie"]).optional(), +}); + +const SplitEntrySchema = z.object({ + prefix: z.string(), + outputName: z.string(), + title: z.string().optional(), +}); + +const SpecEntrySchema = z.object({ + source: z.string(), + outputName: z.string().optional(), + title: z.string().optional(), + openapiVersion: z.string().optional(), + split: z.array(SplitEntrySchema).optional(), + removeParams: z.array(ParamIdentifierSchema).optional(), + removePaths: z.array(z.string()).optional(), + removeFalsePathParams: z.boolean().optional(), + ensureOperationId: z.boolean().optional(), + descriptionNote: z.string().optional(), +}); + +const DefaultsSchema = z.object({ + openapiVersion: z.string().default("3.0.3"), + removeParams: z.array(ParamIdentifierSchema).default([]), + removeFalsePathParams: z.boolean().default(true), + ensureOperationId: z.boolean().default(true), + descriptionNote: z + .string() + .default( + "Requests with a body must be sent with `Content-Type: application/json`.", + ), +}); + +const ClientConfigSchema = z.object({ + client: z.string(), + outputDir: z.string(), + specsDir: z.string().default("."), + defaults: DefaultsSchema.default({}), + specs: z.array(SpecEntrySchema).min(1), +}); + +export type ParamIdentifier = z.infer; +export type SplitEntry = z.infer; +export type SpecEntry = z.infer; +export type Defaults = z.infer; +export type ClientConfig = z.infer; + +export function loadConfig(configPath: string): ClientConfig { + const raw = readFileSync(configPath, "utf-8"); + const parsed = parseYaml(raw); + return ClientConfigSchema.parse(parsed); +} diff --git a/tools/apim-gen/src/pipeline.ts b/tools/apim-gen/src/pipeline.ts new file mode 100644 index 0000000000..f2c071e162 --- /dev/null +++ b/tools/apim-gen/src/pipeline.ts @@ -0,0 +1,157 @@ +import { readFileSync, writeFileSync, mkdirSync } from "node:fs"; +import { resolve, dirname } from "node:path"; +import type { ClientConfig, SpecEntry, Defaults, ParamIdentifier } from "./config.js"; +import type { OpenAPISpec } from "./types.js"; +import { deepClone } from "./types.js"; +import { + splitByPrefix, + removeParams, + removeFalsePathParams, + removePaths, + setOpenapiVersion, + ensureOperationId, + addDescriptionNote, + cleanupComponents, +} from "./transforms/index.js"; + +export interface PipelineResult { + outputPath: string; + title: string; + pathCount: number; +} + +function loadSpec(specsDir: string, source: string): OpenAPISpec { + const filePath = resolve(specsDir, source); + const raw = readFileSync(filePath, "utf-8"); + try { + return JSON.parse(raw) as OpenAPISpec; + } catch (err) { + const message = err instanceof Error ? err.message : String(err); + throw new Error(`Failed to parse ${filePath}: ${message}`); + } +} + +function mergeParams( + defaults: ParamIdentifier[], + perSpec: ParamIdentifier[] | undefined, +): ParamIdentifier[] { + if (!perSpec || perSpec.length === 0) return defaults; + const seen = new Set(); + const result: ParamIdentifier[] = []; + for (const list of [defaults, perSpec]) { + for (const p of list) { + const key = `${p.name.toLowerCase()}:${p.in ?? "*"}`; + if (!seen.has(key)) { + seen.add(key); + result.push(p); + } + } + } + return result; +} + +function resolveOption(perSpec: T | undefined, defaultVal: T): T { + return perSpec !== undefined ? perSpec : defaultVal; +} + +function applyTransforms( + spec: OpenAPISpec, + entry: SpecEntry, + defaults: Defaults, +): OpenAPISpec { + // 1. Remove specific params (merge defaults + per-spec) + const paramMatchers = mergeParams(defaults.removeParams, entry.removeParams); + if (paramMatchers.length > 0) { + removeParams(spec, paramMatchers); + } + + // 2. Remove false path params + if (resolveOption(entry.removeFalsePathParams, defaults.removeFalsePathParams)) { + removeFalsePathParams(spec); + } + + // 3. Remove specific paths + if (entry.removePaths && entry.removePaths.length > 0) { + removePaths(spec, entry.removePaths); + } + + // 4. Set OpenAPI version + const version = resolveOption(entry.openapiVersion, defaults.openapiVersion); + setOpenapiVersion(spec, version); + + // 5. Ensure operation IDs + if (resolveOption(entry.ensureOperationId, defaults.ensureOperationId)) { + ensureOperationId(spec); + } + + // 6. Add description note + const note = resolveOption(entry.descriptionNote, defaults.descriptionNote); + if (note) { + addDescriptionNote(spec, note); + } + + // 7. Cleanup unused components (always last) + cleanupComponents(spec); + + return spec; +} + +function writeSpec(outputDir: string, outputName: string, spec: OpenAPISpec): string { + const outputPath = resolve(outputDir, `${outputName}.json`); + mkdirSync(dirname(outputPath), { recursive: true }); + writeFileSync(outputPath, JSON.stringify(spec, null, 2) + "\n", "utf-8"); + return outputPath; +} + +export function runPipeline( + config: ClientConfig, + configDir: string, +): PipelineResult[] { + const specsDir = resolve(configDir, config.specsDir); + const outputDir = resolve(configDir, config.outputDir); + const results: PipelineResult[] = []; + + for (const entry of config.specs) { + const original = loadSpec(specsDir, entry.source); + + if (entry.split && entry.split.length > 0) { + const splitSpecs = splitByPrefix(original, entry.split); + + for (const [outputName, subSpec] of splitSpecs) { + const splitEntry = entry.split.find((s) => s.outputName === outputName); + if (splitEntry?.title) { + subSpec.info.title = splitEntry.title; + } + applyTransforms(subSpec, entry, config.defaults); + + const outputPath = writeSpec(outputDir, outputName, subSpec); + results.push({ + outputPath, + title: subSpec.info.title, + pathCount: Object.keys(subSpec.paths).length, + }); + } + } else { + const spec = deepClone(original); + + if (entry.title) { + spec.info.title = entry.title; + } + + applyTransforms(spec, entry, config.defaults); + + const outputName = + entry.outputName ?? + entry.source.replace(/\.json$/i, "").replace(/\s+/g, "-").toLowerCase(); + + const outputPath = writeSpec(outputDir, outputName, spec); + results.push({ + outputPath, + title: spec.info.title, + pathCount: Object.keys(spec.paths).length, + }); + } + } + + return results; +} diff --git a/tools/apim-gen/src/transforms/add-description-note.ts b/tools/apim-gen/src/transforms/add-description-note.ts new file mode 100644 index 0000000000..e56f41ede5 --- /dev/null +++ b/tools/apim-gen/src/transforms/add-description-note.ts @@ -0,0 +1,22 @@ +import type { OpenAPISpec } from "../types.js"; +import { forEachOperation } from "../types.js"; + +export function addDescriptionNote( + spec: OpenAPISpec, + note: string, +): OpenAPISpec { + forEachOperation(spec, (_path, method, operation) => { + const hasBody = ["put", "post", "patch"].includes(method); + if (!hasBody) return; + if (operation.requestBody === undefined) return; + + const existing = operation.description || ""; + if (existing.includes(note)) return; + + operation.description = existing + ? `${existing}\n\n> ${note}` + : `> ${note}`; + }); + + return spec; +} diff --git a/tools/apim-gen/src/transforms/cleanup-components.ts b/tools/apim-gen/src/transforms/cleanup-components.ts new file mode 100644 index 0000000000..38f75f39e3 --- /dev/null +++ b/tools/apim-gen/src/transforms/cleanup-components.ts @@ -0,0 +1,89 @@ +import type { OpenAPISpec } from "../types.js"; + +function collectRefs(obj: unknown, refs: Set): void { + if (obj === null || obj === undefined) return; + if (typeof obj !== "object") return; + + if (Array.isArray(obj)) { + for (const item of obj) { + collectRefs(item, refs); + } + return; + } + + const record = obj as Record; + if (typeof record["$ref"] === "string") { + refs.add(record["$ref"]); + } + + for (const value of Object.values(record)) { + collectRefs(value, refs); + } +} + +function refToComponentKey(ref: string): { section: string; name: string } | null { + const match = ref.match(/^#\/components\/([^/]+)\/(.+)$/); + if (!match) return null; + return { + section: match[1], + name: match[2].replace(/~1/g, "/").replace(/~0/g, "~"), + }; +} + +export function cleanupComponents(spec: OpenAPISpec): OpenAPISpec { + if (!spec.components) return spec; + + const maxIterations = 20; + for (let i = 0; i < maxIterations; i++) { + const refs = new Set(); + + collectRefs(spec.paths, refs); + collectRefs(spec.tags, refs); + collectRefs(spec.security, refs); + + // Also collect refs from components themselves (cross-references) + if (spec.components) { + collectRefs(spec.components, refs); + } + + const referencedKeys = new Set(); + for (const ref of refs) { + const parsed = refToComponentKey(ref); + if (parsed) { + referencedKeys.add(`${parsed.section}/${parsed.name}`); + } + } + + let removedAny = false; + for (const [section, sectionValue] of Object.entries(spec.components)) { + if ( + typeof sectionValue !== "object" || + sectionValue === null || + Array.isArray(sectionValue) + ) { + continue; + } + + const sectionRecord = sectionValue as Record; + for (const name of Object.keys(sectionRecord)) { + const key = `${section}/${name}`; + if (!referencedKeys.has(key)) { + delete sectionRecord[name]; + removedAny = true; + } + } + + if (Object.keys(sectionRecord).length === 0) { + delete (spec.components as Record)[section]; + } + } + + if (!removedAny) break; + } + + if (spec.components && Object.keys(spec.components).length === 0) { + delete spec.components; + } + + return spec; +} diff --git a/tools/apim-gen/src/transforms/ensure-operation-id.ts b/tools/apim-gen/src/transforms/ensure-operation-id.ts new file mode 100644 index 0000000000..7aaea94e4b --- /dev/null +++ b/tools/apim-gen/src/transforms/ensure-operation-id.ts @@ -0,0 +1,53 @@ +import type { OpenAPISpec, HttpMethod } from "../types.js"; +import { forEachOperation } from "../types.js"; + +function generateOperationId(method: HttpMethod, path: string): string { + const parts = path + .split("/") + .filter(Boolean) + .map((part) => { + if (part.startsWith("{") && part.endsWith("}")) { + const paramName = part.slice(1, -1); + return `By${paramName.charAt(0).toUpperCase()}${paramName.slice(1)}`; + } + return part + .replace(/[^a-zA-Z0-9]/g, "_") + .split("_") + .filter(Boolean) + .map((word, i) => + i === 0 + ? word.toLowerCase() + : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(), + ) + .join(""); + }); + + const methodPrefix = method.toLowerCase(); + return `${methodPrefix}_${parts.join("_")}`; +} + +export function ensureOperationId(spec: OpenAPISpec): OpenAPISpec { + const existingIds = new Set(); + + forEachOperation(spec, (_path, _method, operation) => { + if (operation.operationId) { + existingIds.add(operation.operationId); + } + }); + + forEachOperation(spec, (path, method, operation) => { + if (operation.operationId) return; + + let candidate = generateOperationId(method, path); + let counter = 1; + while (existingIds.has(candidate)) { + candidate = `${generateOperationId(method, path)}_${counter}`; + counter++; + } + + operation.operationId = candidate; + existingIds.add(candidate); + }); + + return spec; +} diff --git a/tools/apim-gen/src/transforms/index.ts b/tools/apim-gen/src/transforms/index.ts new file mode 100644 index 0000000000..edb1889924 --- /dev/null +++ b/tools/apim-gen/src/transforms/index.ts @@ -0,0 +1,8 @@ +export { splitByPrefix } from "./split-by-prefix.js"; +export { removeParams } from "./remove-params.js"; +export { removeFalsePathParams } from "./remove-false-path-params.js"; +export { removePaths } from "./remove-paths.js"; +export { setOpenapiVersion } from "./set-openapi-version.js"; +export { ensureOperationId } from "./ensure-operation-id.js"; +export { addDescriptionNote } from "./add-description-note.js"; +export { cleanupComponents } from "./cleanup-components.js"; diff --git a/tools/apim-gen/src/transforms/remove-false-path-params.ts b/tools/apim-gen/src/transforms/remove-false-path-params.ts new file mode 100644 index 0000000000..8086ca6f75 --- /dev/null +++ b/tools/apim-gen/src/transforms/remove-false-path-params.ts @@ -0,0 +1,46 @@ +import type { + OpenAPISpec, + OpenAPIParameter, + OpenAPIParameterOrRef, +} from "../types.js"; +import { isRef, resolveRef, forEachOperation, extractPathParams } from "../types.js"; + +function filterFalsePathParams( + params: OpenAPIParameterOrRef[] | undefined, + validPathParams: string[], + spec: OpenAPISpec, +): OpenAPIParameterOrRef[] | undefined { + if (!params || params.length === 0) return params; + + const filtered = params.filter((param) => { + const resolved = isRef(param) + ? resolveRef(spec, param.$ref) + : param; + if (!resolved) return true; + if (resolved.in !== "path") return true; + return validPathParams.some( + (valid) => valid.toLowerCase() === resolved.name.toLowerCase(), + ); + }); + + return filtered.length > 0 ? filtered : undefined; +} + +export function removeFalsePathParams(spec: OpenAPISpec): OpenAPISpec { + forEachOperation(spec, (path, _method, operation, pathItem) => { + const validParams = extractPathParams(path); + + operation.parameters = filterFalsePathParams( + operation.parameters, + validParams, + spec, + ); + pathItem.parameters = filterFalsePathParams( + pathItem.parameters, + validParams, + spec, + ); + }); + + return spec; +} diff --git a/tools/apim-gen/src/transforms/remove-params.ts b/tools/apim-gen/src/transforms/remove-params.ts new file mode 100644 index 0000000000..3ae2b8153d --- /dev/null +++ b/tools/apim-gen/src/transforms/remove-params.ts @@ -0,0 +1,63 @@ +import type { + OpenAPISpec, + OpenAPIParameter, + OpenAPIParameterOrRef, +} from "../types.js"; +import { isRef, resolveRef, forEachOperation } from "../types.js"; + +export interface ParamMatcher { + name: string; + in?: string; +} + +function matchesParam( + resolved: OpenAPIParameter, + matchers: ParamMatcher[], +): boolean { + return matchers.some( + (m) => + resolved.name.toLowerCase() === m.name.toLowerCase() && + (m.in === undefined || resolved.in === m.in), + ); +} + +function filterParams( + params: OpenAPIParameterOrRef[] | undefined, + matchers: ParamMatcher[], + spec: OpenAPISpec, +): OpenAPIParameterOrRef[] | undefined { + if (!params || params.length === 0) return params; + + const filtered = params.filter((param) => { + if (isRef(param)) { + const resolved = resolveRef(spec, param.$ref); + if (!resolved) return true; + return !matchesParam(resolved, matchers); + } + return !matchesParam(param, matchers); + }); + + return filtered.length > 0 ? filtered : undefined; +} + +export function removeParams( + spec: OpenAPISpec, + matchers: ParamMatcher[], +): OpenAPISpec { + if (matchers.length === 0) return spec; + + forEachOperation(spec, (_path, _method, operation, pathItem) => { + operation.parameters = filterParams( + operation.parameters, + matchers, + spec, + ); + pathItem.parameters = filterParams( + pathItem.parameters, + matchers, + spec, + ); + }); + + return spec; +} diff --git a/tools/apim-gen/src/transforms/remove-paths.ts b/tools/apim-gen/src/transforms/remove-paths.ts new file mode 100644 index 0000000000..8cc4ebdce8 --- /dev/null +++ b/tools/apim-gen/src/transforms/remove-paths.ts @@ -0,0 +1,11 @@ +import type { OpenAPISpec } from "../types.js"; + +export function removePaths( + spec: OpenAPISpec, + pathsToRemove: string[], +): OpenAPISpec { + for (const path of pathsToRemove) { + delete spec.paths[path]; + } + return spec; +} diff --git a/tools/apim-gen/src/transforms/set-openapi-version.ts b/tools/apim-gen/src/transforms/set-openapi-version.ts new file mode 100644 index 0000000000..1de4934138 --- /dev/null +++ b/tools/apim-gen/src/transforms/set-openapi-version.ts @@ -0,0 +1,9 @@ +import type { OpenAPISpec } from "../types.js"; + +export function setOpenapiVersion( + spec: OpenAPISpec, + version: string, +): OpenAPISpec { + spec.openapi = version; + return spec; +} diff --git a/tools/apim-gen/src/transforms/split-by-prefix.ts b/tools/apim-gen/src/transforms/split-by-prefix.ts new file mode 100644 index 0000000000..3767b890b7 --- /dev/null +++ b/tools/apim-gen/src/transforms/split-by-prefix.ts @@ -0,0 +1,36 @@ +import type { OpenAPISpec, OpenAPIComponents } from "../types.js"; +import { deepClone } from "../types.js"; + +export interface SplitConfig { + prefix: string; + outputName: string; + title?: string; +} + +export function splitByPrefix( + spec: OpenAPISpec, + splits: SplitConfig[], +): Map { + const result = new Map(); + + for (const split of splits) { + const clone = deepClone(spec); + + const filteredPaths: Record = {}; + for (const [path, pathItem] of Object.entries(clone.paths)) { + if (path.startsWith(split.prefix)) { + filteredPaths[path] = pathItem; + } + } + + clone.paths = filteredPaths as OpenAPISpec["paths"]; + + if (split.title) { + clone.info.title = split.title; + } + + result.set(split.outputName, clone); + } + + return result; +} diff --git a/tools/apim-gen/src/types.ts b/tools/apim-gen/src/types.ts new file mode 100644 index 0000000000..1097d89a4b --- /dev/null +++ b/tools/apim-gen/src/types.ts @@ -0,0 +1,188 @@ +/** + * Minimal OpenAPI 3.x type definitions for the transforms. + * Not exhaustive — only covers what our transforms need to inspect/modify. + */ + +// ── OpenAPI Spec Types ────────────────────────────────────────────── + +export interface OpenAPISpec { + openapi: string; + info: OpenAPIInfo; + servers?: OpenAPIServer[]; + paths: Record; + components?: OpenAPIComponents; + security?: unknown[]; + tags?: unknown[]; + externalDocs?: unknown; + [key: string]: unknown; +} + +export interface OpenAPIInfo { + title: string; + description?: string; + version: string; + [key: string]: unknown; +} + +export interface OpenAPIServer { + url: string; + description?: string; + variables?: Record; + [key: string]: unknown; +} + +export interface OpenAPIServerVariable { + default: string; + description?: string; + enum?: string[]; + [key: string]: unknown; +} + +export interface OpenAPIPathItem { + summary?: string; + description?: string; + parameters?: OpenAPIParameterOrRef[]; + get?: OpenAPIOperation; + put?: OpenAPIOperation; + post?: OpenAPIOperation; + delete?: OpenAPIOperation; + options?: OpenAPIOperation; + head?: OpenAPIOperation; + patch?: OpenAPIOperation; + trace?: OpenAPIOperation; + [key: string]: unknown; +} + +export interface OpenAPIOperation { + operationId?: string; + summary?: string; + description?: string; + tags?: string[]; + parameters?: OpenAPIParameterOrRef[]; + requestBody?: OpenAPIRequestBodyOrRef; + responses?: Record; + security?: unknown[]; + [key: string]: unknown; +} + +export interface OpenAPIParameter { + name: string; + in: "query" | "header" | "path" | "cookie"; + description?: string; + required?: boolean; + schema?: unknown; + style?: string; + [key: string]: unknown; +} + +export interface OpenAPIRef { + $ref: string; +} + +export type OpenAPIParameterOrRef = OpenAPIParameter | OpenAPIRef; + +export interface OpenAPIRequestBody { + description?: string; + content?: Record; + required?: boolean; + [key: string]: unknown; +} + +export type OpenAPIRequestBodyOrRef = OpenAPIRequestBody | OpenAPIRef; + +export interface OpenAPIComponents { + schemas?: Record; + parameters?: Record; + responses?: Record; + requestBodies?: Record; + headers?: Record; + securitySchemes?: Record; + examples?: Record; + links?: Record; + callbacks?: Record; + [key: string]: unknown; +} + +// ── Helpers ───────────────────────────────────────────────────────── + +export const HTTP_METHODS = [ + "get", + "put", + "post", + "delete", + "options", + "head", + "patch", + "trace", +] as const; + +export type HttpMethod = (typeof HTTP_METHODS)[number]; + +export function isRef(obj: unknown): obj is OpenAPIRef { + return ( + typeof obj === "object" && + obj !== null && + "$ref" in obj && + typeof (obj as OpenAPIRef).$ref === "string" + ); +} + +/** + * Resolve a JSON $ref pointer within a spec. + * Only supports local references (starting with #/). + */ +export function resolveRef( + spec: OpenAPISpec, + ref: string, +): T | undefined { + if (!ref.startsWith("#/")) return undefined; + const parts = ref + .slice(2) + .split("/") + .map((p) => p.replace(/~1/g, "/").replace(/~0/g, "~")); + let current: unknown = spec; + for (const part of parts) { + if (typeof current !== "object" || current === null) return undefined; + current = (current as Record)[part]; + } + return current as T; +} + +/** + * Deep clone a value using structured clone. + */ +export function deepClone(value: T): T { + return structuredClone(value); +} + +/** + * Iterate over all operations in a spec, calling the callback for each. + */ +export function forEachOperation( + spec: OpenAPISpec, + callback: ( + path: string, + method: HttpMethod, + operation: OpenAPIOperation, + pathItem: OpenAPIPathItem, + ) => void, +): void { + for (const [path, pathItem] of Object.entries(spec.paths)) { + if (!pathItem) continue; + for (const method of HTTP_METHODS) { + const operation = pathItem[method]; + if (operation && typeof operation === "object") { + callback(path, method, operation as OpenAPIOperation, pathItem); + } + } + } +} + +/** + * Extract path parameter names from a URL path template. + * e.g., "/api/catalog/{productId}/sku/{skuId}" → ["productId", "skuId"] + */ +export function extractPathParams(pathTemplate: string): string[] { + const matches = pathTemplate.matchAll(/\{([^}]+)\}/g); + return Array.from(matches, (m) => m[1]); +} diff --git a/tools/apim-gen/tests/pipeline.test.ts b/tools/apim-gen/tests/pipeline.test.ts new file mode 100644 index 0000000000..e6d77961db --- /dev/null +++ b/tools/apim-gen/tests/pipeline.test.ts @@ -0,0 +1,296 @@ +import { mkdirSync, writeFileSync, readFileSync, rmSync, mkdtempSync } from "node:fs"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; +import { runPipeline } from "../src/pipeline.js"; +import type { ClientConfig } from "../src/config.js"; +import type { OpenAPISpec } from "../src/types.js"; + +function createTempDir(): string { + return mkdtempSync(join(tmpdir(), "apim-gen-test-")); +} + +function writeJsonSpec(dir: string, filename: string, spec: OpenAPISpec): void { + writeFileSync(join(dir, filename), JSON.stringify(spec), "utf-8"); +} + +function readJsonSpec(path: string): OpenAPISpec { + return JSON.parse(readFileSync(path, "utf-8")) as OpenAPISpec; +} + +describe("runPipeline", () => { + let tempDir: string; + + beforeEach(() => { + tempDir = createTempDir(); + mkdirSync(join(tempDir, "specs"), { recursive: true }); + mkdirSync(join(tempDir, "output"), { recursive: true }); + }); + + afterEach(() => { + rmSync(tempDir, { recursive: true, force: true }); + }); + + it("processes a single spec with defaults", () => { + const inputSpec: OpenAPISpec = { + openapi: "3.0.0", + info: { title: "Source API", version: "1.0.0" }, + paths: { + "/items": { + get: { + responses: { "200": { description: "OK" } }, + }, + post: { + requestBody: { content: { "application/json": {} } }, + responses: { "200": { description: "OK" } }, + }, + }, + }, + }; + + writeJsonSpec(join(tempDir, "specs"), "source.json", inputSpec); + + const config: ClientConfig = { + client: "test-client", + outputDir: "output", + specsDir: "specs", + defaults: { + openapiVersion: "3.0.3", + removeParams: [], + removeFalsePathParams: true, + ensureOperationId: true, + descriptionNote: "Send JSON.", + }, + specs: [ + { + source: "source.json", + outputName: "test-api", + }, + ], + }; + + const results = runPipeline(config, tempDir); + + expect(results).toHaveLength(1); + expect(results[0].pathCount).toBe(1); + + const output = readJsonSpec(results[0].outputPath); + expect(output.openapi).toBe("3.0.3"); + expect(output.paths["/items"].get!.operationId).toBeDefined(); + expect(output.paths["/items"].post!.description).toContain("Send JSON."); + }); + + it("processes a spec with split", () => { + const inputSpec: OpenAPISpec = { + openapi: "3.0.0", + info: { title: "Big API", version: "2.0.0" }, + paths: { + "/api/catalog/products": { + get: { operationId: "listProducts", responses: {} }, + }, + "/api/catalog/brands": { + get: { operationId: "listBrands", responses: {} }, + }, + "/api/orders/list": { + get: { operationId: "listOrders", responses: {} }, + }, + }, + }; + + writeJsonSpec(join(tempDir, "specs"), "big.json", inputSpec); + + const config: ClientConfig = { + client: "test-client", + outputDir: "output", + specsDir: "specs", + defaults: { + openapiVersion: "3.0.3", + removeParams: [], + removeFalsePathParams: false, + ensureOperationId: false, + descriptionNote: "", + }, + specs: [ + { + source: "big.json", + split: [ + { prefix: "/api/catalog", outputName: "catalog", title: "Catalog API" }, + { prefix: "/api/orders", outputName: "orders", title: "Orders API" }, + ], + }, + ], + }; + + const results = runPipeline(config, tempDir); + + expect(results).toHaveLength(2); + + const catalogResult = results.find((r) => r.title === "Catalog API")!; + expect(catalogResult.pathCount).toBe(2); + + const ordersResult = results.find((r) => r.title === "Orders API")!; + expect(ordersResult.pathCount).toBe(1); + + const catalogSpec = readJsonSpec(catalogResult.outputPath); + expect(catalogSpec.info.title).toBe("Catalog API"); + expect(catalogSpec.openapi).toBe("3.0.3"); + }); + + it("applies removeParams from defaults", () => { + const inputSpec: OpenAPISpec = { + openapi: "3.0.0", + info: { title: "Test", version: "1.0.0" }, + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [ + { name: "Content-Type", in: "header" }, + { name: "limit", in: "query" }, + ], + responses: {}, + }, + }, + }, + }; + + writeJsonSpec(join(tempDir, "specs"), "source.json", inputSpec); + + const config: ClientConfig = { + client: "test-client", + outputDir: "output", + specsDir: "specs", + defaults: { + openapiVersion: "3.0.3", + removeParams: [{ name: "Content-Type" }], + removeFalsePathParams: false, + ensureOperationId: false, + descriptionNote: "", + }, + specs: [ + { source: "source.json", outputName: "test" }, + ], + }; + + const results = runPipeline(config, tempDir); + const output = readJsonSpec(results[0].outputPath); + + const params = output.paths["/items"].get!.parameters; + expect(params).toHaveLength(1); + expect((params![0] as { name: string }).name).toBe("limit"); + }); + + it("applies custom title per spec entry", () => { + const inputSpec: OpenAPISpec = { + openapi: "3.0.0", + info: { title: "Original", version: "1.0.0" }, + paths: { + "/a": { get: { operationId: "getA", responses: {} } }, + }, + }; + + writeJsonSpec(join(tempDir, "specs"), "source.json", inputSpec); + + const config: ClientConfig = { + client: "test-client", + outputDir: "output", + specsDir: "specs", + defaults: { + openapiVersion: "3.0.3", + removeParams: [], + removeFalsePathParams: false, + ensureOperationId: false, + descriptionNote: "", + }, + specs: [ + { source: "source.json", outputName: "renamed", title: "Renamed API" }, + ], + }; + + const results = runPipeline(config, tempDir); + const output = readJsonSpec(results[0].outputPath); + expect(output.info.title).toBe("Renamed API"); + }); + + it("derives outputName from source when not specified", () => { + const inputSpec: OpenAPISpec = { + openapi: "3.0.0", + info: { title: "Test", version: "1.0.0" }, + paths: { + "/a": { get: { operationId: "getA", responses: {} } }, + }, + }; + + writeJsonSpec(join(tempDir, "specs"), "My API.json", inputSpec); + + const config: ClientConfig = { + client: "test", + outputDir: "output", + specsDir: "specs", + defaults: { + openapiVersion: "3.0.3", + removeParams: [], + removeFalsePathParams: false, + ensureOperationId: false, + descriptionNote: "", + }, + specs: [ + { source: "My API.json" }, + ], + }; + + const results = runPipeline(config, tempDir); + expect(results[0].outputPath).toContain("my-api.json"); + }); + + it("cleans up unused components", () => { + const inputSpec: OpenAPISpec = { + openapi: "3.0.0", + info: { title: "Test", version: "1.0.0" }, + paths: { + "/items": { + get: { + operationId: "getItems", + responses: { + "200": { + content: { + "application/json": { + schema: { $ref: "#/components/schemas/Item" }, + }, + }, + }, + }, + }, + }, + }, + components: { + schemas: { + Item: { type: "object" }, + Unused: { type: "string" }, + }, + }, + }; + + writeJsonSpec(join(tempDir, "specs"), "source.json", inputSpec); + + const config: ClientConfig = { + client: "test", + outputDir: "output", + specsDir: "specs", + defaults: { + openapiVersion: "3.0.3", + removeParams: [], + removeFalsePathParams: false, + ensureOperationId: false, + descriptionNote: "", + }, + specs: [ + { source: "source.json", outputName: "test" }, + ], + }; + + const results = runPipeline(config, tempDir); + const output = readJsonSpec(results[0].outputPath); + expect(output.components?.schemas).toHaveProperty("Item"); + expect(output.components?.schemas).not.toHaveProperty("Unused"); + }); +}); diff --git a/tools/apim-gen/tests/transforms/add-description-note.test.ts b/tools/apim-gen/tests/transforms/add-description-note.test.ts new file mode 100644 index 0000000000..8112c06b42 --- /dev/null +++ b/tools/apim-gen/tests/transforms/add-description-note.test.ts @@ -0,0 +1,136 @@ +import { addDescriptionNote } from "../../src/transforms/add-description-note.js"; +import type { OpenAPISpec } from "../../src/types.js"; + +const NOTE = "Send with `Content-Type: application/json`."; + +function makeSpec(overrides?: Partial): OpenAPISpec { + return { + openapi: "3.0.0", + info: { title: "Test", version: "1.0.0" }, + paths: {}, + ...overrides, + }; +} + +describe("addDescriptionNote", () => { + it("adds note to POST operations with requestBody", () => { + const spec = makeSpec({ + paths: { + "/items": { + post: { + operationId: "createItem", + requestBody: { content: { "application/json": {} } }, + }, + }, + }, + }); + + addDescriptionNote(spec, NOTE); + + expect(spec.paths["/items"].post!.description).toBe(`> ${NOTE}`); + }); + + it("adds note to PUT and PATCH operations with requestBody", () => { + const spec = makeSpec({ + paths: { + "/items/{id}": { + put: { + operationId: "updateItem", + requestBody: { content: {} }, + }, + patch: { + operationId: "patchItem", + requestBody: { content: {} }, + }, + }, + }, + }); + + addDescriptionNote(spec, NOTE); + + expect(spec.paths["/items/{id}"].put!.description).toBe(`> ${NOTE}`); + expect(spec.paths["/items/{id}"].patch!.description).toBe(`> ${NOTE}`); + }); + + it("does NOT add note to GET/DELETE operations", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { operationId: "getItems" }, + delete: { operationId: "deleteItems" }, + }, + }, + }); + + addDescriptionNote(spec, NOTE); + + expect(spec.paths["/items"].get!.description).toBeUndefined(); + expect(spec.paths["/items"].delete!.description).toBeUndefined(); + }); + + it("does NOT add note to POST without requestBody", () => { + const spec = makeSpec({ + paths: { + "/trigger": { + post: { operationId: "triggerAction" }, + }, + }, + }); + + addDescriptionNote(spec, NOTE); + + expect(spec.paths["/trigger"].post!.description).toBeUndefined(); + }); + + it("appends note to existing description", () => { + const spec = makeSpec({ + paths: { + "/items": { + post: { + operationId: "createItem", + description: "Creates an item.", + requestBody: { content: {} }, + }, + }, + }, + }); + + addDescriptionNote(spec, NOTE); + + expect(spec.paths["/items"].post!.description).toBe( + `Creates an item.\n\n> ${NOTE}`, + ); + }); + + it("is idempotent — does not add the same note twice", () => { + const spec = makeSpec({ + paths: { + "/items": { + post: { + operationId: "createItem", + requestBody: { content: {} }, + }, + }, + }, + }); + + addDescriptionNote(spec, NOTE); + addDescriptionNote(spec, NOTE); + + const desc = spec.paths["/items"].post!.description!; + const occurrences = desc.split(NOTE).length - 1; + expect(occurrences).toBe(1); + }); + + it("returns the spec reference", () => { + const spec = makeSpec({ paths: {} }); + const result = addDescriptionNote(spec, NOTE); + expect(result).toBe(spec); + }); + + it("handles empty paths", () => { + const spec = makeSpec({ paths: {} }); + addDescriptionNote(spec, NOTE); + expect(Object.keys(spec.paths)).toHaveLength(0); + }); +}); diff --git a/tools/apim-gen/tests/transforms/cleanup-components.test.ts b/tools/apim-gen/tests/transforms/cleanup-components.test.ts new file mode 100644 index 0000000000..8d5c8647ae --- /dev/null +++ b/tools/apim-gen/tests/transforms/cleanup-components.test.ts @@ -0,0 +1,222 @@ +import { cleanupComponents } from "../../src/transforms/cleanup-components.js"; +import type { OpenAPISpec } from "../../src/types.js"; + +function makeSpec(overrides?: Partial): OpenAPISpec { + return { + openapi: "3.0.0", + info: { title: "Test", version: "1.0.0" }, + paths: {}, + ...overrides, + }; +} + +describe("cleanupComponents", () => { + it("removes unreferenced schemas", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + responses: { + "200": { + content: { + "application/json": { + schema: { $ref: "#/components/schemas/Item" }, + }, + }, + }, + }, + }, + }, + }, + components: { + schemas: { + Item: { type: "object" }, + Unused: { type: "string" }, + }, + }, + }); + + cleanupComponents(spec); + + expect(spec.components?.schemas).toHaveProperty("Item"); + expect(spec.components?.schemas).not.toHaveProperty("Unused"); + }); + + it("removes components section entirely when nothing is referenced", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { operationId: "getItems", responses: {} }, + }, + }, + components: { + schemas: { + Orphan: { type: "object" }, + }, + }, + }); + + cleanupComponents(spec); + + expect(spec.components).toBeUndefined(); + }); + + it("is a no-op when there are no components", () => { + const spec = makeSpec({ + paths: { "/a": { get: { operationId: "getA" } } }, + }); + + cleanupComponents(spec); + + expect(spec.components).toBeUndefined(); + }); + + it("keeps cross-referenced components", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + responses: { + "200": { + content: { + "application/json": { + schema: { $ref: "#/components/schemas/ItemList" }, + }, + }, + }, + }, + }, + }, + }, + components: { + schemas: { + ItemList: { + type: "array", + items: { $ref: "#/components/schemas/Item" }, + }, + Item: { type: "object", properties: { id: { type: "string" } } }, + }, + }, + }); + + cleanupComponents(spec); + + expect(spec.components?.schemas).toHaveProperty("ItemList"); + expect(spec.components?.schemas).toHaveProperty("Item"); + }); + + it("iteratively removes components that only reference removed components", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + responses: { + "200": { + content: { + "application/json": { + schema: { $ref: "#/components/schemas/Used" }, + }, + }, + }, + }, + }, + }, + }, + components: { + schemas: { + Used: { type: "object" }, + ChainA: { + type: "object", + properties: { + b: { $ref: "#/components/schemas/ChainB" }, + }, + }, + ChainB: { + type: "object", + properties: { + c: { $ref: "#/components/schemas/ChainC" }, + }, + }, + ChainC: { type: "string" }, + }, + }, + }); + + cleanupComponents(spec); + + expect(spec.components?.schemas).toHaveProperty("Used"); + expect(spec.components?.schemas).not.toHaveProperty("ChainA"); + expect(spec.components?.schemas).not.toHaveProperty("ChainB"); + expect(spec.components?.schemas).not.toHaveProperty("ChainC"); + }); + + it("handles multiple component sections (schemas, parameters, responses)", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [{ $ref: "#/components/parameters/Limit" }], + responses: { + "200": { $ref: "#/components/responses/Success" }, + }, + }, + }, + }, + components: { + schemas: { + Orphan: { type: "object" }, + }, + parameters: { + Limit: { name: "limit", in: "query" }, + Unused: { name: "unused", in: "header" }, + }, + responses: { + Success: { description: "OK" }, + }, + }, + }); + + cleanupComponents(spec); + + expect(spec.components?.schemas).toBeUndefined(); + expect(spec.components?.parameters).toHaveProperty("Limit"); + expect(spec.components?.parameters).not.toHaveProperty("Unused"); + expect(spec.components?.responses).toHaveProperty("Success"); + }); + + it("removes empty component sections", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [{ $ref: "#/components/parameters/Limit" }], + }, + }, + }, + components: { + schemas: { + Unused: { type: "object" }, + }, + parameters: { + Limit: { name: "limit", in: "query" }, + }, + }, + }); + + cleanupComponents(spec); + + expect(spec.components?.schemas).toBeUndefined(); + expect(spec.components?.parameters).toHaveProperty("Limit"); + }); + + it("returns the spec reference", () => { + const spec = makeSpec({ paths: {} }); + const result = cleanupComponents(spec); + expect(result).toBe(spec); + }); +}); diff --git a/tools/apim-gen/tests/transforms/ensure-operation-id.test.ts b/tools/apim-gen/tests/transforms/ensure-operation-id.test.ts new file mode 100644 index 0000000000..c99a28e5f0 --- /dev/null +++ b/tools/apim-gen/tests/transforms/ensure-operation-id.test.ts @@ -0,0 +1,123 @@ +import { ensureOperationId } from "../../src/transforms/ensure-operation-id.js"; +import type { OpenAPISpec } from "../../src/types.js"; + +function makeSpec(overrides?: Partial): OpenAPISpec { + return { + openapi: "3.0.0", + info: { title: "Test", version: "1.0.0" }, + paths: {}, + ...overrides, + }; +} + +describe("ensureOperationId", () => { + it("generates operationId for operations without one", () => { + const spec = makeSpec({ + paths: { + "/api/items": { + get: { responses: {} }, + }, + }, + }); + + ensureOperationId(spec); + + expect(spec.paths["/api/items"].get!.operationId).toBeDefined(); + expect(spec.paths["/api/items"].get!.operationId).toContain("get"); + }); + + it("preserves existing operationIds", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { operationId: "myCustomId", responses: {} }, + }, + }, + }); + + ensureOperationId(spec); + + expect(spec.paths["/items"].get!.operationId).toBe("myCustomId"); + }); + + it("generates unique ids for same path different methods", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { responses: {} }, + post: { responses: {} }, + }, + }, + }); + + ensureOperationId(spec); + + const getId = spec.paths["/items"].get!.operationId; + const postId = spec.paths["/items"].post!.operationId; + expect(getId).not.toBe(postId); + }); + + it("handles path parameters in generated ids", () => { + const spec = makeSpec({ + paths: { + "/items/{itemId}": { + get: { responses: {} }, + }, + }, + }); + + ensureOperationId(spec); + + const opId = spec.paths["/items/{itemId}"].get!.operationId!; + expect(opId).toContain("ByItemId"); + }); + + it("deduplicates with counter when collision occurs", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { operationId: "get_items", responses: {} }, + }, + "/items/": { + get: { responses: {} }, + }, + }, + }); + + ensureOperationId(spec); + + const ids = new Set(); + for (const pathItem of Object.values(spec.paths)) { + if (pathItem.get?.operationId) { + ids.add(pathItem.get.operationId); + } + } + expect(ids.size).toBe(2); + }); + + it("is a no-op when all operations already have ids", () => { + const spec = makeSpec({ + paths: { + "/a": { get: { operationId: "getA", responses: {} } }, + "/b": { post: { operationId: "postB", responses: {} } }, + }, + }); + + ensureOperationId(spec); + + expect(spec.paths["/a"].get!.operationId).toBe("getA"); + expect(spec.paths["/b"].post!.operationId).toBe("postB"); + }); + + it("handles empty paths", () => { + const spec = makeSpec({ paths: {} }); + ensureOperationId(spec); + expect(Object.keys(spec.paths)).toHaveLength(0); + }); + + it("returns the spec reference", () => { + const spec = makeSpec({ paths: {} }); + const result = ensureOperationId(spec); + expect(result).toBe(spec); + }); +}); diff --git a/tools/apim-gen/tests/transforms/remove-false-path-params.test.ts b/tools/apim-gen/tests/transforms/remove-false-path-params.test.ts new file mode 100644 index 0000000000..22124d41dd --- /dev/null +++ b/tools/apim-gen/tests/transforms/remove-false-path-params.test.ts @@ -0,0 +1,203 @@ +import { removeFalsePathParams } from "../../src/transforms/remove-false-path-params.js"; +import type { OpenAPISpec } from "../../src/types.js"; + +function makeSpec(overrides?: Partial): OpenAPISpec { + return { + openapi: "3.0.0", + info: { title: "Test", version: "1.0.0" }, + paths: {}, + ...overrides, + }; +} + +describe("removeFalsePathParams", () => { + it("removes path params not present in URL template", () => { + const spec = makeSpec({ + paths: { + "/items/{itemId}": { + get: { + operationId: "getItem", + parameters: [ + { name: "itemId", in: "path", required: true }, + { name: "accountName", in: "path", required: true }, + ], + }, + }, + }, + }); + + removeFalsePathParams(spec); + + const params = spec.paths["/items/{itemId}"].get!.parameters; + expect(params).toHaveLength(1); + expect((params![0] as { name: string }).name).toBe("itemId"); + }); + + it("keeps non-path params even if not in URL template", () => { + const spec = makeSpec({ + paths: { + "/items/{itemId}": { + get: { + operationId: "getItem", + parameters: [ + { name: "itemId", in: "path", required: true }, + { name: "limit", in: "query" }, + { name: "Authorization", in: "header" }, + ], + }, + }, + }, + }); + + removeFalsePathParams(spec); + + const params = spec.paths["/items/{itemId}"].get!.parameters; + expect(params).toHaveLength(3); + }); + + it("handles path-level parameters", () => { + const spec = makeSpec({ + paths: { + "/items/{itemId}": { + parameters: [ + { name: "itemId", in: "path", required: true }, + { name: "environment", in: "path", required: true }, + ], + get: { operationId: "getItem" }, + }, + }, + }); + + removeFalsePathParams(spec); + + const params = spec.paths["/items/{itemId}"].parameters; + expect(params).toHaveLength(1); + expect((params![0] as { name: string }).name).toBe("itemId"); + }); + + it("resolves $ref params before checking", () => { + const spec = makeSpec({ + paths: { + "/items/{itemId}": { + get: { + operationId: "getItem", + parameters: [ + { $ref: "#/components/parameters/AccountName" }, + { name: "itemId", in: "path", required: true }, + ], + }, + }, + }, + components: { + parameters: { + AccountName: { + name: "accountName", + in: "path", + required: true, + }, + }, + }, + }); + + removeFalsePathParams(spec); + + const params = spec.paths["/items/{itemId}"].get!.parameters; + expect(params).toHaveLength(1); + expect((params![0] as { name: string }).name).toBe("itemId"); + }); + + it("sets parameters to undefined when all path params are false", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [ + { name: "accountName", in: "path", required: true }, + ], + }, + }, + }, + }); + + removeFalsePathParams(spec); + + expect(spec.paths["/items"].get!.parameters).toBeUndefined(); + }); + + it("is a no-op when all path params are valid", () => { + const spec = makeSpec({ + paths: { + "/items/{itemId}/details/{detailId}": { + get: { + operationId: "getDetail", + parameters: [ + { name: "itemId", in: "path", required: true }, + { name: "detailId", in: "path", required: true }, + ], + }, + }, + }, + }); + + removeFalsePathParams(spec); + + const params = + spec.paths["/items/{itemId}/details/{detailId}"].get!.parameters; + expect(params).toHaveLength(2); + }); + + it("handles paths with no parameters gracefully", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { operationId: "getItems" }, + }, + }, + }); + + removeFalsePathParams(spec); + + expect(spec.paths["/items"].get!.parameters).toBeUndefined(); + }); + + it("matches path param names case-insensitively", () => { + const spec = makeSpec({ + paths: { + "/items/{ItemId}": { + get: { + operationId: "getItem", + parameters: [ + { name: "itemid", in: "path", required: true }, + ], + }, + }, + }, + }); + + removeFalsePathParams(spec); + + const params = spec.paths["/items/{ItemId}"].get!.parameters; + expect(params).toHaveLength(1); + }); + + it("keeps unresolvable $ref params", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [ + { $ref: "#/components/parameters/Unknown" }, + ], + }, + }, + }, + }); + + removeFalsePathParams(spec); + + const params = spec.paths["/items"].get!.parameters; + expect(params).toHaveLength(1); + }); +}); diff --git a/tools/apim-gen/tests/transforms/remove-params.test.ts b/tools/apim-gen/tests/transforms/remove-params.test.ts new file mode 100644 index 0000000000..1c773f87c5 --- /dev/null +++ b/tools/apim-gen/tests/transforms/remove-params.test.ts @@ -0,0 +1,197 @@ +import { removeParams } from "../../src/transforms/remove-params.js"; +import type { OpenAPISpec } from "../../src/types.js"; + +function makeSpec(overrides?: Partial): OpenAPISpec { + return { + openapi: "3.0.0", + info: { title: "Test", version: "1.0.0" }, + paths: {}, + ...overrides, + }; +} + +describe("removeParams", () => { + it("removes inline operation parameters by name (case-insensitive)", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [ + { name: "X-Custom-Header", in: "header" }, + { name: "limit", in: "query" }, + ], + }, + }, + }, + }); + + removeParams(spec, [{ name: "x-custom-header" }]); + + const params = spec.paths["/items"].get!.parameters; + expect(params).toHaveLength(1); + expect((params![0] as { name: string }).name).toBe("limit"); + }); + + it("removes inline path-level parameters", () => { + const spec = makeSpec({ + paths: { + "/items": { + parameters: [ + { name: "Accept", in: "header" }, + { name: "id", in: "path", required: true }, + ], + get: { operationId: "getItems" }, + }, + }, + }); + + removeParams(spec, [{ name: "Accept" }]); + + const params = spec.paths["/items"].parameters; + expect(params).toHaveLength(1); + expect((params![0] as { name: string }).name).toBe("id"); + }); + + it("removes $ref parameters by resolving them", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [ + { $ref: "#/components/parameters/ContentType" }, + { name: "limit", in: "query" }, + ], + }, + }, + }, + components: { + parameters: { + ContentType: { + name: "Content-Type", + in: "header", + }, + }, + }, + }); + + removeParams(spec, [{ name: "content-type" }]); + + const params = spec.paths["/items"].get!.parameters; + expect(params).toHaveLength(1); + expect((params![0] as { name: string }).name).toBe("limit"); + }); + + it("matches by name AND in when 'in' is specified", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [ + { name: "token", in: "header" }, + { name: "token", in: "query" }, + ], + }, + }, + }, + }); + + removeParams(spec, [{ name: "token", in: "header" }]); + + const params = spec.paths["/items"].get!.parameters; + expect(params).toHaveLength(1); + expect((params![0] as { in: string }).in).toBe("query"); + }); + + it("returns spec unchanged when matchers array is empty", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [{ name: "limit", in: "query" }], + }, + }, + }, + }); + + removeParams(spec, []); + + expect(spec.paths["/items"].get!.parameters).toHaveLength(1); + }); + + it("sets parameters to undefined when all are removed", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [{ name: "Accept", in: "header" }], + }, + }, + }, + }); + + removeParams(spec, [{ name: "accept" }]); + + expect(spec.paths["/items"].get!.parameters).toBeUndefined(); + }); + + it("keeps unresolvable $ref params intact", () => { + const spec = makeSpec({ + paths: { + "/items": { + get: { + operationId: "getItems", + parameters: [ + { $ref: "#/components/parameters/Missing" }, + { name: "limit", in: "query" }, + ], + }, + }, + }, + }); + + removeParams(spec, [{ name: "limit" }]); + + const params = spec.paths["/items"].get!.parameters; + expect(params).toHaveLength(1); + expect((params![0] as { $ref: string }).$ref).toBe( + "#/components/parameters/Missing", + ); + }); + + it("removes params across multiple operations and paths", () => { + const spec = makeSpec({ + paths: { + "/a": { + get: { + operationId: "getA", + parameters: [ + { name: "X-Remove", in: "header" }, + { name: "keep", in: "query" }, + ], + }, + post: { + operationId: "postA", + parameters: [{ name: "X-Remove", in: "header" }], + }, + }, + "/b": { + get: { + operationId: "getB", + parameters: [{ name: "X-Remove", in: "header" }], + }, + }, + }, + }); + + removeParams(spec, [{ name: "x-remove" }]); + + expect(spec.paths["/a"].get!.parameters).toHaveLength(1); + expect(spec.paths["/a"].post!.parameters).toBeUndefined(); + expect(spec.paths["/b"].get!.parameters).toBeUndefined(); + }); +}); diff --git a/tools/apim-gen/tests/transforms/remove-paths.test.ts b/tools/apim-gen/tests/transforms/remove-paths.test.ts new file mode 100644 index 0000000000..df7a5fd0d8 --- /dev/null +++ b/tools/apim-gen/tests/transforms/remove-paths.test.ts @@ -0,0 +1,62 @@ +import { removePaths } from "../../src/transforms/remove-paths.js"; +import type { OpenAPISpec } from "../../src/types.js"; + +function makeSpec(paths: Record): OpenAPISpec { + return { + openapi: "3.0.0", + info: { title: "Test", version: "1.0.0" }, + paths: paths as OpenAPISpec["paths"], + }; +} + +describe("removePaths", () => { + it("removes specified paths from the spec", () => { + const spec = makeSpec({ + "/a": { get: {} }, + "/b": { get: {} }, + "/c": { get: {} }, + }); + + removePaths(spec, ["/a", "/c"]); + + expect(Object.keys(spec.paths)).toEqual(["/b"]); + }); + + it("is a no-op when paths to remove do not exist", () => { + const spec = makeSpec({ + "/a": { get: {} }, + }); + + removePaths(spec, ["/nonexistent"]); + + expect(Object.keys(spec.paths)).toEqual(["/a"]); + }); + + it("handles empty pathsToRemove array", () => { + const spec = makeSpec({ + "/a": { get: {} }, + "/b": { get: {} }, + }); + + removePaths(spec, []); + + expect(Object.keys(spec.paths)).toEqual(["/a", "/b"]); + }); + + it("removes all paths when all are specified", () => { + const spec = makeSpec({ + "/a": { get: {} }, + "/b": { get: {} }, + }); + + removePaths(spec, ["/a", "/b"]); + + expect(Object.keys(spec.paths)).toEqual([]); + }); + + it("returns the spec reference", () => { + const spec = makeSpec({ "/a": { get: {} } }); + const result = removePaths(spec, ["/a"]); + expect(result).toBe(spec); + }); +}); diff --git a/tools/apim-gen/tests/transforms/set-openapi-version.test.ts b/tools/apim-gen/tests/transforms/set-openapi-version.test.ts new file mode 100644 index 0000000000..f8bf3684d5 --- /dev/null +++ b/tools/apim-gen/tests/transforms/set-openapi-version.test.ts @@ -0,0 +1,36 @@ +import { setOpenapiVersion } from "../../src/transforms/set-openapi-version.js"; +import type { OpenAPISpec } from "../../src/types.js"; + +function makeSpec(version: string): OpenAPISpec { + return { + openapi: version, + info: { title: "Test", version: "1.0.0" }, + paths: {}, + }; +} + +describe("setOpenapiVersion", () => { + it("sets the openapi version", () => { + const spec = makeSpec("3.0.0"); + setOpenapiVersion(spec, "3.0.3"); + expect(spec.openapi).toBe("3.0.3"); + }); + + it("overwrites an existing version", () => { + const spec = makeSpec("3.1.0"); + setOpenapiVersion(spec, "3.0.3"); + expect(spec.openapi).toBe("3.0.3"); + }); + + it("returns the spec reference", () => { + const spec = makeSpec("3.0.0"); + const result = setOpenapiVersion(spec, "3.0.3"); + expect(result).toBe(spec); + }); + + it("is a no-op when version is already the same", () => { + const spec = makeSpec("3.0.3"); + setOpenapiVersion(spec, "3.0.3"); + expect(spec.openapi).toBe("3.0.3"); + }); +}); diff --git a/tools/apim-gen/tests/transforms/split-by-prefix.test.ts b/tools/apim-gen/tests/transforms/split-by-prefix.test.ts new file mode 100644 index 0000000000..b2490c68b6 --- /dev/null +++ b/tools/apim-gen/tests/transforms/split-by-prefix.test.ts @@ -0,0 +1,122 @@ +import { splitByPrefix } from "../../src/transforms/split-by-prefix.js"; +import type { OpenAPISpec } from "../../src/types.js"; + +function makeSpec(paths: Record): OpenAPISpec { + return { + openapi: "3.0.0", + info: { title: "Test API", version: "1.0.0" }, + paths: paths as OpenAPISpec["paths"], + }; +} + +describe("splitByPrefix", () => { + it("splits paths by prefix into separate specs", () => { + const spec = makeSpec({ + "/api/catalog/products": { get: { operationId: "listProducts" } }, + "/api/catalog/categories": { get: { operationId: "listCategories" } }, + "/api/orders/list": { get: { operationId: "listOrders" } }, + }); + + const result = splitByPrefix(spec, [ + { prefix: "/api/catalog", outputName: "catalog" }, + { prefix: "/api/orders", outputName: "orders" }, + ]); + + expect(result.size).toBe(2); + + const catalog = result.get("catalog")!; + expect(Object.keys(catalog.paths)).toEqual([ + "/api/catalog/products", + "/api/catalog/categories", + ]); + + const orders = result.get("orders")!; + expect(Object.keys(orders.paths)).toEqual(["/api/orders/list"]); + }); + + it("returns empty paths when prefix matches nothing", () => { + const spec = makeSpec({ + "/api/catalog/products": { get: { operationId: "listProducts" } }, + }); + + const result = splitByPrefix(spec, [ + { prefix: "/api/orders", outputName: "orders" }, + ]); + + expect(result.size).toBe(1); + expect(Object.keys(result.get("orders")!.paths)).toEqual([]); + }); + + it("sets title when provided in split config", () => { + const spec = makeSpec({ + "/api/v1/items": { get: { operationId: "getItems" } }, + }); + + const result = splitByPrefix(spec, [ + { prefix: "/api/v1", outputName: "v1", title: "V1 API" }, + ]); + + expect(result.get("v1")!.info.title).toBe("V1 API"); + }); + + it("keeps original title when split config has no title", () => { + const spec = makeSpec({ + "/api/v1/items": { get: { operationId: "getItems" } }, + }); + + const result = splitByPrefix(spec, [ + { prefix: "/api/v1", outputName: "v1" }, + ]); + + expect(result.get("v1")!.info.title).toBe("Test API"); + }); + + it("does not mutate the original spec", () => { + const spec = makeSpec({ + "/api/a/1": { get: {} }, + "/api/b/2": { get: {} }, + }); + + const originalPaths = Object.keys(spec.paths); + splitByPrefix(spec, [ + { prefix: "/api/a", outputName: "a", title: "Changed" }, + ]); + + expect(Object.keys(spec.paths)).toEqual(originalPaths); + expect(spec.info.title).toBe("Test API"); + }); + + it("handles multiple splits from same spec", () => { + const spec = makeSpec({ + "/v1/a": { get: {} }, + "/v1/b": { get: {} }, + "/v2/a": { get: {} }, + }); + + const result = splitByPrefix(spec, [ + { prefix: "/v1", outputName: "v1" }, + { prefix: "/v2", outputName: "v2" }, + ]); + + expect(Object.keys(result.get("v1")!.paths)).toHaveLength(2); + expect(Object.keys(result.get("v2")!.paths)).toHaveLength(1); + }); + + it("preserves components and other top-level keys in each split", () => { + const spec: OpenAPISpec = { + openapi: "3.0.0", + info: { title: "Test", version: "1.0.0" }, + paths: { "/a/1": { get: {} } } as OpenAPISpec["paths"], + components: { schemas: { Foo: { type: "object" } } }, + servers: [{ url: "https://example.com" }], + }; + + const result = splitByPrefix(spec, [ + { prefix: "/a", outputName: "a" }, + ]); + + const a = result.get("a")!; + expect(a.components?.schemas).toHaveProperty("Foo"); + expect(a.servers).toHaveLength(1); + }); +}); diff --git a/tools/apim-gen/tsconfig.json b/tools/apim-gen/tsconfig.json new file mode 100644 index 0000000000..460e0925af --- /dev/null +++ b/tools/apim-gen/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "Node16", + "moduleResolution": "Node16", + "outDir": "./dist", + "rootDir": "./src", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "declaration": true, + "declarationMap": true, + "sourceMap": true + }, + "include": ["src/**/*.ts"], + "exclude": ["node_modules", "dist", "tests"] +} diff --git a/tools/apim-gen/vitest.config.ts b/tools/apim-gen/vitest.config.ts new file mode 100644 index 0000000000..7d587c0fdc --- /dev/null +++ b/tools/apim-gen/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + globals: true, + include: ["tests/**/*.test.ts"], + }, +});