QrRapido/Content/DevTutoriais/gerando-qrcodes-pela-api.pt-BR.md
Ricardo Carneiro 7a0c12f8d2
Some checks failed
Deploy QR Rapido / test (push) Failing after 17s
Deploy QR Rapido / build-and-push (push) Has been skipped
Deploy QR Rapido / deploy-staging (push) Has been skipped
Deploy QR Rapido / deploy-production (push) Has been skipped
feat: api separada do front-end e area do desenvolvedor.
2026-03-08 12:40:51 -03:00

187 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 (1002000) |
| `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.