> ## Documentation Index
> Fetch the complete documentation index at: https://developers.sults.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Importar avaliação de checklist na API v2 do SULTS

> Registra na plataforma uma avaliação de checklist com a data agendada, as datas de início e de envio, o check-in, o check-out e as respostas informados no corpo. O modelo (`templateId`), as questões (`templateQuestionId`) e as opções (`answerTemplateOptionId`) vêm dos endpoints de listagem de modelos e de questões do modelo. Nas questões de opções, a resposta vai em `answerTemplateOptionId`; nas demais, em `answerText`, como texto, número ou data. A avaliação importada fica concluída (`CLOSED`). A resposta traz o código da avaliação criada.



## OpenAPI

````yaml /api-reference/openapi-v2.json post /api/v2/checklist/assessment/import/add
openapi: 3.1.0
info:
  title: API do SULTS v2
  version: '2.0'
  description: >-
    A nova geração da API do SULTS, em migração módulo a módulo (Compras
    primeiro). Autenticação por token v2 no cabeçalho `Authorization`; tokens v1
    não funcionam aqui. Nas requisições com corpo, envie `Content-Type:
    application/json;charset=UTF-8`.
  contact:
    name: Suporte SULTS
    url: https://ajuda.sults.com.br
servers:
  - url: https://api.sults.com.br
security:
  - apiKeyAuth: []
tags:
  - name: Produtos
    description: >-
      Cadastro, preço, estoque, variações e variantes de produto no módulo de
      Compras da v2. A API do SULTS é REST sobre HTTPS e responde em JSON. Cada
      requisição leva o token no cabeçalho `Authorization`, enviado puro, sem o
      prefixo `Bearer`. O token é gerado por um administrador na plataforma, em
      Segurança > API > Gestão de Tokens v2. O limite é de 2 requisições por
      segundo, por IP.
  - name: Mix de produtos
    description: >-
      Sortimento de produtos por empresa. Disponível apenas quando o recurso de
      mix está habilitado na plataforma, em Comercial > Configuração > Mix de
      produto. A API do SULTS é REST sobre HTTPS e responde em JSON. Cada
      requisição leva o token no cabeçalho `Authorization`, enviado puro, sem o
      prefixo `Bearer`. O token é gerado por um administrador na plataforma, em
      Segurança > API > Gestão de Tokens v2. O limite é de 2 requisições por
      segundo, por IP.
  - name: Pedidos e etapas
    description: >-
      Pedidos de compra da v2 e o fluxo de etapas, que é configurável por
      operação. A API do SULTS é REST sobre HTTPS e responde em JSON. Cada
      requisição leva o token no cabeçalho `Authorization`, enviado puro, sem o
      prefixo `Bearer`. O token é gerado por um administrador na plataforma, em
      Segurança > API > Gestão de Tokens v2. O limite é de 2 requisições por
      segundo, por IP.
  - name: Comunicados
    description: >-
      Comunicados publicados na plataforma, com o público de cada um, a
      confirmação de leitura e o conteúdo publicado. A API do SULTS é REST sobre
      HTTPS e responde em JSON. Cada requisição leva o token no cabeçalho
      `Authorization`, enviado puro, sem o prefixo `Bearer`. O token é gerado
      por um administrador na plataforma, em Segurança > API > Gestão de Tokens
      v2. O limite é de 2 requisições por segundo, por IP.
  - name: Chamados
    description: >-
      Chamados da plataforma: abertura, timeline, interações, apoios, etiquetas,
      prazo e conclusão. A API do SULTS é REST sobre HTTPS e responde em JSON.
      Cada requisição leva o token no cabeçalho `Authorization`, enviado puro,
      sem o prefixo `Bearer`. O token é gerado por um administrador na
      plataforma, em Segurança > API > Gestão de Tokens v2. O limite é de 2
      requisições por segundo, por IP.
  - name: Checklist
    description: >-
      Avaliações de checklist com respostas, check-in e check-out, os modelos
      com seções e questões, e os planos de ação com a timeline. A API do SULTS
      é REST sobre HTTPS e responde em JSON. Cada requisição leva o token no
      cabeçalho `Authorization`, enviado puro, sem o prefixo `Bearer`. O token é
      gerado por um administrador na plataforma, em Segurança > API > Gestão de
      Tokens v2. O limite é de 2 requisições por segundo, por IP.
paths:
  /api/v2/checklist/assessment/import/add:
    post:
      tags:
        - Checklist
      summary: Importar avaliação de checklist
      description: >-
        Registra na plataforma uma avaliação de checklist com a data agendada,
        as datas de início e de envio, o check-in, o check-out e as respostas
        informados no corpo. O modelo (`templateId`), as questões
        (`templateQuestionId`) e as opções (`answerTemplateOptionId`) vêm dos
        endpoints de listagem de modelos e de questões do modelo. Nas questões
        de opções, a resposta vai em `answerTemplateOptionId`; nas demais, em
        `answerText`, como texto, número ou data. A avaliação importada fica
        concluída (`CLOSED`). A resposta traz o código da avaliação criada.
      operationId: importarAvaliacaoV2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AvaliacaoV2Importacao'
            example:
              templateId: 59
              companyId: 138
              createdByUserId: 108
              assigneeUserId: 108
              startedAt: '2026-10-22T13:00:00Z'
              submittedAt: '2026-10-23T14:00:00Z'
              scheduledDate: '2026-10-10T23:59:59Z'
              checkIn:
                checkedInAt: '2026-10-22T12:55:00Z'
                comment: Chegada na unidade
                geolocation:
                  latitude: -23.55052
                  longitude: -46.633308
                  accuracy: 12.5
                  capturedAt: '2026-10-22T12:54:00Z'
              checkOut:
                checkedOutAt: '2026-10-23T11:45:00Z'
                comment: Saída da unidade
                geolocation:
                  latitude: -23.55052
                  longitude: -46.633308
                  accuracy: 10
                  capturedAt: '2026-10-23T11:45:00Z'
              answer:
                - templateQuestionId: 1254
                  answerText: 36
                  comment: Temperatura medida às 13h
                  notApplicable: false
                - templateQuestionId: 1255
                  answerText: |-
                    Fachada limpa e iluminada.
                    Letreiro com uma lâmpada queimada.
                  comment: Sem observações
                  notApplicable: false
                - templateQuestionId: 1256
                  answerText: Equipe completa no turno da tarde
                  comment: Ok
                  notApplicable: false
                - templateQuestionId: 1257
                  answerText: 1
                  comment: Ok
                  notApplicable: false
                - templateQuestionId: 1258
                  answerTemplateOptionId:
                    - 2600
                  notApplicable: false
                - templateQuestionId: 1259
                  answerTemplateOptionId:
                    - 2602
                  notApplicable: false
                - templateQuestionId: 1260
                  answerTemplateOptionId:
                    - 2604
                  notApplicable: false
                - templateQuestionId: 1261
                  answerTemplateOptionId:
                    - 2609
                  notApplicable: false
                - templateQuestionId: 1264
                  answerText: 9
                  comment: Ok
                  notApplicable: false
                - templateQuestionId: 1265
                  answerText: 9
                  comment: Ok
                  notApplicable: false
                - templateQuestionId: 1266
                  answerText: '2026-12-31'
                  comment: Validade do alvará
                  notApplicable: false
                - templateQuestionId: 1267
                  answerText: 3350.25
                  comment: Faturamento do dia
                  notApplicable: false
                - templateQuestionId: 1268
                  answerTemplateOptionId:
                    - 2618
                  notApplicable: false
                - templateQuestionId: 1272
                  answerTemplateOptionId:
                    - 2624
                    - 2625
                  notApplicable: false
      responses:
        '200':
          description: Avaliação importada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdRespostaV2'
              example:
                id: 1411
        '400':
          $ref: '#/components/responses/ErroValidacao'
        '401':
          $ref: '#/components/responses/TokenInvalido'
        '404':
          $ref: '#/components/responses/NaoEncontrado'
        '429':
          $ref: '#/components/responses/LimiteDeRequisicoes'
        5XX:
          $ref: '#/components/responses/ErroDoServidor'
components:
  schemas:
    AvaliacaoV2Importacao:
      type: object
      description: Dados da avaliação a importar.
      required:
        - templateId
        - companyId
        - createdByUserId
        - assigneeUserId
        - startedAt
        - submittedAt
        - scheduledDate
        - answer
      properties:
        templateId:
          type: integer
          description: Código do modelo de checklist aplicado.
          example: 59
        companyId:
          type: integer
          description: Código da unidade avaliada.
          example: 138
        createdByUserId:
          type: integer
          description: Código do usuário que criou a avaliação.
          example: 108
        assigneeUserId:
          type: integer
          description: Código do usuário responsável pela avaliação.
          example: 108
        scheduledDate:
          type: string
          format: date-time
          description: Data agendada, em UTC ISO 8601.
          example: '2026-10-10T23:59:59Z'
        startedAt:
          type: string
          format: date-time
          description: Data de início, em UTC ISO 8601.
          example: '2026-10-22T13:00:00Z'
        submittedAt:
          type: string
          format: date-time
          description: Data de envio da avaliação, em UTC ISO 8601.
          example: '2026-10-23T14:00:00Z'
        checkIn:
          $ref: '#/components/schemas/ChecklistCheckinImportacaoV2'
          description: Check-in da avaliação. Opcional.
        checkOut:
          $ref: '#/components/schemas/ChecklistCheckoutImportacaoV2'
          description: Check-out da avaliação. Opcional.
        answer:
          type: array
          description: Respostas das questões.
          items:
            $ref: '#/components/schemas/AvaliacaoRespostaV2Importacao'
    IdRespostaV2:
      type: object
      properties:
        id:
          type: integer
          description: Código do registro criado.
          example: 1
    ChecklistCheckinImportacaoV2:
      type: object
      description: Check-in da avaliação importada.
      properties:
        checkedInAt:
          type: string
          format: date-time
          description: Data do check-in, em UTC ISO 8601.
          example: '2026-10-05T12:55:00Z'
        comment:
          type:
            - string
            - 'null'
          description: Comentário do check-in.
          example: Chegada na unidade
        geolocation:
          $ref: '#/components/schemas/ChecklistGeolocalizacaoV2'
          description: Localização capturada.
    ChecklistCheckoutImportacaoV2:
      type: object
      description: Check-out da avaliação importada.
      properties:
        checkedOutAt:
          type: string
          format: date-time
          description: Data do check-out, em UTC ISO 8601.
          example: '2026-10-05T14:35:00Z'
        comment:
          type:
            - string
            - 'null'
          description: Comentário do check-out.
          example: Saída da unidade
        geolocation:
          $ref: '#/components/schemas/ChecklistGeolocalizacaoV2'
          description: Localização capturada.
    AvaliacaoRespostaV2Importacao:
      type: object
      description: >-
        Resposta de uma questão na avaliação importada. Os campos obrigatórios
        dependem do tipo da questão: nas questões de opções, informe
        `answerTemplateOptionId`; nas demais, `answerText`.
      properties:
        templateQuestionId:
          type: integer
          description: >-
            Código da questão do modelo (o `id` da listagem de questões do
            modelo).
          example: 1255
        answerText:
          type:
            - string
            - number
          description: >-
            Resposta nas questões sem opções: texto nas questões de texto,
            número nas numéricas e de valor monetário, e data em yyyy-MM-dd nas
            questões de data.
          example: Fachada limpa e iluminada
        answerTemplateOptionId:
          type: array
          description: >-
            Códigos das opções escolhidas, nas questões de opções (o `id` das
            opções em `typeSettings.option`). Nas questões de múltipla escolha,
            aceita mais de um código.
          items:
            type: integer
          example:
            - 2600
        comment:
          type:
            - string
            - 'null'
          description: Comentário da resposta.
          example: Sem observações
        notApplicable:
          type: boolean
          description: Indica se a questão foi marcada como não aplicável.
          example: false
    Erro:
      type: object
      description: >-
        Corpo padrão de erro da API. Não existe código de erro interno: decida a
        sua lógica pelo status HTTP e use a mensagem apenas para logs e
        diagnóstico.
      required:
        - error
      properties:
        error:
          type: string
          description: >-
            Mensagem legível, em português, descrevendo a falha. O texto pode
            mudar: nunca o use como condição de código.
          example: Campo supplierId não pode ser vazio ou nulo.
    ChecklistGeolocalizacaoV2:
      type: object
      description: Localização capturada no check-in ou no check-out.
      properties:
        latitude:
          type:
            - number
            - 'null'
          description: Latitude.
          example: -19.9385
        longitude:
          type:
            - number
            - 'null'
          description: Longitude.
          example: -43.9349
        accuracy:
          type:
            - number
            - 'null'
          description: Precisão da localização.
          example: 12.5
        capturedAt:
          type:
            - string
            - 'null'
          description: Data da captura da localização, em UTC ISO 8601.
          example: '2026-10-06T12:58:40Z'
          format: date-time
  responses:
    ErroValidacao:
      description: >-
        Erro de validação ou formato errado nos dados de entrada. A API aponta
        **um campo por vez**: corrija o campo indicado na mensagem, reenvie e
        repita até o 200.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
          example:
            error: Campo supplierId não pode ser vazio ou nulo.
    TokenInvalido:
      description: >-
        Token ausente ou inválido. Confira: copiado por completo, cabeçalho
        `Authorization` com o nome exato, valor sem o prefixo `Bearer` e gerado
        na **Gestão de Tokens v2** (tokens v1 não funcionam aqui). Sem retry
        automático. O corpo real é `{"error": "Acesso não autorizado."}`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
          example:
            error: Acesso não autorizado.
    NaoEncontrado:
      description: >-
        Recurso inexistente, ou recurso condicionado desabilitado (por exemplo,
        endpoints de Mix sem o recurso de mix habilitado na operação). Reenviar
        sem corrigir devolve o mesmo erro.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
    LimiteDeRequisicoes:
      description: >-
        Limite de requisições excedido: **2 requisições por segundo, por IP**. A
        resposta é a página HTML padrão do servidor, não JSON, e não há o header
        `Retry-After`: trate pelo status 429, sem fazer parse do corpo, com
        espera crescente a partir de 1 segundo.
      content:
        text/html:
          schema:
            type: string
            description: >-
              Página HTML padrão do servidor. Não faça parse; decida pelo
              status.
    ErroDoServidor:
      description: >-
        Falha inesperada do servidor (raro). Repita com espera crescente;
        persistindo, acione o suporte com data, hora e endpoint.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Token  gerado na Gestão de Tokens v2 do SULTS. Deve ser enviado no
        cabeçalho `Authorization` de todas as requisições.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.