Formato de los errores
Los errores devuelven un cuerpo con esta forma: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 conPOST /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.
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:
429:
Recomendaciones para producción
Reintentos con backoff exponencial
Reintentos con backoff exponencial
Reintentá solo ante
429 y 5xx, con esperas crecientes (1s, 2s, 4s…). Los 4xx restantes no se resuelven reintentando.Nunca reintentes un 409
Nunca reintentes un 409
Un
409 confirma que la operación ya existe. Marcala como exitosa en tu sistema.Timeouts razonables
Timeouts razonables
Usá un timeout de al menos 15 segundos. Sumar puntos dispara notificaciones y cálculo de bonificaciones, así que no siempre responde instantáneo.
No bloquees la venta
No bloquees la venta
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.

