Skip to main content

Recompensas

Las recompensas separan el catálogo de las asignaciones individuales:
  • Una recompensa es la definición del beneficio: qué es, cuántas veces se canjea, cuándo expira. Se identifica con un slug estable.
  • Un derecho (entitlement) es esa recompensa ya asignada a un pase concreto, con su propio vencimiento y sus canjes restantes.
Esta función debe estar habilitada en tu cuenta. Consultar y administrar el catálogo siempre funciona; asignar y canjear requieren la función activa. Si recibes 403 REWARDS_DISABLED, escríbenos a dev@alaramx.com.

El objeto recompensa

string
Identificador estable y legible, por ejemplo cafe_gratis. Es inmutable.
string
Nombre visible del beneficio.
string
gift, discount o custom.
string
Descripción del beneficio.
string
active o archived.
integer
Versión actual. Cada edición publica una versión nueva; los derechos ya asignados conservan la versión con la que se crearon.
boolean
Si un mismo pase puede recibir la recompensa más de una vez.
integer
Cuántos canjes permite cada derecho asignado.
integer | null
Cuántas veces puede asignarse en total. null significa sin límite.
object
Política de vencimiento.
string
RFC 3339.
string
RFC 3339.

El objeto derecho

string
Identificador (UUID) del derecho.
string
Identificador de la familia de recompensa.
string
Versión concreta de la recompensa asignada.
string
slug de la recompensa.
string
Nombre en el momento de la asignación.
string
gift, discount o custom.
string
Pase al que pertenece.
string
available, redeemed o expired.
integer
Canjes disponibles.
string | null
Cuándo expira, RFC 3339.
string | null
time_elapsed o replaced.
string
manual (asignado por API o desde el Dashboard) o automatic (asignado por una regla de activación).
string
RFC 3339.
string
RFC 3339.

Crear una recompensa

string
required
Nombre del beneficio. Máximo 200 caracteres.
string
required
gift, discount o custom.
string
Identificador estable. Debe cumplir el patrón minusculas_y_numeros (segmentos alfanuméricos separados por guion bajo), máximo 80 caracteres. Si lo omites, se genera a partir del name.
string
Descripción. Máximo 2 000 caracteres.
boolean
Permite que un mismo pase reciba la recompensa más de una vez.
integer
Canjes por derecho asignado. Debe ser al menos 1; enviar 0 equivale a 1.
integer
Tope total de asignaciones. Omítelo para que sea ilimitado.
object
required
Política de vencimiento.
Devuelve 201 Created con la recompensa.

boolean
default:"false"
Incluye también las recompensas archivadas.
Devuelve 200 OK con un objeto { "rewards": [ ... ] }. Este listado no está paginado.

Consultar una recompensa

Devuelve 200 OK con la recompensa, o 404 RESOURCE_NOT_FOUND.

Editar una recompensa

Publica una versión nueva. Los derechos ya asignados conservan las condiciones con las que se crearon; solo las asignaciones futuras usan la versión nueva. Acepta los mismos campos que la creación, salvo slug, que es inmutable. Devuelve 200 OK con la recompensa y su version incrementada.

Archivar, restaurar y eliminar

Archiva la recompensa: deja de poder asignarse, pero los derechos ya otorgados siguen siendo válidos y canjeables. Devuelve 204 No Content.
Restaura una recompensa archivada publicando una versión nueva. Acepta el mismo cuerpo que la edición. Devuelve 200 OK.
Elimina la recompensa del catálogo. Devuelve 204 No Content.
Archivar o eliminar devuelve 409 RESOURCE_CONFLICT si una regla de activación todavía referencia el slug, o si ya existen derechos asignados. Actualiza primero la regla.

Asignar una recompensa a un pase

string
required
El pass_id del pase.
string
required
slug de la recompensa a asignar.
Devuelve 201 Created con el derecho creado.

Errores


Listar los derechos de un pase

boolean
default:"false"
Por omisión devuelve solo los derechos canjeables. Con true incluye también los canjeados y expirados.
Devuelve 200 OK con un objeto { "entitlements": [ ... ] }.
Este es el endpoint que consulta tu punto de venta al escanear un pase, para mostrarle al cajero qué beneficios puede aplicar en ese momento.

Canjear un derecho

string
required
El pass_id del pase.
string
required
UUID del derecho.
integer
default:"1"
Cuántos canjes descontar.
string
Dónde se canjeó, por ejemplo la sucursal o la caja.
string
Nota libre sobre el canje.
Devuelve 200 OK con el registro del canje y el derecho actualizado.
El canje es irreversible. No existe un endpoint para deshacerlo. Confirma con la persona antes de registrarlo.

Errores


Conteo de derechos

Resumen agregado de todos los derechos de tu cuenta.

Asignación automática

Para otorgar recompensas sin intervención manual, usa la acción assign_reward de una regla de activación. Los derechos así creados llegan con assignment_source_type: "automatic".