Cree contenido QR para URL, WiFi, vCard, SMS o correo
Una imagen QR es la representación visual de una cadena de texto, y cada tipo de contenido requiere una sintaxis concreta.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Este generador convierte campos habituales en una cadena lista para codificar como sitio web, red WiFi, contacto vCard, mensaje SMS o borrador de correo. Aplica los separadores, escapes, finales de línea y la codificación URI apropiados, y devuelve un texto determinista que usted puede enviar directamente a una biblioteca QR, un servicio de imágenes, un proceso de impresión o una prueba automatizada.
Elija el tipo de contenido antes de indicar los campos
Empiece por el tipo de contenido que corresponda a la acción que desea ofrecer al escanear. Una carga URL es una dirección HTTP o HTTPS absoluta y válida, que la mayoría de las aplicaciones de cámara abren en el navegador. Una carga WiFi incluye el nombre de la red, el modo de seguridad, la contraseña cuando sea necesaria y una marca opcional para redes ocultas. Una vCard representa un contacto reutilizable. SMS incluye un número de destino y un mensaje previo opcional, mientras que el correo incluye un destinatario, un asunto y un cuerpo opcionales. Solo el formato elegido determina qué campos son obligatorios; por tanto, no se solicita una dirección de correo al crear una carga WiFi. Si falta un dato necesario, el generador devuelve un error claro de entrada no válida. El resultado contiene el tipo normalizado y la cadena final; no dibuja la imagen, no contacta con el destinatario ni comprueba que este exista.
Comprenda el tratamiento de los caracteres reservados
Los formatos de contenido QR emplean signos de puntuación como parte de su estructura, de modo que algunos caracteres introducidos por el usuario deben protegerse. En WiFi, las propiedades se separan con punto y coma, y los nombres y valores con dos puntos. El generador escapa barras inversas y signos reservados dentro del nombre o la contraseña para conservarlos como datos. El texto vCard aplica escapes propios a barras inversas, comas, puntos y coma y saltos de línea; además, la tarjeta se compone con campos de la versión 3.0 y finales CRLF. El correo se representa mediante un URI mailto. El asunto y el cuerpo se codifican como valores de consulta para conservar espacios, ampersands, saltos y caracteres no ASCII sin alterar la estructura. SMS utiliza el formato compacto SMSTO compatible con numerosos lectores. Cada regla pertenece a su formato: una codificación URL genérica dañaría la sintaxis WiFi o vCard, mientras que omitirla en una consulta de correo podría cambiar el texto interpretado.
Utilice la cadena en un codificador o en sus pruebas
Envíe la cadena devuelta, sin modificarla, a la entrada de texto de su codificador QR. El codificador debe tratarla como datos y elegir el nivel de corrección de errores, el tamaño, el margen y el formato de salida; estas decisiones visuales son independientes de la construcción del contenido. Separar ambas etapas permite que una misma carga canónica alimente código SVG, PNG, PDF, impresoras de etiquetas o aplicaciones móviles sin duplicar reglas. También facilita las pruebas: guarde entradas representativas y compare el contenido exacto, incluidos los finales de línea de vCard y los separadores WiFi escapados, antes de generar imágenes. Si un escaneo resulta inesperado, revise primero el texto y después los ajustes del codificador y la compatibilidad del lector. El proceso es determinista y no usa red, azar ni tiempo. Para tareas ocasionales puede usar el navegador; la API cuesta $0.002 por solicitud y resulta adecuada para lotes, plantillas, despliegues y aplicaciones de servidor.
Qué puede hacer con ella
Prepare tarjetas WiFi
Construya una carga de red escapada antes de imprimir códigos QR de acceso para carteles, habitaciones o paquetes de bienvenida.
Genere etiquetas de contacto
Convierta datos de contacto en una carga vCard 3.0 que pueda codificarse en acreditaciones, tarjetas e insertos.
Pruebe un flujo QR
Compruebe cadenas exactas de URL, SMS y correo sin depender de la generación de imágenes ni de pruebas con lectores.
Preguntas frecuentes
¿Esta herramienta crea una imagen de código QR?
No. Crea la cadena de contenido que usted debe proporcionar a un codificador QR independiente.
¿Cuánto cuesta?
Puede ejecutarla gratis en su navegador desde esta página o pagar $0.002 por solicitud mediante la API.
¿Qué modos de seguridad WiFi admite?
Admite WPA, WEP y nopass. WPA y WEP requieren contraseña; nopass no la necesita.
¿Qué versión de vCard genera?
Genera una vCard 3.0 con nombre estructurado, nombre visible y los datos de contacto opcionales proporcionados.
¿El asunto y el cuerpo del correo pueden contener espacios o saltos?
Sí. Se codifican como valores de consulta mailto para conservar caracteres reservados y saltos de línea.
¿Verifica una URL, un teléfono, una red o un buzón?
No. Valida localmente la forma necesaria, pero no consulta servicios externos ni confirma que el destino exista.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/web/qr-payload-build \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"wifi"}'const res = await fetch("https://api.kit.forhosting.com/web/qr-payload-build", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"type": "wifi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/qr-payload-build",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"type": "wifi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/qr-payload-build", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"type":"wifi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"type":"wifi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/qr-payload-build", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"type": "wifi"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.qr_payload_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
timeout_sec | 30 |
max_crawl_pages | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |