API de validación de cupones
La API de validación de cupones de Vivoldi permite verificar si un cupón es válido antes de procesar su uso.
Además de comprobar su disponibilidad, devuelve información de descuento, condiciones de uso y datos del usuario, lo que permite implementar lógica de negocio flexible.
Esta API está disponible a partir del plan Personal.
/api/coupon/v1/validate?cpnNo={cpnNo}
GET /api/coupon/v1/validate
?cpnNo=ZJLF0399WQBEQZJM
Request Parameters
- cpnNostringrequired
- Número de cupón.
{
"code": 0,
"message": "",
"result": {
"cpnNo": "ZJLF0399WQBEQZJM",
"domain": "https://vvd.bz",
"nm": "$100 off cake coupon",
"discTypeIdx": 457,
"discCurrency": "USD",
"formatDiscCurrency": "$60",
"disc": 60.0,
"strtYmd": "2025-01-01",
"endYmd": "2025-12-31",
"useLimit": 1,
"imgUrl": "https://file.vivoldi.com/coupon/2024/11/08/lmTFkqLQdCzeBuPdONKG.webp",
"onsiteYn": "Y",
"onsitePwd": "12345",
"memo": "60% off cake with coupon at the venue",
"url": "",
"userId": "user08",
"userNm": "Emily",
"userPhnno": "202-555-0173",
"userEml": "test@gmail.com",
"userEtc1": "",
"userEtc2": "",
"useCnt": 0,
"regYmdt": "2024-11-17 17:29:25"
}
}
Response Parameters
- codeinteger
- Código de respuesta: 0 = Éxito, cualquier otro valor = Error
- messagestring
- Mensaje de respuesta. Si el código no es 0, se devuelve un mensaje relacionado con el error.
- resultobject
-
Validación exitosa: La respuesta devuelve la información del cupón.
Validación fallida: La respuesta es null y se puede verificar mediante el mensaje de error. - cpnNostring
- Número de cupón.
- domain string
- Dominio del cupón.
- nmstring
- Nombre del cupón.
- discTypeIdxinteger
- Tipo de descuento. (457: porcentaje %, 458: descuento en importe)
- discdouble
- Para porcentaje (457): rango 1–100%. Para importe (458): introducir el valor monetario.
- discCurrencystring
- Moneda. Obligatorio al usar descuento por importe (discTypeIdx:458).
- formatDiscCurrencystring
- Símbolo de moneda.
- strtYmddate
- Fecha de inicio de validez del cupón.
- endYmddate
- Fecha de expiración del cupón.
- useLimitinteger
- Límite de uso del cupón. (0: ilimitado, 1–5: número máximo de usos)
- imgUrlstring
- URL de la imagen del cupón.
- onsiteYnstring
-
Cupón en tienda. Indica si se muestra el botón
«Usar cupón»en la página del cupón.
Necesario cuando el cupón se valida en tiendas físicas. - onsitePwd string
-
Contraseña del cupón en tienda.
Obligatoria al llamar a la API de uso de cupones si el cupón en tienda está habilitado (Y). - memostring
- Nota de referencia interna.
- urlstring
-
Al introducir una URL, se muestra el botón
«Ir a usar el cupón»en la página del cupón.
Al hacer clic en el botón o en la imagen del cupón, se redirige a dicha URL. - userIdstring
-
Se utiliza para gestionar el destinatario del cupón.
Obligatorio si el límite de uso está configurado entre 2 y 5.
Normalmente se introduce el ID de inicio de sesión del sitio web o el nombre en inglés. - userNmstring
- Nombre del usuario del cupón. Uso interno.
- userPhnnostring
- Teléfono del usuario del cupón. Uso interno.
- userEmlstring
- Correo electrónico del usuario del cupón. Uso interno.
- userEtc1string
- Campo adicional de gestión interna.
- userEtc2string
- Campo adicional de gestión interna.
- useCntinteger
- Número de usos del cupón.
- regYmdtdatetime
- Fecha de creación del cupón. Ejemplo: 2025-07-21 11:50:20
¿Qué se puede determinar con el resultado de validación?
Esta API va más allá de una simple verificación de “válido / no válido”.
Está diseñada para que los desarrolladores construyan lógica personalizada basada en datos detallados del cupón.
Con la respuesta (result), puede determinar:
- Si se puede aplicar un descuento y calcular su importe
- Si el cupón está restringido a usuarios específicos (userId, userEml)
- Si se han superado los límites de uso (useCnt, useLimit)
- Si el cupón está expirado o aún no es válido (strtYmd, endYmd)
- Si se cumplen condiciones específicas (online/offline, etc.) (onsiteYn)
- La URL de destino tras aplicar el cupón (url)
En otras palabras, no es solo un resultado,
sino una API orientada a datos para lógica flexible a nivel de aplicación.
Método de validación
La validación se realiza en base al código de cupón (cpNo) considerando múltiples criterios.
- Existencia
- Periodo de validez
- Límites de uso
- Condiciones de usuario
- Entorno aplicable
El resultado se devuelve como datos estructurados, no como un simple valor booleano.
Cómo utilizar los datos de respuesta
El objeto result contiene toda la información esencial del cupón.
Los desarrolladores pueden usar estos datos para:
- Calcular y mostrar descuentos en tiempo real en el frontend
- Restringir el uso del cupón a usuarios específicos
- Aplicar lógica condicional según el importe del pago
- Mostrar mensajes UI según el estado del cupón (expirado, utilizado, etc.)
Casos de uso
- Validación previa al pago: Validar el cupón antes de aplicarlo y usarlo solo si es válido
- Mensajes al usuario: Mostrar mensajes según el resultado (expirado o ya utilizado)
- Cálculo del descuento: Usar (
disc, discType) para calcular el importe final
El mismo código puede reutilizarse para crear un nuevo cupón tras su eliminación.
Aspectos a tener en cuenta
- El resultado de validación refleja el estado en el momento de la consulta y puede cambiar antes de su uso.
- Implemente siempre el flujo: validación → uso (Redeem).
- Confiar únicamente en la validación del cliente supone un riesgo de seguridad.
- Vuelva a validar el cálculo del descuento en el servidor para mayor precisión y seguridad.