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