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

# Falhas de mensagens

> Puxa um relatório operacional linha a linha, restrito ao seu workspace. Hoje disponível: `message_errors` (falhas de entrega no WhatsApp).

Puxa, linha a linha, os erros de entrega de mensagens do seu workspace (webhooks de falha do WhatsApp), com o código e a descrição do erro, o contato e a conversa.

<Warning>
  `updated_since` é **obrigatório** e a janela (`to` − `updated_since`) não pode passar de **31 dias**. Uma chamada sem `updated_since` é rejeitada com `400`.
</Warning>

Filtros disponíveis (combináveis): `deal_id`, `conversation_id`, `agent_id`, `external_id`, `error_code`. Chaves de filtro desconhecidas são ignoradas. Pagine pelo `next_cursor` até ele voltar `null`.

O significado de cada campo retornado está detalhado na seção **Response** abaixo.


## OpenAPI

````yaml GET /v1/reports/{report}
openapi: 3.1.0
info:
  title: Morada Data Export API
  version: 1.0.0
  description: >-
    Exportação incremental das conversas, mensagens, contatos e deals do seu
    workspace na Morada.ai, além de relatórios operacionais em nível de linha e
    analytics agregado (componentes aditivos) que reproduzem os dashboards da
    plataforma.
servers:
  - url: https://data-api.morada.ai
    description: Produção
security:
  - workspaceApiKey: []
tags:
  - name: Exportação
    description: Exportação incremental de entidades do workspace.
  - name: Relatórios
    description: >-
      Relatórios operacionais em nível de linha, com janela de tempo
      obrigatória.
  - name: Analytics
    description: >-
      Agregações aditivas prontas para BI, reproduzindo os dashboards da
      plataforma.
paths:
  /v1/reports/{report}:
    get:
      tags:
        - Relatórios
      summary: Consultar um relatório operacional
      description: >-
        Puxa um relatório operacional linha a linha, restrito ao seu workspace.
        Hoje disponível: `message_errors` (falhas de entrega no WhatsApp).
      parameters:
        - in: path
          name: report
          required: true
          description: Relatório a consultar.
          schema:
            type: string
            enum:
              - message_errors
        - in: query
          name: updated_since
          required: true
          description: >-
            Timestamp ISO 8601; limite inferior da janela (inclusivo), mapeado
            para o timestamp do cursor. Obrigatório: sem ele a requisição é
            rejeitada com `400`.
          schema:
            type: string
            format: date-time
        - in: query
          name: to
          required: false
          description: >-
            Timestamp ISO 8601; limite superior da janela. Padrão: agora. A
            janela (`to` − `updated_since`) não pode exceder 31 dias.
          schema:
            type: string
            format: date-time
        - in: query
          name: cursor
          required: false
          description: >-
            Cursor opaco de paginação, conforme retornado em `next_cursor` na
            página anterior.
          schema:
            type: string
        - in: query
          name: limit
          required: false
          description: >-
            Máximo de linhas por página (1 a 1000, padrão 100). Valores fora do
            intervalo são ajustados, não rejeitados.
          schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 1000
        - in: query
          name: deal_id
          required: false
          description: 'Filtro: id do deal da conversa.'
          schema:
            type: string
        - in: query
          name: conversation_id
          required: false
          description: 'Filtro: id da conversa.'
          schema:
            type: string
        - in: query
          name: agent_id
          required: false
          description: 'Filtro: agente responsável pela conversa.'
          schema:
            type: string
        - in: query
          name: external_id
          required: false
          description: 'Filtro: id da mensagem no WhatsApp (wamid).'
          schema:
            type: string
        - in: query
          name: error_code
          required: false
          description: 'Filtro: código do erro de entrega do WhatsApp.'
          schema:
            type: string
      responses:
        '200':
          description: Página de dados do relatório.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - next_cursor
                  - count
                properties:
                  data:
                    type: array
                    description: Linhas do relatório nesta página.
                    items:
                      type: object
                      properties:
                        id:
                          type:
                            - string
                            - 'null'
                          description: Identificador único deste log de erro.
                        workspace_id:
                          type:
                            - string
                            - 'null'
                          description: Workspace ao qual a linha pertence.
                        cursor_at:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Marca-d'água de ordenação e paginação (momento do
                            log, ISO 8601).
                          format: date-time
                        message_id:
                          type:
                            - string
                            - 'null'
                          description: Identificador da mensagem à qual o erro se refere.
                        conversation_id:
                          type:
                            - string
                            - 'null'
                          description: Conversa da mensagem.
                        deal_id:
                          type:
                            - string
                            - 'null'
                          description: Deal associado à conversa, quando houver.
                        agent_id:
                          type:
                            - string
                            - 'null'
                          description: Agente responsável pela conversa.
                        agent_name:
                          type:
                            - string
                            - 'null'
                          description: Nome do agente.
                        external_id:
                          type:
                            - string
                            - 'null'
                          description: Identificador da mensagem no WhatsApp (wamid).
                        recipient_id:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Telefone do destinatário (cliente final), em formato
                            E.164.
                        status:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Status do log de entrega — para este relatório,
                            sempre `failed`.
                        error_code:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Código do erro de entrega do WhatsApp (ex.:
                            `131049`).
                        error_title:
                          type:
                            - string
                            - 'null'
                          description: Título do erro.
                        error_message:
                          type:
                            - string
                            - 'null'
                          description: Mensagem do erro.
                        error_detail:
                          type:
                            - string
                            - 'null'
                          description: Detalhe adicional do erro, quando houver.
                        message_created_at:
                          type:
                            - string
                            - 'null'
                          description: Momento de criação da mensagem (ISO 8601).
                          format: date-time
                        conversation_started_at:
                          type:
                            - string
                            - 'null'
                          description: Momento de início da conversa (ISO 8601).
                          format: date-time
                        conversation_link:
                          type:
                            - string
                            - 'null'
                          description: Deep-link para a conversa na plataforma.
                        metadata:
                          type: object
                          description: >-
                            Metadados do webhook de status de entrega do
                            WhatsApp (apenas campos permitidos: `status`, `id`,
                            `recipient_id`, `timestamp`, `errors[]`).
                  next_cursor:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Cursor da próxima página; `null` quando não há mais
                      páginas.
                  count:
                    type: integer
                    description: Número de linhas nesta página.
        '400':
          description: Parâmetro inválido, janela de tempo ausente ou maior que 31 dias.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Erro'
        '401':
          description: Chave de acesso ausente ou inválida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Erro'
        '404':
          description: Relatório desconhecido em `{report}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Erro'
        '429':
          description: >-
            Limite de requisições excedido (cerca de 120 por minuto por
            workspace).
          headers:
            Retry-After:
              description: Segundos a aguardar antes de repetir a requisição.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Erro'
components:
  schemas:
    Erro:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Descrição do erro.
  securitySchemes:
    workspaceApiKey:
      type: http
      scheme: bearer
      description: >-
        Workspace API key no formato `mk_...`, gerada na plataforma em
        **Integrações → Configurar API**.

````