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

# Listar Templates

> Retorna todos os templates de mensagens do WhatsApp Cloud API aprovados para uma determinada integração.

## Requisição

`GET https://crm.wavups.com/api/v1/whatsapp/templates`

<ParamField header="Token" type="string" required>
  Seu token de autenticação.
</ParamField>

### Query Parameters

<ParamField query="accountIntegrationId" type="string" required>
  ID da integração de WhatsApp da sua conta. Obtenha este ID através do endpoint [Listar Integrações](/api-reference/integracoes/listar) ou utilize a propriedade `accountIntegration` do endpoint [Listar Setores](/api-reference/setores/listar).
</ParamField>

<ParamField query="status" type="string">
  Filtra templates pelo status no WhatsApp. Valores permitidos: `APPROVED` (padrão), `PENDING`, `REJECTED`, `PAUSED`.
</ParamField>

<ParamField query="limit" type="number">
  Limite máximo de templates retornados (padrão: `100`).
</ParamField>

<ParamField query="templateName" type="string">
  Nome específico do template para buscar em conjunto com `languageCode`.
</ParamField>

<ParamField query="languageCode" type="string">
  Código do idioma do template (ex: `pt_BR`, `en_US`).
</ParamField>

***

## Resposta

Retorna um objeto contendo o array `data` com os templates e suas configurações de componentes.

<ResponseField name="data" type="array">
  Lista de templates encontrados.

  <Expandable title="Propriedades do Template">
    <ResponseField name="id" type="string">
      Identificador do template na Meta.
    </ResponseField>

    <ResponseField name="name" type="string">
      Nome do template (utilizado no campo `template.name` ao disparar).
    </ResponseField>

    <ResponseField name="status" type="string">
      Status de aprovação (`APPROVED`, `PENDING`, `REJECTED`, `PAUSED`).
    </ResponseField>

    <ResponseField name="category" type="string">
      Categoria do template (`MARKETING`, `UTILITY`, `AUTHENTICATION`).
    </ResponseField>

    <ResponseField name="language" type="string">
      Código de idioma (ex: `pt_BR`). Ao realizar o disparo no endpoint [Disparar Mensagem](/api-reference/whatsapp/enviar-mensagem), passe este valor no formato `language: { "code": "pt_BR" }`.
    </ResponseField>

    <ResponseField name="components" type="array">
      Estrutura dos blocos do template (HEADER, BODY, FOOTER, BUTTONS).
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Exemplos

<RequestExample>
  ```bash GET /api/v1/whatsapp/templates theme={null}
  curl --request GET \
    --url 'https://crm.wavups.com/api/v1/whatsapp/templates?accountIntegrationId=cmint1234567890' \
    --header 'Token: SEU_TOKEN_DE_API'
  ```

  ```javascript Node.js theme={null}
  const res = await fetch('https://crm.wavups.com/api/v1/whatsapp/templates?accountIntegrationId=cmint1234567890', {
    headers: {
      'Token': 'SEU_TOKEN_DE_API'
    }
  });
  const data = await res.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://crm.wavups.com/api/v1/whatsapp/templates',
      params={'accountIntegrationId': 'cmint1234567890'},
      headers={'Token': 'SEU_TOKEN_DE_API'}
  )
  print(response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "123456789012345",
        "name": "confirmacao_pedido",
        "status": "APPROVED",
        "category": "UTILITY",
        "language": "pt_BR",
        "components": [
          {
            "type": "BODY",
            "text": "Olá {{1}}, seu pedido {{2}} foi confirmado com sucesso!",
            "example": {
              "body_text": [["João", "12345"]]
            }
          },
          {
            "type": "BUTTONS",
            "buttons": [
              {
                "type": "URL",
                "text": "Acompanhar Pedido",
                "url": "https://meusite.com/pedidos/{{1}}"
              }
            ]
          }
        ]
      }
    ]
  }
  ```

  ```json 400 theme={null}
  {
    "error": "accountIntegrationId query parameter is required"
  }
  ```

  ```json 404 theme={null}
  {
    "error": "WhatsApp integration not found for this account"
  }
  ```
</ResponseExample>


## OpenAPI

````yaml GET /whatsapp/templates
openapi: 3.0.3
info:
  title: WavUps CRM API
  description: >-
    API pública da plataforma WavUps CRM — gerencie leads, produtos, categorias,
    atendimentos, agendamentos, conversas e pipelines de CRM.
  version: 1.0.0
servers:
  - url: https://crm.wavups.com/api/v1
    description: Servidor de produção
security:
  - Token: []
paths:
  /whatsapp/templates:
    get:
      tags:
        - WhatsApp
      summary: Listar Templates
      description: >-
        Retorna todos os templates de mensagens do WhatsApp Cloud API aprovados
        para uma determinada integração.
      operationId: listWhatsAppTemplates
      parameters:
        - name: accountIntegrationId
          in: query
          required: true
          description: ID da integração de WhatsApp da sua conta.
          schema:
            type: string
        - name: status
          in: query
          description: 'Filtra templates pelo status no WhatsApp (padrão: APPROVED).'
          schema:
            type: string
            enum:
              - APPROVED
              - PENDING
              - REJECTED
              - PAUSED
        - name: limit
          in: query
          description: 'Limite máximo de templates retornados (padrão: 100).'
          schema:
            type: integer
        - name: templateName
          in: query
          description: Nome específico do template.
          schema:
            type: string
        - name: languageCode
          in: query
          description: 'Código do idioma do template (ex: pt_BR).'
          schema:
            type: string
      responses:
        '200':
          description: Templates retornados com sucesso.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WhatsAppTemplatesResponse'
        '400':
          description: Parâmetro obrigatório ausente.
        '404':
          description: Integração de WhatsApp não encontrada.
        '500':
          $ref: '#/components/responses/Error500'
components:
  schemas:
    WhatsAppTemplatesResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              status:
                type: string
              category:
                type: string
              language:
                type: string
              components:
                type: array
                items:
                  type: object
    ErrorMessage:
      type: object
      properties:
        error:
          type: string
          example: Recurso não encontrado.
  responses:
    Error500:
      description: Erro interno no servidor.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
  securitySchemes:
    Token:
      type: apiKey
      in: header
      name: Token
      description: Token de autenticacao gerado na plataforma WavUps CRM.

````