openapi: 3.0.0
info:
title: VTex Anti-fraud Provider Account Specification API
description: ">ℹ️ Onboarding guide\r\n>\r\n> Check the new [Payments onboarding guide](https://developers.vtex.com/docs/guides/payments-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Payments and is organized by focusing on the developer's journey.\r\n\r\nThe Anti-fraud Provider Protocol is a set of definitions to help you integrate your anti-fraud service API into VTEX platform.\r\n\r\nTo achieve this, you need to implement a web API (REST) following the specifications described in this documentation.\r\n\r\n>⚠️ You can also access our [template on GitHub](https://github.com/vtex-apps/antifraud-provider-example) to help you quickly develop your anti-fraud connector using the Anti-fraud Provider Protocol and VTEX IO.\r\n\r\nTo learn more about the Anti-fraud Provider Protocol, check our [developer guide](https://developers.vtex.com/docs/guides/how-the-integration-protocol-between-vtex-and-antifraud-companies-works).\r\n\r\n## Anti-fraud Provider API Index\r\n\r\n### Anti-fraud Flow\r\n\r\n- `POST` [Send Anti-fraud Pre-Analysis Data (optional)](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#post-/pre-analysis)\r\n- `POST` [Send Anti-fraud Data](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#post-/transactions)\r\n- `PUT` [Update Anti-fraud Transactions (optional)](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#put-/transactions/-transactionId-)\r\n- `GET` [List Anti-fraud Provider Manifest](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#get-/manifest)\r\n- `GET` [Get Anti-fraud Status](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#get-/transactions/-transactions.id-)\r\n- `DELETE` [Stop Anti-fraud Analysis (optional)](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#delete-/transactions/-transactions.Id-)\r\n\r\n### OAuth Flow\r\n\r\n1. `POST` [Retrieve Token](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#post-/authorization/token)\r\n2. `GET` [Redirect](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#get-/redirect)\r\n3. `GET` [Return to VTEX](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#get-/authorizationCode)\r\n4. `GET` [Get Credentials](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#get-/authorization/credentials)"
version: '1.0'
servers:
- url: https://{providerApiEndpoint}
description: Anti-fraud provider endpoint URL.
variables:
providerApiEndpoint:
description: Anti-fraud provider endpoint URL.
default: '{providerApiEndpoint}'
tags:
- name: Specification
paths:
/api/catalog/pvt/specification/{specificationId}:
get:
tags:
- Specification
summary: VTex 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 [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 | 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 app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations."
parameters:
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Accept'
- 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
put:
tags:
- Specification
summary: VTex 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 [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 | 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 app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations."
parameters:
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Accept'
- 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
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.
/api/catalog/pvt/specification:
post:
tags:
- Specification
summary: VTex Create specification
description: "Creates a new product or SKU specification.\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 | 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 app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations."
parameters:
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Accept'
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
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
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
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.
components:
parameters:
Accept:
name: Accept
in: header
description: HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.
required: true
style: simple
schema:
type: string
default: application/json
Content-Type:
name: Content-Type
in: header
description: Type of the content being sent.
required: true
style: simple
schema:
type: string
default: application/json
securitySchemes:
VtexIdclientAutCookie:
type: apiKey
in: header
name: VtexIdclientAutCookie
description: '[User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours.'