API Cupones
Encuentra aquí toda la información necesaria para la integración del canjeo de cupones con el TPV de tu local.
Índice
Definición código QR
Parámetros
Contenido
Ejemplo
Definición servicio Web
Comprobación validez de un código de cupón
Confirmación uso de un código de cupón
1. Definición código QR
1.1. Parámetros
Un código QR deberá contener obligatoriamente 2 parámetros:
promotion_id: Código promoción único y existente en el sistema de Proveedor de TPV.
Con este identificador, el Proveedor de TPV debe reconocer que promoción tiene que aplicar sobre el ticket actual y mostrar un mensaje de información al empleado si la promoción no se puede aplicar (en el caso que el producto promocionado no esté incluido en el ticket actual).
El formato del promotion_id es un campo numérico de hasta 9 caracteres.
voucher_id: Identificador del código de descuento, es un identificador único y estará asociado a un único cliente (en el sistema de Cheerfy).
Este parámetro es el que se va a utilizar desde Proveedor de TPV para:
Saber si el código es válido
Confirmar su uso una vez aplicada la promoción y confirmado el ticket por parte del empleado
El formato del voucher_id es un campo alfanumérico de hasta 32 caracteres de longitud.
1.2. Contenido
El QR code contendrá los 2 parámetros definidos en la sección "Parámetros" sin saltos de línea, ni otros caracteres adicionales. Existe un separador definido como $$$$$ para separar los 2 campos.
El contenido al escanear un código QR debería ser algo parecido a esto (los identificadores de promoción y voucher son un ejemplo):
1.3. Ejemplo
Adjuntamos un código QR, con el código de ejemplo anterior, por si es necesario hacer una prueba por parte de Proveedor de TPV.
2. Definición servicio WEB
Las llamadas desde el sistema Proveedor de TPV a Cheerfy se harán mediante servicios Web de tipo REST y con contenido definido en formato JSON.
Cada llamada deberá contener una serie de parámetros obligatorios en la cabecera (además de los propios parámetros del servicio que se invoque), estos parámetros de la cabecera indicarán:
El contenido tiene formato JSON:
Los datos de autenticación de la llamada:
2.1. Comprobación validez de un código de cupón
Una vez el Proveedor de TPV escanea un código de cupón (voucher_id), tiene que confirmar con Cheerfy que ese código es válido, para ello, necesita consultar un servicio Web REST.
La respuesta en el caso de error, por ahora no contendrá datos del estado del cupón (expirado o redimido), ya que Cheerfy muestra esa información en la landing page del código, no obstante, es un dato que podría incluirse en próximas versiones.
URL:
Método HTTP:
Parámetros de la cabecera:
Field
Type
Description
Content-Type
String
Data application raw type.
Authorization
String
Admin unique access-key (Content must start by Token).
Parámetros de la llamada:
Field
Type
Description
id
String
Voucher unique identifier (included as part of the URL)
action
Number
Action to be executed. Values: 1 - CHECK, 2 - REDEEM
client_data optional
Object
Client data belongs to the app which invokes the service. The parameter must include at least these parameters (you can include as much as you need for debugging): client_type (ANDROID, WEB, IOS, Proveedor de TPV) and client_version
promotion_id optional
String
Unique Promotional code at Client POS to validate if valid and match with Voucher id.
Ejemplo llamada:
Parámetros de la respuesta (código 200 OK):
Field
Type
Description
user
String
Cheerfy user ID
public_profile
Object
Public profile user object
id
String
Unique user identifier
avatar optional
String
User avatar url
name optional
String
User full name
first_name optional
String
User first name
surname optional
String
User surname
birthdate optional
Long
User birthdate, format UNIX epoch
language optional
String
User language is the 2 characters language ISO code (lower case)
Ejemplo respuesta (200 OK):
Parámetros respuesta (código 400 Invalid Request):
Name
Description
InvalidData
The given data is not valid
Ejemplo respuesta (400 Invalid data):
Parámetros respuesta (código 400 Invalid Request):
Name
Description
InvalidData
The given data is not valid
Ejemplo respuesta (400 Invalid promotion):
Parámetros respuesta (código 400 Invalid promotion):
Name
Description
InvalidPromotion
The given promotion ID is not valid
Ejemplo respuesta (400 Expired promotion):
Parámetros respuesta (código 400 Expired promotion):
Name
Description
ExpiredPromotion
The given promotion is expired
Ejemplo respuesta (400 Used promotion):
Parámetros respuesta (código 400 Used promotion):
Name
Description
UsedPromotion
The given promotion is already used
Parámetros respuesta (código 500 Internal Error):
Name
Description
InternalServer
The server failed. Try again.
Ejemplo respuesta (500 Internal Error):
2.2. Confirmación uso de un código de cupón
Una vez Proveedor de TPV aplica una promoción sobre un ticket válido, tiene que confirmar con Cheerfy que ese código ha sido usado, para ello, necesita consultar un servicio Web REST.
En caso de error 500 (recibiendo anteriormente un 200 de la llamada de chequeo), Proveedor de TPV internamente intentará volver a llamar 3 veces (una vez cada 1 segundo), en caso de seguir recibiendo error 500, Proveedor de TPV dará por bueno el cupón, y Cheerfy tendrá que recuperar esa información de uso por otro mecanismo (a definir como).
En caso de error 400, el código ha expirado o se ha usado en ese momento, (recibiendo anteriormente un 200 de la llamada de chequeo), Proveedor de TPV dará por bueno el código, asumiendo que se ha podido usar 2 veces o ya expiró.
URL:
Método HTTP:
Parámetros de la cabecera:
Field
Type
Description
Content-Type
String
Data application raw type.
Authorization
String
Admin unique access-key (Content must start by Token).
Parámetros de la llamada:
Field
Type
Description
id
String
Voucher unique identifier (included as part of the URL)
action
Number
Action to be executed. Values: 1 - CHECK, 2 - REDEEM
client_data optional
Object
Client data belongs to the app which invokes the service. The parameter must include at least these parameters (you can include as much as you need for debugging): client_type (ANDROID, WEB, IOS, Proveedor de TPV) and client_version
Ejemplo de llamada:
Parámetros de la respuesta (código 200 OK):
Field
Type
Description
user
String
Cheerfy user ID
public_profile
Object
Public profile user object
id
String
Unique user identifier
avatar optional
String
User avatar url
name optional
String
User full name
first_name optional
String
User first name
surname optional
String
User surname
birthdate optional
Long
User birthdate, format UNIX epoch
language optional
String
User language is the 2 characters language ISO code (lower case)
Ejemplo respuesta (200 OK):
Parámetros respuesta (código 400 Invalid Request):
Name
Description
InvalidData
The given data is not valid
Ejemplo respuesta (400 Invalid data):
Parámetros respuesta (código 500 Internal Error):
Name
Description
InternalServer
The server failed. Try again.
Ejemplo respuesta (500 Internal Error):
Última actualización
¿Te fue útil?