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

# Status da janela de atendimento

> Informa se a janela de atendimento de 24 horas do WhatsApp está ABERTA para um contato no número vinculado à chave de API.

- **Números Meta Cloud API** — `windowType: "META_24H"`. `open` é true quando a última mensagem recebida do contato chegou nas últimas 24 horas; `expiresAt` é `lastInboundAt` + 24h. Com a janela aberta, mensagens de texto livre são permitidas; quando fecha, os envios falham com `META_OUTSIDE_24H_WINDOW` e é preciso usar um template aprovado.
- **Números web (não oficiais)** — sem restrição da Meta: `windowType: "NONE"` e `open` é sempre true; `lastInboundAt`/`expiresAt` continuam sendo retornados de forma informativa.

Consulte antes de enviar conteúdo livre para decidir entre mensagem livre e template.

**Requer uma chave com escopo de número.**



## OpenAPI

````yaml openapi.pt.json GET /v1/service-window
openapi: 3.1.0
info:
  title: API Pilot Status
  version: 1.0.0
  license:
    name: Pilot Status Terms of Service
    url: https://pilotstatus.com.br/terms
  description: >-
    API REST pública do Pilot Status. Autentique com o header `x-api-key:
    ps_...` (ou `x-api-key-id`). Base URL: https://pilotstatus.com.br
servers:
  - url: https://pilotstatus.com.br
security:
  - apiKey: []
  - apiKeyId: []
paths:
  /v1/service-window:
    get:
      tags:
        - Messages
      summary: Status da janela de atendimento
      description: >-
        Informa se a janela de atendimento de 24 horas do WhatsApp está ABERTA
        para um contato no número vinculado à chave de API.


        - **Números Meta Cloud API** — `windowType: "META_24H"`. `open` é true
        quando a última mensagem recebida do contato chegou nas últimas 24
        horas; `expiresAt` é `lastInboundAt` + 24h. Com a janela aberta,
        mensagens de texto livre são permitidas; quando fecha, os envios falham
        com `META_OUTSIDE_24H_WINDOW` e é preciso usar um template aprovado.

        - **Números web (não oficiais)** — sem restrição da Meta: `windowType:
        "NONE"` e `open` é sempre true; `lastInboundAt`/`expiresAt` continuam
        sendo retornados de forma informativa.


        Consulte antes de enviar conteúdo livre para decidir entre mensagem
        livre e template.


        **Requer uma chave com escopo de número.**
      operationId: get_service_window
      parameters:
        - name: destinationNumber
          in: query
          required: true
          description: >-
            Telefone do contato em formato E.164, com ou sem o + inicial
            (somente dígitos também é aceito).
          schema:
            type: string
          example: '+5511988887777'
      responses:
        '200':
          description: Status da janela de atendimento
          content:
            application/json:
              schema:
                type: object
                properties:
                  open:
                    type: boolean
                    description: >-
                      Se mensagens de texto livre podem ser enviadas agora.
                      Sempre true para números web (não oficiais).
                    example: true
                  windowType:
                    type: string
                    enum:
                      - META_24H
                      - NONE
                    description: >-
                      META_24H para números Meta Cloud API (janela de 24h
                      aplicada); NONE para números web (não oficiais).
                    example: META_24H
                  lastInboundAt:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Timestamp UTC ISO da mensagem recebida mais recente do
                      contato, ou null quando desconhecido.
                    example: '2026-07-18T10:00:00.000Z'
                  expiresAt:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Timestamp UTC ISO de quando a janela fecha (lastInboundAt
                      + 24h), ou null. Informativo em números web.
                    example: '2026-07-19T10:00:00.000Z'
        '400':
          description: destinationNumber inválido ou ausente
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: >-
                  destinationNumber é obrigatório e deve ser um telefone válido
                  (E.164, com ou sem +)
                code: INVALID_DESTINATION
        '401':
          description: Header `x-api-key` / `x-api-key-id` ausente ou inválido
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Unauthorized
        '403':
          description: Chave com escopo de tenant usada em endpoint com escopo de número
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Tenant-scoped keys cannot call number endpoints
                code: TENANT_SCOPE_NOT_ALLOWED
        '404':
          description: Número de WhatsApp não encontrado
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: WhatsApp number not found
                code: NUMBER_NOT_FOUND
        '429':
          description: Limite de requisições excedido
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Too many requests
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Sua chave de API ps_
    apiKeyId:
      type: apiKey
      in: header
      name: x-api-key-id
      description: Id da chave de API (alternativa ao x-api-key)

````