VTEX Do API icon

VTEX Do API

VTEX DO is a task management system for authorized users to process orders

COMMUNITYAPI KEY0 INSTALLS
OpenAPI Specificationv3.0
{
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "https://vtex.local"
    },
    {
      "description": "VTEX server url",
      "url": "https://{accountName}.{environment}.com.br/api/do",
      "variables": {
        "accountName": {
          "default": "{accountName}",
          "description": "Name of the VTEX account. Used as part of the URL."
        },
        "environment": {
          "default": "{environment}",
          "description": "Environment to use. Used as part of the URL."
        }
      }
    }
  ],
  "info": {
    "contact": {},
    "description": "VTEX DO is a task management system for authorized users to process orders. It is possible to control notes, and create, update, list, and retrieve tasks.",
    "title": "VTEX Do API",
    "version": "1.0",
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://raw.githubusercontent.com/vtex/openapi-schemas/master/VTEX - VTEX Do API.json",
        "version": "3.0"
      }
    ],
    "x-providerName": "vtex.local",
    "x-serviceName": "VTEX-Do-API",
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_apis.guru_assets_images_no-logo.svg"
    }
  },
  "security": [
    {
      "appKey": [],
      "appToken": []
    }
  ],
  "tags": [
    {
      "name": "Note"
    },
    {
      "name": "Task"
    }
  ],
  "paths": {
    "/notes": {
      "get": {
        "deprecated": false,
        "description": "Retrieves notes related to a specific `orderId`.",
        "operationId": "GetNotesbyorderId",
        "parameters": [
          {
            "description": "ID of the order.",
            "explode": true,
            "in": "query",
            "name": "target.id",
            "required": true,
            "schema": {
              "description": "ID of the order.",
              "example": "1172452900788-01",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "Number of notes per page. Maximum: 30.",
            "explode": true,
            "in": "query",
            "name": "perPage",
            "required": false,
            "schema": {
              "description": "Number of notes per page. Maximum: 30.",
              "example": 20,
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "Number of the page to be retrieved.",
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "description": "Number of the page to be retrieved.",
              "example": 3,
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.",
            "in": "header",
            "name": "Accept",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Type of the content being sent.",
            "in": "header",
            "name": "Content-Type",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "$ref": "#/components/parameters/reason"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {},
                "schema": {}
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get Notes by orderId",
        "tags": [
          "Note"
        ]
      },
      "post": {
        "deprecated": false,
        "description": "This endpoint creates a new note in VTEX DO. Be aware of the following limitations:\r\n\n\r- The maximum number of notes for an order is 30.\r\n\n\r- The maximum number of characters in a note's description is 2000.",
        "operationId": "NewNote",
        "parameters": [
          {
            "description": "HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.",
            "in": "header",
            "name": "Accept",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Type of the content being sent.",
            "in": "header",
            "name": "Content-Type",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "description": {
                    "description": "Note description. Maximum number of characters: 2000.",
                    "example": "Order ID in the marketplace is 786-09.",
                    "type": "string"
                  },
                  "domain": {
                    "description": "Note domain.",
                    "example": "oms",
                    "type": "string"
                  },
                  "target": {
                    "description": "Target.",
                    "properties": {
                      "id": {
                        "description": "Target ID.",
                        "example": "v964735bdev-01",
                        "type": "string"
                      },
                      "type": {
                        "description": "Target type.",
                        "example": "order",
                        "type": "string"
                      },
                      "url": {
                        "description": "Target URL.",
                        "example": "https://basedevmkp.vtexcommercebeta.com.br/admin/checkout/#/orders/v964741bdev-01",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "target",
                  "domain",
                  "description"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "createdBy": {
                    "email": "pedro.costa@vtex.com.br",
                    "id": "fb542e51-5488-4c34-8d17-ed8fcf597a94",
                    "key": null,
                    "name": "pedro.costa@vtex.com.br"
                  },
                  "creationDate": "2022-01-11T15:49:17.8785392Z",
                  "description": "The order's ID in the marketplace is 786-09",
                  "domain": "oms",
                  "id": "A08CDB2519AC4FA49EB6099CF72C3642",
                  "lastUpdate": "2022-01-11T15:49:17.8785392Z",
                  "owner": "c97ef6c8491a439f927cf9918644329f",
                  "target": {
                    "id": "v964735bdev-01",
                    "type": "order",
                    "url": "https://basedevmkp.vtexcommercebeta.com.br/admin/checkout/#/orders/v964741bdev-01"
                  }
                },
                "schema": {}
              }
            },
            "description": "OK"
          }
        },
        "summary": "Create Note",
        "tags": [
          "Note"
        ]
      }
    },
    "/notes/{noteId}": {
      "get": {
        "deprecated": false,
        "description": "Retrieves a given note in VTEX DO, filtering by `noteId`.",
        "operationId": "GetNote",
        "parameters": [
          {
            "description": "HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.",
            "in": "header",
            "name": "Accept",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Type of the content being sent.",
            "in": "header",
            "name": "Content-Type",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Note's ID.",
            "in": "path",
            "name": "noteId",
            "required": true,
            "schema": {
              "description": "Note's ID.",
              "example": "654321cba",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "$ref": "#/components/parameters/reason"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {},
                "schema": {}
              }
            },
            "description": "OK"
          }
        },
        "summary": "Retrieve Note",
        "tags": [
          "Note"
        ]
      }
    },
    "/tasks": {
      "get": {
        "deprecated": false,
        "description": "This endpoint allows you to filter tasks. You can choose between the following filtering options: \r\n\r\n- **Assignees:** using `assignee.email` and `status`. Example: `https://{{accountName}}.{{environment}}.com.br/api/do/tasks?assignee.email={{person@email.com}}&status={{open}}`. \r\n\r\n- **Targets:** using `targetId` and `status`. Example: `https://{{accountName}}.{{environment}}.com.br/api/do/tasks?target.id={{name}}&status={{open}}`. \r\n\r\n- **Paged tasks:** using `page`, `perPage` and `status`. Example: `https://{{accountName}}.{{environment}}.com.br/api/do/tasks?page={{1}}&perPage={{10}}&status=;{{-Closed}}`. \r\n\r\n- **Context:** using `context`, `page`, `perPage` and `status`. Example: `https://{{accountName}}.{{environment}}.com.br/api/do/tasks?context={{context}}&page={{1}}&perPage={{10}}&status={{-Closed}}`.",
        "operationId": "Listtasksbyassignee",
        "parameters": [
          {
            "description": "If you wish to list tasks by assignee, insert the desired assignee's email and status.",
            "explode": true,
            "in": "query",
            "name": "assignee.email",
            "required": false,
            "schema": {
              "example": "{{assigneeEmail}}",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "If you wish to list tasks by target, insert the desired `targetId` and `status`.",
            "explode": true,
            "in": "query",
            "name": "target.id",
            "required": false,
            "schema": {
              "example": "{{targetId}}",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "If you wish to list tasks by context, insert the desired context, `page`, `perPage` and `status`.",
            "explode": true,
            "in": "query",
            "name": "context",
            "required": false,
            "schema": {
              "example": "{{context}}",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "If you wish to list tasks by context, also insert the desired `page`.",
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "example": "{{page}}",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "If you wish to list tasks by context, also insert the desired `perPage` value.",
            "explode": true,
            "in": "query",
            "name": "perPage",
            "required": false,
            "schema": {
              "example": "{{desired number per page}}",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "If you wish to list tasks by context, also insert the desired `status`.",
            "explode": true,
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "example": "open",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.",
            "in": "header",
            "name": "Accept",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Type of the content being sent.",
            "in": "header",
            "name": "Content-Type",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {},
                "schema": {}
              }
            },
            "description": "OK"
          }
        },
        "summary": "List tasks",
        "tags": [
          "Task"
        ]
      },
      "post": {
        "deprecated": false,
        "description": "Creates a new task in VTEX DO.",
        "operationId": "NewTask",
        "parameters": [
          {
            "description": "Type of the content being sent.",
            "in": "header",
            "name": "Content-Type",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.",
            "in": "header",
            "name": "Accept",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "assignee": {
                  "email": "frederico.santos@vtex.com.br",
                  "id": null,
                  "name": null
                },
                "context": "Marketplace",
                "description": "Ajudar na doc API para lancar no postman",
                "domain": "oms",
                "dueDate": "2016-03-01",
                "followers": [
                  {
                    "email": "alan.dantas@vtex.com.br",
                    "id": null,
                    "name": null
                  }
                ],
                "name": "pricing",
                "parentTaskId": null,
                "priority": "Critical",
                "surrogateKey": "505224-0",
                "target": [
                  {
                    "id": "633730670642-01",
                    "type": "order",
                    "url": "https://recorrenciaqa.vtexcommercebeta.com.br/admin/checkout/orders/633730670642-01"
                  }
                ]
              },
              "schema": {
                "$ref": "#/components/schemas/NewTaskRequest"
              }
            }
          },
          "description": "",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {},
                "schema": {}
              }
            },
            "description": "OK"
          }
        },
        "summary": "Create Task",
        "tags": [
          "Task"
        ]
      }
    },
    "/tasks/{taskId}": {
      "get": {
        "deprecated": false,
        "description": "Retrieves a given task, filtering by `taskId`.",
        "operationId": "GetTask",
        "parameters": [
          {
            "description": "HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.",
            "in": "header",
            "name": "Accept",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Type of the content being sent.",
            "in": "header",
            "name": "Content-Type",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Task ID.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "schema": {
              "example": "123456abc",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {},
                "schema": {}
              }
            },
            "description": "OK"
          }
        },
        "summary": "Retrieve Task",
        "tags": [
          "Task"
        ]
      },
      "put": {
        "deprecated": false,
        "description": "Updates a given task's status, for example, filtering by `taskId`.",
        "operationId": "EditTask",
        "parameters": [
          {
            "description": "HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.",
            "in": "header",
            "name": "Accept",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Type of the content being sent.",
            "in": "header",
            "name": "Content-Type",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Task ID.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "schema": {
              "example": "123456abc",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "status": "InProgress"
              },
              "schema": {
                "$ref": "#/components/schemas/EditTaskRequest"
              }
            }
          },
          "description": "",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {},
                "schema": {}
              }
            },
            "description": "OK"
          }
        },
        "summary": "Update Task",
        "tags": [
          "Task"
        ]
      }
    },
    "/tasks/{taskId}/comments": {
      "post": {
        "deprecated": false,
        "description": "Adds a comment to a given task, filtering by `taskId`.",
        "operationId": "AddComment",
        "parameters": [
          {
            "description": "HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.",
            "in": "header",
            "name": "Accept",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Type of the content being sent.",
            "in": "header",
            "name": "Content-Type",
            "required": true,
            "schema": {
              "example": "application/json",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "Task ID.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "schema": {
              "example": "123456abc",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "text": "write your comment here"
              },
              "schema": {
                "$ref": "#/components/schemas/AddCommentRequest"
              }
            }
          },
          "description": "",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {},
                "schema": {}
              }
            },
            "description": "OK"
          }
        },
        "summary": "Add Comment on a Task",
        "tags": [
          "Task"
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "reason": {
        "description": "This parameter is relevant only for PII-compliant accounts. When sending requests to this endpoint, PII-compliant accounts can use this parameter to declare the reason for requesting unmasked data. Otherwise, this endpoint will return masked PII data.",
        "in": "query",
        "name": "reason",
        "required": false,
        "schema": {
          "example": "data-validation",
          "type": "string"
        },
        "style": "form"
      }
    },
    "schemas": {
      "AddCommentRequest": {
        "example": {
          "text": "escreva seu comentário"
        },
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "AddCommentRequest",
        "type": "object"
      },
      "Assignee": {
        "example": {
          "email": "frederico.santos@vtex.com.br",
          "id": null,
          "name": null
        },
        "properties": {
          "email": {
            "type": "string"
          },
          "id": {
            "nullable": true,
            "type": "string"
          },
          "name": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "email"
        ],
        "title": "Assignee",
        "type": "object"
      },
      "EditTaskRequest": {
        "example": {
          "status": "InProgress"
        },
        "properties": {
          "status": {
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "EditTaskRequest",
        "type": "object"
      },
      "Follower": {
        "example": {
          "email": "alan.dantas@vtex.com.br",
          "id": null,
          "name": null
        },
        "properties": {
          "email": {
            "type": "string"
          },
          "id": {
            "nullable": true,
            "type": "string"
          },
          "name": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "email"
        ],
        "title": "Follower",
        "type": "object"
      },
      "NewNoteRequest": {
        "properties": {
          "description": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "target": {
            "description": "Target.",
            "properties": {
              "id": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "url": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "required": [
          "target",
          "domain",
          "description"
        ],
        "type": "object"
      },
      "NewTaskRequest": {
        "example": {
          "assignee": {
            "email": "frederico.santos@vtex.com.br",
            "id": null,
            "name": null
          },
          "context": "Marketplace",
          "description": "Ajudar na doc API para lancar no postman",
          "domain": "oms",
          "dueDate": "2016-03-01",
          "followers": [
            {
              "email": "alan.dantas@vtex.com.br",
              "id": null,
              "name": null
            }
          ],
          "name": "pricing",
          "parentTaskId": null,
          "priority": "Critical",
          "surrogateKey": "505224-0",
          "target": [
            {
              "id": "633730670642-01",
              "type": "order",
              "url": "https://recorrenciaqa.vtexcommercebeta.com.br/admin/checkout/orders/633730670642-01"
            }
          ]
        },
        "properties": {
          "assignee": {
            "$ref": "#/components/schemas/Assignee"
          },
          "context": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "dueDate": {
            "type": "string"
          },
          "followers": {
            "description": "",
            "items": {
              "$ref": "#/components/schemas/Follower"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "parentTaskId": {
            "nullable": true,
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "surrogateKey": {
            "type": "string"
          },
          "target": {
            "description": "",
            "items": {
              "$ref": "#/components/schemas/Target"
            },
            "type": "array"
          }
        },
        "required": [
          "target",
          "domain",
          "context",
          "name",
          "priority",
          "surrogateKey",
          "description",
          "dueDate",
          "assignee",
          "followers",
          "parentTaskId"
        ],
        "title": "NewTaskRequest",
        "type": "object"
      },
      "Target": {
        "example": {
          "id": "v964735bdev-01",
          "type": "order",
          "url": "https://basedevmkp.vtexcommercebeta.com.br/admin/checkout/#/orders/v964741bdev-01"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "url"
        ],
        "title": "Target",
        "type": "object"
      }
    },
    "securitySchemes": {
      "appKey": {
        "in": "header",
        "name": "X-VTEX-API-AppKey",
        "type": "apiKey"
      },
      "appToken": {
        "in": "header",
        "name": "X-VTEX-API-AppToken",
        "type": "apiKey"
      }
    }
  }
}