VTEX DO API

The VTEX DO API provides task and note management capabilities for VTEX store operators. It allows creating, updating, listing, and deleting tasks and notes associated with orders and other store objects, enabling internal operational workflows.

OpenAPI Specification

vtex-do-openapi-original.yml Raw ↑
openapi: 3.0.0
info:
  title: VTEX Do API
  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.
  contact: {}
  version: '1.0'
servers:
  - url: https://{accountName}.{environment}.com.br/api/do
    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:
  /notes:
    post:
      tags:
        - Note
      summary: VTex Create Note
      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:
        - name: Accept
          in: header
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: Content-Type
          in: header
          description: Type of the content being sent.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - target
                - domain
                - description
              properties:
                target:
                  type: object
                  description: Target.
                  properties:
                    id:
                      type: string
                      description: Target ID.
                      example: v964735bdev-01
                    type:
                      type: string
                      description: Target type.
                      example: order
                    url:
                      type: string
                      description: Target URL.
                      example: https://basedevmkp.vtexcommercebeta.com.br/admin/checkout/#/orders/v964741bdev-01
                domain:
                  type: string
                  description: Note domain.
                  example: oms
                description:
                  type: string
                  description: 'Note description. Maximum number of characters: 2000.'
                  example: Order ID in the marketplace is 786-09.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
              example:
                id: A08CDB2519AC4FA49EB6099CF72C3642
                domain: oms
                owner: c97ef6c8491a439f927cf9918644329f
                target:
                  id: v964735bdev-01
                  type: order
                  url: https://basedevmkp.vtexcommercebeta.com.br/admin/checkout/#/orders/v964741bdev-01
                description: The order's ID in the marketplace is 786-09
                creationDate: '2022-01-11T15:49:17.8785392Z'
                lastUpdate: '2022-01-11T15:49:17.8785392Z'
                createdBy:
                  id: fb542e51-5488-4c34-8d17-ed8fcf597a94
                  name: [email protected]
                  email: [email protected]
                  key:
      deprecated: false
    get:
      tags:
        - Note
      summary: VTex Get Notes by orderId
      description: Retrieves notes related to a specific `orderId`.
      operationId: GetNotesbyorderId
      parameters:
        - name: target.id
          in: query
          description: ID of the order.
          required: true
          style: form
          explode: true
          schema:
            type: string
            description: ID of the order.
            example: 1172452900788-01
        - name: perPage
          in: query
          description: 'Number of notes per page. Maximum: 30.'
          required: false
          style: form
          explode: true
          schema:
            type: integer
            description: 'Number of notes per page. Maximum: 30.'
            example: 20
        - name: page
          in: query
          description: Number of the page to be retrieved.
          required: false
          style: form
          explode: true
          schema:
            type: integer
            description: Number of the page to be retrieved.
            example: 3
        - name: Accept
          in: header
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: Content-Type
          in: header
          description: Type of the content being sent.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - $ref: '#/components/parameters/reason'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
              example: {}
      deprecated: false
  /notes/{noteId}:
    get:
      tags:
        - Note
      summary: VTex Retrieve Note
      description: Retrieves a given note in VTEX DO, filtering by `noteId`.
      operationId: GetNote
      parameters:
        - name: Accept
          in: header
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: Content-Type
          in: header
          description: Type of the content being sent.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: noteId
          in: path
          description: Note's ID.
          required: true
          style: simple
          schema:
            type: string
            example: 654321cba
            description: Note's ID.
        - $ref: '#/components/parameters/reason'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
              example: {}
      deprecated: false
  /tasks:
    post:
      tags:
        - Task
      summary: VTex Create Task
      description: Creates a new task in VTEX DO.
      operationId: NewTask
      parameters:
        - name: Content-Type
          in: header
          description: Type of the content being sent.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: Accept
          in: header
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewTaskRequest'
            example:
              target:
                - id: 633730670642-01
                  type: order
                  url: https://recorrenciaqa.vtexcommercebeta.com.br/admin/checkout/orders/633730670642-01
              domain: oms
              context: Marketplace
              name: pricing
              priority: Critical
              surrogateKey: 505224-0
              description: Ajudar na doc API para lancar no postman
              dueDate: '2016-03-01'
              assignee:
                id:
                name:
                email: [email protected]
              followers:
                - id:
                  name:
                  email: [email protected]
              parentTaskId:
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
              example: {}
      deprecated: false
    get:
      tags:
        - Task
      summary: VTex List tasks
      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={{[email protected]}}&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:
        - name: assignee.email
          in: query
          description: If you wish to list tasks by assignee, insert the desired assignee's email and status.
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: '{{assigneeEmail}}'
        - name: target.id
          in: query
          description: If you wish to list tasks by target, insert the desired `targetId` and `status`.
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: '{{targetId}}'
        - name: context
          in: query
          description: If you wish to list tasks by context, insert the desired context, `page`, `perPage` and `status`.
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: '{{context}}'
        - name: page
          in: query
          description: If you wish to list tasks by context, also insert the desired `page`.
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: '{{page}}'
        - name: perPage
          in: query
          description: If you wish to list tasks by context, also insert the desired `perPage` value.
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: '{{desired number per page}}'
        - name: status
          in: query
          description: If you wish to list tasks by context, also insert the desired `status`.
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: open
        - name: Accept
          in: header
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: Content-Type
          in: header
          description: Type of the content being sent.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
              example: {}
      deprecated: false
  /tasks/{taskId}:
    get:
      tags:
        - Task
      summary: VTex Retrieve Task
      description: Retrieves a given task, filtering by `taskId`.
      operationId: GetTask
      parameters:
        - name: Accept
          in: header
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: Content-Type
          in: header
          description: Type of the content being sent.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: taskId
          in: path
          description: Task ID.
          required: true
          style: simple
          schema:
            type: string
            example: 123456abc
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
              example: {}
      deprecated: false
    put:
      tags:
        - Task
      summary: VTex Update Task
      description: Updates a given task's status, for example, filtering by `taskId`.
      operationId: EditTask
      parameters:
        - name: Accept
          in: header
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: Content-Type
          in: header
          description: Type of the content being sent.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: taskId
          in: path
          description: Task ID.
          required: true
          style: simple
          schema:
            type: string
            example: 123456abc
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditTaskRequest'
            example:
              status: InProgress
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
              example: {}
      deprecated: false
  /tasks/{taskId}/comments:
    post:
      tags:
        - Task
      summary: VTex Add Comment on a Task
      description: Adds a comment to a given task, filtering by `taskId`.
      operationId: AddComment
      parameters:
        - name: Accept
          in: header
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: Content-Type
          in: header
          description: Type of the content being sent.
          required: true
          style: simple
          schema:
            type: string
            example: application/json
        - name: taskId
          in: path
          description: Task ID.
          required: true
          style: simple
          schema:
            type: string
            example: 123456abc
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddCommentRequest'
            example:
              text: write your comment here
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
              example: {}
      deprecated: false
components:
  schemas:
    NewNoteRequest:
      type: object
      required:
        - target
        - domain
        - description
      properties:
        target:
          type: object
          description: Target.
          properties:
            id:
              type: string
            type:
              type: string
            url:
              type: string
        domain:
          type: string
        description:
          type: string
    Target:
      title: Target
      required:
        - id
        - type
        - url
      type: object
      properties:
        id:
          type: string
        type:
          type: string
        url:
          type: string
      example:
        id: v964735bdev-01
        type: order
        url: https://basedevmkp.vtexcommercebeta.com.br/admin/checkout/#/orders/v964741bdev-01
    NewTaskRequest:
      title: NewTaskRequest
      required:
        - target
        - domain
        - context
        - name
        - priority
        - surrogateKey
        - description
        - dueDate
        - assignee
        - followers
        - parentTaskId
      type: object
      properties:
        target:
          type: array
          items:
            $ref: '#/components/schemas/Target'
          description: ''
        domain:
          type: string
        context:
          type: string
        name:
          type: string
        priority:
          type: string
        surrogateKey:
          type: string
        description:
          type: string
        dueDate:
          type: string
        assignee:
          $ref: '#/components/schemas/Assignee'
        followers:
          type: array
          items:
            $ref: '#/components/schemas/Follower'
          description: ''
        parentTaskId:
          type: string
          nullable: true
      example:
        target:
          - id: 633730670642-01
            type: order
            url: https://recorrenciaqa.vtexcommercebeta.com.br/admin/checkout/orders/633730670642-01
        domain: oms
        context: Marketplace
        name: pricing
        priority: Critical
        surrogateKey: 505224-0
        description: Ajudar na doc API para lancar no postman
        dueDate: '2016-03-01'
        assignee:
          id:
          name:
          email: [email protected]
        followers:
          - id:
            name:
            email: [email protected]
        parentTaskId:
    Assignee:
      title: Assignee
      required:
        - id
        - name
        - email
      type: object
      properties:
        id:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        email:
          type: string
      example:
        id:
        name:
        email: [email protected]
    Follower:
      title: Follower
      required:
        - id
        - name
        - email
      type: object
      properties:
        id:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        email:
          type: string
      example:
        id:
        name:
        email: [email protected]
    AddCommentRequest:
      title: AddCommentRequest
      required:
        - text
      type: object
      properties:
        text:
          type: string
      example:
        text: escreva seu comentário
    EditTaskRequest:
      title: EditTaskRequest
      required:
        - status
      type: object
      properties:
        status:
          type: string
      example:
        status: InProgress
  securitySchemes:
    appKey:
      type: apiKey
      in: header
      name: X-VTEX-API-AppKey
    appToken:
      type: apiKey
      in: header
      name: X-VTEX-API-AppToken
  parameters:
    reason:
      name: reason
      in: query
      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.
      required: false
      style: form
      schema:
        type: string
        example: data-validation
tags:
  - name: Note
  - name: Task
security:
  - appKey: []
    appToken: []