187 lines
4.4 KiB
Markdown
187 lines
4.4 KiB
Markdown
---
|
||
title: "Cómo Generar Códigos QR por la API: Todos los Tipos"
|
||
description: "Guía completa para generar códigos QR vía API REST usando cada tipo disponible: URL, Pix, Wi-Fi, vCard, WhatsApp, SMS, e-mail y texto libre."
|
||
keywords: "api qr code, generar qr code api, qr code rest api, qrrapido api, tipos qr code paraguay"
|
||
author: "QRRapido"
|
||
date: 2026-03-08
|
||
lastmod: 2026-03-08
|
||
image: ""
|
||
---
|
||
|
||
# Cómo Generar Códigos QR por la API: Todos los Tipos
|
||
|
||
La API QRRapido soporta 8 tipos de código QR. Todos usan el mismo endpoint — lo que cambia es el campo `type` ha los campos específicos que forman el `content`.
|
||
|
||
## Endpoint
|
||
|
||
```
|
||
POST /api/v1/QRManager/generate
|
||
X-API-Key: tu_clave_aqui
|
||
Content-Type: application/json
|
||
```
|
||
|
||
## Estructura Base de la Solicitud
|
||
|
||
```json
|
||
{
|
||
"content": "...",
|
||
"type": "url",
|
||
"size": 400,
|
||
"primaryColor": "#000000",
|
||
"backgroundColor": "#FFFFFF",
|
||
"outputFormat": "png"
|
||
}
|
||
```
|
||
|
||
| Campo | Tipo | Por defecto | Descripción |
|
||
|---|---|---|---|
|
||
| `content` | string | obligatorio | Contenido del QR |
|
||
| `type` | string | `"url"` | Tipo de QR (ver abajo) |
|
||
| `size` | int | `300` | Tamaño en píxeles (100–2000) |
|
||
| `primaryColor` | string | `"#000000"` | Color de los módulos (hex) |
|
||
| `backgroundColor` | string | `"#FFFFFF"` | Color de fondo (hex) |
|
||
| `outputFormat` | string | `"png"` | Formato: `png`, `webp`, `svg` |
|
||
|
||
---
|
||
|
||
## Tipo `url` — Link / URL
|
||
|
||
El más simple: cualquier URL válida.
|
||
|
||
```json
|
||
{
|
||
"type": "url",
|
||
"content": "https://tuempresa.com.py/producto/123"
|
||
}
|
||
```
|
||
|
||
> Usá `https://` siempre que sea posible. Los QR con HTTP pueden ser bloqueados por algunos lectores modernos.
|
||
|
||
---
|
||
|
||
## Tipo `pix` — Pago Pix
|
||
|
||
El `content` debe ser la **clave Pix** del receptor. La generación produce un QR de Pix estático (sin conexión con el Banco Central — mirá el tutorial dedicado sobre Pix).
|
||
|
||
```json
|
||
{
|
||
"type": "pix",
|
||
"content": "contacto@tuempresa.com.br"
|
||
}
|
||
```
|
||
|
||
Claves aceptadas: CPF/CNPJ (solo dígitos), e-mail, teléfono en formato `+5511999999999`, o clave aleatoria (UUID).
|
||
|
||
---
|
||
|
||
## Tipo `wifi` — Red Wi-Fi
|
||
|
||
El `content` usa el formato estándar `WIFI:`:
|
||
|
||
```json
|
||
{
|
||
"type": "wifi",
|
||
"content": "WIFI:S:NombreDeRed;T:WPA;P:ContraseñaDeRed;;"
|
||
}
|
||
```
|
||
|
||
| Parámetro | Significado | Valores |
|
||
|---|---|---|
|
||
| `S:` | SSID (nombre de la red) | texto |
|
||
| `T:` | Tipo de seguridad | `WPA`, `WEP`, `nopass` |
|
||
| `P:` | Contraseña | texto |
|
||
| `H:` | Red oculta (opcional) | `true` / `false` |
|
||
|
||
---
|
||
|
||
## Tipo `vcard` — Tarjeta de Visita
|
||
|
||
El `content` debe ser un vCard v3 completo:
|
||
|
||
```json
|
||
{
|
||
"type": "vcard",
|
||
"content": "BEGIN:VCARD\nVERSION:3.0\nFN:Juan Pérez\nORG:Empresa SRL\nTEL:+595981999999\nEMAIL:juan@empresa.com.py\nURL:https://empresa.com.py\nEND:VCARD"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Tipo `whatsapp` — Link para WhatsApp
|
||
|
||
```json
|
||
{
|
||
"type": "whatsapp",
|
||
"content": "https://wa.me/595981999999?text=Mba'éichapa%2C%20quiero%20más%20información"
|
||
}
|
||
```
|
||
|
||
El número debe incluir código de país ha área, sin espacios ni símbolos. El parámetro `text` es opcional.
|
||
|
||
---
|
||
|
||
## Tipo `email` — E-mail con asunto ha cuerpo
|
||
|
||
```json
|
||
{
|
||
"type": "email",
|
||
"content": "mailto:contacto@empresa.com.py?subject=Consulta&body=Mba'éichapa%2C%20quisiera%20saber%20más"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Tipo `sms` — SMS pre-cargado
|
||
|
||
```json
|
||
{
|
||
"type": "sms",
|
||
"content": "sms:+595981999999?body=Mba'éichapa%2C%20quiero%20más%20información"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Tipo `texto` — Texto Libre
|
||
|
||
Cualquier string de hasta 2048 caracteres:
|
||
|
||
```json
|
||
{
|
||
"type": "texto",
|
||
"content": "Mesa 5 — Atención preferencial disponible en el mostrador central. Porã roipytyvõ!"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Respuesta Exitosa
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"qrCodeBase64": "iVBORw0KGgo...",
|
||
"qrId": "abc123",
|
||
"generationTimeMs": 180,
|
||
"remainingCredits": 42,
|
||
"fromCache": false,
|
||
"format": "png",
|
||
"mimeType": "image/png"
|
||
}
|
||
```
|
||
|
||
Para mostrar la imagen directamente en HTML:
|
||
|
||
```html
|
||
<img src="data:image/png;base64,{{ qrCodeBase64 }}" alt="Código QR" />
|
||
```
|
||
|
||
---
|
||
|
||
## Consejos Generales
|
||
|
||
- **Colores**: mantené alto contraste entre `primaryColor` ha `backgroundColor`. Evitá amarillo sobre blanco o gris claro sobre blanco.
|
||
- **Tamaño mínimo impreso**: usá `size` ≥ 400 para impresiones. Para uso digital, 300 es suficiente.
|
||
- **Caché**: solicitudes idénticas devuelven `fromCache: true` sin consumir crédito adicional.
|
||
- **Rate limit**: los headers `X-RateLimit-Remaining` ha `X-Quota-Remaining` en la respuesta indican tu saldo actual.
|