Skip to main content

Formato de los errores

Los errores devuelven un cuerpo con esta forma:
En los errores de validación (400), el campo errors trae el detalle campo por campo:

Códigos que vas a ver

El 404 de esta API cubre dos casos distintos: la API key ausente o inválida (Api Key is required, Your API key is invalid) y el recurso inexistente (Level not found, Client not found, Sucursal no encontrada). No es el 401 que esperarías para el primer caso, pero es el comportamiento real y hay integraciones acopladas a él.

Idempotencia

Cuando sumás puntos con POST /external/tags/add, mandá siempre el campo external_id con el identificador de la venta en tu sistema (número de factura, id de ticket). Si llega un external_id que ya tiene una operación activa para tu comercio, la API responde 409 en lugar de acreditar los puntos de nuevo.
Un 409 significa que la operación original se procesó bien. Es la respuesta correcta ante un reintento, no un fallo: no reintentes ni acredites los puntos por otra vía.
Sin external_id no hay protección contra duplicados: si tu sistema reintenta por un timeout de red, el cliente recibe los puntos dos veces. Ese mismo external_id es el que usás después para cancelar la operación si se anula la venta:

Rate limits

Los límites se aplican por comercio, no por API key ni por IP. Los endpoints de código de validación devuelven headers informativos en cada respuesta:
Si hacés polling del código de validación, usá el validationWindowSeconds que devuelve GET /external/validation-code/qrs para espaciar las llamadas. No tiene sentido consultar más seguido que la rotación del código.
Al superar el límite, la respuesta es un 429:

Recomendaciones para producción

Reintentá solo ante 429 y 5xx, con esperas crecientes (1s, 2s, 4s…). Los 4xx restantes no se resuelven reintentando.
Un 409 confirma que la operación ya existe. Marcala como exitosa en tu sistema.
Usá un timeout de al menos 15 segundos. Sumar puntos dispara notificaciones y cálculo de bonificaciones, así que no siempre responde instantáneo.
Si la API no responde, encolá la operación y reintentá después. Que el programa de puntos falle no debería impedirle cobrar a la caja.