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

# Marcar Mensagem como Lida

> Marca uma mensagem recebida como lida sob demanda. Útil quando a leitura automática está desligada e o seu fluxo decide o momento certo de confirmar a leitura (por exemplo, depois que um atendente responde).

A instância pode ser informada pelo campo `instance_id` no corpo da requisição ou pelo cabeçalho `X-Instance-Id`.


Use este endpoint para marcar uma mensagem recebida como lida sob demanda. Ele é o complemento ideal da leitura automática desligada: seu sistema decide o momento certo de confirmar a leitura, por exemplo depois que um atendente responde ao cliente.

O `id` da mensagem é o mesmo recebido nos webhooks de mensagem, como o campo `data.id` do evento `message.received`. A instância pode ser informada pelo campo `instance_id` no corpo ou pelo cabeçalho `X-Instance-Id`.

A resposta traz o resultado da operação no campo `status`:

* `read`: a mensagem foi marcada como lida.
* `ignored`: a mensagem foi enviada pela própria instância, então não há leitura a confirmar.
* `not_found`: a mensagem está fora do prazo de leitura (veja abaixo) ou nunca foi processada pela instância.

## Prazo para marcar como lida

Cada mensagem fica disponível para leitura por um período limitado depois que chega na instância:

* Conversas individuais e grupos: até 3 dias após o recebimento da mensagem.
* Status: até 24 horas após a publicação, o mesmo período em que o status fica visível no WhatsApp.

Depois desse prazo o retorno para aquele ID é `not_found`. Isso não indica uma falha na instância: a janela de leitura expirou e a confirmação não pode mais ser enviada.

Para marcar várias mensagens de uma vez, use o endpoint de [leitura em lote](/pt-BR/v1/api-reference/messages/read-messages-batch).

<Info>
  Se a conta do WhatsApp conectada estiver com a confirmação de leitura desativada nas configurações de privacidade, a mensagem é marcada como lida apenas localmente e o remetente não vê o tique azul.
</Info>

<Warning>
  Este endpoint está disponível apenas para instâncias não oficiais. Instâncias com API oficial (WABA) retornam erro por enquanto.
</Warning>


## OpenAPI

````yaml POST /wa/messages/{id}/read
openapi: 3.1.0
info:
  title: Zapster API
  description: ''
  version: 1.0.0
servers:
  - url: https://api.zapsterapi.com/v1
    description: Produção
security: []
tags: []
paths:
  /wa/messages/{id}/read:
    post:
      tags:
        - Mensagens
      summary: Marcar Mensagem como Lida
      description: >
        Marca uma mensagem recebida como lida sob demanda. Útil quando a leitura
        automática está desligada e o seu fluxo decide o momento certo de
        confirmar a leitura (por exemplo, depois que um atendente responde).


        A instância pode ser informada pelo campo `instance_id` no corpo da
        requisição ou pelo cabeçalho `X-Instance-Id`.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: >-
            ID da mensagem a marcar como lida. É o mesmo `id` recebido nos
            webhooks de mensagem (por exemplo, no evento `message.received`).
          example: 3EB0538DA65A59F6D3A926
        - name: X-Instance-Id
          in: header
          required: false
          schema:
            type: string
          description: >-
            ID da instância que recebeu a mensagem. Alternativa ao campo
            `instance_id` do corpo da requisição.
          example: ozj35qv418rpmlrb
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                instance_id:
                  type: string
                  description: >-
                    ID da instância que recebeu a mensagem. Pode ser omitido
                    quando o cabeçalho `X-Instance-Id` for informado.
                  example: ozj35qv418rpmlrb
      responses:
        '200':
          description: Resultado da leitura
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: ID da mensagem processada.
                    example: 3EB0538DA65A59F6D3A926
                  status:
                    type: string
                    enum:
                      - read
                      - ignored
                      - not_found
                    description: >
                      Resultado da operação:


                      - `read` - A mensagem foi marcada como lida.

                      - `ignored` - A mensagem foi enviada pela própria
                      instância e não possui leitura a confirmar.

                      - `not_found` - A mensagem está fora do prazo de leitura
                      (até 3 dias para conversas e grupos, até 24 horas para
                      status) ou nunca foi processada pela instância.
                    example: read
        '404':
          description: Instância não encontrada ou não pertence ao usuário
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: instance_not_found
                  message:
                    type: string
                    example: Instance not found.
      security:
        - bearer: []
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer

````