> ## 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.

# Obtendo QR Code

Este endpoint permite capturar o QR Code de uma instância para autenticação no WhatsApp. Ele retorna a imagem no formato `image/png`, permitindo exibi-la diretamente em uma tag `<img />` no HTML, se necessário. Para acessar este recurso, é obrigatório fornecer um **token de acesso**, que pode ser passado no cabeçalho da requisição ou na **query string**.

Para utilizar este endpoint, é necessário fornecer um **token de acesso** válido. A forma recomendada é enviá-lo no **cabeçalho da requisição**. Opcionalmente, ele pode ser passado na URL como **query string**, mas isso expõe o token e não é recomendado.

### Usando o Token na Query String ⚠️ (Caso de Uso Específico)

```html theme={null}
<img src="https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode?access_token=SEU_TOKEN_AQUI" />
```

**⚠️ Importante:** O uso do token na URL pode expô-lo em logs de servidores e históricos de navegadores, o que representa um risco de segurança. Sempre prefira a autenticação via cabeçalho HTTP.

🚀 **Por que essa opção está disponível?**
A renderização do QR Code via **query string** foi criada para permitir que o cliente compartilhe o link diretamente com seu usuário final, usando um **token temporário**. Dessa forma, o usuário pode simplesmente abrir o link no navegador, visualizar o QR Code e conectar a instância. Essa funcionalidade pode ser útil em cenários onde o cliente final não tem acesso ao painel da API, mas precisa conectar a conta do WhatsApp rapidamente.

### ❌ QR Code Indisponível

Se a instância já estiver conectada ou o QR Code não estiver disponível, a API retornará um erro:

```json theme={null}
{
  "errors": [
    {
      "code": "qrcode_unavailable",
      "message": "The instance's QR code is not available. This might be because your instance is already connected."
    }
  ]
}
```

### 📡 QR Code em Tempo Real

Se deseja atualizar o QR Code em tempo real sem que seu usuário precise sair da sua plataforma, recomendamos utilizar os eventos da instância para acompanhar as atualizações.

Para isso, você pode configurar um webhook para escutar o evento `instance.qrcode`. Sempre que o QR Code da sua instância for atualizado, seu sistema receberá uma notificação automática, permitindo que você atualize a exibição do QR Code em tempo real e garanta uma experiência fluida para o usuário.

### 📌 Considerações Finais

* O QR Code muda constantemente, então é necessário **atualizar periodicamente** até a conexão ser estabelecida.
* Instâncias conectadas **não possuem QR Code disponível**.
* Para segurança, evite expor tokens na URL; prefira enviá-los via cabeçalho HTTP.
* Se for utilizar a query string, certifique-se de que o **token seja temporário** para evitar riscos de exposição.


## OpenAPI

````yaml GET /wa/instances/{instance_id}/qrcode
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/instances/{instance_id}/qrcode:
    get:
      tags: []
      summary: QRCode da Instância
      parameters:
        - name: instance_id
          in: path
          description: Obrigatório se `instance_id` não estiver presente no `body`.
          required: true
          example: ozj35qv418rpmlrb
          schema:
            type: string
        - name: access_token
          in: query
          description: Token de acesso
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            image/png:
              schema:
                type: string
                format: binary
        '400':
          description: Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Código de erro
                          example: qrcode_unavailable
                        message:
                          type: string
                          description: Mensagem de erro
                          example: >-
                            The instance's QR code is not available. This might
                            be because your instance is already connected.
      deprecated: false
      security:
        - bearer: []
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer

````