Saltar al contenido principal

Guía: Lectura desde GET · Condiciones →

Respuesta de GET /points

Referencia OpenAPI: GetAListOfScoreCampaigns — GET https://streaming.loyal.guru/points.

Casos de uso habituales para integraciones:

  • Listar campañas de puntos/wallet activas (GET /points).
  • Filtrar por tipo de evento: ?when=manual devuelve solo campañas de asignación directa (ver API de campañas).
  • Catálogo por customer, país o tier según parámetros de query (cuando la API los expone en el listado).

Comportamiento del listado (habitual):

  • Solo campañas activas (active: true) y vigentes según available_from / available_to.
  • Paginación con starting_after / next_token_starts_after si la respuesta lo incluye.

Índice​


Query parameters​

ParámetroUso
whenFiltra por evento de la campaña (p. ej. manual para asignación directa).
customer_id / customer_codeCatálogo o elegibilidad del customer cuando el endpoint lo soporta.
countriesFiltro por país de registro o alcance.
tier_idCampañas asociadas a un tier.
starting_afterPaginación: token de la página anterior.

Consulta la documentación OpenAPI actualizada para la lista completa de filtros en GET /points.

Envoltura de la respuesta​

CampoDescripción
dataArray de objetos campaña.
next_token_starts_afterToken para la siguiente página (starting_after). Ausente en la última página.

Campos de reglas en la respuesta​

GET /points (listado) y GET /points/{id} (detalle) usan los mismos nombres en el objeto campaña:

Campo en la respuestaTipo habitualContenido tras parsear
rule_conditionsstring JSONconditions.and[] / conditions.or[] (o formato plano en POST)
rule_applicationstring JSONapplication.and[] (clave interna application)
rule_effectsstring JSONtype, value, distribution, limits, rule_group, …

Frecuencia de victoria y presupuesto: once, once_limit, budget_value, budget_period — ver Límites.

Estructura interna vs nombre de campo: el campo de la API se llama rule_application, pero dentro del JSON parseado la raíz suele ser application.and[].

Metadatos por ítem en data[]​

BloqueCamposPara qué sirve en integración
Identidadid, name, descriptionID y textos de la campaña.
Eventowhenafter_create_activity (carrito), after_create_custom_entity (evento personalizado), slug de trigger configurado, o manual (asignación directa)
Moneda / modocurrency, accrual_mode (si viene)Divisa del value monetario en rule_effects; points vs money para presentación. Requiere score_exchange de esa moneda para convertir a puntos — ver Efectos.
Vigenciaactive, available_from, available_to, recurrence_type, recurrence_daysSi la campaña aplica hoy.
Audienciaselect_customersSolo loyalty o targeted — no all_customers (en puntos hace falta customer identificado para acreditar saldo).
Activaciónactivation_period_type, activation_delayCuándo el saldo otorgado pasa a estar disponible.
Caducidadexpiration_period_type, availability_durationCuándo expira el saldo otorgado.
Límites victoriaonce, once_limit, budget_value, budget_periodVer Límites.
Categoríacategory (si viene)Clasificación de la regla en Owner App.

Activación y caducidad (ciclo de vida del saldo)​

Tras un otorgamiento, el customer puede ver saldo en estados distintos:

ConceptoCampos en GET (habitual)Integración
Activaciónactivation_period_type, activation_delayRetraso hasta que el saldo es usable (p. ej. N días después del ticket).
Caducidadexpiration_period_type, availability_durationVentana o periodo fijo de expiración del saldo.

Detalle de producto: Reglas de acumulación y documentación de expiración si está publicada en tu versión de la KB.

Integración API en ticket​

Al crear o simular un ticket (POST /activities o POST /activities/simulate), el flag apply_points del payload controla si esa transacción evalúa campañas de puntos (por defecto suele ser true). Ver Integración API en la página de Puntos y Wallet.

Parseo: rule_conditions, rule_application y rule_effects suelen venir como string JSON. Deserializa antes de leer cláusulas.


Siguiente: Condiciones (rule_conditions)