Loyalty

Crea y gestiona programas de lealtad para tus clientes.


Introducción

Loyalty es el módulo que te permite crear y gestionar programas de puntos y cashback para tus clientes, sin necesidad de desarrollar ni mantener la infraestructura por tu cuenta.

  • Define las reglas y edítalas cuando quieras.
  • Sin necesidad de conocimiento técnico. Todo desde el Dashboard 24/7.
  • Tus clientes siempre pueden consultar su saldo actualizado.
  • Recibe reportes diarios y mensuales con toda la actividad del programa.
  • Todo integrado al ciclo transaccional, sin fricción.

Funcionamiento

El servicio de Loyalty se integra automáticamente con el ciclo de vida de las transacciones. Cuando se crea un usuario o tarjeta, damos de alta al miembro en el programa de loyalty, sin que sea necesaria ninguna acción adicional de tu parte.

  1. Se aprueba una transacción: evaluamos las campañas activas, generamos los puntos o cashback correspondientes y te notificamos vía webhook que están pendientes.
  2. Se presenta la transacción: confirmamos los puntos o cashback y los acreditamos en la cuenta de tu cliente. Recibes la información con el saldo actualizado vía webhook.
  3. Si la transacción se reversa o vence el período para presentarla: los puntos o cashback en estado pendiente se cancelan automáticamente y no se acreditan.

Refunds de transacciones capturadas

Cuando llega un refund sobre una transacción con puntos o cashback ya confirmados, restamos los puntos o cashback correspondientes al monto devuelto y emitimos un webhook loyalty-confirm reflejando la resta aplicada sobre el balance del member.

El tratamiento varía según el tipo de refund:

  • Refund total: se restan todos los puntos o cashback confirmados de la transacción original.
  • Refund parcial: se aplica un ajuste proporcional al monto del refund, restando únicamente los puntos o cashback correspondientes a ese monto. En ambos casos el webhook emitido es loyalty-confirm con la resta aplicada.

Campañas

Las campañas te permiten definir las reglas bajo las cuales tus clientes acumulan puntos o cashback. Podrás crearlas y administrarlas directamente desde Dashboard.

Detalles de campaña

Define la información básica y la vigencia de la campaña.

Campo Descripción
Nombre de la campaña Nombre identificador de la campaña.
ID de la campaña Identificador único generado automáticamente al crear la campaña.
Fecha de vigencia Rango de fechas en que la campaña estará activa. Puede tener fecha de inicio y fin, o activarse sin fecha de finalización.
Días de la semana (opcional) Permite restringir la campaña a días específicos de la semana.
Horario (opcional) Permite restringir la campaña a un horario específico dentro del día, con selección de zona horaria.

Condiciones de campaña

Define las reglas que debe cumplir una transacción para que la campaña aplique. Puedes combinar condiciones de comercios, tarjetas y atributos de la transacción.

Condiciones disponibles por comercio:

Condición Descripción
Código y rubro del comercio Filtra por MCC (Merchant Category Code). Permite incluir o excluir rubros específicos (ej: supermercados, combustible, restaurantes). Acepta tipo de filtro: incluir o excluir.
Nombre del comercio Filtra por nombre del comercio. Permite definir texto que debe o no debe contener el nombre.

Condiciones disponibles por tarjeta:

Condición Descripción
Marca de la tarjeta Filtra por red de pagos (ej: Visa, Mastercard).
Grupo de afinidad Filtra por el grupo de afinidad al que pertenece la tarjeta.
Tipo de tarjeta Filtra por tipo de producto: Debit, Credit o Prepaid.

Condiciones disponibles por transacción:

Condición Descripción
País Filtra por el país donde se realizó la transacción.
Origen Filtra por origen de la transacción: doméstica o internacional.
Punto de venta Filtra por el canal o punto de venta de la transacción.
Presencia del dueño de la tarjeta Indica si el titular estaba físicamente presente al momento de la compra.
Modo de entrada Filtra por el modo de ingreso de la tarjeta: chip, contactless, manual, etc.
Presencia de la tarjeta Indica si la tarjeta física estuvo presente o si fue una compra online/sin tarjeta.

Recompensa y límites

Define qué recompensa recibe el member cuando cumple las condiciones, y establece topes para controlar el costo de la campaña.

Tipo de recompensa:

Opción Descripción
Entrega de puntos El member acumula puntos por la transacción.
Cashback El member recibe un valor monetario como recompensa.

Modalidad de cálculo de la recompensa:

Modalidad Descripción Ejemplo
Monto fijo Se otorga una cantidad fija de puntos por transacción, independientemente del monto. 100 puntos por cualquier compra
Puntos por monto Se otorgan N puntos por cada X unidades monetarias gastadas. 1000 puntos por cada $X
Porcentaje Se otorga un porcentaje del monto de la transacción como puntos o cashback. 2% del monto en puntos

Recompensa por metas (opcional):

Puedes configurar una recompensa adicional que se entrega una sola vez por período cuando el cliente alcanza una meta de consumo o de transacciones. Se configura habilitando la opción Recompensa por metas y definiendo:

Campo Descripción
Meta de monto Monto acumulado que el miembro debe alcanzar en el período para recibir la recompensa extra.
Meta de transacciones Cantidad de pagos que el miembro debe realizar en el período para recibir la recompensa extra.
Período Ventana de tiempo en que se evalúa la meta (por ejemplo, mensual).
Antigüedad del cliente (opcional) Restringe la meta a clientes cuya antigüedad desde el alta esté dentro de un rango de días (mínimo y máximo).

Límites de campaña:

Define un presupuesto total compartido entre todos los miembros de la campaña, que actúa como tope global. Solo se aplican los límites habilitados (con valor mayor a 0).

Límite Descripción
Máximos totales Cantidad máxima de recompensas que la campaña puede repartir entre todos sus miembros, sin límite de tiempo.

Límites de miembros:

Define cuánto puede acumular cada miembro individualmente en esta campaña. Solo se aplican los límites habilitados (con valor mayor a 0).

Límite Descripción
Máximo por día Cantidad máxima de recompensa que un miembro puede acumular en un día calendario.
Máximo por mes Cantidad máxima de recompensa que un miembro puede acumular en un mes calendario.
Máximo por año Cantidad máxima de recompensa que un miembro puede acumular en un año calendario.
Máximo total Cantidad máxima de recompensa que un miembro puede acumular en toda la campaña, sin límite de tiempo.
Máximo de transacciones Cantidad máxima de transacciones de un miembro que reciben recompensa en toda la campaña.

Audiencias

Las audiencias son listas de miembros que puedes crear y luego seleccionar dentro de la configuración de una campaña para restringir su aplicación a un grupo específico. Puedes administrarlas desde el listado de Campañas del Dashboard.

Crear una audiencia

  1. Ingresa a Dashboard y haz clic en la opción “Audiencias”.
  2. En el panel “Gestionar audiencias”, haz clic en “Crear audiencia”.
  3. Asigna un nombre a la audiencia.
  4. Sube un archivo .CSV o .XLSX (hasta 10 MB) con una columna llamada identifier que contenga los identificadores de los members.
  5. Guarda la audiencia.

Estado de las campañas

Estado Descripción
Active Publicada, se evalúa en tiempo real sobre transacciones elegibles.
Inactive Guardada pero no publicada, o despublicada manualmente. No aplica sobre ninguna transacción.

Estado de los puntos

Estado Descripción
Pending Calculados al autorizarse, aún no acreditados. Webhook: loyalty-pending.
Confirmed Acreditados definitivamente tras la liquidación. Webhook: loyalty-confirm.
Cancelled Anulados por reversa de una transacción con puntos pendientes. No impactan el saldo. Webhook: loyalty-cancel.

Webhooks

Te notificaremos sobre los eventos de loyalty para que puedas mantener a tus clientes informados en tiempo real. Necesitas implementar estos tres endpoints en tu sistema.

Evento Cuándo se envía
loyalty-pending Al aprobar una transacción que genera puntos o cashback. Los puntos aún no están acreditados.
loyalty-confirm Al liquidar la transacción o al aplicar una resta sobre puntos ya confirmados. Refleja el saldo actualizado del member.
loyalty-cancel Al revertirse una transacción con puntos en estado Pending. Los puntos se anulan y no impactan el saldo.

Para el detalle técnico de cada evento (payloads, parámetros y ejemplos), consulta la API Reference.

Visualización en Dashboard

Si configuraste un esquema de acumulación por usuario, podrás ver el balance acumulado en la sección Usuarios del Dashboard.

Loyalty en Usuarios

Si configuraste un esquema de acumulación por tarjeta, podrás consultar el balance acumulado desde la sección Tarjetas del Dashboard.

Loyalty en Tarjetas

Además, desde el Detalle de cada transacción en Dashboard podrás ver si los puntos están pendientes, confirmados o cancelados.

Loyalty en Transacciones

Reposición de tarjeta

Cuando una tarjeta entra en un flujo de reposición y la nueva tarjeta queda activa, el balance acumulado se transfiere automáticamente a la nueva tarjeta. El historial de movimientos queda asociado únicamente a la nueva tarjeta; la tarjeta anterior no conserva ni muestra registro de los puntos o cashback previos.

Ajustes manuales

Vía API

Además del flujo automático, puedes acreditar o debitar puntos manualmente vía API. Esto es útil para campañas promocionales, canjes de recompensas o correcciones administrativas.

Operación Descripción Identificador del member
MINT (Acreditación) Acredita puntos o cashback en la cuenta del member. card_id o user_id
BURN (Quita) Debita puntos o cashback de la cuenta del member. card_id o user_id

Cada operación requiere una razón (reason) que queda registrada para auditoría. Para el detalle técnico de los endpoints, consulta la API Reference.

Parámetros del cuerpo de la solicitud:

Campo Tipo Descripción
clientId string Identificador del cliente.
cardId string Identificador de la tarjeta del member.
amount number Cantidad de puntos o cashback a acreditar o debitar.
reason string Motivo del ajuste. Queda registrado para auditoría.
burnType string Tipo de quita. Solo aplica en operaciones BURN. Valores posibles: adjustment, redeem.

El campo burnType distingue entre una corrección operativa (adjustment) y un canje de recompensa (redeem). Para operaciones MINT este campo no aplica.


Preguntas frecuentes

¿Qué pasa cuando vence el plazo para presentar una compra?

Si una presentación no llega dentro del plazo definido por la marca, cancelamos la transacción automáticamente. Los puntos o cashback en estado Pending se cancelan y te notificamos vía webhook loyalty-cancel.

¿El saldo de puntos es por tarjeta o por usuario?

Depende del esquema de acumulación que decidas configurar. Con card_id, cada tarjeta titular tiene su propio balance y las adicionales acumulan sobre ella. Con user_id, todas las tarjetas del usuario suman a un único balance visible a nivel de usuario.

¿El alta del member es inmediata al crear un usuario o tarjeta en Pomelo?

Sí, el alta es sincrónica. En el mismo momento en que se crea el usuario o tarjeta en Pomelo, el member queda disponible para acumular puntos o cashback.

¿Qué pasa con los puntos confirmados si una transacción se reversa después de haber liquidado?

Se realiza una quita automática (burn) por el monto de puntos acreditados y recibirás una notificación vía webhook loyalty-confirm con la resta aplicada.

¿Los puntos en estado Pending son visibles para ti?

Sí, podrás consultarlos dentro del detalle de la transacción en el Dashboard como puntos a impactar, pero aún no están acreditados en el balance del member.

¿Qué sucede si un member alcanzó el límite de una campaña y realiza una nueva transacción?

La transacción se procesa normalmente pero no genera puntos o cashback por esa campaña. Si hay otras campañas activas sin límite alcanzado, esas sí aplican.

¿Se puede modificar una campaña que ya está Activa?

Sí, se pueden editar sus parámetros y guardar los cambios sin necesidad de despublicarla. La campaña continúa activa con la configuración actualizada.

¿Hay un límite en la cantidad de campañas activas simultáneamente?

No hay límite. Todas las campañas activas se evalúan para cada transacción y, si aplican, sus puntos o cashback se acumulan.

¿Qué zona horaria se usa para evaluar campañas configuradas con días y horario?

La evaluación se realiza sobre el campo created_at de la transacción en UTC, independientemente del país donde se realice la transacción.

¿Se puede revertir una acreditación (mint) o quita (burn) de forma manual?

No existe reversión directa. Para corregir una acreditación o una quita, tendrás que realizar la operación inversa indicando el motivo en el campo reason.

¿Hay un límite de monto para las operaciones manuales de puntos o cashback?

No, no hay límite de monto para las operaciones manuales de acreditación o quita de puntos o cashback.

¿Qué transacciones llegan al módulo de loyalty?

Solo las transacciones autorizadas. Las transacciones rechazadas no generan ningún evento de loyalty ni puntos o cashback de ningún tipo.

¿Qué pasa con el balance de puntos o cashback cuando se repone una tarjeta?

El balance se transfiere automáticamente a la nueva tarjeta en el momento en que queda activa. La tarjeta anterior no conserva ni muestra el historial de movimientos previos. Este comportamiento aplica únicamente en esquemas de acumulación por tarjeta.

¿Qué pasa con los puntos o cashback si llega un refund parcial?

Aplicamos un ajuste proporcional al monto del refund: restamos los puntos o cashback correspondientes a ese monto sobre los ya confirmados y disparamos el webhook loyalty-confirm con la resta aplicada.

¿Puedo realizar ajustes manuales desde el Dashboard sin usar la API?

Sí, los usuarios con rol de administrador pueden hacer ajustes de suma y resta directamente desde el Dashboard, sin necesidad de integración adicional. El campo Motivo es obligatorio y cada operación queda registrada en nuestros sistemas.

Pomelo AI

Asistente de inteligencia artificial para consultas sobre la API de Pomelo
¡Hola!¿Cómo puedo ayudarte hoy?
Loyalty