---
title: "Como Gerar QR Codes pela API: Todos os Tipos Suportados"
description: "Guia completo para gerar QR codes via API REST usando cada tipo disponível: URL, Pix, Wi-Fi, vCard, WhatsApp, SMS, e-mail e texto livre."
keywords: "api qr code, gerar qr code api, qr code rest api, qrrapido api, tipos qr code"
author: "QRRapido"
date: 2026-03-08
lastmod: 2026-03-08
image: ""
---

# Como Gerar QR Codes pela API: Todos os Tipos Suportados

A API QRRapido suporta 8 tipos de QR code. Todos usam o mesmo endpoint — o que muda é o campo `type` e os campos específicos que compõem o `content`.

## Endpoint

```
POST /api/v1/QRManager/generate
X-API-Key: sua_chave_aqui
Content-Type: application/json
```

## Estrutura Base da Requisição

```json
{
  "content": "...",
  "type": "url",
  "size": 400,
  "primaryColor": "#000000",
  "backgroundColor": "#FFFFFF",
  "outputFormat": "png"
}
```

| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| `content` | string | obrigatório | Conteúdo do QR code |
| `type` | string | `"url"` | Tipo do QR code (ver abaixo) |
| `size` | int | `300` | Tamanho em pixels (100–2000) |
| `primaryColor` | string | `"#000000"` | Cor dos módulos (hex) |
| `backgroundColor` | string | `"#FFFFFF"` | Cor de fundo (hex) |
| `outputFormat` | string | `"png"` | Formato: `png`, `webp`, `svg` |

---

## Tipo `url` — Link / URL

O mais simples: qualquer URL válida.

```json
{
  "type": "url",
  "content": "https://seusite.com.br/produto/123"
}
```

> Use `https://` sempre que possível. QR codes com HTTP podem ser bloqueados por alguns leitores modernos.

---

## Tipo `pix` — Pagamento Pix

O `content` deve ser a **chave Pix** do recebedor. A geração produz um QR de Pix estático (sem conexão com o Banco Central — veja o tutorial dedicado sobre Pix).

```json
{
  "type": "pix",
  "content": "contato@suaempresa.com.br"
}
```

Chaves aceitas: CPF/CNPJ (apenas dígitos), e-mail, telefone no formato `+5511999999999`, ou chave aleatória (UUID).

---

## Tipo `wifi` — Rede Wi-Fi

O `content` usa o formato padrão `WIFI:`:

```json
{
  "type": "wifi",
  "content": "WIFI:S:NomeDaRede;T:WPA;P:SenhaDaRede;;"
}
```

| Parâmetro | Significado | Valores |
|---|---|---|
| `S:` | SSID (nome da rede) | texto |
| `T:` | Tipo de segurança | `WPA`, `WEP`, `nopass` |
| `P:` | Senha | texto |
| `H:` | Rede oculta (opcional) | `true` / `false` |

---

## Tipo `vcard` — Cartão de Visita

O `content` deve ser um vCard v3 completo:

```json
{
  "type": "vcard",
  "content": "BEGIN:VCARD\nVERSION:3.0\nFN:João Silva\nORG:Empresa Ltda\nTEL:+5511999999999\nEMAIL:joao@empresa.com\nURL:https://empresa.com\nEND:VCARD"
}
```

---

## Tipo `whatsapp` — Link para WhatsApp

```json
{
  "type": "whatsapp",
  "content": "https://wa.me/5511999999999?text=Olá%2C%20gostaria%20de%20saber%20mais"
}
```

O número deve incluir código do país e DDD, sem espaços ou símbolos. O parâmetro `text` é opcional.

---

## Tipo `email` — E-mail com assunto e corpo

```json
{
  "type": "email",
  "content": "mailto:contato@empresa.com?subject=Assunto&body=Mensagem%20inicial"
}
```

---

## Tipo `sms` — SMS pré-preenchido

```json
{
  "type": "sms",
  "content": "sms:+5511999999999?body=Olá%2C%20quero%20mais%20informações"
}
```

---

## Tipo `texto` — Texto Livre

Qualquer string de até 2048 caracteres:

```json
{
  "type": "texto",
  "content": "Mesa 12 — Atendimento preferencial disponível no balcão central."
}
```

---

## Resposta de Sucesso

```json
{
  "success": true,
  "qrCodeBase64": "iVBORw0KGgo...",
  "qrId": "abc123",
  "generationTimeMs": 180,
  "remainingCredits": 42,
  "fromCache": false,
  "format": "png",
  "mimeType": "image/png"
}
```

Para exibir a imagem diretamente no HTML:

```html
<img src="data:image/png;base64,{{ qrCodeBase64 }}" alt="QR Code" />
```

---

## Dicas Gerais

- **Cores**: mantenha alto contraste entre `primaryColor` e `backgroundColor`. Evite amarelo sobre branco ou cinza claro sobre branco.
- **Tamanho mínimo impresso**: use `size` ≥ 400 para impressões. Para uso digital (telas), 300 é suficiente.
- **Cache**: requisições idênticas retornam `fromCache: true` sem consumir crédito adicional.
- **Rate limit**: os headers `X-RateLimit-Remaining` e `X-Quota-Remaining` na resposta indicam seu saldo atual.
