API de HCC2D

La API REST de HCC2D permite generar códigos HCC2D y QR de forma programática. El acceso requiere una clave API: solicítela aquí.

Autenticación

Envíe la clave en la cabecera Authorization:

Authorization: Bearer hcc2d_<64 hex chars>

Las solicitudes sin una clave válida se rechazan con HTTP 401.

URL base

https://hcc2d.com/api/v1

Endpoints

POST /api/v1/generate

Codifique un contenido en un símbolo HCC2D o QR y reciba una imagen PNG.

Cuerpo de la solicitud (JSON)

CampoTipoObligatorioDescripción
payloadBase64stringBytes del contenido codificados en base64
inputNamestringnoNombre de archivo almacenado dentro del contenedor HCC2DF (por ejemplo payload.txt o data.pdf). El valor por defecto es payload.bin. Se ignora cuando structured: false.
structuredbooleannoEnvuelve el contenido en el contenedor HCC2DF (nombre de archivo + compresión zlib). El valor por defecto es true. Use false para guardar bytes sin contenedor. Conviene usar false para URL y vCard, de modo que el decodificador reconozca el contenido directamente. Consulte la referencia del formato HCC2DF.
modestringnoTipo de símbolo: qr, hcc2d4 (4 colores), hcc2d8 (8 colores, por defecto)
ecstringnoNivel de corrección de errores: L, M, Q, H (por defecto M)
versionintegernoVersión del símbolo (1–40). Use 0 para selección automática.
scaleintegernoPíxeles por módulo (1–64, por defecto 12)
quietZoneintegernoAnchura de la zona de silencio en módulos (0–64, por defecto 4)

Solicitud de ejemplo

curl -X POST https://hcc2d.com/api/v1/generate   -H "Authorization: Bearer hcc2d_<your-key>"   -H "Content-Type: application/json"   -d '{
    "payloadBase64": "SGVsbG8sIFdvcmxkIQ==",
    "inputName": "payload.txt",
    "structured": true,
    "mode": "hcc2d8",
    "ec": "M",
    "version": 0,
    "scale": 4,
    "quietZone": 4
  }' --output code.png

Respuesta correcta (200)

{
  "ok": true,
  "imageUrl": "/generated/<uuid>.png",
  "message": "Code generated successfully — Version 1"
}

Respuesta de error

{
  "ok": false,
  "error": "Human-readable message",
  "code": "machine_readable_code"
}

Códigos de error

HTTPCódigoSignificado
400missing_payloadpayloadBase64 no existe o está vacío
400invalid_base64payloadBase64 no es base64 válido
400empty_payloadEl contenido decodificado tiene cero bytes
400payload_over_maxEl contenido supera el límite previo a la codificación del servidor
400too_large_settingsEl contenido cabe en general, pero no con la combinación solicitada de versión, EC y modo
400too_large_absoluteEl contenido supera la capacidad absoluta de cualquier símbolo. Reduzca el tamaño.
400encoder_failedEl codificador rechazó la entrada por un motivo distinto de la capacidad
400invalid_mode / invalid_ec / invalid_version / invalid_scale / invalid_quiet_zoneUn parámetro está fuera del rango permitido
401auth_requiredLa clave API falta, es inválida o ha sido revocada
413body_too_largeEl cuerpo HTTP supera el límite del parser
415unsupported_media_typeContent-Type no es application/json
429rate_limitedSe alcanzó el límite por clave o por IP
429too_many_jobsEl servidor alcanzó el límite de trabajos concurrentes
500internal_errorFallo interno inesperado
502missing_outputEl codificador terminó sin producir imagen
503encoder_unavailableEl binario del codificador no está disponible
504encoder_timeoutEl proceso de codificación superó el tiempo límite

Límites de tasa

LímiteValor
Por clave API30 solicitudes / minuto
Por IP (con clave)60 solicitudes / minuto
Bloqueo por fuerza bruta10 fallos de autenticación / 15 min bloquean la IP durante 15 min

Cuando se alcanza un límite, el servidor devuelve 429 con la cabecera Retry-After.

¿Necesita límites más altos? Escriba a info@hcc2d.com.

Límites del tamaño de carga

CapaLímiteAplicado por
Parser del cuerpo~86 KBServidor, antes de analizar el JSON — devuelve body_too_large
Control previo65.536 bytes (64 KB)Servidor, tras decodificar base64 — devuelve payload_over_max
Máximo absoluto del código~8.859 bytesCodificador — devuelve too_large_absolute
Límite según ajustesDepende de la versión y del nivel ECCodificador — devuelve too_large_settings

Por defecto, el servidor aplica compresión zlib mediante el contenedor HCC2DF antes de codificar, por lo que entradas de hasta 64 KB a menudo pueden caber. Pase structured: false para omitir el contenedor y codificar bytes sin procesar.

La interfaz web aplica además un límite de 64 KB para cargas desde el navegador, alineado con la validación del servidor.

Recuperación de imágenes

Los PNG generados se sirven en https://hcc2d.com<imageUrl> y se conservan durante 1 hora. Descárguelos poco después de generarlos.

Obtener una clave API

Solicite una clave API mediante el formulario oficial.

Más información

Referencia del formato HCC2DF — diseño binario campo por campo del contenedor estructurado.

Ejemplos de código — fragmentos listos para usar en JavaScript, Python, Java y PHP.

← Volver al codificador HCC2D