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