187 lines
4.2 KiB
Markdown
187 lines
4.2 KiB
Markdown
---
|
||
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.
|