Skip to content

Cupones

Endpoints para gestión de cupones de descuento y beneficios.

Listar Cupones

GET /api/coupons

Retorna una lista paginada de cupones con opciones de filtro. Los resultados están limitados a un máximo de 100 cupones por solicitud. Funciona con integraciones de franquicia y empresa.

Casos de uso:

  • Consultar cupones emitidos
  • Generar informes de utilización
  • Monitorear cupones por vencer

Parámetros de Query

ParámetroTipoObligatorioDescripción
date_startstringFecha de inicio para filtrar por fecha de creación (YYYY-MM-DD)
date_endstringFecha de fin para filtrar por fecha de creación (YYYY-MM-DD)
date_of_use_startstringNoFecha de inicio para filtrar por fecha de uso (YYYY-MM-DD)
date_of_use_endstringNoFecha de fin para filtrar por fecha de uso (YYYY-MM-DD)
expiration_date_startstringNoFecha de inicio para filtrar por fecha de expiración (YYYY-MM-DD)
expiration_date_endstringNoFecha de fin para filtrar por fecha de expiración (YYYY-MM-DD)
coupon_statusstringNoEstado del cupón: Utilizado, No Utilizado, Vencido, Por Vencer
limitintegerNúmero de cupones por solicitud (máximo 100)
offsetintegerNúmero de cupones a omitir (mínimo 1)
searchstringNoTérmino de búsqueda por código o información del cliente
order_columnstringColumna para ordenación (ej: created_at)
order_typestringDirección de ordenación: ASC o DESC
modulestringContexto del módulo: premiado o falae

Ejemplo de Solicitud

bash
curl -X GET "https://api-b2s.experienciab2s.com/api/coupons?date_start=2024-01-01&date_end=2024-12-31&limit=10&offset=1&order_column=created_at&order_type=DESC&module=falae" \
     -H "Authorization: Bearer SU_TOKEN"

Respuesta Exitosa (200)

json
{
  "limit": 10,
  "offset": 1,
  "total": 45,
  "coupons": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "code": "WELCOME2024",
      "status": true,
      "date_of_use": "2024-03-15",
      "expiration_date": "2024-12-31",
      "created_at": "2024-01-15T10:30:00.000Z",
      "bonus": {
        "id": "bonus-uuid",
        "name": "5% Cashback",
        "type": "answer"
      },
      "client": {
        "id": "client-uuid",
        "name": "Juan García",
        "email": "juan@example.com",
        "phone": "(11) 99999-9999"
      }
    }
  ]
}

Tipos de Bonus Disponibles

TipoDescripción
answerRespuesta de encuesta
birthdayCumpleaños
defaultPredeterminado
createCreación
fidelityProgramPrograma de fidelidad
prizeDrawSorteo
marketingMarketing
rouletteRuleta
winning_registration_rouletteRegistro ganador de ruleta
infinityInfinito

Buscar Cupones de un Cliente

GET /api/coupons/clients/{company_id}

Retorna una lista de cupones vinculados a un cliente específico, utilizando teléfono, email o CPF como criterio de búsqueda. Es necesario informar el company_id en la ruta de la solicitud.

Casos de uso:

  • Consultar cupones de un cliente en atención
  • Verificar beneficios disponibles
  • Validar cupón antes del canje

Parámetros de Ruta

ParámetroTipoObligatorioDescripción
company_idstringID de la empresa

Parámetros de Query

ParámetroTipoObligatorioDescripción
phonestringNo*Teléfono en formato internacional E.164 (ej: 551199999999)
emailstringNo*Dirección de email del cliente
cpfstringNo*CPF del cliente en formato 000.000.000-00

Nota: Al menos un parámetro de búsqueda (phone, email o cpf) debe ser proporcionado.

Ejemplo de Solicitud

bash
curl -X GET "https://api-b2s.experienciab2s.com/api/coupons/clients/103a525c-0ce3-4182-a504-aad595425233?email=cliente@ejemplo.com" \
     -H "Authorization: Bearer SU_TOKEN"

Respuesta Exitosa (200)

json
[
  {
    "id": "103a525c-0ce3-4182-a504-aad595425233",
    "status": true,
    "expiration_date": "2024-12-31",
    "date_of_use": "2024-05-10",
    "created_at": "2024-01-01T12:00:00.000Z",
    "code": "ABCDEF123",
    "bonus": {
      "name": "5% Cashback"
    }
  },
  {
    "id": "303a525c-0ce3-4182-a504-aad595425233",
    "status": false,
    "expiration_date": "2024-11-30",
    "date_of_use": null,
    "created_at": "2024-02-15",
    "code": "XYZ789",
    "bonus": {
      "name": "10% Cashback"
    }
  }
]

Estructura de la Respuesta

CampoTipoDescripción
idstringID único del cupón
codestringCódigo del cupón
statusbooleantrue = utilizado, false = no utilizado
expiration_datestringFecha de expiración
date_of_usestringFecha de utilización (null si no usado)
created_atstringFecha de creación
bonus.namestringNombre del beneficio

Códigos de Respuesta

CódigoDescripción
200Cupones encontrados
400Parámetros inválidos
401Token ausente o inválido
404Cliente no encontrado

Marcar Cupón como Utilizado

PATCH /api/coupons/status/{id}

Actualiza el estado de un cupón, marcándolo como utilizado. El sistema valida si el cupón existe, si no fue utilizado anteriormente y si no está expirado (fecha de expiración debe ser mayor a 3 horas del horario actual).

Validaciones automáticas:

  • Si el cupón existe
  • Si no fue utilizado anteriormente
  • Si todavía está dentro de la validez (al menos 3 horas antes de la expiración)

Parámetros de Ruta

ParámetroTipoObligatorioDescripción
idstringID único del cupón a ser actualizado

Ejemplo de Solicitud

bash
curl -X PATCH "https://api-b2s.experienciab2s.com/api/coupons/status/abc123-cupon-id" \
     -H "Authorization: Bearer SU_TOKEN"

Respuesta Exitosa (204)

El estado del cupón fue actualizado exitosamente. Ningún contenido es retornado en la respuesta.

Respuestas de Error (400)

json
{
  "status": "error",
  "message": "Coupon already used"
}
json
{
  "status": "error",
  "message": "Coupon expired"
}

Códigos de Respuesta

CódigoDescripción
204Cupón actualizado exitosamente
400Cupón ya utilizado o expirado
401Token ausente o inválido
404Cupón no encontrado

Integration Documentation